Kontask Tagging & Session Scopes
Design for separating product work from devtools work via tags and scoped sessions
Output
Kontask Scoping: Tags + Sessions
Separating "what you're building" from "the tools you're building with"
Key Insight
The split isn't kongate vs konui - it's:
- PRODUCT = The thing being built (Konnect, or any future platform)
- VIBETOOLS = The universal dev tooling (konui, konsole, .claude, git)
kongate, konimage, konwebflow, kondata are product code for Konnect specifically - they'd be replaced entirely for a different project.
The Two Layers
PRODUCT Layer
Project-specific code & data
For Konnect:
- kongate, konimage, konwebflow, kondata
- Listings, suburbs, regions, team
- PropertyMe integration
- Webflow CMS
Would be completely different for another project
VIBETOOLS Layer
Universal dev infrastructure
Always present:
- konui (admin UI, kontasks)
- konsole (Claude as service)
- CLAUDE.md, .git
- Dashboard console itself
Reusable across any vibe coding project
Proposal: Kontask Tags
Tag Schema
interface Kontask {
// ... existing fields
tags: string[]; // e.g., ["product", "listings"]
scope: "product" | "vibetools" | null; // Primary categorization
}
Suggested Tags
| Tag | Scope | Use for |
|---|---|---|
| listings | product | Property data queries |
| suburbs | product | Suburb/region work |
| pipeline | product | kongate→konwebflow flow |
| cms | product | Webflow CMS operations |
| konui | vibetools | Admin UI development |
| konsole | vibetools | Claude service work |
| kontasks | vibetools | Kontask system itself |
| docs | either | Documentation |
| research | either | Exploration/analysis |
Proposal: Scoped Sessions
Session Concept
A session is a named context for a vibe coding focus area:
interface VibeSession {
id: string;
name: string; // "Konnect Product" or "Vibetools Dev"
scope: "product" | "vibetools";
defaultTags: string[]; // Auto-applied to new kontasks
konsoleSessionId?: string; // Claude conversation context
}
UX: Session Switcher
In Dashboard header, add session selector:
Switching sessions changes: (1) konsole context, (2) default tags, (3) kontask filter
How Auto-Tagging Would Work
When Claude creates a kontask from Dashboard Console:
- Inherit
scopefrom active session - Inherit
defaultTagsfrom session - Claude can add additional tags based on content (e.g., "listings" if output contains listing data)
- User can edit tags manually on kontask detail page
Filtering & Views
Kontasks list would support:
- Filter by scope: All | Product | Vibetools
- Filter by tag: Multi-select tag chips
- Session view: Only kontasks from current session
- Timeline view: Chronological story (future)
Implementation Phases
Portability to Other Projects
Key principle: Sessions are project-agnostic.
When you start a new vibe coding project:
- Create new "Product" session with project name (e.g., "Acme CRM")
- Define project-specific tags (customers, invoices, reports...)
- Vibetools session stays universal - same konui, konsole, kontasks
- Each project gets its own konsole conversation context
Next Steps: Do you want me to start with Phase A+B (add tags field + basic UI) as a foundation, then build sessions on top? Or tackle sessions first?
Quick Actions
Original Request
No layout configured
Details
Raw Data
{
"id": "f3bf0546-690c-4f7a-9d8f-3d860fbd49d2",
"type": "general",
"status": "completed",
"title": "Kontask Tagging & Session Scopes",
"description": "Design for separating product work from devtools work via tags and scoped sessions",
"context": {
"output": "<div style=\"background:#1e1e1e;color:#e0e0e0;padding:20px;border-radius:8px;font-family:system-ui,-apple-system,sans-serif;\">\n<h2 style=\"color:#fff;margin:0 0 16px 0;\">Kontask Scoping: Tags + Sessions</h2>\n<p style=\"color:#7f848e;margin:0 0 20px 0;\">Separating \"what you're building\" from \"the tools you're building with\"</p>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:20px;border-left:4px solid #f97316;\">\n<h3 style=\"color:#f97316;margin:0 0 8px 0;\">Key Insight</h3>\n<p style=\"margin:0;color:#e0e0e0;\">The split isn't <em>kongate vs konui</em> - it's:</p>\n<ul style=\"margin:8px 0 0 0;padding-left:20px;color:#e0e0e0;line-height:1.8;\">\n<li><strong style=\"color:#22c55e;\">PRODUCT</strong> = The thing being built (Konnect, or any future platform)</li>\n<li><strong style=\"color:#c678dd;\">VIBETOOLS</strong> = The universal dev tooling (konui, konsole, .claude, git)</li>\n</ul>\n<p style=\"margin:12px 0 0 0;color:#7f848e;\">kongate, konimage, konwebflow, kondata are <em>product code</em> for Konnect specifically - they'd be replaced entirely for a different project.</p>\n</div>\n\n<h3 style=\"color:#fff;margin:20px 0 12px 0;\">The Two Layers</h3>\n\n<div style=\"display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;\">\n<div style=\"background:#1a3a1a;padding:16px;border-radius:6px;border:1px solid #22c55e;\">\n<h4 style=\"color:#22c55e;margin:0 0 8px 0;\">PRODUCT Layer</h4>\n<p style=\"margin:0 0 8px 0;color:#7f848e;font-size:0.85rem;\">Project-specific code & data</p>\n<div style=\"background:#0d1f0d;padding:8px;border-radius:4px;font-size:0.85rem;\">\n<p style=\"margin:0 0 4px 0;color:#98c379;\"><strong>For Konnect:</strong></p>\n<ul style=\"margin:0;padding-left:16px;color:#7f848e;line-height:1.5;\">\n<li>kongate, konimage, konwebflow, kondata</li>\n<li>Listings, suburbs, regions, team</li>\n<li>PropertyMe integration</li>\n<li>Webflow CMS</li>\n</ul>\n</div>\n<p style=\"margin:8px 0 0 0;color:#7f848e;font-size:0.8rem;\">Would be completely different for another project</p>\n</div>\n<div style=\"background:#2d1a3a;padding:16px;border-radius:6px;border:1px solid #c678dd;\">\n<h4 style=\"color:#c678dd;margin:0 0 8px 0;\">VIBETOOLS Layer</h4>\n<p style=\"margin:0 0 8px 0;color:#7f848e;font-size:0.85rem;\">Universal dev infrastructure</p>\n<div style=\"background:#1a0d2a;padding:8px;border-radius:4px;font-size:0.85rem;\">\n<p style=\"margin:0 0 4px 0;color:#c678dd;\"><strong>Always present:</strong></p>\n<ul style=\"margin:0;padding-left:16px;color:#7f848e;line-height:1.5;\">\n<li>konui (admin UI, kontasks)</li>\n<li>konsole (Claude as service)</li>\n<li>CLAUDE.md, .git</li>\n<li>Dashboard console itself</li>\n</ul>\n</div>\n<p style=\"margin:8px 0 0 0;color:#7f848e;font-size:0.8rem;\">Reusable across any vibe coding project</p>\n</div>\n</div>\n\n<h3 style=\"color:#fff;margin:20px 0 12px 0;\">Proposal: Kontask Tags</h3>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h4 style=\"color:#61afef;margin:0 0 12px 0;\">Tag Schema</h4>\n<pre style=\"background:#1a1b2e;padding:12px;border-radius:4px;overflow-x:auto;color:#e0e0e0;font-size:0.85rem;\">interface Kontask {\n // ... existing fields\n <span style=\"color:#c678dd;\">tags</span>: string[]; <span style=\"color:#7f848e;\">// e.g., [\"product\", \"listings\"]</span>\n <span style=\"color:#c678dd;\">scope</span>: \"product\" | \"vibetools\" | null; <span style=\"color:#7f848e;\">// Primary categorization</span>\n}</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h4 style=\"color:#61afef;margin:0 0 12px 0;\">Suggested Tags</h4>\n<table style=\"width:100%;border-collapse:collapse;font-size:0.9rem;\">\n<tr style=\"background:#363636;\"><th style=\"text-align:left;padding:8px;color:#fff;\">Tag</th><th style=\"text-align:left;padding:8px;color:#fff;\">Scope</th><th style=\"text-align:left;padding:8px;color:#fff;\">Use for</th></tr>\n<tr><td style=\"padding:8px;\"><span style=\"background:#22c55e;color:#fff;padding:2px 6px;border-radius:3px;\">listings</span></td><td style=\"padding:8px;color:#98c379;\">product</td><td style=\"padding:8px;color:#7f848e;\">Property data queries</td></tr>\n<tr style=\"background:#333;\"><td style=\"padding:8px;\"><span style=\"background:#22c55e;color:#fff;padding:2px 6px;border-radius:3px;\">suburbs</span></td><td style=\"padding:8px;color:#98c379;\">product</td><td style=\"padding:8px;color:#7f848e;\">Suburb/region work</td></tr>\n<tr><td style=\"padding:8px;\"><span style=\"background:#22c55e;color:#fff;padding:2px 6px;border-radius:3px;\">pipeline</span></td><td style=\"padding:8px;color:#98c379;\">product</td><td style=\"padding:8px;color:#7f848e;\">kongate→konwebflow flow</td></tr>\n<tr style=\"background:#333;\"><td style=\"padding:8px;\"><span style=\"background:#22c55e;color:#fff;padding:2px 6px;border-radius:3px;\">cms</span></td><td style=\"padding:8px;color:#98c379;\">product</td><td style=\"padding:8px;color:#7f848e;\">Webflow CMS operations</td></tr>\n<tr><td style=\"padding:8px;\"><span style=\"background:#c678dd;color:#fff;padding:2px 6px;border-radius:3px;\">konui</span></td><td style=\"padding:8px;color:#c678dd;\">vibetools</td><td style=\"padding:8px;color:#7f848e;\">Admin UI development</td></tr>\n<tr style=\"background:#333;\"><td style=\"padding:8px;\"><span style=\"background:#c678dd;color:#fff;padding:2px 6px;border-radius:3px;\">konsole</span></td><td style=\"padding:8px;color:#c678dd;\">vibetools</td><td style=\"padding:8px;color:#7f848e;\">Claude service work</td></tr>\n<tr><td style=\"padding:8px;\"><span style=\"background:#c678dd;color:#fff;padding:2px 6px;border-radius:3px;\">kontasks</span></td><td style=\"padding:8px;color:#c678dd;\">vibetools</td><td style=\"padding:8px;color:#7f848e;\">Kontask system itself</td></tr>\n<tr style=\"background:#333;\"><td style=\"padding:8px;\"><span style=\"background:#61afef;color:#fff;padding:2px 6px;border-radius:3px;\">docs</span></td><td style=\"padding:8px;color:#7f848e;\">either</td><td style=\"padding:8px;color:#7f848e;\">Documentation</td></tr>\n<tr><td style=\"padding:8px;\"><span style=\"background:#61afef;color:#fff;padding:2px 6px;border-radius:3px;\">research</span></td><td style=\"padding:8px;color:#7f848e;\">either</td><td style=\"padding:8px;color:#7f848e;\">Exploration/analysis</td></tr>\n</table>\n</div>\n\n<h3 style=\"color:#fff;margin:20px 0 12px 0;\">Proposal: Scoped Sessions</h3>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h4 style=\"color:#61afef;margin:0 0 12px 0;\">Session Concept</h4>\n<p style=\"margin:0 0 12px 0;color:#e0e0e0;\">A <strong>session</strong> is a named context for a vibe coding focus area:</p>\n<pre style=\"background:#1a1b2e;padding:12px;border-radius:4px;overflow-x:auto;color:#e0e0e0;font-size:0.85rem;\">interface VibeSession {\n <span style=\"color:#c678dd;\">id</span>: string;\n <span style=\"color:#c678dd;\">name</span>: string; <span style=\"color:#7f848e;\">// \"Konnect Product\" or \"Vibetools Dev\"</span>\n <span style=\"color:#c678dd;\">scope</span>: \"product\" | \"vibetools\";\n <span style=\"color:#c678dd;\">defaultTags</span>: string[]; <span style=\"color:#7f848e;\">// Auto-applied to new kontasks</span>\n <span style=\"color:#c678dd;\">konsoleSessionId</span>?: string; <span style=\"color:#7f848e;\">// Claude conversation context</span>\n}</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<h4 style=\"color:#61afef;margin:0 0 12px 0;\">UX: Session Switcher</h4>\n<p style=\"margin:0 0 12px 0;color:#e0e0e0;\">In Dashboard header, add session selector:</p>\n<div style=\"background:#1a1b2e;padding:12px;border-radius:4px;display:flex;gap:8px;align-items:center;\">\n<span style=\"color:#7f848e;\">Session:</span>\n<span style=\"background:#22c55e;color:#fff;padding:4px 12px;border-radius:4px;font-weight:bold;\">Konnect Product</span>\n<span style=\"color:#7f848e;\">|</span>\n<span style=\"background:#333;color:#c678dd;padding:4px 12px;border-radius:4px;border:1px solid #c678dd;\">Vibetools</span>\n</div>\n<p style=\"margin:12px 0 0 0;color:#7f848e;font-size:0.85rem;\">Switching sessions changes: (1) konsole context, (2) default tags, (3) kontask filter</p>\n</div>\n\n<h3 style=\"color:#fff;margin:20px 0 12px 0;\">How Auto-Tagging Would Work</h3>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<p style=\"margin:0 0 8px 0;color:#e0e0e0;\">When Claude creates a kontask from Dashboard Console:</p>\n<ol style=\"margin:0;padding-left:20px;color:#e0e0e0;line-height:1.8;\">\n<li>Inherit <code style=\"background:#333;padding:2px 4px;border-radius:2px;\">scope</code> from active session</li>\n<li>Inherit <code style=\"background:#333;padding:2px 4px;border-radius:2px;\">defaultTags</code> from session</li>\n<li>Claude can add additional tags based on content (e.g., \"listings\" if output contains listing data)</li>\n<li>User can edit tags manually on kontask detail page</li>\n</ol>\n</div>\n\n<h3 style=\"color:#fff;margin:20px 0 12px 0;\">Filtering & Views</h3>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:16px;\">\n<p style=\"margin:0 0 12px 0;color:#e0e0e0;\">Kontasks list would support:</p>\n<ul style=\"margin:0;padding-left:20px;color:#7f848e;line-height:1.8;\">\n<li><strong style=\"color:#e0e0e0;\">Filter by scope:</strong> All | Product | Vibetools</li>\n<li><strong style=\"color:#e0e0e0;\">Filter by tag:</strong> Multi-select tag chips</li>\n<li><strong style=\"color:#e0e0e0;\">Session view:</strong> Only kontasks from current session</li>\n<li><strong style=\"color:#e0e0e0;\">Timeline view:</strong> Chronological story (future)</li>\n</ul>\n</div>\n\n<h3 style=\"color:#fff;margin:20px 0 12px 0;\">Implementation Phases</h3>\n\n<table style=\"width:100%;border-collapse:collapse;background:#2d2d2d;border-radius:6px;overflow:hidden;font-size:0.9rem;\">\n<tr style=\"background:#363636;\"><th style=\"text-align:left;padding:10px;color:#fff;\">Phase</th><th style=\"text-align:left;padding:10px;color:#fff;\">Scope</th><th style=\"text-align:left;padding:10px;color:#fff;\">Effort</th></tr>\n<tr><td style=\"padding:10px;color:#98c379;\">A. Add tags field</td><td style=\"padding:10px;color:#7f848e;\">kontask-types.ts, kontask-db.ts</td><td style=\"padding:10px;\">~30 lines</td></tr>\n<tr style=\"background:#333;\"><td style=\"padding:10px;color:#98c379;\">B. Tags UI in detail view</td><td style=\"padding:10px;color:#7f848e;\">kontask-detail.ts</td><td style=\"padding:10px;\">~50 lines</td></tr>\n<tr><td style=\"padding:10px;color:#e5c07b;\">C. Session concept</td><td style=\"padding:10px;color:#7f848e;\">New session-store.ts</td><td style=\"padding:10px;\">~100 lines</td></tr>\n<tr style=\"background:#333;\"><td style=\"padding:10px;color:#e5c07b;\">D. Session switcher UI</td><td style=\"padding:10px;color:#7f848e;\">layout.ts, dashboard</td><td style=\"padding:10px;\">~80 lines</td></tr>\n<tr><td style=\"padding:10px;color:#61afef;\">E. Auto-tagging in Claude</td><td style=\"padding:10px;color:#7f848e;\">CLAUDE.md, MCP context</td><td style=\"padding:10px;\">Config only</td></tr>\n<tr style=\"background:#333;\"><td style=\"padding:10px;color:#61afef;\">F. Filter by scope/tags</td><td style=\"padding:10px;color:#7f848e;\">kontasks.ts list view</td><td style=\"padding:10px;\">~60 lines</td></tr>\n</table>\n\n<h3 style=\"color:#fff;margin:20px 0 12px 0;\">Portability to Other Projects</h3>\n\n<div style=\"background:#1a2a3a;padding:16px;border-radius:6px;border:1px solid #61afef;\">\n<p style=\"margin:0 0 8px 0;color:#61afef;\"><strong>Key principle:</strong> Sessions are project-agnostic.</p>\n<p style=\"margin:0;color:#e0e0e0;\">When you start a new vibe coding project:</p>\n<ol style=\"margin:8px 0 0 0;padding-left:20px;color:#7f848e;line-height:1.8;\">\n<li>Create new \"Product\" session with project name (e.g., \"Acme CRM\")</li>\n<li>Define project-specific tags (customers, invoices, reports...)</li>\n<li>Vibetools session stays universal - same konui, konsole, kontasks</li>\n<li>Each project gets its own konsole conversation context</li>\n</ol>\n</div>\n\n<div style=\"background:#1a3a1a;padding:12px;border-radius:6px;margin-top:20px;border:1px solid #22c55e;\">\n<p style=\"margin:0;color:#22c55e;\"><strong>Next Steps:</strong> Do you want me to start with Phase A+B (add tags field + basic UI) as a foundation, then build sessions on top? Or tackle sessions first?</p>\n</div>\n</div>",
"requestedAt": "2026-01-02T20:15:00.000Z",
"requestId": "430bc3c8-9176-41ee-97fa-5100233e7392"
},
"createdBy": "claude",
"createdAt": "2026-01-01T20:32:04.019Z",
"updatedAt": "2026-01-02T05:10:54.074Z",
"requestId": "430bc3c8-9176-41ee-97fa-5100233e7392"
}