feat: scaffold BuildPulse v0.1 cockpit
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
import type { AppState } from '../../store/types'
|
||||
|
||||
const seedDate = '2026-05-06T00:00:00+02:00'
|
||||
|
||||
export const createSeedState = (): AppState => ({
|
||||
schema_version: '0.1.0',
|
||||
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: 'First dogfood project: BuildPulse manages BuildPulse.',
|
||||
created_at: seedDate,
|
||||
updated_at: seedDate,
|
||||
},
|
||||
features: [
|
||||
{
|
||||
id: 'feature_plan_screen',
|
||||
title: 'Feature Plan screen',
|
||||
description: 'Show the active build plan in calm Now / Next / Later / Done columns.',
|
||||
column: 'now',
|
||||
priority: 'must',
|
||||
status: 'ready',
|
||||
acceptance_criteria: [
|
||||
'User can create a feature card.',
|
||||
'User can move a feature between columns.',
|
||||
'User can edit feature details without clutter.',
|
||||
],
|
||||
scope_notes: 'This is the home screen. It should answer “what now?” immediately.',
|
||||
created_at: seedDate,
|
||||
updated_at: seedDate,
|
||||
},
|
||||
{
|
||||
id: 'parking_lot_screen',
|
||||
title: 'Parking Lot screen',
|
||||
description: 'Capture useful distractions without letting them hijack the build.',
|
||||
column: 'now',
|
||||
priority: 'must',
|
||||
status: 'ready',
|
||||
acceptance_criteria: [
|
||||
'User can add parked ideas quickly.',
|
||||
'Risk and future placement are visible.',
|
||||
],
|
||||
scope_notes: 'Parking is success behavior, not failure.',
|
||||
created_at: seedDate,
|
||||
updated_at: seedDate,
|
||||
},
|
||||
{
|
||||
id: 'pulse_log_screen',
|
||||
title: 'Pulse Log screen',
|
||||
description: 'Log intent, action, results, blockers, and decisions in a future-compatible pulse shape.',
|
||||
column: 'now',
|
||||
priority: 'must',
|
||||
status: 'ready',
|
||||
acceptance_criteria: [
|
||||
'User can add manual pulse events.',
|
||||
'Pulses can link to features optionally.',
|
||||
],
|
||||
scope_notes: 'Manual in v0.1. No live agent ingestion yet.',
|
||||
created_at: seedDate,
|
||||
updated_at: seedDate,
|
||||
},
|
||||
{
|
||||
id: 'export_screen',
|
||||
title: 'Export screen',
|
||||
description: 'Generate clean JSON, JSONL, and Markdown handoff context for AI developers.',
|
||||
column: 'now',
|
||||
priority: 'must',
|
||||
status: 'ready',
|
||||
acceptance_criteria: [
|
||||
'JSON export works.',
|
||||
'Markdown export includes CLAUDE_CONTEXT.md.',
|
||||
],
|
||||
scope_notes: 'Handoff quality matters more than bells and whistles.',
|
||||
created_at: seedDate,
|
||||
updated_at: seedDate,
|
||||
},
|
||||
],
|
||||
parking_lot: [
|
||||
{
|
||||
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: 'Manual workflow must prove useful first.',
|
||||
possible_future_placement: 'v0.2',
|
||||
risk_level: 'medium',
|
||||
created_at: seedDate,
|
||||
updated_at: seedDate,
|
||||
},
|
||||
{
|
||||
id: 'parked_multi_project',
|
||||
title: 'Multi-project support',
|
||||
description: 'Track several products from one BuildPulse instance.',
|
||||
reason_parked: 'Single-project discipline is the whole point of v0.1.',
|
||||
possible_future_placement: 'v0.6+',
|
||||
risk_level: 'medium',
|
||||
created_at: seedDate,
|
||||
updated_at: seedDate,
|
||||
},
|
||||
{
|
||||
id: 'parked_openclaw_integration',
|
||||
title: 'OpenClaw / Hermes integration',
|
||||
description: 'Ingest agent events, task output, and status directly into BuildPulse.',
|
||||
reason_parked: 'Way too spicy for v0.1. Manual pulse logging first.',
|
||||
possible_future_placement: 'v1.0+',
|
||||
risk_level: 'high',
|
||||
created_at: seedDate,
|
||||
updated_at: seedDate,
|
||||
},
|
||||
],
|
||||
pulses: [
|
||||
{
|
||||
id: 'pulse_seed_001',
|
||||
timestamp: seedDate,
|
||||
project_id: 'project_buildpulse',
|
||||
feature_id: 'feature_plan_screen',
|
||||
source: 'manual',
|
||||
agent_id: 'jimmi',
|
||||
pulse_type: 'INTENT',
|
||||
message: 'Start BuildPulse as a calm single-project cockpit, not a full agent framework.',
|
||||
structured_payload: {},
|
||||
confidence_score: 0.95,
|
||||
evidence_refs: ['docs/PRODUCT_BRIEF.md', 'docs/SCOPE.md'],
|
||||
trace_id: 'session_seed',
|
||||
},
|
||||
{
|
||||
id: 'pulse_seed_002',
|
||||
timestamp: seedDate,
|
||||
project_id: 'project_buildpulse',
|
||||
source: 'manual',
|
||||
agent_id: 'jimmi',
|
||||
pulse_type: 'DECISION',
|
||||
message: 'Park AI triage, releases, and integrations until the manual workflow proves itself.',
|
||||
structured_payload: {},
|
||||
confidence_score: 0.9,
|
||||
evidence_refs: ['docs/DECISIONS.md', 'docs/PARKING_LOT.md'],
|
||||
trace_id: 'session_seed',
|
||||
},
|
||||
],
|
||||
settings: {
|
||||
theme: 'light',
|
||||
default_agent_id: 'jimmi',
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user