💬 Console
Loading kontask...
Open full page →
Completed
on 10 Jan 2026, 8:33 pm

Output

🏷️ Naming: Topics vs Lifecycles vs Phases

The Options

Name Pros Cons
Topic
  • Generic, flexible
  • Already implemented (gvTopic)
  • Familiar from Slack, forums
  • Doesn't convey "phase" meaning
  • Could mean anything
  • Vague for newcomers
Lifecycle
  • Accurate - it IS lifecycle
  • Industry term (SDLC)
  • Self-documenting
  • Long word (9 chars)
  • Implies strict ordering
  • Rename effort (gvLifecycle)
Phase
  • Short (5 chars)
  • Clear meaning
  • Works in UI badges
  • Implies strict sequence
  • "Feature phase" sounds odd
  • Less flexible than topic
Stage
  • Short (5 chars)
  • Used in CI/CD (familiar)
  • gvStage sounds good
  • Conflicts with deploy stages
  • Also implies sequence
  • "Bugfix stage" sounds off
Activity
  • Describes WHAT you're doing
  • No ordering implied
  • "Testing activity" works
  • Long (8 chars)
  • Conflicts with user activity
  • Generic

🗣️ How They Sound in UI

Badge on kontask card:
  Feature ← just the name, no prefix needed

Filter dropdown:
  "Filter by topic"      → generic, could be anything
  "Filter by lifecycle"  → clear, but sounds formal
  "Filter by phase"      → "what phase is this work in?"
  "Filter by activity"   → "what activity type?"

API/code:
  kontask.topic = "feature"     ← current
  kontask.lifecycle = "feature" ← more descriptive
  kontask.phase = "feature"     ← shorter

🤔 Key Consideration

"Topic" is intentionally generic because:

  • Some items don't fit a clean lifecycle ("Roadmap" isn't really a phase)
  • Future expansion might add non-lifecycle categories
  • Different projects might use different topic sets

"Lifecycle" is more specific which:

  • Makes the purpose immediately clear
  • Aligns with SDLC terminology
  • But locks us into that mental model

💬 My Recommendation

Keep "Topic" but document it as "Lifecycle Topics"

  • In code: gvTopic, topic_id (short, stable)
  • In docs: "Lifecycle topics" (explains the concept)
  • In UI: Just show the topic name, no label needed
  • Avoids: Renaming all files, types, APIs

The 12 items ARE lifecycle phases, but calling them "topics" keeps the system flexible.

📚 Final Vocabulary

Topic  = WHAT lifecycle phase (Requirements → Roadmap)
Domain = WHERE in the system (Frontend, Database, Security...)
Flow   = WHY/tracking unit (feature, bugfix, refactor...)

Quick Actions

View Turn
Original Request

No layout configured

Details

Type General
Status Completed
Scope vibetools
Tags schemanamingarchitecture
Created 10 Jan 2026, 8:33 pm
Updated 10 Jan 2026, 8:33 pm
Timing
⏱️ 48.7s
0 tools
TTFE 0% Thinking 100% Tools 0%
Created By claude

📋 Claude's Context

Session ses_7c4eba4a...

Raw Data

{
  "id": "09bb7c15-492c-41f8-8b74-848ba2781958",
  "type": "general",
  "status": "completed",
  "title": "Naming: Topics vs Lifecycles vs Phases",
  "description": "Analysis of naming options for the WHAT dimension",
  "context": {
    "output": "<div style=\"background:#1e1e1e;color:#e0e0e0;padding:20px;border-radius:8px;font-family:'Consolas','Monaco',monospace;\">\n<h2 style=\"font-family:sans-serif;color:#fff;margin:0 0 16px 0;\">🏷️ Naming: Topics vs Lifecycles vs Phases</h2>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#e5c07b;margin:0 0 12px 0;\">The Options</h3>\n<table style=\"width:100%;border-collapse:collapse;\">\n<tr style=\"border-bottom:1px solid #444;\">\n  <th style=\"text-align:left;padding:10px;color:#98c379;\">Name</th>\n  <th style=\"text-align:left;padding:10px;color:#98c379;\">Pros</th>\n  <th style=\"text-align:left;padding:10px;color:#98c379;\">Cons</th>\n</tr>\n<tr style=\"border-bottom:1px solid #3a3a3a;\">\n  <td style=\"padding:10px;vertical-align:top;\"><span style=\"background:#c678dd;color:#fff;padding:2px 8px;border-radius:4px;font-weight:bold;\">Topic</span></td>\n  <td style=\"padding:10px;color:#abb2bf;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Generic, flexible</li>\n      <li>Already implemented (gvTopic)</li>\n      <li>Familiar from Slack, forums</li>\n    </ul>\n  </td>\n  <td style=\"padding:10px;color:#7f848e;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Doesn't convey \"phase\" meaning</li>\n      <li>Could mean anything</li>\n      <li>Vague for newcomers</li>\n    </ul>\n  </td>\n</tr>\n<tr style=\"border-bottom:1px solid #3a3a3a;\">\n  <td style=\"padding:10px;vertical-align:top;\"><span style=\"background:#22c55e;color:#fff;padding:2px 8px;border-radius:4px;font-weight:bold;\">Lifecycle</span></td>\n  <td style=\"padding:10px;color:#abb2bf;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Accurate - it IS lifecycle</li>\n      <li>Industry term (SDLC)</li>\n      <li>Self-documenting</li>\n    </ul>\n  </td>\n  <td style=\"padding:10px;color:#7f848e;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Long word (9 chars)</li>\n      <li>Implies strict ordering</li>\n      <li>Rename effort (gvLifecycle)</li>\n    </ul>\n  </td>\n</tr>\n<tr style=\"border-bottom:1px solid #3a3a3a;\">\n  <td style=\"padding:10px;vertical-align:top;\"><span style=\"background:#3b82f6;color:#fff;padding:2px 8px;border-radius:4px;font-weight:bold;\">Phase</span></td>\n  <td style=\"padding:10px;color:#abb2bf;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Short (5 chars)</li>\n      <li>Clear meaning</li>\n      <li>Works in UI badges</li>\n    </ul>\n  </td>\n  <td style=\"padding:10px;color:#7f848e;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Implies strict sequence</li>\n      <li>\"Feature phase\" sounds odd</li>\n      <li>Less flexible than topic</li>\n    </ul>\n  </td>\n</tr>\n<tr style=\"border-bottom:1px solid #3a3a3a;\">\n  <td style=\"padding:10px;vertical-align:top;\"><span style=\"background:#f97316;color:#fff;padding:2px 8px;border-radius:4px;font-weight:bold;\">Stage</span></td>\n  <td style=\"padding:10px;color:#abb2bf;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Short (5 chars)</li>\n      <li>Used in CI/CD (familiar)</li>\n      <li>gvStage sounds good</li>\n    </ul>\n  </td>\n  <td style=\"padding:10px;color:#7f848e;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Conflicts with deploy stages</li>\n      <li>Also implies sequence</li>\n      <li>\"Bugfix stage\" sounds off</li>\n    </ul>\n  </td>\n</tr>\n<tr style=\"border-bottom:1px solid #3a3a3a;\">\n  <td style=\"padding:10px;vertical-align:top;\"><span style=\"background:#ec4899;color:#fff;padding:2px 8px;border-radius:4px;font-weight:bold;\">Activity</span></td>\n  <td style=\"padding:10px;color:#abb2bf;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Describes WHAT you're doing</li>\n      <li>No ordering implied</li>\n      <li>\"Testing activity\" works</li>\n    </ul>\n  </td>\n  <td style=\"padding:10px;color:#7f848e;vertical-align:top;\">\n    <ul style=\"margin:0;padding-left:16px;\">\n      <li>Long (8 chars)</li>\n      <li>Conflicts with user activity</li>\n      <li>Generic</li>\n    </ul>\n  </td>\n</tr>\n</table>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#61afef;margin:0 0 12px 0;\">🗣️ How They Sound in UI</h3>\n<pre style=\"background:#252525;padding:12px;border-radius:4px;color:#e0e0e0;margin:0;overflow-x:auto;font-size:12px;\">\n<span style=\"color:#7f848e;\">Badge on kontask card:</span>\n  <span style=\"background:#22c55e;color:#fff;padding:1px 6px;border-radius:3px;\">Feature</span> <span style=\"color:#7f848e;\">← just the name, no prefix needed</span>\n\n<span style=\"color:#7f848e;\">Filter dropdown:</span>\n  \"Filter by <span style=\"color:#e5c07b;\">topic</span>\"      → generic, could be anything\n  \"Filter by <span style=\"color:#22c55e;\">lifecycle</span>\"  → clear, but sounds formal\n  \"Filter by <span style=\"color:#3b82f6;\">phase</span>\"      → \"what phase is this work in?\"\n  \"Filter by <span style=\"color:#ec4899;\">activity</span>\"   → \"what activity type?\"\n\n<span style=\"color:#7f848e;\">API/code:</span>\n  kontask.topic = \"feature\"     <span style=\"color:#7f848e;\">← current</span>\n  kontask.lifecycle = \"feature\" <span style=\"color:#7f848e;\">← more descriptive</span>\n  kontask.phase = \"feature\"     <span style=\"color:#7f848e;\">← shorter</span>\n</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#c678dd;margin:0 0 12px 0;\">🤔 Key Consideration</h3>\n<p style=\"margin:0 0 12px 0;color:#abb2bf;\">\"Topic\" is <strong>intentionally generic</strong> because:</p>\n<ul style=\"margin:0;padding-left:20px;color:#abb2bf;line-height:1.8;\">\n<li>Some items don't fit a clean lifecycle (\"Roadmap\" isn't really a phase)</li>\n<li>Future expansion might add non-lifecycle categories</li>\n<li>Different projects might use different topic sets</li>\n</ul>\n<p style=\"margin:12px 0 0 0;color:#abb2bf;\">\"Lifecycle\" is <strong>more specific</strong> which:</p>\n<ul style=\"margin:0;padding-left:20px;color:#abb2bf;line-height:1.8;\">\n<li>Makes the purpose immediately clear</li>\n<li>Aligns with SDLC terminology</li>\n<li>But locks us into that mental model</li>\n</ul>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h3 style=\"color:#f43f5e;margin:0 0 12px 0;\">💬 My Recommendation</h3>\n<div style=\"background:#252525;padding:16px;border-radius:4px;\">\n<p style=\"margin:0 0 12px 0;color:#98c379;font-weight:bold;font-size:14px;\">Keep \"Topic\" but document it as \"Lifecycle Topics\"</p>\n<ul style=\"margin:0;padding-left:20px;color:#abb2bf;line-height:1.8;\">\n<li><strong>In code:</strong> <code>gvTopic</code>, <code>topic_id</code> (short, stable)</li>\n<li><strong>In docs:</strong> \"Lifecycle topics\" (explains the concept)</li>\n<li><strong>In UI:</strong> Just show the topic name, no label needed</li>\n<li><strong>Avoids:</strong> Renaming all files, types, APIs</li>\n</ul>\n<p style=\"margin:16px 0 0 0;color:#7f848e;font-size:12px;\">The 12 items ARE lifecycle phases, but calling them \"topics\" keeps the system flexible.</p>\n</div>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;\">\n<h3 style=\"color:#98c379;margin:0 0 12px 0;\">📚 Final Vocabulary</h3>\n<pre style=\"background:#252525;padding:12px;border-radius:4px;color:#e0e0e0;margin:0;overflow-x:auto;\">\n<span style=\"color:#e5c07b;font-weight:bold;\">Topic</span>  = WHAT lifecycle phase (Requirements → Roadmap)\n<span style=\"color:#61afef;font-weight:bold;\">Domain</span> = WHERE in the system (Frontend, Database, Security...)\n<span style=\"color:#c678dd;font-weight:bold;\">Flow</span>   = WHY/tracking unit (feature, bugfix, refactor...)\n</pre>\n</div>\n\n</div>",
    "requestedAt": "2026-01-10T10:50:00.000Z",
    "requestId": "1d984d49-7a0b-43fe-8cc7-355d83c11099",
    "choices": [
      {
        "label": "Keep 'Topic'",
        "value": "Keep 'Topic' in code but document as 'Lifecycle Topics'. Avoids renaming, stays flexible.",
        "primary": true
      },
      {
        "label": "Rename to 'Lifecycle'",
        "value": "Rename gvTopic to gvLifecycle. More descriptive but requires refactoring."
      },
      {
        "label": "Rename to 'Phase'",
        "value": "Rename gvTopic to gvPhase. Shorter, clear meaning, moderate refactor."
      },
      {
        "label": "Use 'Activity'",
        "value": "Rename gvTopic to gvActivity. No ordering implied, describes what you're doing."
      }
    ],
    "turnTiming": {
      "totalMs": 48745,
      "ttfeMs": 54,
      "thinkingMs": 48691,
      "toolExecutionMs": 0,
      "toolCallCount": 0,
      "thinkingPct": 100,
      "toolsPct": 0,
      "ttfePct": 0
    }
  },
  "createdBy": "claude",
  "createdAt": "2026-01-10T10:33:44.121Z",
  "updatedAt": "2026-01-10T10:33:48.469Z",
  "requestId": "1d984d49-7a0b-43fe-8cc7-355d83c11099",
  "scope": "vibetools",
  "tags": [
    "schema",
    "naming",
    "architecture"
  ],
  "sessionId": "ses_7c4eba4a-596",
  "flowId": "flow_01KEHQ5A6Y7SHWCMHHZYGBC592",
  "flowLinks": [
    {
      "flowId": "flow_01KEHQ5A6Y7SHWCMHHZYGBC592",
      "edgeType": "evidence",
      "createdAt": "2026-01-10T10:33:44.121Z"
    }
  ]
}
Loading timeline...
Loading kontask...
Open full page →
DashboardReportsKontasksOrphansFlowsDecisionsSessionsTelemetryLogs + Go