Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
333 commits
Select commit Hold shift + click to select a range
f9415b3
Fix inline editable field styling
jahala Feb 1, 2026
18df835
Add flow documentation for schema features
jahala Feb 1, 2026
7a63cac
Fix channel ID format mismatch in QA broadcast
jahala Feb 1, 2026
57f73d4
Use full UUIDs for plan channel IDs and fix test seeding
jahala Feb 1, 2026
181623a
Fix all frontend test failures
jahala Feb 1, 2026
92b2ea3
Add ideation-package epic with freeform schema architecture
jahala Feb 1, 2026
d9bf9c0
Add ideation domain types and understanding schemas
claude Feb 1, 2026
7e80130
Complete ideation domain model with freeform understanding
claude Feb 1, 2026
dc950f6
Complete ideation storage layer with SQLite implementation
claude Feb 1, 2026
3499654
Complete ideation API layer with Express handlers
claude Feb 1, 2026
24a445f
Add Interviewer module for ideation-lead feature
claude Feb 1, 2026
fbd346a
Add Specialists module for dynamic specialist agents
claude Feb 1, 2026
ecf6619
Add planner handoff integration for ideation package
claude Feb 1, 2026
0a41b91
Fix audit findings: API route, RelayClient integration, subsequent sends
jahala Feb 1, 2026
dd73ee1
Add frontend task definitions for ideation-ui features
jahala Feb 1, 2026
4ba9da7
Add implementation agent prompt for ideation-ui
jahala Feb 1, 2026
eb0e45a
Add ideation-ui package with complete React frontend
claude Feb 1, 2026
acee301
Add understanding, context, and specification domain schemas
jahala Feb 1, 2026
77565fe
Add backend API for understanding, context, and specification
jahala Feb 1, 2026
84ac19a
Update MCP tools for new schema fields
jahala Feb 1, 2026
e07396c
Refactor to symmetric plugin architecture
jahala Feb 1, 2026
ec23722
Update planner-lead prompts and tools for new schema fields
jahala Feb 1, 2026
d9d5889
Add frontend types, API client, and role icons for schema features
jahala Feb 1, 2026
5de6db0
Add UI components for understanding, context, and specification tabs
jahala Feb 1, 2026
22db2db
Integrate schema tabs into PlanEditorPage
jahala Feb 1, 2026
5bd0eb8
Add schema migration scripts
jahala Feb 1, 2026
0135850
Update flow documentation for schema features
jahala Feb 1, 2026
3c6f2fc
Merge jahala/initial-planner into ideation-package
jahala Feb 1, 2026
1bb2101
Update root config for monorepo structure
jahala Feb 1, 2026
d54c89e
Add trajectory service test for planner package
jahala Feb 1, 2026
f8f4862
Restore missing files from initial-planner merge
jahala Feb 1, 2026
95aae6a
Add schema domain test files
jahala Feb 1, 2026
35aae2d
Add standalone question and MCP tool tests
jahala Feb 1, 2026
3c75700
Merge pull request #6 from jahala/jahala/ideation-package
jahala Feb 1, 2026
c4ffdd5
Add orchestrator design features and enhance flow skills
jahala Feb 2, 2026
18a6927
Add Forge overview documentation
jahala Feb 3, 2026
074cb18
Fix confidence system and remove error-hiding mocks
jahala Feb 3, 2026
85e5414
Add session tabs and fix confidence type mismatches
jahala Feb 3, 2026
57952bf
Add relay middleware and ideation bridge
jahala Feb 3, 2026
5ba6b8a
Consolidate planner API routes and update UI config
jahala Feb 3, 2026
501f8b8
Update flow feature documentation
jahala Feb 3, 2026
39822c2
Update dependencies and add validation script
jahala Feb 3, 2026
a5e6032
Merge jahala/orchestrator-design: add Forge orchestrator features
jahala Feb 3, 2026
4ce0d25
Fix invalid JSON in ideation-documents.json
jahala Feb 3, 2026
1e3f1fb
forge implementation
khaliqgant Feb 3, 2026
5f569e5
Add ideation-canvas-v2 feature with physics-based UX design
jahala Feb 3, 2026
644ed3b
Remove phases and gates from ideation-canvas-v2 implementation plan
jahala Feb 3, 2026
8639bd7
Handle null understanding_json in sqlite storage
jahala Feb 3, 2026
0aad6c1
Migrate flow plans into ideation/planner/forge initiatives
jahala Feb 3, 2026
ad9c95d
audit results
khaliqgant Feb 4, 2026
cc3dfb8
Add ideation canvas v3 design notes
jahala Feb 4, 2026
32a5f14
Merge khaliq/orchestrator-task into jahala/initial-planner
jahala Feb 4, 2026
f0af9a1
Add shared-ui package with reusable components
jahala Feb 4, 2026
7037ada
Add extracted components to shared-ui
jahala Feb 4, 2026
3572d9a
Fix shared-ui components for cross-app reusability
jahala Feb 4, 2026
eb2f582
Add Mission Control design system to shared-ui
jahala Feb 4, 2026
e21aaf1
Add shadcn/ui compatibility layer to design system
jahala Feb 4, 2026
c9b9821
feat(ideation): add Block domain model with v3-prep fields
jahala Feb 4, 2026
048e915
feat(ideation): add Block CRUD API endpoints and storage
jahala Feb 4, 2026
f7721d1
feat(ideation): add block creation tools for specialists
jahala Feb 4, 2026
2173d3e
chore(ideation): update TypeScript build info
jahala Feb 4, 2026
5259a69
feat(ideation-ui): add matter.js physics engine hook
jahala Feb 4, 2026
63e67fa
feat(ideation-ui): add physics-based canvas components
jahala Feb 4, 2026
098bcf6
feat(ideation-ui): add session dashboard with Navigator chat
jahala Feb 4, 2026
0204b0e
feat(ideation-ui): add CommandPalette and Toast components
jahala Feb 4, 2026
27c7b51
feat(ideation-ui): add hooks for blocks, commands, and settings
jahala Feb 4, 2026
d2adbda
feat(ideation-ui): add CanvasPage and DashboardPage routes
jahala Feb 4, 2026
bdc2344
feat(ideation-ui): update chat components for canvas integration
jahala Feb 4, 2026
0060625
chore(ideation-ui): add matter-js dependency and update styles
jahala Feb 4, 2026
6220a6e
feat(shared-ui): add StatusBar component for agent status
jahala Feb 4, 2026
5af0d38
docs: add ideation canvas v2 feature spec and implementation notes
jahala Feb 4, 2026
4ce6d65
feat(ideation): remove mock mode and clean up interviewer service
jahala Feb 5, 2026
9d95202
feat(ideation): add specialist spawning and Navigator service
jahala Feb 5, 2026
91052ff
feat(ideation-ui): fix canvas components, routes, and wire Navigator …
jahala Feb 5, 2026
faafb73
feat(ideation-ui): add typography plugin and polish canvas UI
jahala Feb 5, 2026
75b59c1
Add tuner package for adaptive learning loop
jahala Feb 5, 2026
c61b4c2
Add testbench package for end-to-end scenario testing
jahala Feb 5, 2026
7331317
Extend forge-core with DOT framework and test executor
jahala Feb 5, 2026
eb70682
Extend planner with DOT enrichment and complexity estimation
jahala Feb 5, 2026
3238d93
Wire forge into server and update dev infrastructure
jahala Feb 5, 2026
8a01843
Add architecture docs, flow features, and research references
jahala Feb 5, 2026
6c24ae6
Merge jahala/ideation-package into jahala/initial-planner
jahala Feb 5, 2026
ce93977
feat(messaging): align data model and extract shared messaging compon…
jahala Feb 5, 2026
b3982bf
feat(forge): integrate forge service into server and dev tooling
jahala Feb 5, 2026
eed7925
Merge pull request #7 from jahala/jahala/initial-planner
jahala Feb 5, 2026
3ff0023
chore(forge-ui): add postcss config for Tailwind CSS v4
jahala Feb 5, 2026
244a26a
Merge remote-tracking branch 'origin/master' into jahala/initial-planner
jahala Feb 5, 2026
dd763fc
Wire RunService as real orchestrator + tuner source isolation
jahala Feb 5, 2026
c9445ea
Merge remote-tracking branch 'origin/master' into jahala/initial-plan…
jahala Feb 5, 2026
6544764
fix(ideation-ui): fix HandoffDialog visibility, block styling, and he…
jahala Feb 5, 2026
8d84724
feat(ideation-ui): add CSS Grid layout and refactor canvas components
jahala Feb 5, 2026
43063da
feat(ideation-ui): wire grid layout into CanvasPage and SessionDashboard
jahala Feb 5, 2026
20eae2b
Merge pull request #8 from jahala/jahala/ideation-package
jahala Feb 5, 2026
24740a3
chore(docs): clean up loose docs and gitignore non-tracked folders
jahala Feb 5, 2026
751aff9
Merge pull request #9 from jahala/jahala/initial-planner
jahala Feb 5, 2026
82bef93
chore: gitignore .windsurf and screenshots, add flow implementation docs
jahala Feb 5, 2026
02922ce
Merge pull request #10 from jahala/jahala/initial-planner
jahala Feb 5, 2026
8134f6c
Merge remote-tracking branch 'origin/master' into jahala/initial-plan…
jahala Feb 5, 2026
f63d0eb
feat(forge): wire real orchestrator with agent spawning via relay
jahala Feb 5, 2026
ebe772e
feat(testbench): wire E2E scenario runner with real planner and forge…
jahala Feb 5, 2026
21a42e9
feat(testbench): add AI-planned scenario mode
jahala Feb 5, 2026
f32b7e9
chore: add flow feature specs and package lock files
jahala Feb 5, 2026
3aa3d99
Merge pull request #11 from jahala/jahala/initial-planner-v1
jahala Feb 5, 2026
fc548c3
feat(tuner): add ideation domain types
jahala Feb 5, 2026
005c38f
feat(tuner): add ideation storage layer
jahala Feb 5, 2026
3ce1f86
feat(tuner): add ideation API endpoints
jahala Feb 5, 2026
eb7a5b5
feat(tuner): add ideation learning services
jahala Feb 5, 2026
d52d9d1
feat(tuner): add IdeationIntegration helper
jahala Feb 5, 2026
f67199c
feat(ideation): integrate with Tuner for config and outcome emission
jahala Feb 5, 2026
3ab58d7
feat(planner): emit PlanQualitySignal on approval of ideation-sourced…
jahala Feb 5, 2026
ea002b0
docs: add tuner-ideation integration plan and feature spec
jahala Feb 5, 2026
1aadda2
fix(planner): update test imports for storage module split
jahala Feb 5, 2026
da0d480
test(server): relocate chat API tests to match route location
jahala Feb 5, 2026
201e178
fix(planner-ui): correct test assertions for component behavior
jahala Feb 5, 2026
b2841b6
fix(ideation): add ANTHROPIC_API_KEY mock to interviewer tests
jahala Feb 5, 2026
f0bae1f
chore: rename frontend to planner in dev.sh
jahala Feb 5, 2026
b5372c5
chore(planner): add vitest config for workspace testing
jahala Feb 5, 2026
982c664
feat: add @plannr/errors package
jahala Feb 5, 2026
5e6fb5d
feat: add @plannr/storage-base package
jahala Feb 5, 2026
df49952
refactor(planner): split storage into focused modules
jahala Feb 5, 2026
c398b46
refactor(forge-core): split storage into focused modules
jahala Feb 5, 2026
c9a161c
refactor(planner): split MCP tools into focused modules
jahala Feb 5, 2026
a62f57b
refactor(server): split planner-lead-tools into focused modules
jahala Feb 5, 2026
ad3cd97
refactor(planner-ui): split oversized components
jahala Feb 5, 2026
488dc34
feat(server): add capabilities endpoint and request timeout
jahala Feb 5, 2026
da27ceb
refactor: deduplicate Tailwind configuration
jahala Feb 5, 2026
5c51c64
refactor: unify TypeScript configuration
jahala Feb 5, 2026
d950eb9
chore: update package dependencies and vite configs
jahala Feb 5, 2026
273c8e1
feat(testbench): improve scenario runner and metrics
jahala Feb 5, 2026
b8d0022
fix(ideation,forge-core): update imports and error handling
jahala Feb 5, 2026
726f04e
fix(planner-ui,planner): misc updates and cleanup
jahala Feb 5, 2026
59d286d
fix(tuner): update model-selector imports
jahala Feb 5, 2026
c885a8e
chore: add ESLint and Prettier configuration
jahala Feb 5, 2026
6525fb4
docs: add refactoring documentation and flow features
jahala Feb 5, 2026
c6c2eb4
fix(shared-ui): fix TypeScript strict null checks
jahala Feb 5, 2026
127208a
fix(esm): resolve ESM compatibility issues across monorepo
jahala Feb 5, 2026
ec5e374
fix(ideation): resolve TypeScript strict null check errors
jahala Feb 5, 2026
867b36c
Merge pull request #12 from jahala/jahala/initial-planner
jahala Feb 5, 2026
96f201e
feat(ideation): add physics animations and shared PhysicsBlockBase
jahala Feb 5, 2026
21e0e90
feat: add tuner/testbench initiatives, materialize inline sub-feature…
jahala Feb 5, 2026
3183184
docs: update .claude/rules for current monorepo architecture
jahala Feb 5, 2026
35f009e
Merge pull request #13 from jahala/jahala/initial-planner
jahala Feb 6, 2026
57e70f4
docs: update README for current monorepo architecture
jahala Feb 6, 2026
82b5e47
docs: add README.md for each package in monorepo
jahala Feb 6, 2026
db89739
docs: add tend planning artifacts and flow feature files
jahala Feb 6, 2026
7a08e6e
feat(tend): scaffold packages/tend from ideation-ui fork
jahala Feb 7, 2026
b319ee5
feat(tend): replace Mission Control palette with earth-tone theming
jahala Feb 7, 2026
750da1c
feat(planner): add projects table, storage, schemas, and API routes
jahala Feb 7, 2026
a2919c1
feat(tend): add useProjectEvents hook, ProjectContext, server log upd…
jahala Feb 7, 2026
defe0e4
feat(tend): add ProjectTree, conversation rename, StatusBar, and agen…
jahala Feb 7, 2026
7fc82b4
feat(tend): add tree sub-components, ContextMarker, RelayProvider, Co…
jahala Feb 7, 2026
1a0ae6d
feat(tend): wire ProjectTree to context, fix hooks ordering, add rema…
jahala Feb 7, 2026
43dbe8a
feat(tend): add settings, sheets, and graduation bridge
jahala Feb 7, 2026
61adc45
feat(tend): add MultipleChoiceInput, AgentTabs, and ReplyBar
jahala Feb 7, 2026
aa7d5f8
feat(tend): add dashboard with project list, creation, and phase badges
jahala Feb 7, 2026
8f576a7
feat(tend): add unified interviewer, polish animations, and error states
jahala Feb 7, 2026
4d59945
fix(tend): resolve audit critical findings, add Playwright test setup
jahala Feb 7, 2026
4ca89cb
refactor(tend): replace any types with Record<string, unknown>, fix h…
jahala Feb 7, 2026
47e3878
test(tend): rewrite Playwright tests to match actual DOM, remove @pla…
jahala Feb 7, 2026
131161d
refactor(tend): consolidate duplicates, extract utilities, add barrel…
jahala Feb 7, 2026
2a86057
refactor(tend): consolidate App.tsx routing, render CommandPalette once
jahala Feb 7, 2026
c55abdf
chore(tend): remove unused imports (TendLayout, uncurateBlock)
jahala Feb 7, 2026
8f40cd9
feat: tend unified workspace, ideation graduation pipeline, forge/tun…
jahala Feb 8, 2026
5f91b7e
Merge remote-tracking branch 'origin/master' into tend/build
jahala Feb 8, 2026
21734ef
feat: version picker, agent DM routing, domain expert tools, conversa…
jahala Feb 8, 2026
840bd2b
fix: remove force-added docs file from git tracking
jahala Feb 8, 2026
7e06137
feat: relay-first architecture, altitude-aware facilitator, chat cont…
jahala Feb 9, 2026
00599bd
[forge:b1c86c7b-ec3b-41d2-8ae5-841d410b4d90] Create ForgeDbAdapter cl…
jahala Feb 11, 2026
f2f30ae
[forge:50d9b630-93b3-4f76-a4e2-50d92de465c1] Implement ForgeDbAdapter…
jahala Feb 12, 2026
3c9df55
[forge:764fe361-25cd-420b-97e3-9f5400bfd2bf] Implement TrajectoryAdap…
jahala Feb 12, 2026
7833be7
[forge:41f147ec-0e4c-43ba-9b26-781240a6b235] Implement event-driven r…
jahala Feb 12, 2026
8910fb8
[forge:c0de9901-4ec4-4cb0-8465-eb55e72a1c12] Implement RelayDaemonAda…
jahala Feb 12, 2026
1115bbc
[forge:4beb8621-6daa-478a-bfac-3c4e09989a8d] Implement mull server pl…
jahala Feb 12, 2026
e096345
feat(forge): build system, gate agents, zombie cleanup, task ordering
jahala Feb 12, 2026
67af48e
feat(planner): versioning, hierarchy, limits enforcer, storage updates
jahala Feb 12, 2026
5a943a5
feat(mull): knowledge extraction pipeline package
jahala Feb 12, 2026
1b8af3f
feat: planner-ui plan editor, server forge spawner, ideation tools
jahala Feb 12, 2026
5037808
chore: flow feature docs, migration scripts, root configs, gitignore
jahala Feb 12, 2026
1da37df
[forge:2bc18b04-e0e7-428b-92e9-4d8517d84aaf] Implement answer flow wi…
jahala Feb 12, 2026
dba67ec
[forge:67a4790e-7bb7-460f-b1d9-7ce1c67e081b] Verify Question entity s…
jahala Feb 12, 2026
880806f
[forge:111e148e-273f-408b-af4d-e8c8d9e3fb8f] Verify questions table s…
jahala Feb 12, 2026
7350b2f
[forge:111e148e-273f-408b-af4d-e8c8d9e3fb8f] Auto-commit: agent compl…
jahala Feb 12, 2026
17ef662
[forge:84abdf1b-a9a8-49d5-b6d1-ddc4497d5fc2] Implement trajectory-awa…
jahala Feb 12, 2026
fac5bcb
fix(forge): harden git isolation — worktree guards, targeted staging,…
jahala Feb 12, 2026
970e178
[forge:eb2d5c70-aa5b-4716-974c-254e614c2422] Verify Question entity s…
jahala Feb 12, 2026
fba9dab
fix(relay): harden agent spawning — reconnect attempts, pre-spawn cle…
jahala Feb 12, 2026
c4f5d53
fix(relay): lazy channel joining — register without flooding daemon
jahala Feb 12, 2026
299fcff
fix(forge): transitive cascading failure, gate timeouts, agent deregi…
jahala Feb 13, 2026
1267924
feat(mull): recover CLI implementation from orphaned forge worktree
jahala Feb 13, 2026
f9138ef
fix(forge): merge worktree commits back to branch on run completion
jahala Feb 13, 2026
47164a1
feat(mull): build full extraction pipeline with NLP, LLM synthesis, a…
jahala Feb 13, 2026
7ea1dc8
docs: add cultivate forge & planner operations guide
jahala Feb 13, 2026
a735791
[forge:3fcfced6-c68c-4352-baee-406d0251d122] Add @plannr/cultivate as…
jahala Feb 13, 2026
7fbc600
refactor(forge): restore relay spawning, extract prompts, add commit-…
jahala Feb 13, 2026
7a39c8c
[forge:2449ff90-d326-4803-9236-e1e31304598d] Implement startCultivate…
jahala Feb 13, 2026
875639a
[forge:87c45676-77f8-4e0a-9db0-97560e760284] Implement createCultivat…
jahala Feb 13, 2026
76850b4
[forge:d815e622-2404-475e-9db1-93aa65898a80] Add TUNER_UNAVAILABLE er…
jahala Feb 13, 2026
b8edced
[forge:2e4f5147-2a96-4664-92ca-b95bb6f4acff] Implement graceful shutd…
jahala Feb 13, 2026
88aedc8
[forge:d8fe47a6-c435-4b98-a1ab-6e7b3302f176] Add diagnostics object a…
jahala Feb 13, 2026
30f5d7c
[forge:6ea5f85d-6e99-447f-82bb-882fb150c2cb] Add env var configuratio…
jahala Feb 13, 2026
3128572
[forge:bed303f0-5615-47ec-8069-66b9782e1987] Add operation and cause …
jahala Feb 13, 2026
12fb0c8
[forge:8624ade7-8804-479b-8c99-c06f2c8f263a] Refactor SignalFilteredE…
jahala Feb 13, 2026
cfc91e8
[forge:675c0eae-7f1f-4567-b2db-8bc926d063a9] Import and initialize cu…
jahala Feb 13, 2026
d743f60
[forge:abf7b3b5-b1d8-445d-8b46-b384ffeb4022] Define core enums and pr…
jahala Feb 13, 2026
c24de88
[forge:42d53090-90be-4afd-840a-b2062a2c5327] Define Signal, Greenhous…
jahala Feb 13, 2026
7514290
[forge:c81e36f8-e575-4251-9cb8-5e5383bae274] Add CultivateWeights, Cu…
jahala Feb 13, 2026
2ec53f9
[forge:c9088370-475f-4b01-b6d6-dd66200c3cc8] Define pipeline types (R…
jahala Feb 13, 2026
7aca345
[forge:056869c0-697e-47ba-b026-139b7653fb36] Integrate cultivate shut…
jahala Feb 13, 2026
ba27db1
[forge:6a429e30-b11c-44bc-b4e8-3ddb58ecbf40] Define SourceConfig, Aut…
jahala Feb 13, 2026
ac8c949
[forge:5d76d1c6-e630-4297-a146-9fb2c4893b06] Configure TypeScript ref…
jahala Feb 13, 2026
8236ba5
[forge:0f3388c8-bb0f-41ed-8ee6-820f27ee7fab] Add Redis availability c…
jahala Feb 13, 2026
ff89f58
[forge:9a4c4688-a2cb-450e-a303-3b8a7ab90aa8] Verified core enums and …
jahala Feb 13, 2026
45b9192
[forge:dada5a1a-7fec-41b6-a02a-f93a365089d1] Define Signal, Greenhous…
jahala Feb 13, 2026
de68353
Recover auckland standalone work: 80 forge task commits
jahala Feb 14, 2026
a39a943
Add cultivate scoring package, cluster creation, and ML foundations
jahala Feb 14, 2026
56459d7
Add execution policy persistence and master-run parallelism detection
jahala Feb 14, 2026
7cbfd01
Fix relay spawn timeout: pass as second argument, not in options
jahala Feb 14, 2026
f95c1ac
[forge:c3d4a2c4-41b9-4b60-b0f1-87110f423d09] Verify SourcePreset sche…
jahala Feb 14, 2026
b73680f
[forge:23a7c5d0-8652-4b23-a043-79f3a20b6dc0] Implement Tier 4 presets…
jahala Feb 14, 2026
7cb66f8
[forge:a1b830eb-da36-48cd-9d6d-5dcc1795465e] Verify exact dedup check…
jahala Feb 14, 2026
4671102
[forge:ba4741f3-b3b5-4b22-9f77-247c89598f1e] Implement assignCluster(…
jahala Feb 14, 2026
58f659e
[forge:66329b05-a58d-4b81-b36c-7415339591ce] Define cluster assignmen…
jahala Feb 14, 2026
de13a49
[forge:5a66df90-602c-4693-9f57-0ec941d71a6f] Define SourcePreset schema
jahala Feb 14, 2026
1366e62
[forge:29c3245d-381a-45be-86c6-33fdaf938084] Implement Tier 1 presets…
jahala Feb 14, 2026
89e0ca3
[forge:db07713a-1272-4b7a-9047-f303884df517] Enforce per-Greenhouse c…
jahala Feb 14, 2026
91bec32
[forge:65e002e2-f388-4802-bddd-4c9248c7340d] Implement createCluster(…
jahala Feb 14, 2026
fcc8efd
fix(forge): guard worktree cleanup against non-forge paths
jahala Feb 14, 2026
89d63b0
Merge pull request #14 from jahala/tend/build
jahala Feb 14, 2026
351b907
chore: update README, gitignore, remove ideation-ui from dev.sh
jahala Feb 14, 2026
a49278d
feat(cultivate): implement signal intake pipeline (20/22 features ver…
jahala Feb 15, 2026
4d779e0
fix: resolve backend startup failures (duplicate export + tuner entry…
jahala Feb 15, 2026
3378ca7
feat: add portfolio-core package and enhanced tend dashboard
jahala Feb 17, 2026
4447f74
feat(server,tend): enhance agent lifecycle, session presence, and orc…
jahala Feb 17, 2026
944d3f4
feat(tend): add context-adaptive changeset tree with git integration
jahala Feb 17, 2026
5137035
chore: update build artifacts and tsconfig references
jahala Feb 17, 2026
0553c87
feat(planner): add source_session_id for plan provenance tracking
jahala Feb 28, 2026
780c804
feat(ideation,server): multi-plan sessions and plan-aware AI context
jahala Feb 28, 2026
e184cb4
feat(tend): session-first navigation and workspace
jahala Feb 28, 2026
c380967
Merge master into tend/build: pick up 4 forge commits
jahala Feb 28, 2026
bc7e9e8
feat(forge-next): relay 3.0 execution layer with Tend build monitoring
jahala Mar 2, 2026
e9f1380
feat(server): migrate to Relay SDK 3.x and simplify relay layer
jahala Mar 3, 2026
48d51d3
feat(forge-next,tend): execution quality monitoring
jahala Mar 3, 2026
4094899
Merge origin/master into tend/build
jahala Mar 3, 2026
62b3724
Merge pull request #15 from jahala/tend/build
jahala Mar 3, 2026
7fbcc0b
docs: add forge-next README, rewrite tend README, update server relay…
jahala Mar 3, 2026
22c1971
Merge origin/master into tend/build
jahala Mar 3, 2026
cabefb8
feat(server): wire forge-next into server, fix execution_policy schema
jahala Mar 5, 2026
1ded888
feat: retry_hints, merge_strategy, escalation UI, merge status scaffo…
jahala Mar 6, 2026
447fb7b
feat(cultivate): add ICP profiles, onboarding wizard, and opportunity…
jahala Mar 6, 2026
bbb2cb7
feat(forge-next): Symphony pattern adoption + scaling research implem…
jahala Mar 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
188 changes: 188 additions & 0 deletions .claude/agents/flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
---
name: flow
description: When user mentions features, requirements, planning, or asks "what should I build next", proactively show feature status and suggest next actions. Entry point for all flow-* skills.
tools: Read, Write, Glob, Grep, Bash, TaskCreate, TaskUpdate, TaskList, TaskGet
skills:
- flow-schema
- flow-discover
- flow-brainstorm
- flow-planner
- flow-feature
- flow-ui-ux-validation
- flow-test-designer
- flow-change-request
- flow-visualize
- flow-tasks
---

You have all flow skills preloaded. Use them to manage the feature lifecycle.

**Schema**: See `flow-schema.md` for data structures.

## Critical Rule: Always Persist

**NEVER just summarize in chat.** All feature information MUST be written to `docs/flow/` files:
- `docs/flow/catalog.json` - project index with components and features
- `docs/flow/features/<slug>.json` - feature details

If files don't exist, create them. If they exist, update them.

## Output Rule

After completing ANY workflow that creates or modifies features:
1. **Write** results to docs/flow/ files (catalog.json, feature files)
2. **Visualize** using flow-visualize to show current state
3. **Suggest** next action based on incomplete sections

## Purpose

Central entry point for all flow skills:
- Show project/feature status
- Suggest next actions based on current state
- Route to appropriate sub-skill
- Detect requirement changes

## Usage

| Command | Action |
|---------|--------|
| `/flow` | Show status + suggest next action |
| `/flow status` | Status only (compact view) |
| `/flow visualize` | ASCII diagram of feature state |
| `/flow visualize dag` | Dependency graph view |
| `/flow discover` | Analyze codebase → create features |
| `/flow brainstorm` | New feature from rough idea |
| `/flow planner` | Create implementation plan |
| `/flow tasks` | Create executable tasks from plan |
| `/flow feature` | Document user flow |
| `/flow validate` | Validate UI/UX |
| `/flow test` | Design test coverage |
| `/flow change` | Handle requirement changes |
| `/flow <intent>` | Detect appropriate skill from input |

## Intent Detection

When user provides `/flow <text>`, detect appropriate skill:

| User intent patterns | Route to |
|---------------------|----------|
| "status", "show", "visualize", "diagram" | flow-visualize |
| "dag", "dependencies", "blocking", "what's blocking" | flow-visualize (DAG view) |
| "analyze", "map", "discover", "what exists", "traverse" | flow-discover |
| "plan", "implement", "how to build" | flow-planner |
| "tasks", "tasks", "ready to build", "let's build" | flow-tasks |
| "flow", "steps", "behavior", "what happens when" | flow-feature |
| "validate", "check UI", "test the UI", "looks like" | flow-ui-ux-validation |
| "test", "coverage", "test cases" | flow-test-designer |
| "change", "update", "modify", "actually we need" | flow-change-request |
| "new feature", "add feature", "idea" | flow-brainstorm |

If unclear, ask: "Which would you like to do?" + list options.

## Choosing Discover vs Brainstorm

| Situation | Use |
|-----------|-----|
| Existing codebase, no flow docs | flow-discover |
| New project, starting from idea | flow-brainstorm |
| Adding features to documented project | flow-brainstorm |
| "What features exist?" | flow-discover |
| "I want to build X" | flow-brainstorm |

## Section Ownership

| Section | Skill | Purpose |
|---------|-------|---------|
| `summary` | flow-brainstorm/flow-discover | What the feature is |
| `understanding` | Any agent (as needed) | Agent observations during ideation |
| `context` | Any agent (as needed) | Formalized decisions by role |
| `design_spec` | flow-ui-ux-designer | How it looks (views, components) |
| `user_flow` | flow-feature | How it behaves (for testing) |
| `plan_implementation` | flow-planner | How to build it (steps + specification) |
| `plan_tests` | flow-test-designer | Test design/coverage |
| `validation_uiux` | flow-ui-ux-validation | UI/UX validation results |
| `audit` | flow-audit | Implementation verification |

**Note**: `understanding` and `context` can be added by any skill when observations or decisions are made. They're not exclusive to one skill.

## Understanding and Context

These sections capture knowledge during the workflow:

**Understanding** = Agent observations during ideation (keyed by role)
- What patterns apply? What questions need answers? What concerns exist?
- Common roles: architect, designer, tester, security, modeler

**Context** = Formalized decisions by role (freeform key-value)
- Tech stack choices, design decisions, testing strategies
- Feature-level context can extend project-level `catalog.design_system`

**Specification** = Step-level technical details in `plan_implementation.steps`
- Architecture patterns, design choices, security requirements
- Freeform: any domain (architecture, design, model, testing, security)

## Status Check

Read `docs/flow/catalog.json` and `docs/flow/features/*.json`.
Use flow-visualize to render status.

## Suggest Next Action

Use feature DAG (dependencies + priority) to determine work order:
1. Find **unblocked** features (no dependencies, or all dependencies complete)
2. Sort by **priority** (critical > high > medium > low)
3. Suggest highest priority unblocked feature with incomplete sections

| State | Suggestion |
|-------|------------|
| No catalog | "Run /flow discover (existing project) or /flow brainstorm (new project)" |
| Features missing summary | "Complete /flow brainstorm or /flow discover" |
| Features with plan but no tasks | "Create tasks with /flow tasks" |
| Unblocked features missing sections | "Next: [feature] (priority: X) - needs [section]" |
| All unblocked complete, blocked remain | "Blocked features: X, Y depend on Z" |
| All sections complete | "All features complete. Review or publish." |

## Skill Order

```
discover ──┐
├──→ planner ──→ tasks ──→ [implement]
brainstorm ┘ │
│ │
└───→ feature ─┴─→ ui-ux-validation
└──→ test-designer
```

- **discover** or **brainstorm** first (creates catalog + summaries + initial understanding/context)
- **planner** creates implementation steps with specifications
- **tasks** creates executable tasks with PRE/IMPL/POST/VERIFY/DOC
- **feature** can run in parallel with planner
- **ui-ux-designer** populates design_spec and context.designer
- **ui-ux-validation** and **test-designer** require user_flow
- All can be re-run via **change-request** if requirements change

## Detect Change Requests

If input suggests changes to existing features:
→ "This sounds like a requirement change. Run /flow change?"

Indicators: "actually we need...", "change X to Y", "add/remove requirement"

## Plan Immutability

- Plans are immutable once approved
- If implementation diverges → use `/flow change-request`
- Never silently modify approved plans
- Progress is tracked in tasks, not in plan files

## Rules

- **Always write to docs/flow/** - never just chat summaries
- **Always visualize after changes** - show what happened
- **Capture understanding** - note observations during ideation
- **Record context** - persist decisions for future reference
- Status: ≤5 lines for quick checks
- Suggestions: single sentence each
- Don't switch skills without user confirmation
- If unsure which skill, ask
88 changes: 88 additions & 0 deletions .claude/hooks/guard-git.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#!/usr/bin/env bash
# Guard against destructive git commands.
# Claude Code PreToolUse hook for the Bash tool.
#
# Exit 0 = allow
# Exit 2 = block (stderr shown as reason)
#
# Receives JSON on stdin: { "tool_name": "Bash", "tool_input": { "command": "..." } }

set -euo pipefail

# Extract the command from JSON stdin
CMD=$(jq -r '.tool_input.command // empty' 2>/dev/null)

if [[ -z "$CMD" ]]; then
exit 0
fi

# --- Pattern checks ---

# 1. rm targeting .git (any flags, any path containing .git)
if echo "$CMD" | grep -qE '\brm\b.*\.(git|git/|git\b)'; then
echo "BLOCKED: Deleting .git is catastrophic. This destroyed the repo on Feb 13. Never again." >&2
exit 2
fi

# 2. git init (reinitializing destroys worktree links and history)
if echo "$CMD" | grep -qE '\bgit\s+init\b'; then
echo "BLOCKED: 'git init' destroys existing repo state. This is what caused the Feb 13 disaster." >&2
exit 2
fi

# 3. git reset --hard (destroys uncommitted work)
if echo "$CMD" | grep -qE '\bgit\s+reset\s+--hard\b'; then
echo "BLOCKED: 'git reset --hard' causes permanent data loss. Use Edit tool to undo changes manually." >&2
exit 2
fi

# 4. git clean -f (deletes untracked files permanently)
if echo "$CMD" | grep -qE '\bgit\s+clean\s+-[a-zA-Z]*f'; then
echo "BLOCKED: 'git clean -f' permanently deletes untracked files. Review with 'git clean -n' first and delete manually." >&2
exit 2
fi

# 5. git push --force / -f (can overwrite remote history)
if echo "$CMD" | grep -qE '\bgit\s+push\s+.*(-f\b|--force\b|--force-with-lease\b)'; then
echo "BLOCKED: Force push can destroy remote history. Get explicit user confirmation first." >&2
exit 2
fi

# 6. git checkout . (discard ALL working tree changes)
if echo "$CMD" | grep -qE '\bgit\s+checkout\s+\.\s*$'; then
echo "BLOCKED: 'git checkout .' discards all uncommitted changes. Use Edit tool to undo specific changes." >&2
exit 2
fi

# 7. git restore . (discard ALL working tree changes)
if echo "$CMD" | grep -qE '\bgit\s+restore\s+\.\s*$'; then
echo "BLOCKED: 'git restore .' discards all uncommitted changes. Use Edit tool to undo specific changes." >&2
exit 2
fi

# 8. git branch -D (force delete branch, may lose commits)
if echo "$CMD" | grep -qE '\bgit\s+branch\s+-D\b'; then
echo "BLOCKED: 'git branch -D' force-deletes branches and may lose commits. Use -d (lowercase) for safe delete." >&2
exit 2
fi

# 9. git stash drop / git stash clear (lose stashed work)
if echo "$CMD" | grep -qE '\bgit\s+stash\s+(drop|clear)\b'; then
echo "BLOCKED: Dropping/clearing stashes loses work. Show stash contents first and get user confirmation." >&2
exit 2
fi

# 10. Deleting remote branches via push
if echo "$CMD" | grep -qE '\bgit\s+push\s+\S+\s+:'; then
echo "BLOCKED: Deleting remote branches. Get explicit user confirmation first." >&2
exit 2
fi

# 11. rm -rf targeting any directory that could be catastrophic
if echo "$CMD" | grep -qE '\brm\s+-rf\s+/'; then
echo "BLOCKED: 'rm -rf /' pattern detected. Use 'trash' command instead of rm." >&2
exit 2
fi

# All checks passed
exit 0
90 changes: 90 additions & 0 deletions .claude/rules/agent-relay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Agent-Relay Patterns

## spawn() vs RelayClient

Critical distinction for this project:

| Pattern | Use Case | Lifecycle |
|---------|----------|-----------|
| `spawn()` | Task-oriented CLI agents | Executes task, then exits |
| `RelayClient` | Persistent services | Always-on, listens for messages |

**PlannerLead uses `RelayClient`**, not `spawn()`. It's a persistent service that needs to remain active and respond to messages.

## Non-Blocking Connection Pattern

Server startup does not block on relay availability:
- Relay connection attempted at startup but failure doesn't block
- **Connected mode**: Real agents, full relay messaging
- **Disconnected mode**: Mock responses, test mode fallback
- Check connection status to determine operational mode

## PlannerLead Architecture

Location: `packages/server/src/relay/planner-lead.ts`

- Persistent service using `RelayClient` (NOT `spawn()`)
- Listens on `#planner` channel + individual `#plan-{uuid}` channels
- Uses Anthropic SDK for responses (mock fallback if key missing)
- Tool calling support: 10 tools in `planner-lead-tools/` for plan CRUD, step manipulation
- Conversation history management per channel

## Channel Membership

- Agents must explicitly call `joinChannel()` before sending/receiving channel messages
- Broadcast requires channel membership in relay daemon

## Plan Channel IDs

- Format: `#plan-{full-uuid}` (uses full UUID for consistency)
- Display truncation happens in UI layer, not in channel IDs
- Use `getPlanChannelId()` from `packages/server/src/relay/channels.ts`

## Message Routing (ws-proxy)

Location: `packages/server/src/relay/ws-proxy.ts`

WebSocket proxy bridges browser ↔ relay communication:
- Mounted at `/ws/relay` route
- Direct messages: `client.sendMessage()`
- Channel messages: `client.sendChannelMessage()`
- Always pass `fromName` and `entityType` for proper rendering

## Cross-Domain Bridges

**Ideation Bridge** (`packages/server/src/relay/ideation-bridge.ts`):
- Listens for relay messages tagged for ideation
- Forwards to ideation service
- Enables domain communication without direct coupling

**Forge Spawner** (`packages/server/src/relay/forge-spawner.ts`):
- Creates forge tasks when plan execution requested via relay
- Bridges planning → execution workflow

## Frontend Relay Integration

Location: `packages/planner-ui/src/contexts/RelayContext.tsx`

- `RelayContext` provides shared WebSocket connection
- `useRelayConnection` manages WebSocket lifecycle (connect/reconnect/handlers)
- `useActiveChannels` subscribes to plan channels
- `useChannelMessages` fetches channel message history
- **Single shared connection per app via Context** (never per-component)

## Real-time Updates

- `usePlanEvents` hook subscribes to SSE for plan changes
- For persistent services like PlannerLead, don't gate subscriptions on `connectionStatus === 'connected'`—always subscribe

## Connection Handling

- Implement graceful fallback to mock mode when API keys are missing
- Add debug logging for WebSocket connections, agent spawning, tool execution
- Handle `connectionState` issues; may indicate relay daemon SQLite or performance problems

## Common Mistakes

- Using `spawn()` for persistent conversational agents
- Forgetting channel membership before channel operations
- Over-relying on `connectionStatus` for SSE subscriptions with persistent services
- Creating per-component relay connections (use shared Context)
Loading