pi-crew 0.1.51 → 0.2.1

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 (240) hide show
  1. package/CHANGELOG.md +56 -1
  2. package/README.md +176 -781
  3. package/agents/analyst.md +11 -11
  4. package/agents/critic.md +11 -11
  5. package/agents/executor.md +11 -11
  6. package/agents/explorer.md +11 -11
  7. package/agents/planner.md +11 -11
  8. package/agents/reviewer.md +11 -11
  9. package/agents/security-reviewer.md +11 -11
  10. package/agents/test-engineer.md +11 -11
  11. package/agents/verifier.md +70 -11
  12. package/agents/writer.md +11 -11
  13. package/docs/actions-reference.md +595 -0
  14. package/docs/commands-reference.md +347 -0
  15. package/docs/runtime-flow.md +148 -148
  16. package/index.ts +6 -6
  17. package/package.json +99 -99
  18. package/skills/async-worker-recovery/SKILL.md +42 -42
  19. package/skills/context-artifact-hygiene/SKILL.md +52 -52
  20. package/skills/delegation-patterns/SKILL.md +54 -54
  21. package/skills/mailbox-interactive/SKILL.md +40 -40
  22. package/skills/model-routing-context/SKILL.md +39 -39
  23. package/skills/multi-perspective-review/SKILL.md +58 -58
  24. package/skills/observability-reliability/SKILL.md +41 -41
  25. package/skills/orchestration/SKILL.md +157 -157
  26. package/skills/ownership-session-security/SKILL.md +41 -41
  27. package/skills/pi-extension-lifecycle/SKILL.md +39 -39
  28. package/skills/requirements-to-task-packet/SKILL.md +63 -63
  29. package/skills/resource-discovery-config/SKILL.md +41 -41
  30. package/skills/runtime-state-reader/SKILL.md +44 -44
  31. package/skills/secure-agent-orchestration-review/SKILL.md +45 -45
  32. package/skills/state-mutation-locking/SKILL.md +42 -42
  33. package/skills/systematic-debugging/SKILL.md +67 -67
  34. package/skills/ui-render-performance/SKILL.md +39 -39
  35. package/skills/verification-before-done/SKILL.md +57 -57
  36. package/skills/worktree-isolation/SKILL.md +39 -39
  37. package/src/adapters/claude-adapter.ts +25 -0
  38. package/src/adapters/codex-adapter.ts +21 -0
  39. package/src/adapters/cursor-adapter.ts +17 -0
  40. package/src/adapters/export-util.ts +137 -0
  41. package/src/adapters/index.ts +15 -0
  42. package/src/adapters/registry.ts +18 -0
  43. package/src/adapters/types.ts +23 -0
  44. package/src/agents/agent-config.ts +2 -0
  45. package/src/agents/agent-search.ts +98 -98
  46. package/src/agents/discover-agents.ts +2 -1
  47. package/src/config/config.ts +13 -1
  48. package/src/config/drift-detector.ts +211 -0
  49. package/src/config/markers.ts +327 -0
  50. package/src/config/resilient-parser.ts +108 -0
  51. package/src/config/suggestions.ts +74 -0
  52. package/src/extension/cross-extension-rpc.ts +103 -94
  53. package/src/extension/project-init.ts +21 -1
  54. package/src/extension/register.ts +45 -14
  55. package/src/extension/registration/commands.ts +77 -8
  56. package/src/extension/registration/subagent-tools.ts +10 -1
  57. package/src/extension/registration/team-tool.ts +10 -1
  58. package/src/extension/registration/viewers.ts +48 -34
  59. package/src/extension/run-bundle-schema.ts +89 -89
  60. package/src/extension/run-import.ts +25 -1
  61. package/src/extension/run-index.ts +5 -1
  62. package/src/extension/run-maintenance.ts +142 -68
  63. package/src/extension/team-manager-command.ts +10 -1
  64. package/src/extension/team-tool/api.ts +441 -441
  65. package/src/extension/team-tool/doctor.ts +28 -3
  66. package/src/extension/team-tool/handle-settings.ts +195 -188
  67. package/src/extension/team-tool/inspect.ts +41 -41
  68. package/src/extension/team-tool/intent-policy.ts +42 -42
  69. package/src/extension/team-tool/lifecycle-actions.ts +27 -8
  70. package/src/extension/team-tool/plan.ts +19 -19
  71. package/src/extension/team-tool/run.ts +12 -1
  72. package/src/extension/team-tool.ts +332 -322
  73. package/src/i18n.ts +184 -184
  74. package/src/observability/exporters/otlp-exporter.ts +92 -77
  75. package/src/prompt/prompt-runtime.ts +72 -72
  76. package/src/runtime/agent-memory.ts +72 -72
  77. package/src/runtime/agent-observability.ts +114 -114
  78. package/src/runtime/async-marker.ts +26 -26
  79. package/src/runtime/attention-events.ts +28 -28
  80. package/src/runtime/auto-resume.ts +100 -0
  81. package/src/runtime/background-runner.ts +11 -1
  82. package/src/runtime/cancellation-token.ts +89 -89
  83. package/src/runtime/cancellation.ts +61 -61
  84. package/src/runtime/capability-inventory.ts +116 -116
  85. package/src/runtime/child-pi.ts +7 -2
  86. package/src/runtime/compaction-summary.ts +271 -0
  87. package/src/runtime/completion-guard.ts +190 -190
  88. package/src/runtime/crash-recovery.ts +33 -1
  89. package/src/runtime/delta-conflict.ts +360 -0
  90. package/src/runtime/direct-run.ts +35 -35
  91. package/src/runtime/foreground-control.ts +82 -82
  92. package/src/runtime/green-contract.ts +46 -46
  93. package/src/runtime/group-join.ts +106 -106
  94. package/src/runtime/heartbeat-gradient.ts +28 -28
  95. package/src/runtime/heartbeat-watcher.ts +124 -124
  96. package/src/runtime/iteration-hooks.ts +264 -0
  97. package/src/runtime/live-agent-control.ts +88 -88
  98. package/src/runtime/live-control-realtime.ts +36 -36
  99. package/src/runtime/live-extension-bridge.ts +150 -150
  100. package/src/runtime/live-irc.ts +92 -92
  101. package/src/runtime/live-session-health.ts +100 -100
  102. package/src/runtime/loop-gates.ts +129 -0
  103. package/src/runtime/metric-parser.ts +40 -0
  104. package/src/runtime/notebook-helpers.ts +90 -90
  105. package/src/runtime/orphan-sentinel.ts +7 -7
  106. package/src/runtime/parallel-research.ts +44 -44
  107. package/src/runtime/phase-progress.ts +217 -0
  108. package/src/runtime/pi-args.ts +38 -11
  109. package/src/runtime/pi-json-output.ts +111 -111
  110. package/src/runtime/pi-spawn.ts +57 -7
  111. package/src/runtime/policy-engine.ts +79 -79
  112. package/src/runtime/post-checks.ts +122 -0
  113. package/src/runtime/progress-event-coalescer.ts +43 -43
  114. package/src/runtime/prose-compressor.ts +164 -164
  115. package/src/runtime/recovery-recipes.ts +74 -74
  116. package/src/runtime/result-extractor.ts +121 -121
  117. package/src/runtime/role-permission.ts +39 -39
  118. package/src/runtime/sensitive-paths.ts +2 -2
  119. package/src/runtime/session-resources.ts +25 -25
  120. package/src/runtime/session-snapshot.ts +59 -59
  121. package/src/runtime/session-usage.ts +79 -79
  122. package/src/runtime/sidechain-output.ts +29 -29
  123. package/src/runtime/stream-preview.ts +177 -177
  124. package/src/runtime/supervisor-contact.ts +59 -59
  125. package/src/runtime/task-display.ts +38 -38
  126. package/src/runtime/task-graph.ts +207 -0
  127. package/src/runtime/task-quality.ts +207 -0
  128. package/src/runtime/task-runner/capabilities.ts +78 -78
  129. package/src/runtime/task-runner/live-executor.ts +7 -1
  130. package/src/runtime/task-runner/progress.ts +119 -119
  131. package/src/runtime/task-runner/prompt-pipeline.ts +64 -64
  132. package/src/runtime/task-runner/result-utils.ts +14 -14
  133. package/src/runtime/task-runner/run-projection.ts +103 -103
  134. package/src/runtime/task-runner/state-helpers.ts +22 -22
  135. package/src/runtime/team-runner.ts +117 -7
  136. package/src/runtime/worker-heartbeat.ts +21 -21
  137. package/src/runtime/worker-startup.ts +57 -57
  138. package/src/runtime/workflow-state.ts +187 -0
  139. package/src/runtime/workspace-tree.ts +298 -298
  140. package/src/schema/config-schema.ts +11 -0
  141. package/src/schema/validation-types.ts +148 -0
  142. package/src/skills/skill-templates.ts +374 -0
  143. package/src/state/active-run-registry.ts +35 -11
  144. package/src/state/atomic-write.ts +33 -26
  145. package/src/state/contracts.ts +1 -0
  146. package/src/state/event-reconstructor.ts +217 -0
  147. package/src/state/locks.ts +2 -13
  148. package/src/state/mailbox.ts +4 -3
  149. package/src/state/state-store.ts +16 -6
  150. package/src/state/task-claims.ts +44 -44
  151. package/src/state/types.ts +9 -0
  152. package/src/state/usage.ts +29 -29
  153. package/src/subagents/async-entry.ts +1 -1
  154. package/src/subagents/index.ts +3 -3
  155. package/src/subagents/live/control.ts +1 -1
  156. package/src/subagents/live/manager.ts +1 -1
  157. package/src/subagents/live/realtime.ts +1 -1
  158. package/src/subagents/live/session-runtime.ts +1 -1
  159. package/src/subagents/manager.ts +1 -1
  160. package/src/subagents/spawn.ts +1 -1
  161. package/src/teams/team-serializer.ts +38 -38
  162. package/src/types/diff.d.ts +18 -18
  163. package/src/ui/crew-footer.ts +101 -101
  164. package/src/ui/crew-select-list.ts +111 -111
  165. package/src/ui/crew-widget.ts +5 -2
  166. package/src/ui/dashboard-panes/cancellation-pane.ts +42 -42
  167. package/src/ui/dashboard-panes/capability-pane.ts +59 -59
  168. package/src/ui/dashboard-panes/mailbox-pane.ts +35 -35
  169. package/src/ui/dashboard-panes/metrics-pane.ts +34 -34
  170. package/src/ui/dashboard-panes/progress-pane.ts +11 -0
  171. package/src/ui/dynamic-border.ts +25 -25
  172. package/src/ui/layout-primitives.ts +106 -106
  173. package/src/ui/loaders.ts +158 -158
  174. package/src/ui/render-coalescer.ts +51 -51
  175. package/src/ui/render-diff.ts +119 -119
  176. package/src/ui/render-scheduler.ts +143 -143
  177. package/src/ui/run-action-dispatcher.ts +10 -1
  178. package/src/ui/spinner.ts +17 -17
  179. package/src/ui/status-colors.ts +58 -58
  180. package/src/ui/syntax-highlight.ts +116 -116
  181. package/src/ui/transcript-entries.ts +258 -258
  182. package/src/utils/completion-dedupe.ts +63 -63
  183. package/src/utils/frontmatter.ts +68 -68
  184. package/src/utils/git.ts +262 -262
  185. package/src/utils/ids.ts +17 -17
  186. package/src/utils/incremental-reader.ts +104 -104
  187. package/src/utils/names.ts +27 -27
  188. package/src/utils/redaction.ts +44 -44
  189. package/src/utils/safe-paths.ts +47 -47
  190. package/src/utils/scan-cache.ts +136 -136
  191. package/src/utils/sleep.ts +40 -26
  192. package/src/utils/task-name-generator.ts +337 -337
  193. package/src/workflows/validate-workflow.ts +40 -40
  194. package/src/worktree/branch-freshness.ts +45 -45
  195. package/teams/default.team.md +12 -12
  196. package/teams/fast-fix.team.md +11 -11
  197. package/teams/implementation.team.md +18 -18
  198. package/teams/parallel-research.team.md +14 -14
  199. package/teams/research.team.md +11 -11
  200. package/teams/review.team.md +12 -12
  201. package/workflows/default.workflow.md +30 -29
  202. package/workflows/fast-fix.workflow.md +23 -22
  203. package/workflows/implementation.workflow.md +43 -43
  204. package/workflows/parallel-research.workflow.md +46 -46
  205. package/workflows/research.workflow.md +22 -22
  206. package/workflows/review.workflow.md +30 -30
  207. package/docs/refactor-tasks-phase3.md +0 -394
  208. package/docs/refactor-tasks-phase4.md +0 -564
  209. package/docs/refactor-tasks-phase5.md +0 -402
  210. package/docs/refactor-tasks-phase6.md +0 -662
  211. package/docs/refactor-tasks.md +0 -1484
  212. package/docs/research/AGENT-EXECUTION-ARCHITECTURE.md +0 -261
  213. package/docs/research/AGENT-LIFECYCLE-COMPARISON.md +0 -111
  214. package/docs/research/AUDIT_OH_MY_PI.md +0 -261
  215. package/docs/research/AUDIT_PI_CREW.md +0 -457
  216. package/docs/research/CAVEMAN-DEEP-RESEARCH.md +0 -281
  217. package/docs/research/COMPARISON_OH_MY_PI_VS_PI_CREW.md +0 -264
  218. package/docs/research/DEEP-RESEARCH-PI-POWERBAR.md +0 -343
  219. package/docs/research/DEEP_RESEARCH_SUBAGENT_ARCHITECTURE.md +0 -480
  220. package/docs/research/GAP_CLOSURE_IMPLEMENTATION_PLAN.md +0 -354
  221. package/docs/research/IMPLEMENTATION_PLAN.md +0 -385
  222. package/docs/research/LIVE-SESSION-PRODUCTION-READY-PLAN.md +0 -502
  223. package/docs/research/OH-MY-PI-DEEP-RESEARCH-v14.7.6.md +0 -266
  224. package/docs/research/REMAINING-GAPS-PLAN.md +0 -363
  225. package/docs/research/SESSION-SUMMARY-2026-05-08.md +0 -146
  226. package/docs/research/UI-RESPONSIVENESS-AUDIT.md +0 -173
  227. package/docs/research-awesome-agent-skills-distillation.md +0 -100
  228. package/docs/research-extension-examples.md +0 -297
  229. package/docs/research-extension-system.md +0 -324
  230. package/docs/research-oh-my-pi-distillation.md +0 -369
  231. package/docs/research-optimization-plan.md +0 -548
  232. package/docs/research-phase10-distillation.md +0 -199
  233. package/docs/research-phase11-distillation.md +0 -201
  234. package/docs/research-phase8-operator-experience-plan.md +0 -819
  235. package/docs/research-phase9-observability-reliability-plan.md +0 -1190
  236. package/docs/research-pi-coding-agent.md +0 -357
  237. package/docs/research-source-pi-crew-reference.md +0 -174
  238. package/docs/research-ui-optimization-plan.md +0 -480
  239. package/docs/source-runtime-refactor-map.md +0 -107
  240. package/src/utils/atomic-write.ts +0 -33
@@ -1,41 +1,41 @@
1
- ---
2
- name: ownership-session-security
3
- description: Session ownership and authorization workflow. Use when implementing cancel, respond, steer, run ownership, cwd overrides, imported runs, or cross-session actions.
4
- ---
5
-
6
- # ownership-session-security
7
-
8
- Use this skill for cross-session safety and trust-boundary work.
9
-
10
- ## Source patterns distilled
11
-
12
- - Pi session IDs: `ctx.sessionManager.getSessionId()` from Pi core `ExtensionContext`
13
- - pi-crew ownership: `TeamRunManifest.ownerSessionId`, `src/extension/team-tool/run.ts`, `cancel.ts`, `respond.ts`
14
- - Path safety: `src/utils/safe-paths.ts`, `src/state/state-store.ts`, `src/state/mailbox.ts`
15
- - Destructive actions: `src/extension/team-tool/lifecycle-actions.ts`, `src/worktree/cleanup.ts`
16
-
17
- ## Rules
18
-
19
- - Propagate the active Pi session ID into `TeamContext` for every production tool/command path.
20
- - New runs should record `ownerSessionId` when available.
21
- - For owned runs, cross-session actions that mutate state must be rejected unless explicit force/admin semantics are designed and tested.
22
- - Legacy runs without `ownerSessionId` may remain permissive for backward compatibility, but document this behavior.
23
- - User/LLM-controlled path fields (`cwd`, import paths, artifact paths, task IDs) must be normalized and contained under an allowed base.
24
- - Use `resolveContainedPath`, `resolveRealContainedPath`, `assertSafePathId`, and symlink checks rather than ad-hoc `startsWith` checks.
25
- - Destructive management actions must require `confirm: true`; referenced resource deletes must require `force: true` where applicable.
26
-
27
- ## Anti-patterns
28
-
29
- - Assuming `ctx.sessionId` exists directly on Pi context.
30
- - Letting `cwd: ../other-project` move run state into another project.
31
- - Letting `respond`/`cancel` mutate a foreign owned run.
32
- - Trusting task IDs, run IDs, or artifact paths from tool params without validation.
33
-
34
- ## Verification
35
-
36
- ```bash
37
- cd pi-crew
38
- npx tsc --noEmit
39
- node --experimental-strip-types --test test/unit/cancel-ownership.test.ts test/unit/respond-tool.test.ts test/unit/cwd-override-security.test.ts test/unit/api-artifact-security.test.ts
40
- npm test
41
- ```
1
+ ---
2
+ name: ownership-session-security
3
+ description: Session ownership and authorization workflow. Use when implementing cancel, respond, steer, run ownership, cwd overrides, imported runs, or cross-session actions.
4
+ ---
5
+
6
+ # ownership-session-security
7
+
8
+ Use this skill for cross-session safety and trust-boundary work.
9
+
10
+ ## Source patterns distilled
11
+
12
+ - Pi session IDs: `ctx.sessionManager.getSessionId()` from Pi core `ExtensionContext`
13
+ - pi-crew ownership: `TeamRunManifest.ownerSessionId`, `src/extension/team-tool/run.ts`, `cancel.ts`, `respond.ts`
14
+ - Path safety: `src/utils/safe-paths.ts`, `src/state/state-store.ts`, `src/state/mailbox.ts`
15
+ - Destructive actions: `src/extension/team-tool/lifecycle-actions.ts`, `src/worktree/cleanup.ts`
16
+
17
+ ## Rules
18
+
19
+ - Propagate the active Pi session ID into `TeamContext` for every production tool/command path.
20
+ - New runs should record `ownerSessionId` when available.
21
+ - For owned runs, cross-session actions that mutate state must be rejected unless explicit force/admin semantics are designed and tested.
22
+ - Legacy runs without `ownerSessionId` may remain permissive for backward compatibility, but document this behavior.
23
+ - User/LLM-controlled path fields (`cwd`, import paths, artifact paths, task IDs) must be normalized and contained under an allowed base.
24
+ - Use `resolveContainedPath`, `resolveRealContainedPath`, `assertSafePathId`, and symlink checks rather than ad-hoc `startsWith` checks.
25
+ - Destructive management actions must require `confirm: true`; referenced resource deletes must require `force: true` where applicable.
26
+
27
+ ## Anti-patterns
28
+
29
+ - Assuming `ctx.sessionId` exists directly on Pi context.
30
+ - Letting `cwd: ../other-project` move run state into another project.
31
+ - Letting `respond`/`cancel` mutate a foreign owned run.
32
+ - Trusting task IDs, run IDs, or artifact paths from tool params without validation.
33
+
34
+ ## Verification
35
+
36
+ ```bash
37
+ cd pi-crew
38
+ npx tsc --noEmit
39
+ node --experimental-strip-types --test test/unit/cancel-ownership.test.ts test/unit/respond-tool.test.ts test/unit/cwd-override-security.test.ts test/unit/api-artifact-security.test.ts
40
+ npm test
41
+ ```
@@ -1,39 +1,39 @@
1
- ---
2
- name: pi-extension-lifecycle
3
- description: Pi extension lifecycle and registration patterns. Use when adding or reviewing extension tools, commands, resources, providers, event handlers, session hooks, or context-sensitive Pi API usage.
4
- ---
5
-
6
- # pi-extension-lifecycle
7
-
8
- Use this skill when working on Pi extension registration or lifecycle behavior.
9
-
10
- ## Source patterns distilled
11
-
12
- - Pi core: `source/pi-mono/packages/coding-agent/src/core/extensions/types.ts`, `loader.ts`, `runner.ts`
13
- - Pi examples: `source/pi-mono/packages/coding-agent/examples/extensions/`
14
- - pi-crew extension entry: `src/extension/register.ts`, `src/extension/registration/*.ts`
15
-
16
- ## Rules
17
-
18
- - Register tools, commands, shortcuts, widgets, providers, and event handlers from the extension factory or lifecycle callbacks.
19
- - Tool definitions should use a TypeBox schema and an `execute(toolCallId, params, signal, onUpdate, ctx)` handler.
20
- - Use fresh `ExtensionContext`/`ExtensionCommandContext` after session replacement (`newSession`, `fork`, `switchSession`, `reload`). Do not retain old context references for later work.
21
- - For session-scoped work, derive session identity from `ctx.sessionManager.getSessionId()` and pass it into pi-crew `TeamContext`.
22
- - Prefer small registration modules under `src/extension/registration/`; keep `index.ts` minimal.
23
- - Clean up intervals, event subscriptions, child processes, and watchers on session switch/shutdown.
24
- - Wrap optional Pi API hooks in compatibility checks/try-catch when supporting older Pi versions.
25
-
26
- ## Anti-patterns
27
-
28
- - Do not use stale context objects after session switch.
29
- - Do not register duplicate tool/command names and assume override behavior.
30
- - Do not perform blocking filesystem or network work inside extension render callbacks.
31
- - Do not add hardcoded global keybindings without config or collision review.
32
-
33
- ## Verification
34
-
35
- ```bash
36
- cd pi-crew
37
- npx tsc --noEmit
38
- npm test
39
- ```
1
+ ---
2
+ name: pi-extension-lifecycle
3
+ description: Pi extension lifecycle and registration patterns. Use when adding or reviewing extension tools, commands, resources, providers, event handlers, session hooks, or context-sensitive Pi API usage.
4
+ ---
5
+
6
+ # pi-extension-lifecycle
7
+
8
+ Use this skill when working on Pi extension registration or lifecycle behavior.
9
+
10
+ ## Source patterns distilled
11
+
12
+ - Pi core: `source/pi-mono/packages/coding-agent/src/core/extensions/types.ts`, `loader.ts`, `runner.ts`
13
+ - Pi examples: `source/pi-mono/packages/coding-agent/examples/extensions/`
14
+ - pi-crew extension entry: `src/extension/register.ts`, `src/extension/registration/*.ts`
15
+
16
+ ## Rules
17
+
18
+ - Register tools, commands, shortcuts, widgets, providers, and event handlers from the extension factory or lifecycle callbacks.
19
+ - Tool definitions should use a TypeBox schema and an `execute(toolCallId, params, signal, onUpdate, ctx)` handler.
20
+ - Use fresh `ExtensionContext`/`ExtensionCommandContext` after session replacement (`newSession`, `fork`, `switchSession`, `reload`). Do not retain old context references for later work.
21
+ - For session-scoped work, derive session identity from `ctx.sessionManager.getSessionId()` and pass it into pi-crew `TeamContext`.
22
+ - Prefer small registration modules under `src/extension/registration/`; keep `index.ts` minimal.
23
+ - Clean up intervals, event subscriptions, child processes, and watchers on session switch/shutdown.
24
+ - Wrap optional Pi API hooks in compatibility checks/try-catch when supporting older Pi versions.
25
+
26
+ ## Anti-patterns
27
+
28
+ - Do not use stale context objects after session switch.
29
+ - Do not register duplicate tool/command names and assume override behavior.
30
+ - Do not perform blocking filesystem or network work inside extension render callbacks.
31
+ - Do not add hardcoded global keybindings without config or collision review.
32
+
33
+ ## Verification
34
+
35
+ ```bash
36
+ cd pi-crew
37
+ npx tsc --noEmit
38
+ npm test
39
+ ```
@@ -1,63 +1,63 @@
1
- ---
2
- name: requirements-to-task-packet
3
- description: Use when a goal, issue, roadmap item, review finding, or user request must become actionable worker tasks.
4
- ---
5
-
6
- # requirements-to-task-packet
7
-
8
- Core principle: workers need explicit task packets, not inherited ambiguity. Ask only when ambiguity changes architecture, safety, public behavior, or data loss risk; otherwise record assumptions.
9
-
10
- Distilled from detailed reads of clarification, spec-to-implementation, subagent-driven development, and skill-authoring patterns.
11
-
12
- ## Clarify or Proceed
13
-
14
- Ask before implementation when ambiguity affects:
15
-
16
- - security boundary, permissions, ownership, or secret handling;
17
- - destructive operations, migrations, publishing, or public API behavior;
18
- - architecture or data model;
19
- - acceptance criteria or rollback expectations.
20
-
21
- Proceed with explicit assumptions when ambiguity is local, reversible, and testable.
22
-
23
- ## Task Packet Template
24
-
25
- ```text
26
- Objective:
27
- Scope/paths:
28
- Allowed edits:
29
- Forbidden edits/non-goals:
30
- Inputs/dependencies:
31
- Relevant context/artifacts:
32
- Assumptions:
33
- Risks:
34
- Acceptance criteria:
35
- Verification commands:
36
- Expected output artifacts:
37
- Escalation conditions:
38
- ```
39
-
40
- ## Subagent Context Rules
41
-
42
- - Give each worker fresh, curated context; do not rely on hidden parent history.
43
- - Include exact upstream artifact paths and summaries when needed.
44
- - Keep implementation tasks independent or explicitly sequenced.
45
- - Require workers to report one of: DONE, DONE_WITH_CONCERNS, NEEDS_CONTEXT, BLOCKED.
46
- - For BLOCKED/NEEDS_CONTEXT, change context/model/scope before retrying.
47
-
48
- ## Acceptance Criteria
49
-
50
- Use observable checks:
51
-
52
- - command output, state transition, UI/status text, artifact contents;
53
- - regression tests or named test files;
54
- - security properties such as containment/ownership/no secrets;
55
- - compatibility requirements such as Windows paths or Pi CLI flags;
56
- - rollback notes.
57
-
58
- ## Anti-patterns
59
-
60
- - Broad “fix everything” prompts.
61
- - Buried assumptions.
62
- - Expanding scope because context remains.
63
- - Treating tests as proof when the requirement was never asserted.
1
+ ---
2
+ name: requirements-to-task-packet
3
+ description: Use when a goal, issue, roadmap item, review finding, or user request must become actionable worker tasks.
4
+ ---
5
+
6
+ # requirements-to-task-packet
7
+
8
+ Core principle: workers need explicit task packets, not inherited ambiguity. Ask only when ambiguity changes architecture, safety, public behavior, or data loss risk; otherwise record assumptions.
9
+
10
+ Distilled from detailed reads of clarification, spec-to-implementation, subagent-driven development, and skill-authoring patterns.
11
+
12
+ ## Clarify or Proceed
13
+
14
+ Ask before implementation when ambiguity affects:
15
+
16
+ - security boundary, permissions, ownership, or secret handling;
17
+ - destructive operations, migrations, publishing, or public API behavior;
18
+ - architecture or data model;
19
+ - acceptance criteria or rollback expectations.
20
+
21
+ Proceed with explicit assumptions when ambiguity is local, reversible, and testable.
22
+
23
+ ## Task Packet Template
24
+
25
+ ```text
26
+ Objective:
27
+ Scope/paths:
28
+ Allowed edits:
29
+ Forbidden edits/non-goals:
30
+ Inputs/dependencies:
31
+ Relevant context/artifacts:
32
+ Assumptions:
33
+ Risks:
34
+ Acceptance criteria:
35
+ Verification commands:
36
+ Expected output artifacts:
37
+ Escalation conditions:
38
+ ```
39
+
40
+ ## Subagent Context Rules
41
+
42
+ - Give each worker fresh, curated context; do not rely on hidden parent history.
43
+ - Include exact upstream artifact paths and summaries when needed.
44
+ - Keep implementation tasks independent or explicitly sequenced.
45
+ - Require workers to report one of: DONE, DONE_WITH_CONCERNS, NEEDS_CONTEXT, BLOCKED.
46
+ - For BLOCKED/NEEDS_CONTEXT, change context/model/scope before retrying.
47
+
48
+ ## Acceptance Criteria
49
+
50
+ Use observable checks:
51
+
52
+ - command output, state transition, UI/status text, artifact contents;
53
+ - regression tests or named test files;
54
+ - security properties such as containment/ownership/no secrets;
55
+ - compatibility requirements such as Windows paths or Pi CLI flags;
56
+ - rollback notes.
57
+
58
+ ## Anti-patterns
59
+
60
+ - Broad “fix everything” prompts.
61
+ - Buried assumptions.
62
+ - Expanding scope because context remains.
63
+ - Treating tests as proof when the requirement was never asserted.
@@ -1,41 +1,41 @@
1
- ---
2
- name: resource-discovery-config
3
- description: pi-crew resource and configuration discovery workflow. Use when changing agents, teams, workflows, skills, resource hooks, config precedence, or project/user overrides.
4
- ---
5
-
6
- # resource-discovery-config
7
-
8
- Use this skill for pi-crew resource/config work.
9
-
10
- ## Source patterns distilled
11
-
12
- - Pi resource loader: `source/pi-mono/packages/coding-agent/src/core/resource-loader.ts`, extension `resources_discover` hook
13
- - pi-crew discovery: `src/agents/discover-agents.ts`, `src/teams/discover-teams.ts`, `src/workflows/discover-workflows.ts`
14
- - Config: `src/config/config.ts`, `src/schema/config-schema.ts`, `schema.json`, `docs/resource-formats.md`
15
-
16
- ## Rules
17
-
18
- - Respect discovery precedence: project resources should override user/builtin where supported.
19
- - Keep built-in resource formats stable and documented.
20
- - Project config (`.pi/pi-crew.json`) must be sanitized: do not allow dangerous user-only settings such as agent override injection if project trust is lower.
21
- - Resource paths exposed through Pi hooks must point to package-root resources after build; verify `__dirname` resolution carefully.
22
- - Avoid dynamic inline imports; keep discovery synchronous or async according to call-site expectations.
23
- - Validate config with schema and provide actionable errors.
24
- - When adding new config fields, update defaults, schema, docs, tests, and examples together.
25
-
26
- ## Anti-patterns
27
-
28
- - Resolving package skills to `src/skills` instead of package-root `skills` after publishing.
29
- - Letting project-local config inject arbitrary global agent overrides.
30
- - Introducing precedence ambiguity between project/user/builtin resources.
31
- - Changing resource file syntax without migration notes.
32
-
33
- ## Verification
34
-
35
- ```bash
36
- cd pi-crew
37
- npx tsc --noEmit
38
- node --experimental-strip-types --test test/unit/config-schema-validation.test.ts test/unit/config.test.ts test/unit/extension-api-surface.test.ts test/unit/agent-override-skills.test.ts
39
- npm test
40
- npm pack --dry-run
41
- ```
1
+ ---
2
+ name: resource-discovery-config
3
+ description: pi-crew resource and configuration discovery workflow. Use when changing agents, teams, workflows, skills, resource hooks, config precedence, or project/user overrides.
4
+ ---
5
+
6
+ # resource-discovery-config
7
+
8
+ Use this skill for pi-crew resource/config work.
9
+
10
+ ## Source patterns distilled
11
+
12
+ - Pi resource loader: `source/pi-mono/packages/coding-agent/src/core/resource-loader.ts`, extension `resources_discover` hook
13
+ - pi-crew discovery: `src/agents/discover-agents.ts`, `src/teams/discover-teams.ts`, `src/workflows/discover-workflows.ts`
14
+ - Config: `src/config/config.ts`, `src/schema/config-schema.ts`, `schema.json`, `docs/resource-formats.md`
15
+
16
+ ## Rules
17
+
18
+ - Respect discovery precedence: project resources should override user/builtin where supported.
19
+ - Keep built-in resource formats stable and documented.
20
+ - Project config (`.pi/pi-crew.json`) must be sanitized: do not allow dangerous user-only settings such as agent override injection if project trust is lower.
21
+ - Resource paths exposed through Pi hooks must point to package-root resources after build; verify `__dirname` resolution carefully.
22
+ - Avoid dynamic inline imports; keep discovery synchronous or async according to call-site expectations.
23
+ - Validate config with schema and provide actionable errors.
24
+ - When adding new config fields, update defaults, schema, docs, tests, and examples together.
25
+
26
+ ## Anti-patterns
27
+
28
+ - Resolving package skills to `src/skills` instead of package-root `skills` after publishing.
29
+ - Letting project-local config inject arbitrary global agent overrides.
30
+ - Introducing precedence ambiguity between project/user/builtin resources.
31
+ - Changing resource file syntax without migration notes.
32
+
33
+ ## Verification
34
+
35
+ ```bash
36
+ cd pi-crew
37
+ npx tsc --noEmit
38
+ node --experimental-strip-types --test test/unit/config-schema-validation.test.ts test/unit/config.test.ts test/unit/extension-api-surface.test.ts test/unit/agent-override-skills.test.ts
39
+ npm test
40
+ npm pack --dry-run
41
+ ```
@@ -1,44 +1,44 @@
1
- ---
2
- name: runtime-state-reader
3
- description: Safe read-only navigation of pi-crew run state. Use for inspecting manifests, tasks, events, agents, artifacts, health, and diagnostics without modifying state.
4
- ---
5
-
6
- # runtime-state-reader
7
-
8
- Use this skill when debugging or auditing a pi-crew run.
9
-
10
- ## Source patterns distilled
11
-
12
- - `src/state/types.ts`, `src/state/contracts.ts`, `src/state/state-store.ts`
13
- - `src/state/event-log.ts`, `src/state/artifact-store.ts`, `src/runtime/crew-agent-records.ts`
14
- - `src/extension/run-index.ts`, `src/extension/team-tool/status.ts`, `src/extension/team-tool/inspect.ts`
15
-
16
- ## Rules
17
-
18
- - Prefer exported state APIs over direct file parsing: `loadRunManifestById(cwd, runId)`, run index/list helpers, event readers, and agent readers.
19
- - Treat state as append-mostly/durable. For review and debugging, do not mutate manifests/tasks/events.
20
- - Validate run IDs and path-derived IDs; never concatenate untrusted path segments outside state helpers.
21
- - Read events as JSONL; expect partial/corrupt trailing lines in crash scenarios and handle gracefully.
22
- - Check status contracts before inferring behavior: terminal vs active run/task statuses matter.
23
- - Agent aggregate records (`agents.json`) and per-agent status files can disagree briefly; prefer the latest loaded run state plus event log for final conclusions.
24
- - Include exact paths inspected and distinguish direct evidence from inference.
25
-
26
- ## Common inspection order
27
-
28
- 1. Load manifest/tasks.
29
- 2. Check run/task statuses and timestamps.
30
- 3. Read recent events.
31
- 4. Read agent records and per-agent output/status if needed.
32
- 5. Inspect artifacts/diagnostics only through contained paths.
33
- 6. Report root cause and smallest safe remediation.
34
-
35
- ## Verification
36
-
37
- For code changes to state readers:
38
-
39
- ```bash
40
- cd pi-crew
41
- npx tsc --noEmit
42
- node --experimental-strip-types --test test/unit/run-index.test.ts test/unit/crew-contracts.test.ts test/unit/atomic-write.test.ts
43
- npm test
44
- ```
1
+ ---
2
+ name: runtime-state-reader
3
+ description: Safe read-only navigation of pi-crew run state. Use for inspecting manifests, tasks, events, agents, artifacts, health, and diagnostics without modifying state.
4
+ ---
5
+
6
+ # runtime-state-reader
7
+
8
+ Use this skill when debugging or auditing a pi-crew run.
9
+
10
+ ## Source patterns distilled
11
+
12
+ - `src/state/types.ts`, `src/state/contracts.ts`, `src/state/state-store.ts`
13
+ - `src/state/event-log.ts`, `src/state/artifact-store.ts`, `src/runtime/crew-agent-records.ts`
14
+ - `src/extension/run-index.ts`, `src/extension/team-tool/status.ts`, `src/extension/team-tool/inspect.ts`
15
+
16
+ ## Rules
17
+
18
+ - Prefer exported state APIs over direct file parsing: `loadRunManifestById(cwd, runId)`, run index/list helpers, event readers, and agent readers.
19
+ - Treat state as append-mostly/durable. For review and debugging, do not mutate manifests/tasks/events.
20
+ - Validate run IDs and path-derived IDs; never concatenate untrusted path segments outside state helpers.
21
+ - Read events as JSONL; expect partial/corrupt trailing lines in crash scenarios and handle gracefully.
22
+ - Check status contracts before inferring behavior: terminal vs active run/task statuses matter.
23
+ - Agent aggregate records (`agents.json`) and per-agent status files can disagree briefly; prefer the latest loaded run state plus event log for final conclusions.
24
+ - Include exact paths inspected and distinguish direct evidence from inference.
25
+
26
+ ## Common inspection order
27
+
28
+ 1. Load manifest/tasks.
29
+ 2. Check run/task statuses and timestamps.
30
+ 3. Read recent events.
31
+ 4. Read agent records and per-agent output/status if needed.
32
+ 5. Inspect artifacts/diagnostics only through contained paths.
33
+ 6. Report root cause and smallest safe remediation.
34
+
35
+ ## Verification
36
+
37
+ For code changes to state readers:
38
+
39
+ ```bash
40
+ cd pi-crew
41
+ npx tsc --noEmit
42
+ node --experimental-strip-types --test test/unit/run-index.test.ts test/unit/crew-contracts.test.ts test/unit/atomic-write.test.ts
43
+ npm test
44
+ ```
@@ -1,45 +1,45 @@
1
- ---
2
- name: secure-agent-orchestration-review
3
- description: Use when reviewing delegation, skill loading, tool access, worker prompts, artifacts, runtime config, state, ownership, or subprocess execution.
4
- ---
5
-
6
- # secure-agent-orchestration-review
7
-
8
- Core principle: every delegated worker crosses trust boundaries. Safe orchestration requires contained paths, explicit ownership, scoped tools, non-invasive defaults, and prompt-injection resistance.
9
-
10
- Distilled from detailed reads of security notice, insecure-defaults, sharp-edges, differential-review, guardrail, and skill quality patterns.
11
-
12
- ## Trust Boundaries
13
-
14
- Review:
15
-
16
- - parent session ↔ child Pi worker;
17
- - user prompt ↔ generated task packet;
18
- - project skills ↔ package skills;
19
- - global config ↔ project config;
20
- - artifacts/logs ↔ future prompts/UI;
21
- - mailbox/respond/steer/cancel ↔ session ownership;
22
- - external skills/docs ↔ prompt injection/tool poisoning;
23
- - runtime env/CLI args ↔ provider/model behavior.
24
-
25
- ## Must-Check Findings
26
-
27
- - Unsafe defaults: scaffold mode unexpectedly enabled, dangerous limits, missing depth guards, overbroad tools.
28
- - Path containment: cwd override escape, symlink traversal, unsafe skill names, absolute path leakage.
29
- - Prompt injection: untrusted output treated as instruction, skill metadata overtrusted, missing precedence text.
30
- - Secrets: env/config/log/artifact/diagnostic leakage.
31
- - Destructive commands: delete/prune/reset/force push without explicit confirmation.
32
- - Ownership races: authorization checked outside lock, stale task/manifest written after re-read.
33
- - Supply chain: external skill content imported without review, unknown tool requirements, hidden commands.
34
-
35
- ## Secure Defaults for pi-crew
36
-
37
- - Real execution should be explicit and disable-able, but generated config must not accidentally block normal workflows.
38
- - Project overrides should be contained to the project root.
39
- - Missing/invalid config should fall back safely.
40
- - Skills should be loaded by safe name and source-labeled without absolute path disclosure.
41
- - Worker prompts should state instruction precedence and treat artifacts as data.
42
-
43
- ## Finding Format
44
-
45
- Include severity, path/symbol, scenario, fix, and verification. Separate must-fix security issues from hardening suggestions.
1
+ ---
2
+ name: secure-agent-orchestration-review
3
+ description: Use when reviewing delegation, skill loading, tool access, worker prompts, artifacts, runtime config, state, ownership, or subprocess execution.
4
+ ---
5
+
6
+ # secure-agent-orchestration-review
7
+
8
+ Core principle: every delegated worker crosses trust boundaries. Safe orchestration requires contained paths, explicit ownership, scoped tools, non-invasive defaults, and prompt-injection resistance.
9
+
10
+ Distilled from detailed reads of security notice, insecure-defaults, sharp-edges, differential-review, guardrail, and skill quality patterns.
11
+
12
+ ## Trust Boundaries
13
+
14
+ Review:
15
+
16
+ - parent session ↔ child Pi worker;
17
+ - user prompt ↔ generated task packet;
18
+ - project skills ↔ package skills;
19
+ - global config ↔ project config;
20
+ - artifacts/logs ↔ future prompts/UI;
21
+ - mailbox/respond/steer/cancel ↔ session ownership;
22
+ - external skills/docs ↔ prompt injection/tool poisoning;
23
+ - runtime env/CLI args ↔ provider/model behavior.
24
+
25
+ ## Must-Check Findings
26
+
27
+ - Unsafe defaults: scaffold mode unexpectedly enabled, dangerous limits, missing depth guards, overbroad tools.
28
+ - Path containment: cwd override escape, symlink traversal, unsafe skill names, absolute path leakage.
29
+ - Prompt injection: untrusted output treated as instruction, skill metadata overtrusted, missing precedence text.
30
+ - Secrets: env/config/log/artifact/diagnostic leakage.
31
+ - Destructive commands: delete/prune/reset/force push without explicit confirmation.
32
+ - Ownership races: authorization checked outside lock, stale task/manifest written after re-read.
33
+ - Supply chain: external skill content imported without review, unknown tool requirements, hidden commands.
34
+
35
+ ## Secure Defaults for pi-crew
36
+
37
+ - Real execution should be explicit and disable-able, but generated config must not accidentally block normal workflows.
38
+ - Project overrides should be contained to the project root.
39
+ - Missing/invalid config should fall back safely.
40
+ - Skills should be loaded by safe name and source-labeled without absolute path disclosure.
41
+ - Worker prompts should state instruction precedence and treat artifacts as data.
42
+
43
+ ## Finding Format
44
+
45
+ Include severity, path/symbol, scenario, fix, and verification. Separate must-fix security issues from hardening suggestions.
@@ -1,42 +1,42 @@
1
- ---
2
- name: state-mutation-locking
3
- description: Durable state mutation and locking workflow. Use when changing manifests, tasks, mailbox, claims, events, stale reconciliation, recovery, cancel/respond/resume, or retry logic.
4
- ---
5
-
6
- # state-mutation-locking
7
-
8
- Use this skill before modifying pi-crew run state.
9
-
10
- ## Source patterns distilled
11
-
12
- - `src/state/locks.ts` — run-level sync/async locks
13
- - `src/state/state-store.ts` — manifest/tasks persistence
14
- - `src/state/contracts.ts` — allowed status transitions
15
- - `src/state/mailbox.ts`, `src/state/task-claims.ts`, `src/state/atomic-write.ts`
16
- - `src/runtime/crash-recovery.ts`, `src/runtime/stale-reconciler.ts`, `src/runtime/team-runner.ts`
17
-
18
- ## Rules
19
-
20
- - Mutations to a run's `manifest.json`, `tasks.json`, mailbox delivery state, claims, or recovery status must be protected by a run lock when concurrent actions are possible.
21
- - Re-read manifest/tasks inside the lock before making a decision; pre-lock reads are only for locating the run.
22
- - Persist with atomic write helpers (`atomicWriteJson`, async variants, or state-store helpers). Do not partially write JSON files.
23
- - Respect status contracts. Do not transition terminal tasks/runs unless the action explicitly supports force semantics.
24
- - Separate analysis from persistence: pure reconcilers should return intended repaired state; locked callers should persist it.
25
- - In retry/resume paths, reload fresh task status immediately before execution and skip if the task is no longer retryable/runnable.
26
- - Include event-log entries for externally visible state changes.
27
-
28
- ## Anti-patterns
29
-
30
- - Reading state, waiting/doing async work, then writing the old copy.
31
- - Updating `tasks.json` from a reconciler or watcher without a lock.
32
- - Cancelling/responding to runs owned by another session.
33
- - Using `fs.writeFileSync` for JSON state outside atomic helpers.
34
-
35
- ## Verification
36
-
37
- ```bash
38
- cd pi-crew
39
- npx tsc --noEmit
40
- node --experimental-strip-types --test test/unit/cancel-ownership.test.ts test/unit/respond-tool.test.ts test/unit/stale-reconciler.test.ts test/unit/api-claim.test.ts
41
- npm test
42
- ```
1
+ ---
2
+ name: state-mutation-locking
3
+ description: Durable state mutation and locking workflow. Use when changing manifests, tasks, mailbox, claims, events, stale reconciliation, recovery, cancel/respond/resume, or retry logic.
4
+ ---
5
+
6
+ # state-mutation-locking
7
+
8
+ Use this skill before modifying pi-crew run state.
9
+
10
+ ## Source patterns distilled
11
+
12
+ - `src/state/locks.ts` — run-level sync/async locks
13
+ - `src/state/state-store.ts` — manifest/tasks persistence
14
+ - `src/state/contracts.ts` — allowed status transitions
15
+ - `src/state/mailbox.ts`, `src/state/task-claims.ts`, `src/state/atomic-write.ts`
16
+ - `src/runtime/crash-recovery.ts`, `src/runtime/stale-reconciler.ts`, `src/runtime/team-runner.ts`
17
+
18
+ ## Rules
19
+
20
+ - Mutations to a run's `manifest.json`, `tasks.json`, mailbox delivery state, claims, or recovery status must be protected by a run lock when concurrent actions are possible.
21
+ - Re-read manifest/tasks inside the lock before making a decision; pre-lock reads are only for locating the run.
22
+ - Persist with atomic write helpers (`atomicWriteJson`, async variants, or state-store helpers). Do not partially write JSON files.
23
+ - Respect status contracts. Do not transition terminal tasks/runs unless the action explicitly supports force semantics.
24
+ - Separate analysis from persistence: pure reconcilers should return intended repaired state; locked callers should persist it.
25
+ - In retry/resume paths, reload fresh task status immediately before execution and skip if the task is no longer retryable/runnable.
26
+ - Include event-log entries for externally visible state changes.
27
+
28
+ ## Anti-patterns
29
+
30
+ - Reading state, waiting/doing async work, then writing the old copy.
31
+ - Updating `tasks.json` from a reconciler or watcher without a lock.
32
+ - Cancelling/responding to runs owned by another session.
33
+ - Using `fs.writeFileSync` for JSON state outside atomic helpers.
34
+
35
+ ## Verification
36
+
37
+ ```bash
38
+ cd pi-crew
39
+ npx tsc --noEmit
40
+ node --experimental-strip-types --test test/unit/cancel-ownership.test.ts test/unit/respond-tool.test.ts test/unit/stale-reconciler.test.ts test/unit/api-claim.test.ts
41
+ npm test
42
+ ```