pi-crew 0.2.2 → 0.2.4

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 (354) hide show
  1. package/AGENTS.md +57 -32
  2. package/CHANGELOG.md +466 -413
  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 -0
  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-plan-2026-05-12.md +463 -0
  25. package/docs/followup-review-2026-05-12.md +297 -0
  26. package/docs/followup-review-round3-2026-05-12.md +342 -0
  27. package/docs/followup-review-round4-2026-05-13.md +107 -0
  28. package/docs/implementation-plan-top3.md +333 -0
  29. package/docs/live-mailbox-runtime.md +36 -36
  30. package/docs/next-upgrade-roadmap.md +808 -808
  31. package/docs/oh-my-pi-research.md +509 -0
  32. package/docs/perf/baseline-2026-05.md +113 -0
  33. package/docs/perf/final-report-2026-05.md +206 -0
  34. package/docs/perf/sprint-1-report.md +71 -0
  35. package/docs/perf/sprint-2-report.md +81 -0
  36. package/docs/perf/sprint-2.5-report.md +53 -0
  37. package/docs/perf/sprint-3-report.md +36 -0
  38. package/docs/perf/sprint-4-report.md +47 -0
  39. package/docs/perf/sprint-5-report.md +51 -0
  40. package/docs/perf/sprint-6-report.md +94 -0
  41. package/docs/perf/sprint-7-report.md +74 -0
  42. package/docs/perf/upgrade-plan-2026-05.md +147 -0
  43. package/docs/pi-subagents3-deep-analysis.md +508 -0
  44. package/docs/product/README.md +31 -0
  45. package/docs/product/platform.md +27 -0
  46. package/docs/product/runtime-safety.md +37 -0
  47. package/docs/product/team-run.md +39 -0
  48. package/docs/product/team-tool.md +37 -0
  49. package/docs/publishing.md +65 -65
  50. package/docs/resource-formats.md +134 -134
  51. package/docs/runtime-analysis-child-vs-live.md +171 -0
  52. package/docs/runtime-flow.md +148 -148
  53. package/docs/runtime-migration-in-process-analysis.md +250 -0
  54. package/docs/stories/README.md +30 -0
  55. package/docs/stories/backlog.md +36 -0
  56. package/docs/templates/decision.md +27 -0
  57. package/docs/templates/story.md +44 -0
  58. package/docs/templates/validation-report.md +32 -0
  59. package/docs/usage.md +238 -238
  60. package/index.ts +7 -6
  61. package/install.mjs +65 -65
  62. package/package.json +107 -99
  63. package/schema.json +222 -222
  64. package/skills/child-pi-spawning/SKILL.md +213 -0
  65. package/skills/context-artifact-hygiene/SKILL.md +32 -0
  66. package/skills/event-log-tracing/SKILL.md +299 -0
  67. package/skills/git-master/SKILL.md +225 -24
  68. package/skills/live-agent-lifecycle/SKILL.md +192 -0
  69. package/skills/mailbox-interactive/SKILL.md +300 -19
  70. package/skills/model-routing-context/SKILL.md +94 -0
  71. package/skills/multi-perspective-review/SKILL.md +88 -0
  72. package/skills/read-only-explorer/SKILL.md +250 -26
  73. package/skills/safe-bash/SKILL.md +307 -21
  74. package/skills/verification-before-done/SKILL.md +11 -2
  75. package/skills/widget-rendering/SKILL.md +258 -0
  76. package/skills/workspace-isolation/SKILL.md +202 -0
  77. package/skills/worktree-isolation/SKILL.md +202 -18
  78. package/src/adapters/claude-adapter.ts +25 -25
  79. package/src/adapters/codex-adapter.ts +21 -21
  80. package/src/adapters/cursor-adapter.ts +17 -17
  81. package/src/adapters/export-util.ts +137 -137
  82. package/src/adapters/index.ts +15 -15
  83. package/src/adapters/registry.ts +18 -18
  84. package/src/adapters/types.ts +23 -23
  85. package/src/agents/agent-config.ts +38 -38
  86. package/src/agents/agent-serializer.ts +38 -38
  87. package/src/agents/discover-agents.ts +121 -118
  88. package/src/config/config.ts +740 -858
  89. package/src/config/defaults.ts +96 -96
  90. package/src/config/drift-detector.ts +211 -211
  91. package/src/config/markers.ts +327 -327
  92. package/src/config/resilient-parser.ts +109 -108
  93. package/src/config/suggestions.ts +74 -74
  94. package/src/config/types.ts +199 -0
  95. package/src/extension/async-notifier.ts +123 -89
  96. package/src/extension/autonomous-policy.ts +169 -169
  97. package/src/extension/cross-extension-rpc.ts +104 -103
  98. package/src/extension/help.ts +47 -47
  99. package/src/extension/import-index.ts +69 -69
  100. package/src/extension/management.ts +395 -382
  101. package/src/extension/notification-router.ts +116 -116
  102. package/src/extension/notification-sink.ts +51 -51
  103. package/src/extension/project-init.ts +168 -168
  104. package/src/extension/register.ts +859 -668
  105. package/src/extension/registration/artifact-cleanup.ts +15 -15
  106. package/src/extension/registration/command-utils.ts +54 -54
  107. package/src/extension/registration/commands.ts +559 -452
  108. package/src/extension/registration/compaction-guard.ts +125 -125
  109. package/src/extension/registration/subagent-helpers.ts +102 -102
  110. package/src/extension/registration/subagent-tools.ts +220 -158
  111. package/src/extension/registration/team-tool.ts +159 -98
  112. package/src/extension/registration/viewers.ts +29 -0
  113. package/src/extension/result-watcher.ts +128 -128
  114. package/src/extension/run-bundle-schema.ts +89 -89
  115. package/src/extension/run-export.ts +73 -73
  116. package/src/extension/run-import.ts +84 -84
  117. package/src/extension/run-index.ts +94 -94
  118. package/src/extension/run-maintenance.ts +142 -142
  119. package/src/extension/session-summary.ts +8 -8
  120. package/src/extension/team-manager-command.ts +96 -95
  121. package/src/extension/team-recommendation.ts +188 -188
  122. package/src/extension/team-tool/api.ts +5 -2
  123. package/src/extension/team-tool/cancel.ts +224 -209
  124. package/src/extension/team-tool/config-patch.ts +36 -36
  125. package/src/extension/team-tool/context.ts +60 -60
  126. package/src/extension/team-tool/doctor.ts +242 -242
  127. package/src/extension/team-tool/handle-settings.ts +421 -195
  128. package/src/extension/team-tool/inspect.ts +41 -41
  129. package/src/extension/team-tool/lifecycle-actions.ts +139 -139
  130. package/src/extension/team-tool/parallel-dispatch.ts +156 -156
  131. package/src/extension/team-tool/plan.ts +19 -19
  132. package/src/extension/team-tool/respond.ts +112 -111
  133. package/src/extension/team-tool/run.ts +246 -228
  134. package/src/extension/team-tool/status.ts +110 -110
  135. package/src/extension/team-tool-types.ts +13 -13
  136. package/src/extension/team-tool.ts +16 -4
  137. package/src/extension/tool-result.ts +16 -16
  138. package/src/extension/validate-resources.ts +77 -77
  139. package/src/hooks/registry.ts +61 -61
  140. package/src/hooks/types.ts +40 -40
  141. package/src/i18n.ts +184 -184
  142. package/src/observability/correlation.ts +35 -35
  143. package/src/observability/event-to-metric.ts +68 -68
  144. package/src/observability/exporters/adapter.ts +30 -30
  145. package/src/observability/exporters/otlp-exporter.ts +106 -92
  146. package/src/observability/exporters/prometheus-exporter.ts +54 -54
  147. package/src/observability/metric-registry.ts +87 -87
  148. package/src/observability/metric-retention.ts +54 -54
  149. package/src/observability/metric-sink.ts +81 -56
  150. package/src/observability/metrics-primitives.ts +167 -167
  151. package/src/prompt/prompt-runtime.ts +72 -72
  152. package/src/runtime/adaptive-plan.ts +338 -0
  153. package/src/runtime/agent-control.ts +169 -169
  154. package/src/runtime/agent-memory.ts +72 -72
  155. package/src/runtime/agent-observability.ts +114 -114
  156. package/src/runtime/async-marker.ts +26 -26
  157. package/src/runtime/async-runner.ts +153 -79
  158. package/src/runtime/attention-events.ts +28 -28
  159. package/src/runtime/auto-resume.ts +100 -100
  160. package/src/runtime/background-runner.ts +122 -88
  161. package/src/runtime/cancellation.ts +61 -61
  162. package/src/runtime/capability-inventory.ts +116 -116
  163. package/src/runtime/child-pi-pool.ts +68 -0
  164. package/src/runtime/child-pi.ts +541 -463
  165. package/src/runtime/code-summary.ts +247 -247
  166. package/src/runtime/compaction-summary.ts +271 -271
  167. package/src/runtime/concurrency.ts +58 -58
  168. package/src/runtime/crash-recovery.ts +317 -301
  169. package/src/runtime/crew-agent-records.ts +379 -281
  170. package/src/runtime/crew-agent-runtime.ts +60 -60
  171. package/src/runtime/cross-extension-rpc.ts +72 -0
  172. package/src/runtime/custom-tools/irc-tool.ts +201 -201
  173. package/src/runtime/custom-tools/submit-result-tool.ts +90 -90
  174. package/src/runtime/deadletter.ts +47 -47
  175. package/src/runtime/delivery-coordinator.ts +176 -176
  176. package/src/runtime/delta-conflict.ts +360 -360
  177. package/src/runtime/diagnostic-export.ts +102 -102
  178. package/src/runtime/direct-run.ts +35 -35
  179. package/src/runtime/effectiveness.ts +82 -81
  180. package/src/runtime/errors/crew-errors.ts +166 -0
  181. package/src/runtime/event-stream-bridge.ts +92 -92
  182. package/src/runtime/foreground-control.ts +82 -82
  183. package/src/runtime/green-contract.ts +46 -46
  184. package/src/runtime/group-join.ts +234 -106
  185. package/src/runtime/heartbeat-watcher.ts +145 -124
  186. package/src/runtime/iteration-hooks.ts +267 -264
  187. package/src/runtime/live-agent-control.ts +88 -88
  188. package/src/runtime/live-agent-manager.ts +377 -179
  189. package/src/runtime/live-control-realtime.ts +36 -36
  190. package/src/runtime/live-session-runtime.ts +676 -599
  191. package/src/runtime/loop-gates.ts +129 -129
  192. package/src/runtime/manifest-cache.ts +263 -263
  193. package/src/runtime/mcp-proxy.ts +113 -113
  194. package/src/runtime/metric-parser.ts +40 -40
  195. package/src/runtime/model-fallback.ts +282 -274
  196. package/src/runtime/model-resolver.ts +118 -0
  197. package/src/runtime/output-validator.ts +187 -187
  198. package/src/runtime/overflow-recovery.ts +175 -175
  199. package/src/runtime/parallel-research.ts +44 -44
  200. package/src/runtime/parallel-utils.ts +156 -156
  201. package/src/runtime/parent-guard.ts +80 -80
  202. package/src/runtime/phase-progress.ts +217 -217
  203. package/src/runtime/pi-args.ts +165 -165
  204. package/src/runtime/pi-json-output.ts +111 -111
  205. package/src/runtime/pi-spawn.ts +167 -167
  206. package/src/runtime/policy-engine.ts +79 -79
  207. package/src/runtime/post-checks.ts +125 -122
  208. package/src/runtime/post-exit-stdio-guard.ts +86 -86
  209. package/src/runtime/process-status.ts +97 -73
  210. package/src/runtime/progress-event-coalescer.ts +43 -43
  211. package/src/runtime/recovery-recipes.ts +74 -74
  212. package/src/runtime/retry-executor.ts +81 -81
  213. package/src/runtime/role-permission.ts +39 -39
  214. package/src/runtime/run-tracker.ts +99 -0
  215. package/src/runtime/runtime-policy.ts +21 -0
  216. package/src/runtime/runtime-resolver.ts +94 -90
  217. package/src/runtime/scheduler.ts +294 -0
  218. package/src/runtime/semaphore.ts +131 -131
  219. package/src/runtime/sensitive-paths.ts +92 -92
  220. package/src/runtime/session-usage.ts +79 -79
  221. package/src/runtime/settings-store.ts +103 -0
  222. package/src/runtime/sidechain-output.ts +29 -29
  223. package/src/runtime/skill-instructions.ts +222 -222
  224. package/src/runtime/stale-reconciler.ts +198 -189
  225. package/src/runtime/streaming-output.ts +47 -0
  226. package/src/runtime/subagent-manager.ts +404 -395
  227. package/src/runtime/subprocess-tool-registry.ts +67 -67
  228. package/src/runtime/task-display.ts +38 -38
  229. package/src/runtime/task-graph-scheduler.ts +122 -122
  230. package/src/runtime/task-graph.ts +207 -207
  231. package/src/runtime/task-output-context.ts +177 -177
  232. package/src/runtime/task-packet.ts +93 -93
  233. package/src/runtime/task-quality.ts +207 -207
  234. package/src/runtime/task-runner/capabilities.ts +78 -78
  235. package/src/runtime/task-runner/live-executor.ts +131 -113
  236. package/src/runtime/task-runner/progress.ts +119 -119
  237. package/src/runtime/task-runner/prompt-builder.ts +139 -139
  238. package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
  239. package/src/runtime/task-runner/result-utils.ts +14 -14
  240. package/src/runtime/task-runner/run-projection.ts +103 -103
  241. package/src/runtime/task-runner/state-helpers.ts +22 -22
  242. package/src/runtime/task-runner.ts +469 -458
  243. package/src/runtime/team-runner.ts +693 -945
  244. package/src/runtime/usage-tracker.ts +71 -0
  245. package/src/runtime/worker-heartbeat.ts +21 -21
  246. package/src/runtime/worker-startup.ts +57 -57
  247. package/src/runtime/workflow-state.ts +187 -187
  248. package/src/runtime/yield-handler.ts +190 -189
  249. package/src/schema/config-schema.ts +172 -168
  250. package/src/schema/team-tool-schema.ts +126 -125
  251. package/src/schema/validation-types.ts +151 -148
  252. package/src/skills/discover-skills.ts +67 -67
  253. package/src/skills/skill-templates.ts +374 -374
  254. package/src/state/active-run-registry.ts +227 -191
  255. package/src/state/artifact-store.ts +130 -129
  256. package/src/state/atomic-write.ts +262 -178
  257. package/src/state/blob-store.ts +116 -116
  258. package/src/state/contracts.ts +111 -111
  259. package/src/state/event-log-rotation.ts +161 -158
  260. package/src/state/event-log.ts +383 -240
  261. package/src/state/event-reconstructor.ts +217 -217
  262. package/src/state/jsonl-writer.ts +82 -82
  263. package/src/state/locks.ts +146 -148
  264. package/src/state/mailbox.ts +446 -405
  265. package/src/state/state-store.ts +364 -351
  266. package/src/state/task-claims.ts +44 -44
  267. package/src/state/types.ts +285 -285
  268. package/src/state/usage.ts +29 -29
  269. package/src/subagents/async-entry.ts +1 -1
  270. package/src/subagents/index.ts +3 -3
  271. package/src/subagents/live/control.ts +1 -1
  272. package/src/subagents/live/manager.ts +1 -1
  273. package/src/subagents/live/realtime.ts +1 -1
  274. package/src/subagents/live/session-runtime.ts +1 -1
  275. package/src/subagents/manager.ts +1 -1
  276. package/src/subagents/spawn.ts +1 -1
  277. package/src/teams/discover-teams.ts +116 -116
  278. package/src/teams/team-config.ts +27 -27
  279. package/src/teams/team-serializer.ts +38 -38
  280. package/src/types/diff.d.ts +18 -18
  281. package/src/ui/agent-management-overlay.ts +144 -144
  282. package/src/ui/crew-widget.ts +487 -370
  283. package/src/ui/dashboard-panes/agents-pane.ts +109 -28
  284. package/src/ui/dashboard-panes/cancellation-pane.ts +42 -42
  285. package/src/ui/dashboard-panes/capability-pane.ts +59 -59
  286. package/src/ui/dashboard-panes/health-pane.ts +30 -30
  287. package/src/ui/dashboard-panes/mailbox-pane.ts +35 -35
  288. package/src/ui/dashboard-panes/progress-pane.ts +30 -30
  289. package/src/ui/dashboard-panes/transcript-pane.ts +10 -10
  290. package/src/ui/heartbeat-aggregator.ts +63 -63
  291. package/src/ui/keybinding-map.ts +97 -94
  292. package/src/ui/live-conversation-overlay.ts +152 -0
  293. package/src/ui/live-run-sidebar.ts +180 -180
  294. package/src/ui/mascot.ts +442 -442
  295. package/src/ui/overlays/agent-picker-overlay.ts +57 -57
  296. package/src/ui/overlays/confirm-overlay.ts +58 -58
  297. package/src/ui/overlays/mailbox-compose-overlay.ts +144 -144
  298. package/src/ui/overlays/mailbox-compose-preview.ts +63 -63
  299. package/src/ui/overlays/mailbox-detail-overlay.ts +122 -122
  300. package/src/ui/pi-ui-compat.ts +57 -57
  301. package/src/ui/powerbar-publisher.ts +221 -197
  302. package/src/ui/render-scheduler.ts +216 -143
  303. package/src/ui/run-action-dispatcher.ts +118 -117
  304. package/src/ui/run-dashboard.ts +526 -464
  305. package/src/ui/run-event-bus.ts +208 -208
  306. package/src/ui/run-snapshot-cache.ts +826 -777
  307. package/src/ui/settings-overlay.ts +721 -0
  308. package/src/ui/snapshot-types.ts +86 -70
  309. package/src/ui/theme-adapter.ts +190 -190
  310. package/src/ui/tool-progress-formatter.ts +89 -0
  311. package/src/ui/transcript-cache.ts +94 -94
  312. package/src/ui/transcript-viewer.ts +335 -335
  313. package/src/utils/conflict-detect.ts +662 -0
  314. package/src/utils/env-filter.ts +30 -0
  315. package/src/utils/file-coalescer.ts +86 -86
  316. package/src/utils/frontmatter.ts +68 -68
  317. package/src/utils/fs-watch.ts +88 -31
  318. package/src/utils/gh-protocol.ts +479 -0
  319. package/src/utils/ids.ts +17 -17
  320. package/src/utils/incremental-reader.ts +104 -104
  321. package/src/utils/internal-error.ts +6 -6
  322. package/src/utils/names.ts +27 -27
  323. package/src/utils/paths.ts +102 -63
  324. package/src/utils/redaction.ts +44 -44
  325. package/src/utils/resolve-shell.ts +34 -0
  326. package/src/utils/safe-paths.ts +47 -47
  327. package/src/utils/scan-cache.ts +136 -136
  328. package/src/utils/sleep.ts +2 -1
  329. package/src/utils/sse-parser.ts +134 -134
  330. package/src/utils/task-name-generator.ts +337 -337
  331. package/src/utils/timings.ts +33 -33
  332. package/src/utils/visual.ts +243 -198
  333. package/src/workflows/discover-workflows.ts +139 -139
  334. package/src/workflows/validate-workflow.ts +40 -40
  335. package/src/workflows/workflow-config.ts +26 -26
  336. package/src/workflows/workflow-serializer.ts +32 -32
  337. package/src/worktree/branch-freshness.ts +45 -45
  338. package/src/worktree/cleanup.ts +75 -72
  339. package/src/worktree/worktree-manager.ts +188 -146
  340. package/teams/default.team.md +12 -12
  341. package/teams/fast-fix.team.md +11 -11
  342. package/teams/implementation.team.md +18 -18
  343. package/teams/parallel-research.team.md +14 -14
  344. package/teams/research.team.md +11 -11
  345. package/teams/review.team.md +12 -12
  346. package/tsconfig.json +19 -19
  347. package/workflows/default.workflow.md +30 -30
  348. package/workflows/fast-fix.workflow.md +23 -23
  349. package/workflows/implementation.workflow.md +43 -43
  350. package/workflows/parallel-research.workflow.md +46 -46
  351. package/workflows/research.workflow.md +22 -22
  352. package/workflows/review.workflow.md +30 -30
  353. package/skills/task-packet/SKILL.md +0 -28
  354. 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
+ ```