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.
- package/AGENTS.md +57 -32
- package/CHANGELOG.md +466 -448
- package/LICENSE +21 -21
- package/NOTICE.md +16 -16
- package/README.md +323 -323
- package/docs/FEATURE_INTAKE.md +126 -0
- package/docs/HARNESS.md +86 -0
- package/docs/HARNESS_BACKLOG.md +41 -0
- package/docs/TEST_MATRIX.md +49 -0
- package/docs/actions-reference.md +595 -595
- package/docs/architecture.md +180 -180
- package/docs/code-review-2026-05-11.md +592 -592
- package/docs/commands-reference.md +347 -347
- package/docs/comparison-pi-subagents-vs-pi-crew.md +303 -0
- package/docs/decisions/0001-durable-state.md +41 -0
- package/docs/decisions/0002-child-process-for-async.md +42 -0
- package/docs/decisions/0003-depth-guard.md +36 -0
- package/docs/decisions/0004-execfile-over-exec.md +34 -0
- package/docs/decisions/0005-no-parameter-properties.md +49 -0
- package/docs/decisions/0006-publish-bundled-esm.md +63 -0
- package/docs/decisions/0007-active-run-binary-index.md +54 -0
- package/docs/decisions/0008-child-pi-warm-pool.md +61 -0
- package/docs/decisions/README.md +23 -0
- package/docs/followup-review-round4-2026-05-13.md +107 -0
- package/docs/implementation-plan-top3.md +333 -0
- package/docs/live-mailbox-runtime.md +36 -36
- package/docs/next-upgrade-roadmap.md +808 -808
- package/docs/oh-my-pi-research.md +509 -0
- package/docs/perf/baseline-2026-05.md +113 -0
- package/docs/perf/final-report-2026-05.md +206 -0
- package/docs/perf/sprint-1-report.md +71 -0
- package/docs/perf/sprint-2-report.md +81 -0
- package/docs/perf/sprint-2.5-report.md +53 -0
- package/docs/perf/sprint-3-report.md +36 -0
- package/docs/perf/sprint-4-report.md +47 -0
- package/docs/perf/sprint-5-report.md +51 -0
- package/docs/perf/sprint-6-report.md +94 -0
- package/docs/perf/sprint-7-report.md +74 -0
- package/docs/perf/upgrade-plan-2026-05.md +147 -0
- package/docs/pi-subagents3-deep-analysis.md +508 -0
- package/docs/product/README.md +31 -0
- package/docs/product/platform.md +27 -0
- package/docs/product/runtime-safety.md +37 -0
- package/docs/product/team-run.md +39 -0
- package/docs/product/team-tool.md +37 -0
- package/docs/publishing.md +65 -65
- package/docs/resource-formats.md +134 -134
- package/docs/runtime-analysis-child-vs-live.md +171 -0
- package/docs/runtime-flow.md +148 -148
- package/docs/runtime-migration-in-process-analysis.md +250 -0
- package/docs/stories/README.md +30 -0
- package/docs/stories/backlog.md +36 -0
- package/docs/templates/decision.md +27 -0
- package/docs/templates/story.md +44 -0
- package/docs/templates/validation-report.md +32 -0
- package/docs/usage.md +238 -238
- package/index.ts +7 -6
- package/install.mjs +65 -65
- package/package.json +107 -100
- package/schema.json +222 -222
- package/skills/child-pi-spawning/SKILL.md +213 -0
- package/skills/context-artifact-hygiene/SKILL.md +32 -0
- package/skills/event-log-tracing/SKILL.md +299 -0
- package/skills/git-master/SKILL.md +225 -24
- package/skills/live-agent-lifecycle/SKILL.md +192 -0
- package/skills/mailbox-interactive/SKILL.md +300 -19
- package/skills/model-routing-context/SKILL.md +94 -0
- package/skills/multi-perspective-review/SKILL.md +88 -0
- package/skills/read-only-explorer/SKILL.md +250 -26
- package/skills/safe-bash/SKILL.md +307 -21
- package/skills/verification-before-done/SKILL.md +11 -2
- package/skills/widget-rendering/SKILL.md +258 -0
- package/skills/workspace-isolation/SKILL.md +202 -0
- package/skills/worktree-isolation/SKILL.md +202 -18
- package/src/adapters/claude-adapter.ts +25 -25
- package/src/adapters/codex-adapter.ts +21 -21
- package/src/adapters/cursor-adapter.ts +17 -17
- package/src/adapters/export-util.ts +137 -137
- package/src/adapters/index.ts +15 -15
- package/src/adapters/registry.ts +18 -18
- package/src/adapters/types.ts +23 -23
- package/src/agents/agent-config.ts +38 -38
- package/src/agents/agent-serializer.ts +38 -38
- package/src/agents/discover-agents.ts +121 -118
- package/src/config/config.ts +740 -858
- package/src/config/defaults.ts +96 -96
- package/src/config/drift-detector.ts +211 -211
- package/src/config/markers.ts +327 -327
- package/src/config/resilient-parser.ts +109 -108
- package/src/config/suggestions.ts +74 -74
- package/src/config/types.ts +199 -0
- package/src/extension/async-notifier.ts +123 -89
- package/src/extension/autonomous-policy.ts +169 -169
- package/src/extension/cross-extension-rpc.ts +104 -104
- package/src/extension/help.ts +47 -47
- package/src/extension/import-index.ts +69 -69
- package/src/extension/management.ts +395 -382
- package/src/extension/notification-router.ts +116 -116
- package/src/extension/notification-sink.ts +51 -51
- package/src/extension/project-init.ts +168 -168
- package/src/extension/register.ts +859 -668
- package/src/extension/registration/artifact-cleanup.ts +15 -15
- package/src/extension/registration/command-utils.ts +54 -54
- package/src/extension/registration/commands.ts +559 -452
- package/src/extension/registration/compaction-guard.ts +125 -125
- package/src/extension/registration/subagent-helpers.ts +102 -102
- package/src/extension/registration/subagent-tools.ts +220 -159
- package/src/extension/registration/team-tool.ts +159 -99
- package/src/extension/registration/viewers.ts +29 -0
- package/src/extension/result-watcher.ts +128 -128
- package/src/extension/run-bundle-schema.ts +89 -89
- package/src/extension/run-export.ts +73 -73
- package/src/extension/run-import.ts +84 -84
- package/src/extension/run-index.ts +94 -94
- package/src/extension/run-maintenance.ts +142 -142
- package/src/extension/session-summary.ts +8 -8
- package/src/extension/team-manager-command.ts +96 -96
- package/src/extension/team-recommendation.ts +188 -188
- package/src/extension/team-tool/api.ts +5 -2
- package/src/extension/team-tool/cancel.ts +224 -209
- package/src/extension/team-tool/config-patch.ts +36 -36
- package/src/extension/team-tool/context.ts +60 -60
- package/src/extension/team-tool/doctor.ts +242 -242
- package/src/extension/team-tool/handle-settings.ts +421 -195
- package/src/extension/team-tool/inspect.ts +41 -41
- package/src/extension/team-tool/lifecycle-actions.ts +139 -139
- package/src/extension/team-tool/parallel-dispatch.ts +156 -156
- package/src/extension/team-tool/plan.ts +19 -19
- package/src/extension/team-tool/respond.ts +112 -111
- package/src/extension/team-tool/run.ts +246 -229
- package/src/extension/team-tool/status.ts +110 -110
- package/src/extension/team-tool-types.ts +13 -13
- package/src/extension/team-tool.ts +344 -344
- package/src/extension/tool-result.ts +16 -16
- package/src/extension/validate-resources.ts +77 -77
- package/src/hooks/registry.ts +61 -61
- package/src/hooks/types.ts +40 -40
- package/src/i18n.ts +184 -184
- package/src/observability/correlation.ts +35 -35
- package/src/observability/event-to-metric.ts +68 -68
- package/src/observability/exporters/adapter.ts +30 -30
- package/src/observability/exporters/otlp-exporter.ts +106 -92
- package/src/observability/exporters/prometheus-exporter.ts +54 -54
- package/src/observability/metric-registry.ts +87 -87
- package/src/observability/metric-retention.ts +54 -54
- package/src/observability/metric-sink.ts +81 -56
- package/src/observability/metrics-primitives.ts +167 -167
- package/src/prompt/prompt-runtime.ts +72 -72
- package/src/runtime/adaptive-plan.ts +338 -0
- package/src/runtime/agent-control.ts +169 -169
- package/src/runtime/agent-memory.ts +72 -72
- package/src/runtime/agent-observability.ts +114 -114
- package/src/runtime/async-marker.ts +26 -26
- package/src/runtime/async-runner.ts +153 -153
- package/src/runtime/attention-events.ts +28 -28
- package/src/runtime/auto-resume.ts +100 -100
- package/src/runtime/background-runner.ts +122 -89
- package/src/runtime/cancellation.ts +61 -61
- package/src/runtime/capability-inventory.ts +116 -116
- package/src/runtime/child-pi-pool.ts +68 -0
- package/src/runtime/child-pi.ts +541 -461
- package/src/runtime/code-summary.ts +247 -247
- package/src/runtime/compaction-summary.ts +271 -271
- package/src/runtime/concurrency.ts +58 -58
- package/src/runtime/crash-recovery.ts +317 -301
- package/src/runtime/crew-agent-records.ts +379 -281
- package/src/runtime/crew-agent-runtime.ts +60 -60
- package/src/runtime/cross-extension-rpc.ts +72 -0
- package/src/runtime/custom-tools/irc-tool.ts +201 -201
- package/src/runtime/custom-tools/submit-result-tool.ts +90 -90
- package/src/runtime/deadletter.ts +47 -47
- package/src/runtime/delivery-coordinator.ts +176 -176
- package/src/runtime/delta-conflict.ts +360 -360
- package/src/runtime/diagnostic-export.ts +102 -102
- package/src/runtime/direct-run.ts +35 -35
- package/src/runtime/effectiveness.ts +82 -81
- package/src/runtime/errors/crew-errors.ts +166 -0
- package/src/runtime/event-stream-bridge.ts +92 -92
- package/src/runtime/foreground-control.ts +82 -82
- package/src/runtime/green-contract.ts +46 -46
- package/src/runtime/group-join.ts +234 -106
- package/src/runtime/heartbeat-watcher.ts +145 -124
- package/src/runtime/iteration-hooks.ts +267 -267
- package/src/runtime/live-agent-control.ts +88 -88
- package/src/runtime/live-agent-manager.ts +377 -179
- package/src/runtime/live-control-realtime.ts +36 -36
- package/src/runtime/live-session-runtime.ts +676 -600
- package/src/runtime/loop-gates.ts +129 -129
- package/src/runtime/manifest-cache.ts +263 -263
- package/src/runtime/mcp-proxy.ts +113 -113
- package/src/runtime/metric-parser.ts +40 -40
- package/src/runtime/model-fallback.ts +282 -274
- package/src/runtime/model-resolver.ts +118 -0
- package/src/runtime/output-validator.ts +187 -187
- package/src/runtime/overflow-recovery.ts +175 -175
- package/src/runtime/parallel-research.ts +44 -44
- package/src/runtime/parallel-utils.ts +156 -156
- package/src/runtime/parent-guard.ts +80 -80
- package/src/runtime/phase-progress.ts +217 -217
- package/src/runtime/pi-args.ts +165 -165
- package/src/runtime/pi-json-output.ts +111 -111
- package/src/runtime/pi-spawn.ts +167 -167
- package/src/runtime/policy-engine.ts +79 -79
- package/src/runtime/post-checks.ts +125 -125
- package/src/runtime/post-exit-stdio-guard.ts +86 -86
- package/src/runtime/process-status.ts +97 -73
- package/src/runtime/progress-event-coalescer.ts +43 -43
- package/src/runtime/recovery-recipes.ts +74 -74
- package/src/runtime/retry-executor.ts +81 -81
- package/src/runtime/role-permission.ts +39 -39
- package/src/runtime/run-tracker.ts +99 -0
- package/src/runtime/runtime-policy.ts +21 -0
- package/src/runtime/runtime-resolver.ts +94 -91
- package/src/runtime/scheduler.ts +294 -0
- package/src/runtime/semaphore.ts +131 -131
- package/src/runtime/sensitive-paths.ts +92 -92
- package/src/runtime/session-usage.ts +79 -79
- package/src/runtime/settings-store.ts +103 -0
- package/src/runtime/sidechain-output.ts +29 -29
- package/src/runtime/skill-instructions.ts +222 -222
- package/src/runtime/stale-reconciler.ts +198 -189
- package/src/runtime/streaming-output.ts +47 -0
- package/src/runtime/subagent-manager.ts +404 -400
- package/src/runtime/subprocess-tool-registry.ts +67 -67
- package/src/runtime/task-display.ts +38 -38
- package/src/runtime/task-graph-scheduler.ts +122 -122
- package/src/runtime/task-graph.ts +207 -207
- package/src/runtime/task-output-context.ts +177 -177
- package/src/runtime/task-packet.ts +93 -93
- package/src/runtime/task-quality.ts +207 -207
- package/src/runtime/task-runner/capabilities.ts +78 -78
- package/src/runtime/task-runner/live-executor.ts +131 -113
- package/src/runtime/task-runner/progress.ts +119 -119
- package/src/runtime/task-runner/prompt-builder.ts +139 -139
- package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
- package/src/runtime/task-runner/result-utils.ts +14 -14
- package/src/runtime/task-runner/run-projection.ts +103 -103
- package/src/runtime/task-runner/state-helpers.ts +22 -22
- package/src/runtime/task-runner.ts +469 -459
- package/src/runtime/team-runner.ts +693 -945
- package/src/runtime/usage-tracker.ts +71 -0
- package/src/runtime/worker-heartbeat.ts +21 -21
- package/src/runtime/worker-startup.ts +57 -57
- package/src/runtime/workflow-state.ts +187 -187
- package/src/runtime/yield-handler.ts +190 -190
- package/src/schema/config-schema.ts +172 -168
- package/src/schema/team-tool-schema.ts +126 -126
- package/src/schema/validation-types.ts +151 -148
- package/src/skills/discover-skills.ts +67 -67
- package/src/skills/skill-templates.ts +374 -374
- package/src/state/active-run-registry.ts +227 -191
- package/src/state/artifact-store.ts +130 -129
- package/src/state/atomic-write.ts +262 -195
- package/src/state/blob-store.ts +116 -116
- package/src/state/contracts.ts +111 -111
- package/src/state/event-log-rotation.ts +161 -158
- package/src/state/event-log.ts +383 -303
- package/src/state/event-reconstructor.ts +217 -217
- package/src/state/jsonl-writer.ts +82 -82
- package/src/state/locks.ts +146 -146
- package/src/state/mailbox.ts +446 -405
- package/src/state/state-store.ts +364 -351
- package/src/state/task-claims.ts +44 -44
- package/src/state/types.ts +285 -285
- package/src/state/usage.ts +29 -29
- package/src/subagents/async-entry.ts +1 -1
- package/src/subagents/index.ts +3 -3
- package/src/subagents/live/control.ts +1 -1
- package/src/subagents/live/manager.ts +1 -1
- package/src/subagents/live/realtime.ts +1 -1
- package/src/subagents/live/session-runtime.ts +1 -1
- package/src/subagents/manager.ts +1 -1
- package/src/subagents/spawn.ts +1 -1
- package/src/teams/discover-teams.ts +116 -116
- package/src/teams/team-config.ts +27 -27
- package/src/teams/team-serializer.ts +38 -38
- package/src/types/diff.d.ts +18 -18
- package/src/ui/agent-management-overlay.ts +144 -144
- package/src/ui/crew-widget.ts +487 -370
- package/src/ui/dashboard-panes/agents-pane.ts +109 -28
- package/src/ui/dashboard-panes/cancellation-pane.ts +42 -42
- package/src/ui/dashboard-panes/capability-pane.ts +59 -59
- package/src/ui/dashboard-panes/health-pane.ts +30 -30
- package/src/ui/dashboard-panes/mailbox-pane.ts +35 -35
- package/src/ui/dashboard-panes/progress-pane.ts +30 -30
- package/src/ui/dashboard-panes/transcript-pane.ts +10 -10
- package/src/ui/heartbeat-aggregator.ts +63 -63
- package/src/ui/keybinding-map.ts +97 -94
- package/src/ui/live-conversation-overlay.ts +152 -0
- package/src/ui/live-run-sidebar.ts +180 -180
- package/src/ui/mascot.ts +442 -442
- package/src/ui/overlays/agent-picker-overlay.ts +57 -57
- package/src/ui/overlays/confirm-overlay.ts +58 -58
- package/src/ui/overlays/mailbox-compose-overlay.ts +144 -144
- package/src/ui/overlays/mailbox-compose-preview.ts +63 -63
- package/src/ui/overlays/mailbox-detail-overlay.ts +122 -122
- package/src/ui/pi-ui-compat.ts +57 -57
- package/src/ui/powerbar-publisher.ts +221 -197
- package/src/ui/render-scheduler.ts +216 -143
- package/src/ui/run-action-dispatcher.ts +118 -118
- package/src/ui/run-dashboard.ts +526 -464
- package/src/ui/run-event-bus.ts +208 -208
- package/src/ui/run-snapshot-cache.ts +826 -777
- package/src/ui/settings-overlay.ts +721 -0
- package/src/ui/snapshot-types.ts +86 -70
- package/src/ui/theme-adapter.ts +190 -190
- package/src/ui/tool-progress-formatter.ts +89 -0
- package/src/ui/transcript-cache.ts +94 -94
- package/src/ui/transcript-viewer.ts +335 -335
- package/src/utils/conflict-detect.ts +662 -0
- package/src/utils/file-coalescer.ts +86 -86
- package/src/utils/frontmatter.ts +68 -68
- package/src/utils/fs-watch.ts +88 -31
- package/src/utils/gh-protocol.ts +479 -0
- package/src/utils/ids.ts +17 -17
- package/src/utils/incremental-reader.ts +104 -104
- package/src/utils/internal-error.ts +6 -6
- package/src/utils/names.ts +27 -27
- package/src/utils/paths.ts +102 -63
- package/src/utils/redaction.ts +44 -44
- package/src/utils/safe-paths.ts +47 -47
- package/src/utils/scan-cache.ts +136 -136
- package/src/utils/sse-parser.ts +134 -134
- package/src/utils/task-name-generator.ts +337 -337
- package/src/utils/timings.ts +33 -33
- package/src/utils/visual.ts +243 -198
- package/src/workflows/discover-workflows.ts +139 -139
- package/src/workflows/validate-workflow.ts +40 -40
- package/src/workflows/workflow-config.ts +26 -26
- package/src/workflows/workflow-serializer.ts +32 -32
- package/src/worktree/branch-freshness.ts +45 -45
- package/src/worktree/cleanup.ts +75 -75
- package/src/worktree/worktree-manager.ts +188 -188
- package/teams/default.team.md +12 -12
- package/teams/fast-fix.team.md +11 -11
- package/teams/implementation.team.md +18 -18
- package/teams/parallel-research.team.md +14 -14
- package/teams/research.team.md +11 -11
- package/teams/review.team.md +12 -12
- package/tsconfig.json +19 -19
- package/workflows/default.workflow.md +30 -30
- package/workflows/fast-fix.workflow.md +23 -23
- package/workflows/implementation.workflow.md +43 -43
- package/workflows/parallel-research.workflow.md +46 -46
- package/workflows/research.workflow.md +22 -22
- package/workflows/review.workflow.md +30 -30
- package/skills/task-packet/SKILL.md +0 -28
- 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
|
+
```
|
package/docs/HARNESS.md
ADDED
|
@@ -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
|
+
```
|