← Back to Kontasks
gvFlowSchema v1.1 Approved - Comprehensive Schema Coverage Verified
Output
✅ gvFlowSchema v1.1 APPROVED
Complete schema coverage verified for all core constructs
📋 Schema Approval Status
| gvDecision | v1.0 LOCKED | 13 sections, ~40 fields, 32 types |
| gvFlow | v1.1 APPROVED | 16 fields + decisionSummary |
| gvSession | v1.1 APPROVED | 12 fields + decisionSummary |
| gvTurn | v1.1 APPROVED | 11 fields + decisionCount/decisionIds |
🔗 Decision Integration Hierarchy
gvFlow ├── decisionSummary (aggregated from all sessions) │ ├── total, pending, needsAttention │ └── byCategory: {design, action, deferred} │ └── gvSession ├── decisionSummary (computed from turns) │ ├── total, pending, needsAttention │ └── byCategory: {design, action, deferred} │ └── gvTurn ├── decisionCount (number) └── decisionIds (string[] → gvdecisions.jsonl) │ └── gvDecision (FK reference) └── Full decision record
📊 Comprehensive Coverage Verification
gvTurn Coverage
| Field | Type | Purpose |
|---|---|---|
| id, sessionId, sequence | string, string, number | Identity |
| prompt | object | User input + attachments + source |
| response | object | AI output + model + finishReason |
| toolCalls | gvToolCall[] | Tool invocations with timing |
| metrics | object | Tokens, cost, duration, TTFT |
| timestamps | string | createdAt, completedAt |
| status | enum | pending|streaming|completed|failed|cancelled |
| decisionCount, decisionIds | number, string[] | Decision tracking (NEW) |
gvSession Coverage
| Field | Type | Purpose |
|---|---|---|
| id, flowId, agentId | string | Identity + relationships |
| config | object | Model, provider, system prompt, params |
| turns | gvTurn[] | Ordered conversation turns |
| context | object | Working dir, project, git, env |
| viewers | gvViewer[] | Connected browsers |
| timestamps | string | createdAt, updatedAt, lastActivityAt |
| status | enum | idle|working|stalled|completed|archived |
| metrics | object | Aggregated totals |
| decisionSummary | object | total, pending, needsAttention, byCategory (NEW) |
gvFlow Coverage
| Field | Type | Purpose |
|---|---|---|
| id, sprintId | string | Identity + parent |
| title, description, type, priority | string, enum | Metadata |
| sessions, changes, backlogItems | arrays | Work artifacts |
| assignees, teamId | string[] | Assignment |
| branch, baseBranch | string | Git integration |
| timestamps | string | created, updated, started, completed |
| status | enum | draft|active|review|blocked|completed|archived |
| metrics | object | Sessions, turns, tokens, cost, lines, files |
| labels | string[] | Tagging |
| decisionSummary | object | Aggregated from all sessions (NEW) |
gvDecision Coverage (32 Decision Types)
| Section | Fields |
|---|---|
| Identity | id (ULID), version |
| Relationships | flowId, turnId, sessionId, dependsOn, supersedes, supersededBy, relatedTo |
| Classification | category (3), type (32), scope (4), visibility (4) |
| Decision | title, description, chosen, alternatives[], rationale, constraints, assumptions |
| Decision Maker | madeBy, confidence (5 levels), uncertainty, origin (7), trigger |
| Impact & Risk | impact (level, areas[], description), risk (level, factors[], mitigations[]), reversibility |
| Affected Artifacts | files[], functions[], types[], apis[], tests[], docs[] |
| Deferred Data | question, options[], kontaskId, resolvedAt, resolvedBy, resolution |
| Timestamps | createdAt, reviewedAt, approvedAt, documentedAt |
| Documentation | adrId, changelogEntry, exportedTo[] |
| Extensibility | tags[], metadata |
✓ Session Design Features Verified
- ✓ Decision tracking at turn level (decisionCount, decisionIds)
- ✓ Decision aggregation at session level (decisionSummary)
- ✓ Decision aggregation at flow level (decisionSummary)
- ✓ Three decision categories: design, action, deferred
- ✓ 32 specific decision types across categories
- ✓ Immutable decisions with supersedes/supersededBy lineage
- ✓ Append-only storage in gvdecisions.jsonl
- ✓ FK references (not embedded) for clean separation
- ✓ Computed status from timestamps (never stored)
- ✓ needsAttention flag for review workflows
- ✓ Cross-references between gvFlowSchema.md and gvDecisionSchema.md
📝 Schema Completeness Assessment
All schemas are complete and properly integrated.
The decision tracking design discussed in this session has been fully implemented:
- gvTurn tracks individual decisions via decisionCount/decisionIds
- gvSession aggregates with decisionSummary (total, pending, needsAttention, byCategory)
- gvFlow aggregates from all sessions with identical decisionSummary structure
- gvDecision provides the complete decision record with full provenance
No gaps identified. Ready for implementation.
Quick Actions
Original Request
No layout configured
Details
Type
Data Approval
Status
Completed
Scope
vibetools
Tags
gvshellgvhubschemadecisionsflowssessionsturnsapproved
Created
9 Jan 2026, 2:32 pm
Updated
9 Jan 2026, 2:32 pm
Created By
claude
Raw Data
{
"id": "c675e238-d0fa-49d2-87d7-f89a1004d4b6",
"type": "data_approval",
"status": "completed",
"title": "gvFlowSchema v1.1 Approved - Comprehensive Schema Coverage Verified",
"context": {
"output": "<div style=\"background:#1e1e1e;color:#e0e0e0;padding:24px;border-radius:8px;font-family:'Consolas','Monaco',monospace;\">\n<h2 style=\"font-family:sans-serif;color:#fff;margin:0 0 8px 0;\">✅ gvFlowSchema v1.1 APPROVED</h2>\n<p style=\"color:#7f848e;margin:0 0 20px 0;\">Complete schema coverage verified for all core constructs</p>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:20px;\">\n<h3 style=\"color:#98c379;margin:0 0 12px 0;\">📋 Schema Approval Status</h3>\n<table style=\"width:100%;border-collapse:collapse;\">\n<tr style=\"border-bottom:1px solid #3d3d3d;\">\n<td style=\"padding:8px;color:#e5c07b;font-weight:bold;\">gvDecision</td>\n<td style=\"padding:8px;\"><span style=\"background:#22c55e;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;\">v1.0 LOCKED</span></td>\n<td style=\"padding:8px;color:#7f848e;\">13 sections, ~40 fields, 32 types</td>\n</tr>\n<tr style=\"border-bottom:1px solid #3d3d3d;\">\n<td style=\"padding:8px;color:#e5c07b;font-weight:bold;\">gvFlow</td>\n<td style=\"padding:8px;\"><span style=\"background:#22c55e;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;\">v1.1 APPROVED</span></td>\n<td style=\"padding:8px;color:#7f848e;\">16 fields + decisionSummary</td>\n</tr>\n<tr style=\"border-bottom:1px solid #3d3d3d;\">\n<td style=\"padding:8px;color:#e5c07b;font-weight:bold;\">gvSession</td>\n<td style=\"padding:8px;\"><span style=\"background:#22c55e;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;\">v1.1 APPROVED</span></td>\n<td style=\"padding:8px;color:#7f848e;\">12 fields + decisionSummary</td>\n</tr>\n<tr>\n<td style=\"padding:8px;color:#e5c07b;font-weight:bold;\">gvTurn</td>\n<td style=\"padding:8px;\"><span style=\"background:#22c55e;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;\">v1.1 APPROVED</span></td>\n<td style=\"padding:8px;color:#7f848e;\">11 fields + decisionCount/decisionIds</td>\n</tr>\n</table>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:20px;\">\n<h3 style=\"color:#61afef;margin:0 0 12px 0;\">🔗 Decision Integration Hierarchy</h3>\n<pre style=\"background:#1e1e1e;padding:12px;border-radius:4px;margin:0;line-height:1.8;\">\n<span style=\"color:#c678dd;\">gvFlow</span>\n ├── <span style=\"color:#e5c07b;\">decisionSummary</span> <span style=\"color:#7f848e;\">(aggregated from all sessions)</span>\n │ ├── total, pending, needsAttention\n │ └── byCategory: {design, action, deferred}\n │\n └── <span style=\"color:#c678dd;\">gvSession</span>\n ├── <span style=\"color:#e5c07b;\">decisionSummary</span> <span style=\"color:#7f848e;\">(computed from turns)</span>\n │ ├── total, pending, needsAttention\n │ └── byCategory: {design, action, deferred}\n │\n └── <span style=\"color:#c678dd;\">gvTurn</span>\n ├── <span style=\"color:#e5c07b;\">decisionCount</span> <span style=\"color:#7f848e;\">(number)</span>\n └── <span style=\"color:#e5c07b;\">decisionIds</span> <span style=\"color:#7f848e;\">(string[] → gvdecisions.jsonl)</span>\n │\n └── <span style=\"color:#c678dd;\">gvDecision</span> <span style=\"color:#7f848e;\">(FK reference)</span>\n └── Full decision record\n</pre>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:20px;\">\n<h3 style=\"color:#56b6c2;margin:0 0 12px 0;\">📊 Comprehensive Coverage Verification</h3>\n\n<h4 style=\"color:#e5c07b;margin:12px 0 8px 0;\">gvTurn Coverage</h4>\n<table style=\"width:100%;border-collapse:collapse;font-size:13px;\">\n<tr style=\"background:#3d3d3d;\"><th style=\"padding:6px;text-align:left;color:#fff;\">Field</th><th style=\"padding:6px;text-align:left;color:#fff;\">Type</th><th style=\"padding:6px;text-align:left;color:#fff;\">Purpose</th></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">id, sessionId, sequence</td><td style=\"padding:4px;\">string, string, number</td><td style=\"padding:4px;color:#7f848e;\">Identity</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">prompt</td><td style=\"padding:4px;\">object</td><td style=\"padding:4px;color:#7f848e;\">User input + attachments + source</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">response</td><td style=\"padding:4px;\">object</td><td style=\"padding:4px;color:#7f848e;\">AI output + model + finishReason</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">toolCalls</td><td style=\"padding:4px;\">gvToolCall[]</td><td style=\"padding:4px;color:#7f848e;\">Tool invocations with timing</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">metrics</td><td style=\"padding:4px;\">object</td><td style=\"padding:4px;color:#7f848e;\">Tokens, cost, duration, TTFT</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">timestamps</td><td style=\"padding:4px;\">string</td><td style=\"padding:4px;color:#7f848e;\">createdAt, completedAt</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">status</td><td style=\"padding:4px;\">enum</td><td style=\"padding:4px;color:#7f848e;\">pending|streaming|completed|failed|cancelled</td></tr>\n<tr style=\"background:#1a3a1a;\"><td style=\"padding:4px;color:#22c55e;\">decisionCount, decisionIds</td><td style=\"padding:4px;color:#22c55e;\">number, string[]</td><td style=\"padding:4px;color:#22c55e;\">Decision tracking (NEW)</td></tr>\n</table>\n\n<h4 style=\"color:#e5c07b;margin:16px 0 8px 0;\">gvSession Coverage</h4>\n<table style=\"width:100%;border-collapse:collapse;font-size:13px;\">\n<tr style=\"background:#3d3d3d;\"><th style=\"padding:6px;text-align:left;color:#fff;\">Field</th><th style=\"padding:6px;text-align:left;color:#fff;\">Type</th><th style=\"padding:6px;text-align:left;color:#fff;\">Purpose</th></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">id, flowId, agentId</td><td style=\"padding:4px;\">string</td><td style=\"padding:4px;color:#7f848e;\">Identity + relationships</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">config</td><td style=\"padding:4px;\">object</td><td style=\"padding:4px;color:#7f848e;\">Model, provider, system prompt, params</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">turns</td><td style=\"padding:4px;\">gvTurn[]</td><td style=\"padding:4px;color:#7f848e;\">Ordered conversation turns</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">context</td><td style=\"padding:4px;\">object</td><td style=\"padding:4px;color:#7f848e;\">Working dir, project, git, env</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">viewers</td><td style=\"padding:4px;\">gvViewer[]</td><td style=\"padding:4px;color:#7f848e;\">Connected browsers</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">timestamps</td><td style=\"padding:4px;\">string</td><td style=\"padding:4px;color:#7f848e;\">createdAt, updatedAt, lastActivityAt</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">status</td><td style=\"padding:4px;\">enum</td><td style=\"padding:4px;color:#7f848e;\">idle|working|stalled|completed|archived</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">metrics</td><td style=\"padding:4px;\">object</td><td style=\"padding:4px;color:#7f848e;\">Aggregated totals</td></tr>\n<tr style=\"background:#1a3a1a;\"><td style=\"padding:4px;color:#22c55e;\">decisionSummary</td><td style=\"padding:4px;color:#22c55e;\">object</td><td style=\"padding:4px;color:#22c55e;\">total, pending, needsAttention, byCategory (NEW)</td></tr>\n</table>\n\n<h4 style=\"color:#e5c07b;margin:16px 0 8px 0;\">gvFlow Coverage</h4>\n<table style=\"width:100%;border-collapse:collapse;font-size:13px;\">\n<tr style=\"background:#3d3d3d;\"><th style=\"padding:6px;text-align:left;color:#fff;\">Field</th><th style=\"padding:6px;text-align:left;color:#fff;\">Type</th><th style=\"padding:6px;text-align:left;color:#fff;\">Purpose</th></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">id, sprintId</td><td style=\"padding:4px;\">string</td><td style=\"padding:4px;color:#7f848e;\">Identity + parent</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">title, description, type, priority</td><td style=\"padding:4px;\">string, enum</td><td style=\"padding:4px;color:#7f848e;\">Metadata</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">sessions, changes, backlogItems</td><td style=\"padding:4px;\">arrays</td><td style=\"padding:4px;color:#7f848e;\">Work artifacts</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">assignees, teamId</td><td style=\"padding:4px;\">string[]</td><td style=\"padding:4px;color:#7f848e;\">Assignment</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">branch, baseBranch</td><td style=\"padding:4px;\">string</td><td style=\"padding:4px;color:#7f848e;\">Git integration</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">timestamps</td><td style=\"padding:4px;\">string</td><td style=\"padding:4px;color:#7f848e;\">created, updated, started, completed</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">status</td><td style=\"padding:4px;\">enum</td><td style=\"padding:4px;color:#7f848e;\">draft|active|review|blocked|completed|archived</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">metrics</td><td style=\"padding:4px;\">object</td><td style=\"padding:4px;color:#7f848e;\">Sessions, turns, tokens, cost, lines, files</td></tr>\n<tr><td style=\"padding:4px;color:#98c379;\">labels</td><td style=\"padding:4px;\">string[]</td><td style=\"padding:4px;color:#7f848e;\">Tagging</td></tr>\n<tr style=\"background:#1a3a1a;\"><td style=\"padding:4px;color:#22c55e;\">decisionSummary</td><td style=\"padding:4px;color:#22c55e;\">object</td><td style=\"padding:4px;color:#22c55e;\">Aggregated from all sessions (NEW)</td></tr>\n</table>\n\n<h4 style=\"color:#e5c07b;margin:16px 0 8px 0;\">gvDecision Coverage (32 Decision Types)</h4>\n<table style=\"width:100%;border-collapse:collapse;font-size:13px;\">\n<tr style=\"background:#3d3d3d;\"><th style=\"padding:6px;text-align:left;color:#fff;\">Section</th><th style=\"padding:6px;text-align:left;color:#fff;\">Fields</th></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Identity</td><td style=\"padding:4px;\">id (ULID), version</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Relationships</td><td style=\"padding:4px;\">flowId, turnId, sessionId, dependsOn, supersedes, supersededBy, relatedTo</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Classification</td><td style=\"padding:4px;\">category (3), type (32), scope (4), visibility (4)</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Decision</td><td style=\"padding:4px;\">title, description, chosen, alternatives[], rationale, constraints, assumptions</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Decision Maker</td><td style=\"padding:4px;\">madeBy, confidence (5 levels), uncertainty, origin (7), trigger</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Impact & Risk</td><td style=\"padding:4px;\">impact (level, areas[], description), risk (level, factors[], mitigations[]), reversibility</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Affected Artifacts</td><td style=\"padding:4px;\">files[], functions[], types[], apis[], tests[], docs[]</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Deferred Data</td><td style=\"padding:4px;\">question, options[], kontaskId, resolvedAt, resolvedBy, resolution</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Timestamps</td><td style=\"padding:4px;\">createdAt, reviewedAt, approvedAt, documentedAt</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Documentation</td><td style=\"padding:4px;\">adrId, changelogEntry, exportedTo[]</td></tr>\n<tr><td style=\"padding:4px;color:#c678dd;\">Extensibility</td><td style=\"padding:4px;\">tags[], metadata</td></tr>\n</table>\n</div>\n\n<div style=\"background:#2d2d2d;padding:16px;border-radius:6px;margin-bottom:20px;\">\n<h3 style=\"color:#c678dd;margin:0 0 12px 0;\">✓ Session Design Features Verified</h3>\n<ul style=\"margin:0;padding-left:20px;line-height:2;\">\n<li><span style=\"color:#22c55e;\">✓</span> Decision tracking at turn level (decisionCount, decisionIds)</li>\n<li><span style=\"color:#22c55e;\">✓</span> Decision aggregation at session level (decisionSummary)</li>\n<li><span style=\"color:#22c55e;\">✓</span> Decision aggregation at flow level (decisionSummary)</li>\n<li><span style=\"color:#22c55e;\">✓</span> Three decision categories: design, action, deferred</li>\n<li><span style=\"color:#22c55e;\">✓</span> 32 specific decision types across categories</li>\n<li><span style=\"color:#22c55e;\">✓</span> Immutable decisions with supersedes/supersededBy lineage</li>\n<li><span style=\"color:#22c55e;\">✓</span> Append-only storage in gvdecisions.jsonl</li>\n<li><span style=\"color:#22c55e;\">✓</span> FK references (not embedded) for clean separation</li>\n<li><span style=\"color:#22c55e;\">✓</span> Computed status from timestamps (never stored)</li>\n<li><span style=\"color:#22c55e;\">✓</span> needsAttention flag for review workflows</li>\n<li><span style=\"color:#22c55e;\">✓</span> Cross-references between gvFlowSchema.md and gvDecisionSchema.md</li>\n</ul>\n</div>\n\n<div style=\"background:#0d3320;padding:16px;border-radius:6px;border-left:4px solid #22c55e;\">\n<h3 style=\"color:#22c55e;margin:0 0 8px 0;\">📝 Schema Completeness Assessment</h3>\n<p style=\"margin:0;line-height:1.6;\">\n<strong style=\"color:#fff;\">All schemas are complete and properly integrated.</strong><br><br>\nThe decision tracking design discussed in this session has been fully implemented:\n<ul style=\"margin:8px 0 0 0;padding-left:20px;\">\n<li>gvTurn tracks individual decisions via decisionCount/decisionIds</li>\n<li>gvSession aggregates with decisionSummary (total, pending, needsAttention, byCategory)</li>\n<li>gvFlow aggregates from all sessions with identical decisionSummary structure</li>\n<li>gvDecision provides the complete decision record with full provenance</li>\n</ul>\n<br>\nNo gaps identified. Ready for implementation.\n</p>\n</div>\n</div>",
"choices": [
{
"label": "Start implementation",
"value": "Start implementing gvShell with these approved schemas",
"primary": true
},
{
"label": "View gvBUILD.md",
"value": "Show me the current gvBUILD.md build plan"
},
{
"label": "Create commit",
"value": "Commit any pending changes"
}
]
},
"createdBy": "claude",
"createdAt": "2026-01-09T04:32:44.919Z",
"updatedAt": "2026-01-09T04:32:45.294Z",
"scope": "vibetools",
"tags": [
"gvshell",
"gvhub",
"schema",
"decisions",
"flows",
"sessions",
"turns",
"approved"
],
"targetUser": "claude"
}