3.8 KiB
3.8 KiB
BuildPulse Data Schema
Schema Version
Current schema version:
0.1.0
App State
{
"schema_version": "0.1.0",
"project": {},
"features": [],
"parking_lot": [],
"pulses": [],
"settings": {}
}
Project
{
"id": "project_buildpulse",
"name": "BuildPulse",
"one_line_pitch": "A local-first planning cockpit for AI-assisted product building.",
"description": "BuildPulse helps capture features, park distracting ideas, log progress as Pulse events, and export clean context for AI coding agents.",
"current_goal": "Ship v0.1 with Feature Plan, Parking Lot, Pulse Log, and Export.",
"notes": "",
"created_at": "2026-05-06T00:00:00+02:00",
"updated_at": "2026-05-06T00:00:00+02:00"
}
Feature
{
"id": "feature_plan_screen",
"title": "Feature Plan screen",
"description": "Create and manage feature cards in Now, Next, Later, and Done.",
"column": "now",
"priority": "must",
"status": "ready",
"acceptance_criteria": [
"User can create a feature card.",
"User can edit feature title and description.",
"User can move feature between columns."
],
"scope_notes": "No phases or releases in v0.1.",
"created_at": "2026-05-06T00:00:00+02:00",
"updated_at": "2026-05-06T00:00:00+02:00"
}
Feature Columns
Allowed column values:
nownextlaterdone
Feature Priority
Allowed priority values:
mustshouldcouldlater
Feature Status
Allowed status values:
ideashapingreadybuildingtestingdoneparkedrejected
In v0.1, column is more important than status.
Parking Lot Item
{
"id": "parked_ai_triage",
"title": "AI idea triage",
"description": "Use AI to classify new ideas into Now, Next, Later, Parking Lot, or Reject.",
"reason_parked": "Useful, but v0.1 must prove the manual workflow first.",
"possible_future_placement": "v0.2",
"risk_level": "medium",
"created_at": "2026-05-06T00:00:00+02:00",
"updated_at": "2026-05-06T00:00:00+02:00"
}
Parking Lot Risk Level
Allowed risk_level values:
lowmediumhighdangerous
Pulse Event
Pulse events are append-friendly and future-compatible with Agent Pulse.
{
"id": "pulse_001",
"timestamp": "2026-05-06T00:00:00+02:00",
"project_id": "project_buildpulse",
"feature_id": "feature_plan_screen",
"source": "manual",
"agent_id": "jimmi",
"pulse_type": "INTENT",
"message": "Start implementing the Feature Plan screen.",
"structured_payload": {},
"confidence_score": 0.9,
"evidence_refs": [],
"trace_id": "session_001"
}
Pulse Types
Allowed pulse_type values:
INTENTACTIONRESULTBLOCKERDECISIONPARKED_IDEATEST_RESULTSESSION_STARTSESSION_ENDREFLECTION
Pulse Source
Suggested source values:
manualuserclaude_codecodexopencodeopenclawhermeslocal_llmsystem
v0.1 should not require strict enforcement beyond basic string handling.
Evidence Refs
Evidence refs are references to outputs, tests, commits, screenshots, files, or notes.
Simple v0.1 form:
[
"Manual test passed",
"Exported CLAUDE_CONTEXT.md",
"Commit abc123"
]
Later form may become:
[
{
"type": "file",
"label": "FEATURE_PLAN.md",
"url": ""
}
]
Settings
Minimal v0.1 settings:
{
"theme": "light",
"default_agent_id": "jimmi"
}
Validation Rules
Required project fields:
idname
Required feature fields:
idtitlecolumn
Required parking lot fields:
idtitle
Required pulse fields:
idtimestampproject_idpulse_typemessage
Export Rule
Exports should preserve IDs exactly.
Do not regenerate IDs during export/import unless resolving duplicates is required.