pi-crew 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/AGENTS.md +57 -32
  2. package/CHANGELOG.md +466 -448
  3. package/LICENSE +21 -21
  4. package/NOTICE.md +16 -16
  5. package/README.md +323 -323
  6. package/docs/FEATURE_INTAKE.md +126 -0
  7. package/docs/HARNESS.md +86 -0
  8. package/docs/HARNESS_BACKLOG.md +41 -0
  9. package/docs/TEST_MATRIX.md +49 -0
  10. package/docs/actions-reference.md +595 -595
  11. package/docs/architecture.md +180 -180
  12. package/docs/code-review-2026-05-11.md +592 -592
  13. package/docs/commands-reference.md +347 -347
  14. package/docs/comparison-pi-subagents-vs-pi-crew.md +303 -0
  15. package/docs/decisions/0001-durable-state.md +41 -0
  16. package/docs/decisions/0002-child-process-for-async.md +42 -0
  17. package/docs/decisions/0003-depth-guard.md +36 -0
  18. package/docs/decisions/0004-execfile-over-exec.md +34 -0
  19. package/docs/decisions/0005-no-parameter-properties.md +49 -0
  20. package/docs/decisions/0006-publish-bundled-esm.md +63 -0
  21. package/docs/decisions/0007-active-run-binary-index.md +54 -0
  22. package/docs/decisions/0008-child-pi-warm-pool.md +61 -0
  23. package/docs/decisions/README.md +23 -0
  24. package/docs/followup-review-round4-2026-05-13.md +107 -0
  25. package/docs/implementation-plan-top3.md +333 -0
  26. package/docs/live-mailbox-runtime.md +36 -36
  27. package/docs/next-upgrade-roadmap.md +808 -808
  28. package/docs/oh-my-pi-research.md +509 -0
  29. package/docs/perf/baseline-2026-05.md +113 -0
  30. package/docs/perf/final-report-2026-05.md +206 -0
  31. package/docs/perf/sprint-1-report.md +71 -0
  32. package/docs/perf/sprint-2-report.md +81 -0
  33. package/docs/perf/sprint-2.5-report.md +53 -0
  34. package/docs/perf/sprint-3-report.md +36 -0
  35. package/docs/perf/sprint-4-report.md +47 -0
  36. package/docs/perf/sprint-5-report.md +51 -0
  37. package/docs/perf/sprint-6-report.md +94 -0
  38. package/docs/perf/sprint-7-report.md +74 -0
  39. package/docs/perf/upgrade-plan-2026-05.md +147 -0
  40. package/docs/pi-subagents3-deep-analysis.md +508 -0
  41. package/docs/product/README.md +31 -0
  42. package/docs/product/platform.md +27 -0
  43. package/docs/product/runtime-safety.md +37 -0
  44. package/docs/product/team-run.md +39 -0
  45. package/docs/product/team-tool.md +37 -0
  46. package/docs/publishing.md +65 -65
  47. package/docs/resource-formats.md +134 -134
  48. package/docs/runtime-analysis-child-vs-live.md +171 -0
  49. package/docs/runtime-flow.md +148 -148
  50. package/docs/runtime-migration-in-process-analysis.md +250 -0
  51. package/docs/stories/README.md +30 -0
  52. package/docs/stories/backlog.md +36 -0
  53. package/docs/templates/decision.md +27 -0
  54. package/docs/templates/story.md +44 -0
  55. package/docs/templates/validation-report.md +32 -0
  56. package/docs/usage.md +238 -238
  57. package/index.ts +7 -6
  58. package/install.mjs +65 -65
  59. package/package.json +107 -100
  60. package/schema.json +222 -222
  61. package/skills/child-pi-spawning/SKILL.md +213 -0
  62. package/skills/context-artifact-hygiene/SKILL.md +32 -0
  63. package/skills/event-log-tracing/SKILL.md +299 -0
  64. package/skills/git-master/SKILL.md +225 -24
  65. package/skills/live-agent-lifecycle/SKILL.md +192 -0
  66. package/skills/mailbox-interactive/SKILL.md +300 -19
  67. package/skills/model-routing-context/SKILL.md +94 -0
  68. package/skills/multi-perspective-review/SKILL.md +88 -0
  69. package/skills/read-only-explorer/SKILL.md +250 -26
  70. package/skills/safe-bash/SKILL.md +307 -21
  71. package/skills/verification-before-done/SKILL.md +11 -2
  72. package/skills/widget-rendering/SKILL.md +258 -0
  73. package/skills/workspace-isolation/SKILL.md +202 -0
  74. package/skills/worktree-isolation/SKILL.md +202 -18
  75. package/src/adapters/claude-adapter.ts +25 -25
  76. package/src/adapters/codex-adapter.ts +21 -21
  77. package/src/adapters/cursor-adapter.ts +17 -17
  78. package/src/adapters/export-util.ts +137 -137
  79. package/src/adapters/index.ts +15 -15
  80. package/src/adapters/registry.ts +18 -18
  81. package/src/adapters/types.ts +23 -23
  82. package/src/agents/agent-config.ts +38 -38
  83. package/src/agents/agent-serializer.ts +38 -38
  84. package/src/agents/discover-agents.ts +121 -118
  85. package/src/config/config.ts +740 -858
  86. package/src/config/defaults.ts +96 -96
  87. package/src/config/drift-detector.ts +211 -211
  88. package/src/config/markers.ts +327 -327
  89. package/src/config/resilient-parser.ts +109 -108
  90. package/src/config/suggestions.ts +74 -74
  91. package/src/config/types.ts +199 -0
  92. package/src/extension/async-notifier.ts +123 -89
  93. package/src/extension/autonomous-policy.ts +169 -169
  94. package/src/extension/cross-extension-rpc.ts +104 -104
  95. package/src/extension/help.ts +47 -47
  96. package/src/extension/import-index.ts +69 -69
  97. package/src/extension/management.ts +395 -382
  98. package/src/extension/notification-router.ts +116 -116
  99. package/src/extension/notification-sink.ts +51 -51
  100. package/src/extension/project-init.ts +168 -168
  101. package/src/extension/register.ts +859 -668
  102. package/src/extension/registration/artifact-cleanup.ts +15 -15
  103. package/src/extension/registration/command-utils.ts +54 -54
  104. package/src/extension/registration/commands.ts +559 -452
  105. package/src/extension/registration/compaction-guard.ts +125 -125
  106. package/src/extension/registration/subagent-helpers.ts +102 -102
  107. package/src/extension/registration/subagent-tools.ts +220 -159
  108. package/src/extension/registration/team-tool.ts +159 -99
  109. package/src/extension/registration/viewers.ts +29 -0
  110. package/src/extension/result-watcher.ts +128 -128
  111. package/src/extension/run-bundle-schema.ts +89 -89
  112. package/src/extension/run-export.ts +73 -73
  113. package/src/extension/run-import.ts +84 -84
  114. package/src/extension/run-index.ts +94 -94
  115. package/src/extension/run-maintenance.ts +142 -142
  116. package/src/extension/session-summary.ts +8 -8
  117. package/src/extension/team-manager-command.ts +96 -96
  118. package/src/extension/team-recommendation.ts +188 -188
  119. package/src/extension/team-tool/api.ts +5 -2
  120. package/src/extension/team-tool/cancel.ts +224 -209
  121. package/src/extension/team-tool/config-patch.ts +36 -36
  122. package/src/extension/team-tool/context.ts +60 -60
  123. package/src/extension/team-tool/doctor.ts +242 -242
  124. package/src/extension/team-tool/handle-settings.ts +421 -195
  125. package/src/extension/team-tool/inspect.ts +41 -41
  126. package/src/extension/team-tool/lifecycle-actions.ts +139 -139
  127. package/src/extension/team-tool/parallel-dispatch.ts +156 -156
  128. package/src/extension/team-tool/plan.ts +19 -19
  129. package/src/extension/team-tool/respond.ts +112 -111
  130. package/src/extension/team-tool/run.ts +246 -229
  131. package/src/extension/team-tool/status.ts +110 -110
  132. package/src/extension/team-tool-types.ts +13 -13
  133. package/src/extension/team-tool.ts +344 -344
  134. package/src/extension/tool-result.ts +16 -16
  135. package/src/extension/validate-resources.ts +77 -77
  136. package/src/hooks/registry.ts +61 -61
  137. package/src/hooks/types.ts +40 -40
  138. package/src/i18n.ts +184 -184
  139. package/src/observability/correlation.ts +35 -35
  140. package/src/observability/event-to-metric.ts +68 -68
  141. package/src/observability/exporters/adapter.ts +30 -30
  142. package/src/observability/exporters/otlp-exporter.ts +106 -92
  143. package/src/observability/exporters/prometheus-exporter.ts +54 -54
  144. package/src/observability/metric-registry.ts +87 -87
  145. package/src/observability/metric-retention.ts +54 -54
  146. package/src/observability/metric-sink.ts +81 -56
  147. package/src/observability/metrics-primitives.ts +167 -167
  148. package/src/prompt/prompt-runtime.ts +72 -72
  149. package/src/runtime/adaptive-plan.ts +338 -0
  150. package/src/runtime/agent-control.ts +169 -169
  151. package/src/runtime/agent-memory.ts +72 -72
  152. package/src/runtime/agent-observability.ts +114 -114
  153. package/src/runtime/async-marker.ts +26 -26
  154. package/src/runtime/async-runner.ts +153 -153
  155. package/src/runtime/attention-events.ts +28 -28
  156. package/src/runtime/auto-resume.ts +100 -100
  157. package/src/runtime/background-runner.ts +122 -89
  158. package/src/runtime/cancellation.ts +61 -61
  159. package/src/runtime/capability-inventory.ts +116 -116
  160. package/src/runtime/child-pi-pool.ts +68 -0
  161. package/src/runtime/child-pi.ts +541 -461
  162. package/src/runtime/code-summary.ts +247 -247
  163. package/src/runtime/compaction-summary.ts +271 -271
  164. package/src/runtime/concurrency.ts +58 -58
  165. package/src/runtime/crash-recovery.ts +317 -301
  166. package/src/runtime/crew-agent-records.ts +379 -281
  167. package/src/runtime/crew-agent-runtime.ts +60 -60
  168. package/src/runtime/cross-extension-rpc.ts +72 -0
  169. package/src/runtime/custom-tools/irc-tool.ts +201 -201
  170. package/src/runtime/custom-tools/submit-result-tool.ts +90 -90
  171. package/src/runtime/deadletter.ts +47 -47
  172. package/src/runtime/delivery-coordinator.ts +176 -176
  173. package/src/runtime/delta-conflict.ts +360 -360
  174. package/src/runtime/diagnostic-export.ts +102 -102
  175. package/src/runtime/direct-run.ts +35 -35
  176. package/src/runtime/effectiveness.ts +82 -81
  177. package/src/runtime/errors/crew-errors.ts +166 -0
  178. package/src/runtime/event-stream-bridge.ts +92 -92
  179. package/src/runtime/foreground-control.ts +82 -82
  180. package/src/runtime/green-contract.ts +46 -46
  181. package/src/runtime/group-join.ts +234 -106
  182. package/src/runtime/heartbeat-watcher.ts +145 -124
  183. package/src/runtime/iteration-hooks.ts +267 -267
  184. package/src/runtime/live-agent-control.ts +88 -88
  185. package/src/runtime/live-agent-manager.ts +377 -179
  186. package/src/runtime/live-control-realtime.ts +36 -36
  187. package/src/runtime/live-session-runtime.ts +676 -600
  188. package/src/runtime/loop-gates.ts +129 -129
  189. package/src/runtime/manifest-cache.ts +263 -263
  190. package/src/runtime/mcp-proxy.ts +113 -113
  191. package/src/runtime/metric-parser.ts +40 -40
  192. package/src/runtime/model-fallback.ts +282 -274
  193. package/src/runtime/model-resolver.ts +118 -0
  194. package/src/runtime/output-validator.ts +187 -187
  195. package/src/runtime/overflow-recovery.ts +175 -175
  196. package/src/runtime/parallel-research.ts +44 -44
  197. package/src/runtime/parallel-utils.ts +156 -156
  198. package/src/runtime/parent-guard.ts +80 -80
  199. package/src/runtime/phase-progress.ts +217 -217
  200. package/src/runtime/pi-args.ts +165 -165
  201. package/src/runtime/pi-json-output.ts +111 -111
  202. package/src/runtime/pi-spawn.ts +167 -167
  203. package/src/runtime/policy-engine.ts +79 -79
  204. package/src/runtime/post-checks.ts +125 -125
  205. package/src/runtime/post-exit-stdio-guard.ts +86 -86
  206. package/src/runtime/process-status.ts +97 -73
  207. package/src/runtime/progress-event-coalescer.ts +43 -43
  208. package/src/runtime/recovery-recipes.ts +74 -74
  209. package/src/runtime/retry-executor.ts +81 -81
  210. package/src/runtime/role-permission.ts +39 -39
  211. package/src/runtime/run-tracker.ts +99 -0
  212. package/src/runtime/runtime-policy.ts +21 -0
  213. package/src/runtime/runtime-resolver.ts +94 -91
  214. package/src/runtime/scheduler.ts +294 -0
  215. package/src/runtime/semaphore.ts +131 -131
  216. package/src/runtime/sensitive-paths.ts +92 -92
  217. package/src/runtime/session-usage.ts +79 -79
  218. package/src/runtime/settings-store.ts +103 -0
  219. package/src/runtime/sidechain-output.ts +29 -29
  220. package/src/runtime/skill-instructions.ts +222 -222
  221. package/src/runtime/stale-reconciler.ts +198 -189
  222. package/src/runtime/streaming-output.ts +47 -0
  223. package/src/runtime/subagent-manager.ts +404 -400
  224. package/src/runtime/subprocess-tool-registry.ts +67 -67
  225. package/src/runtime/task-display.ts +38 -38
  226. package/src/runtime/task-graph-scheduler.ts +122 -122
  227. package/src/runtime/task-graph.ts +207 -207
  228. package/src/runtime/task-output-context.ts +177 -177
  229. package/src/runtime/task-packet.ts +93 -93
  230. package/src/runtime/task-quality.ts +207 -207
  231. package/src/runtime/task-runner/capabilities.ts +78 -78
  232. package/src/runtime/task-runner/live-executor.ts +131 -113
  233. package/src/runtime/task-runner/progress.ts +119 -119
  234. package/src/runtime/task-runner/prompt-builder.ts +139 -139
  235. package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
  236. package/src/runtime/task-runner/result-utils.ts +14 -14
  237. package/src/runtime/task-runner/run-projection.ts +103 -103
  238. package/src/runtime/task-runner/state-helpers.ts +22 -22
  239. package/src/runtime/task-runner.ts +469 -459
  240. package/src/runtime/team-runner.ts +693 -945
  241. package/src/runtime/usage-tracker.ts +71 -0
  242. package/src/runtime/worker-heartbeat.ts +21 -21
  243. package/src/runtime/worker-startup.ts +57 -57
  244. package/src/runtime/workflow-state.ts +187 -187
  245. package/src/runtime/yield-handler.ts +190 -190
  246. package/src/schema/config-schema.ts +172 -168
  247. package/src/schema/team-tool-schema.ts +126 -126
  248. package/src/schema/validation-types.ts +151 -148
  249. package/src/skills/discover-skills.ts +67 -67
  250. package/src/skills/skill-templates.ts +374 -374
  251. package/src/state/active-run-registry.ts +227 -191
  252. package/src/state/artifact-store.ts +130 -129
  253. package/src/state/atomic-write.ts +262 -195
  254. package/src/state/blob-store.ts +116 -116
  255. package/src/state/contracts.ts +111 -111
  256. package/src/state/event-log-rotation.ts +161 -158
  257. package/src/state/event-log.ts +383 -303
  258. package/src/state/event-reconstructor.ts +217 -217
  259. package/src/state/jsonl-writer.ts +82 -82
  260. package/src/state/locks.ts +146 -146
  261. package/src/state/mailbox.ts +446 -405
  262. package/src/state/state-store.ts +364 -351
  263. package/src/state/task-claims.ts +44 -44
  264. package/src/state/types.ts +285 -285
  265. package/src/state/usage.ts +29 -29
  266. package/src/subagents/async-entry.ts +1 -1
  267. package/src/subagents/index.ts +3 -3
  268. package/src/subagents/live/control.ts +1 -1
  269. package/src/subagents/live/manager.ts +1 -1
  270. package/src/subagents/live/realtime.ts +1 -1
  271. package/src/subagents/live/session-runtime.ts +1 -1
  272. package/src/subagents/manager.ts +1 -1
  273. package/src/subagents/spawn.ts +1 -1
  274. package/src/teams/discover-teams.ts +116 -116
  275. package/src/teams/team-config.ts +27 -27
  276. package/src/teams/team-serializer.ts +38 -38
  277. package/src/types/diff.d.ts +18 -18
  278. package/src/ui/agent-management-overlay.ts +144 -144
  279. package/src/ui/crew-widget.ts +487 -370
  280. package/src/ui/dashboard-panes/agents-pane.ts +109 -28
  281. package/src/ui/dashboard-panes/cancellation-pane.ts +42 -42
  282. package/src/ui/dashboard-panes/capability-pane.ts +59 -59
  283. package/src/ui/dashboard-panes/health-pane.ts +30 -30
  284. package/src/ui/dashboard-panes/mailbox-pane.ts +35 -35
  285. package/src/ui/dashboard-panes/progress-pane.ts +30 -30
  286. package/src/ui/dashboard-panes/transcript-pane.ts +10 -10
  287. package/src/ui/heartbeat-aggregator.ts +63 -63
  288. package/src/ui/keybinding-map.ts +97 -94
  289. package/src/ui/live-conversation-overlay.ts +152 -0
  290. package/src/ui/live-run-sidebar.ts +180 -180
  291. package/src/ui/mascot.ts +442 -442
  292. package/src/ui/overlays/agent-picker-overlay.ts +57 -57
  293. package/src/ui/overlays/confirm-overlay.ts +58 -58
  294. package/src/ui/overlays/mailbox-compose-overlay.ts +144 -144
  295. package/src/ui/overlays/mailbox-compose-preview.ts +63 -63
  296. package/src/ui/overlays/mailbox-detail-overlay.ts +122 -122
  297. package/src/ui/pi-ui-compat.ts +57 -57
  298. package/src/ui/powerbar-publisher.ts +221 -197
  299. package/src/ui/render-scheduler.ts +216 -143
  300. package/src/ui/run-action-dispatcher.ts +118 -118
  301. package/src/ui/run-dashboard.ts +526 -464
  302. package/src/ui/run-event-bus.ts +208 -208
  303. package/src/ui/run-snapshot-cache.ts +826 -777
  304. package/src/ui/settings-overlay.ts +721 -0
  305. package/src/ui/snapshot-types.ts +86 -70
  306. package/src/ui/theme-adapter.ts +190 -190
  307. package/src/ui/tool-progress-formatter.ts +89 -0
  308. package/src/ui/transcript-cache.ts +94 -94
  309. package/src/ui/transcript-viewer.ts +335 -335
  310. package/src/utils/conflict-detect.ts +662 -0
  311. package/src/utils/file-coalescer.ts +86 -86
  312. package/src/utils/frontmatter.ts +68 -68
  313. package/src/utils/fs-watch.ts +88 -31
  314. package/src/utils/gh-protocol.ts +479 -0
  315. package/src/utils/ids.ts +17 -17
  316. package/src/utils/incremental-reader.ts +104 -104
  317. package/src/utils/internal-error.ts +6 -6
  318. package/src/utils/names.ts +27 -27
  319. package/src/utils/paths.ts +102 -63
  320. package/src/utils/redaction.ts +44 -44
  321. package/src/utils/safe-paths.ts +47 -47
  322. package/src/utils/scan-cache.ts +136 -136
  323. package/src/utils/sse-parser.ts +134 -134
  324. package/src/utils/task-name-generator.ts +337 -337
  325. package/src/utils/timings.ts +33 -33
  326. package/src/utils/visual.ts +243 -198
  327. package/src/workflows/discover-workflows.ts +139 -139
  328. package/src/workflows/validate-workflow.ts +40 -40
  329. package/src/workflows/workflow-config.ts +26 -26
  330. package/src/workflows/workflow-serializer.ts +32 -32
  331. package/src/worktree/branch-freshness.ts +45 -45
  332. package/src/worktree/cleanup.ts +75 -75
  333. package/src/worktree/worktree-manager.ts +188 -188
  334. package/teams/default.team.md +12 -12
  335. package/teams/fast-fix.team.md +11 -11
  336. package/teams/implementation.team.md +18 -18
  337. package/teams/parallel-research.team.md +14 -14
  338. package/teams/research.team.md +11 -11
  339. package/teams/review.team.md +12 -12
  340. package/tsconfig.json +19 -19
  341. package/workflows/default.workflow.md +30 -30
  342. package/workflows/fast-fix.workflow.md +23 -23
  343. package/workflows/implementation.workflow.md +43 -43
  344. package/workflows/parallel-research.workflow.md +46 -46
  345. package/workflows/research.workflow.md +22 -22
  346. package/workflows/review.workflow.md +30 -30
  347. package/skills/task-packet/SKILL.md +0 -28
  348. package/skills/verify-evidence/SKILL.md +0 -27
@@ -0,0 +1,126 @@
1
+ # Feature Intake
2
+
3
+ Mọi implementation prompt phải đi qua intake gate trước khi code changes.
4
+
5
+ ## Intake Flow
6
+
7
+ ```text
8
+ User prompt / issue
9
+
10
+
11
+ Classify input type
12
+
13
+
14
+ Identify affected modules
15
+ (src/runtime, src/state, src/extension, src/ui, src/utils)
16
+
17
+
18
+ Run risk checklist
19
+
20
+
21
+ Choose lane: tiny, normal, or high-risk
22
+
23
+
24
+ Create/update story packet (normal+)
25
+ or patch directly (tiny)
26
+ ```
27
+
28
+ ## Input Types
29
+
30
+ | Type | Use when | Artifact |
31
+ |------|----------|----------|
32
+ | Bug fix | Fix crash, wrong behavior, test failure | Direct patch or story |
33
+ | Feature | New capability (new tool action, new runtime mode) | Story packet |
34
+ | Refactor | Internal restructure without behavior change | Direct patch |
35
+ | Performance | Improve speed/memory/concurrency | Story packet |
36
+ | Security | Fix vulnerability, harden boundary | High-risk story |
37
+ | Docs | README, comments, harness files | Direct patch |
38
+ | Dependency | Update/add/remove dependencies | Story packet |
39
+ | Harness improvement | Improve this operating model | Direct docs update |
40
+
41
+ ## Lanes
42
+
43
+ ### Tiny
44
+ Low-risk: docs, names, narrow edits, comment fixes.
45
+
46
+ Requirements:
47
+ - Patch directly
48
+ - Run `npm run typecheck`
49
+ - Update harness only if friction found
50
+
51
+ ### Normal
52
+ Story-sized behavior with bounded blast radius.
53
+
54
+ Requirements:
55
+ - Create/update story in `docs/stories/`
56
+ - Link affected product docs
57
+ - Add/update test matrix entries
58
+ - Run `npm test` + `npm run typecheck`
59
+ - Update `docs/TEST_MATRIX.md`
60
+
61
+ ### High-Risk
62
+ Affects security, data integrity, state mutation, concurrency, or multiple modules.
63
+
64
+ Requirements:
65
+ - Create high-risk story folder in `docs/stories/`
66
+ - Fill overview, design, exec plan, validation
67
+ - Ask human confirmation before implementation
68
+ - Record decision in `docs/decisions/`
69
+
70
+ ## Risk Checklist
71
+
72
+ | Risk flag | Applies when work touches |
73
+ |-----------|---------------------------|
74
+ | State mutation | manifest.json, tasks.json, events.jsonl writes |
75
+ | Concurrency | shared mutable state, race conditions, locks |
76
+ | Child process | spawning Pi workers, worktree isolation |
77
+ | Error handling | catch blocks, error propagation, crash recovery |
78
+ | External tools | `gh` CLI, `git` commands, shell execution |
79
+ | API contract | team tool API shape, tool parameters |
80
+ | Platform | Windows vs Unix path handling, EBUSY/EPERM |
81
+ | Backward compat | state format changes, config migration |
82
+ | Dependencies | new npm packages, native modules |
83
+ | Security | command injection, path traversal, trust boundaries |
84
+
85
+ ## Classification
86
+
87
+ ```text
88
+ 0-1 flags:
89
+ tiny or normal, based on code impact
90
+
91
+ 2-3 flags:
92
+ normal with stronger validation
93
+
94
+ 4+ flags:
95
+ high-risk
96
+
97
+ Hard gates (always high-risk):
98
+ - State mutation + concurrency
99
+ - Child process spawning
100
+ - External tool execution (command injection surface)
101
+ - Removing or weakening error handling
102
+ - Changing state file format without migration
103
+ ```
104
+
105
+ ## Affected Modules
106
+
107
+ | Module | Path | Blast radius |
108
+ |--------|------|-------------|
109
+ | Extension | `src/extension/` | Tool API, registration, hooks |
110
+ | Runtime | `src/runtime/` | Team runner, task runner, child process, async |
111
+ | State | `src/state/` | Durable state, events, locks, artifacts |
112
+ | UI | `src/ui/` | TUI dashboard, overlay, widgets |
113
+ | Utils | `src/utils/` | Shared utilities, conflict detection, git |
114
+ | Worktree | `src/worktree/` | Git worktree management |
115
+ | Config | `src/config/` | Runtime config, resource discovery |
116
+ | Tests | `test/` | Unit tests, integration |
117
+
118
+ ## Output Example
119
+
120
+ ```text
121
+ Lane: normal
122
+ Reason: touches state mutation and concurrency in team-runner.ts
123
+ Modules: src/runtime/team-runner.ts, src/state/state-store.ts
124
+ Story: docs/stories/US-015-durable-state-locking.md
125
+ Validation: npm test, npm run typecheck, CI 3/3
126
+ ```
@@ -0,0 +1,86 @@
1
+ # Harness
2
+
3
+ pi-crew là một Pi extension cho multi-agent orchestration. Harness này giúp
4
+ agents và humans phối hợp phát triển pi-crew một cách reliable, inspectable,
5
+ và dễ steer.
6
+
7
+ Product là pi-crew chính nó. Harness là môi trường operating để agents hiểu
8
+ product, classify work, track decisions, và validate changes.
9
+
10
+ ## Mental Model
11
+
12
+ ```text
13
+ Human intent (issue, prompt, request)
14
+
15
+
16
+ Feature intake
17
+ (classify → risk lane)
18
+
19
+
20
+ Story packet or direct patch
21
+
22
+
23
+ Agent work loop
24
+ (explore → plan → execute → verify)
25
+
26
+
27
+ Product delta (code, tests, docs)
28
+
29
+
30
+ Validation proof (tests, typecheck, CI)
31
+
32
+
33
+ Harness delta (decisions, test matrix, backlog)
34
+
35
+
36
+ Next intent
37
+ ```
38
+
39
+ Mỗi task có 2 outputs:
40
+ 1. **Product delta**: code changes, test changes, API shape, config changes
41
+ 2. **Harness delta**: docs, decisions, test matrix updates, backlog items
42
+
43
+ ## Source Hierarchy
44
+
45
+ Agents đọc theo thứ tự:
46
+
47
+ 1. `AGENTS.md` — operating rules và important paths
48
+ 2. `docs/HARNESS.md` — file này, collaboration model
49
+ 3. `docs/FEATURE_INTAKE.md` — trước khi biến request thành work
50
+ 4. `docs/product/` — current product contract
51
+ 5. `docs/ARCHITECTURE.md` — implementation shape
52
+ 6. `docs/stories/` — active và completed stories
53
+ 7. `docs/TEST_MATRIX.md` — proof status
54
+ 8. `docs/decisions/` — why important choices were made
55
+
56
+ ## Validation Ladder
57
+
58
+ pi-crew đã có validation commands:
59
+
60
+ | Level | Command | What it proves |
61
+ |-------|---------|----------------|
62
+ | quick | `npm run typecheck` | TypeScript correctness + strip-types import |
63
+ | unit | `npm test` | 1600+ unit tests, all pass |
64
+ | lint | `npm run check` | Biome lint + format |
65
+ | CI | GitHub Actions | Cross-platform (ubuntu, windows, macos) |
66
+
67
+ Agents **must not** claim validation passes without running the actual command.
68
+
69
+ ## Growth Rule
70
+
71
+ Harness grows từ friction. Khi agent:
72
+ - Bị confused về expected behavior
73
+ - Phải repeat manual reasoning
74
+ - Thiếu validation command
75
+ - Discover missing rule
76
+ - Thấy recurring failure pattern
77
+
78
+ → Agent must improve harness directly hoặc propose trong `docs/HARNESS_BACKLOG.md`.
79
+
80
+ ## Working Conventions
81
+
82
+ - Vietnamese for communication, English for code/comments
83
+ - Commit message format: `fix:`, `feat:`, `docs:` — conventional commits
84
+ - Every code change must pass `npm test` + `npm run typecheck`
85
+ - MEDIUM+ bugs found during review must be fixed before claiming done
86
+ - LOW issues documented in `docs/HARNESS_BACKLOG.md` if recurring
@@ -0,0 +1,41 @@
1
+ # Harness Backlog
2
+
3
+ Use when an agent discovers a missing harness capability but should not change the operating model immediately.
4
+
5
+ ## Items
6
+
7
+ ### HB-001: Integration test harness
8
+
9
+ **Discovered while**: Review round 9 — all tests are unit tests, no multi-module integration tests exist.
10
+
11
+ **Current pain**: Cannot verify team-runner → state-store → child-process integration end-to-end without manual testing.
12
+
13
+ **Suggested improvement**: Add `test/integration/` with real file-system state, real child processes (with timeout).
14
+
15
+ **Risk**: normal
16
+
17
+ **Status**: proposed
18
+
19
+ ### HB-002: Windows-specific test coverage
20
+
21
+ **Discovered while**: RR-002 Windows EBUSY fix — only tested manually, no automated Windows-specific tests.
22
+
23
+ **Current pain**: Windows bugs only caught in CI, not locally.
24
+
25
+ **Suggested improvement**: Add `test/platform/` with Windows-specific tests (EBUSY retry, path handling).
26
+
27
+ **Risk**: normal
28
+
29
+ **Status**: proposed
30
+
31
+ ### HB-003: Performance regression baseline
32
+
33
+ **Discovered while**: Review noted `sleepSync` busy-wait on Windows — no perf benchmarks exist.
34
+
35
+ **Current pain**: Cannot detect performance regressions.
36
+
37
+ **Suggested improvement**: Add benchmark suite for critical paths (state writes, event append, task dispatch).
38
+
39
+ **Risk**: tiny
40
+
41
+ **Status**: proposed
@@ -0,0 +1,49 @@
1
+ # Test Matrix
2
+
3
+ Maps pi-crew behavior to proof. Every row must have real validation evidence.
4
+
5
+ ## Status Values
6
+
7
+ | Status | Meaning |
8
+ |--------|---------|
9
+ | planned | Accepted behavior, not implemented |
10
+ | in_progress | Actively being built |
11
+ | implemented | Implemented and proof exists |
12
+ | changed | Contract changed after implementation |
13
+ | retired | No longer part of product |
14
+
15
+ ## Matrix
16
+
17
+ | Story | Contract | Unit | Integration | CI | Status | Evidence |
18
+ |-------|----------|------|-------------|-----|--------|----------|
19
+ | Core team run | `docs/product/team-run.md` | yes | yes | yes 3/3 | implemented | 1621 tests pass |
20
+ | Child process runner | `docs/product/child-process.md` | yes | no | yes 3/3 | implemented | child-pi.ts tests |
21
+ | Async runner | `docs/product/async-runner.md` | yes | no | yes 3/3 | implemented | async-runner tests |
22
+ | Live session | `docs/product/live-session.md` | yes | no | yes 3/3 | implemented | live-session tests |
23
+ | State durability | `docs/product/state.md` | yes | no | yes 3/3 | implemented | state-store tests |
24
+ | Worktree isolation | `docs/product/worktree.md` | yes | no | yes 3/3 | implemented | worktree tests |
25
+ | Team tool API | `docs/product/team-tool.md` | yes | no | yes 3/3 | implemented | api tests |
26
+ | Group join | `docs/product/group-join.md` | yes | no | yes 3/3 | implemented | group-join tests |
27
+ | Model fallback | `docs/product/model-fallback.md` | yes | no | yes 3/3 | implemented | model-fallback tests |
28
+ | Conflict detection | `docs/product/conflict-detect.md` | yes | no | yes 3/3 | implemented | conflict-detect tests |
29
+ | Crash recovery | `docs/product/crash-recovery.md` | yes | no | yes 3/3 | implemented | crash-recovery tests |
30
+ | Effectiveness guard | `docs/product/effectiveness.md` | yes | no | yes 3/3 | implemented | effectiveness tests |
31
+ | Windows EBUSY | `docs/product/platform.md` | yes | no | yes 3/3 | implemented | rmSyncRetry tests |
32
+ | Depth guard | `docs/product/runtime-safety.md` | yes | no | yes 3/3 | implemented | depth-guard tests |
33
+
34
+ ## Evidence Rules
35
+
36
+ - **Unit proof**: Pure logic, state transitions, config parsing
37
+ - **Integration proof**: Multi-module interaction (team runner → state → child process)
38
+ - **CI proof**: Cross-platform (ubuntu, windows, macos) green on GitHub Actions
39
+ - A story can be implemented without every proof column if the story explains why
40
+ - Agents must run `npm test` and `npm run typecheck` before claiming done
41
+
42
+ ## Validation Commands
43
+
44
+ ```bash
45
+ npm test # Run all unit tests (1600+)
46
+ npm run typecheck # TypeScript check + strip-types import
47
+ npm run check # Biome lint + format
48
+ gh run list --limit 1 # Check latest CI status
49
+ ```