ultimate-pi 0.18.0 → 0.19.0

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 (314) hide show
  1. package/.agents/skills/harness-debate-plan/SKILL.md +1 -1
  2. package/.agents/skills/harness-decisions/SKILL.md +2 -3
  3. package/.agents/skills/harness-governor/SKILL.md +6 -5
  4. package/.agents/skills/harness-orchestration/SKILL.md +4 -4
  5. package/.agents/skills/harness-review/SKILL.md +7 -7
  6. package/.agents/skills/harness-sentrux-setup/SKILL.md +4 -3
  7. package/.agents/skills/harness-steer/SKILL.md +1 -1
  8. package/.agents/skills/sentrux/SKILL.md +9 -9
  9. package/.pi/PACKAGING.md +4 -4
  10. package/.pi/SYSTEM.md +54 -120
  11. package/.pi/agents/harness/incident-recorder.md +0 -1
  12. package/.pi/agents/harness/planning/decompose.md +1 -3
  13. package/.pi/agents/harness/planning/execution-plan-author.md +0 -2
  14. package/.pi/agents/harness/planning/hypothesis-validator.md +0 -2
  15. package/.pi/agents/harness/planning/hypothesis.md +0 -2
  16. package/.pi/agents/harness/planning/implementation-researcher.md +0 -2
  17. package/.pi/agents/harness/planning/plan-adversary.md +0 -2
  18. package/.pi/agents/harness/planning/plan-evaluator.md +1 -3
  19. package/.pi/agents/harness/planning/planning-context.md +0 -2
  20. package/.pi/agents/harness/planning/review-integrator.md +0 -2
  21. package/.pi/agents/harness/planning/sprint-contract-auditor.md +0 -2
  22. package/.pi/agents/harness/planning/stack-researcher.md +0 -2
  23. package/.pi/agents/harness/{adversary.md → reviewing/adversary.md} +0 -2
  24. package/.pi/agents/harness/{evaluator.md → reviewing/evaluator.md} +0 -2
  25. package/.pi/agents/harness/{tie-breaker.md → reviewing/tie-breaker.md} +0 -2
  26. package/.pi/agents/harness/{executor.md → running/executor.md} +0 -2
  27. package/.pi/agents/harness/sentrux-bootstrap.md +0 -1
  28. package/.pi/agents/harness/sentrux-steward.md +0 -2
  29. package/.pi/agents/harness/trace-librarian.md +0 -1
  30. package/.pi/extensions/00-harness-project-control.ts +133 -0
  31. package/.pi/extensions/00-posthog-network-bootstrap.ts +1 -1
  32. package/.pi/extensions/agt-kill-switch.ts +57 -0
  33. package/.pi/extensions/agt-prompt-guard.ts +32 -0
  34. package/.pi/extensions/budget-guard.ts +2 -0
  35. package/.pi/extensions/custom-footer.ts +46 -145
  36. package/.pi/extensions/custom-header.ts +1 -1
  37. package/.pi/extensions/custom-system-prompt.ts +1 -1
  38. package/.pi/extensions/debate-orchestrator.ts +7 -5
  39. package/.pi/extensions/harness-ask-user.ts +8 -8
  40. package/.pi/extensions/harness-debate-tools.ts +27 -43
  41. package/.pi/extensions/harness-lens.ts +94 -0
  42. package/.pi/extensions/harness-live-widget.ts +33 -2
  43. package/.pi/extensions/harness-plan-approval.ts +12 -12
  44. package/.pi/extensions/harness-run-context.ts +1214 -852
  45. package/.pi/extensions/harness-subagent-governance.ts +8 -0
  46. package/.pi/extensions/harness-subagent-submit.ts +36 -164
  47. package/.pi/extensions/harness-subagents.ts +4 -4
  48. package/.pi/extensions/harness-telemetry.ts +3 -1
  49. package/.pi/extensions/harness-web-tools.ts +3 -3
  50. package/.pi/extensions/observation-bus.ts +2 -0
  51. package/.pi/extensions/policy-gate.ts +27 -5
  52. package/.pi/extensions/review-integrity.ts +91 -10
  53. package/.pi/extensions/sentrux-rules-sync.ts +3 -1
  54. package/.pi/extensions/subagent-governance.ts +92 -0
  55. package/.pi/extensions/test-diff-integrity.ts +1 -0
  56. package/.pi/extensions/trace-recorder.ts +3 -1
  57. package/.pi/extensions/{ultimate-pi-vcc.ts → vcc-compaction.ts} +1 -1
  58. package/.pi/harness/README.md +6 -2
  59. package/.pi/harness/agents.manifest.json +38 -49
  60. package/.pi/harness/agents.policy.yaml +275 -0
  61. package/.pi/harness/corpus/graphify-kb-updater.config.json +55 -0
  62. package/.pi/harness/docs/adrs/0006-sentrux-dual-layer.md +2 -1
  63. package/.pi/harness/docs/adrs/0030-inhouse-vcc-compaction.md +1 -1
  64. package/.pi/harness/docs/adrs/0035-plan-phase-review-gate.md +1 -1
  65. package/.pi/harness/docs/adrs/0044-harness-steer-loop.md +3 -2
  66. package/.pi/harness/docs/adrs/0045-harness-lens-minimal-contract.md +49 -0
  67. package/.pi/harness/docs/adrs/0045-phase-scoped-agent-directories.md +33 -0
  68. package/.pi/harness/docs/adrs/0046-agt-policy-engine.md +51 -0
  69. package/.pi/harness/docs/adrs/0047-agt-layered-security.md +39 -0
  70. package/.pi/harness/docs/adrs/0048-tool-call-hook-order.md +25 -0
  71. package/.pi/harness/docs/adrs/0049-agents-policy-manifest.md +36 -0
  72. package/.pi/harness/docs/adrs/README.md +6 -0
  73. package/.pi/harness/docs/graphify-kb-updater-runbook.md +11 -5
  74. package/.pi/harness/docs/practice-map.md +2 -2
  75. package/.pi/harness/evolution/README.md +1 -2
  76. package/.pi/harness/examples/agents.policy.project.yaml +19 -0
  77. package/.pi/harness/examples/policies/custom-deny-bash.yaml +9 -0
  78. package/.pi/harness/policies/bash-denylists.yaml +5 -0
  79. package/.pi/harness/policies/defaults.yaml +51 -0
  80. package/.pi/harness/policies/orchestrator.yaml +18 -0
  81. package/.pi/harness/policies/phases.yaml +10 -0
  82. package/.pi/harness/policies/roles.yaml +5 -0
  83. package/.pi/harness/policies/web-guard.yaml +5 -0
  84. package/.pi/harness/policies/workflow-sequences.yaml +9 -0
  85. package/.pi/harness/sentrux/architecture.manifest.json +26 -4
  86. package/.pi/harness/specs/harness-spawn-context.schema.json +1 -1
  87. package/.pi/harness/specs/observation.schema.json +2 -1
  88. package/.pi/lib/agents-policy.d.mts +70 -0
  89. package/.pi/lib/agents-policy.mjs +325 -0
  90. package/.pi/lib/agents-policy.ts +19 -0
  91. package/.pi/lib/agt/audit-run-sink.ts +52 -0
  92. package/.pi/lib/agt/build-evaluation-context.ts +285 -0
  93. package/.pi/lib/agt/config.ts +28 -0
  94. package/.pi/lib/agt/delegation.ts +69 -0
  95. package/.pi/lib/agt/evaluate-policy.ts +56 -0
  96. package/.pi/lib/agt/identity-registry.ts +41 -0
  97. package/.pi/lib/agt/index.ts +55 -0
  98. package/.pi/lib/agt/kill-switch-state.ts +11 -0
  99. package/.pi/lib/agt/legacy-evaluate.ts +101 -0
  100. package/.pi/lib/agt/policy-engine.ts +154 -0
  101. package/.pi/lib/agt/rings.ts +21 -0
  102. package/.pi/lib/agt/sre-hooks.ts +45 -0
  103. package/.pi/lib/agt/trust-run-store.ts +26 -0
  104. package/.pi/lib/agt/workflow-history.ts +29 -0
  105. package/.pi/lib/agt-governance-active.ts +14 -0
  106. package/.pi/lib/agt-tool-guard.ts +78 -0
  107. package/.pi/lib/ask-user/dialog.ts +314 -0
  108. package/.pi/{extensions/lib → lib}/debate-bus-core.ts +10 -10
  109. package/.pi/{extensions/lib → lib}/debate-bus-state.ts +1 -1
  110. package/.pi/{extensions/lib → lib}/extension-load-guard.ts +21 -0
  111. package/.pi/lib/harness-agt-tool-guard.ts +5 -0
  112. package/.pi/{extensions/lib → lib}/harness-artifact-gate.ts +6 -16
  113. package/.pi/lib/harness-debate-core-deps.ts +14 -0
  114. package/.pi/lib/harness-debate-workflow-deps.ts +43 -0
  115. package/.pi/lib/harness-lens/.gitattributes +1 -0
  116. package/.pi/lib/harness-lens/clients/edit-autopatch.ts +88 -0
  117. package/.pi/lib/harness-lens/clients/file-kinds.ts +380 -0
  118. package/.pi/lib/harness-lens/clients/file-time.ts +215 -0
  119. package/.pi/lib/harness-lens/clients/file-utils.ts +484 -0
  120. package/.pi/lib/harness-lens/clients/format-service.ts +276 -0
  121. package/.pi/lib/harness-lens/clients/formatters.ts +1000 -0
  122. package/.pi/lib/harness-lens/clients/git-guard.ts +31 -0
  123. package/.pi/lib/harness-lens/clients/indent-retarget.ts +90 -0
  124. package/.pi/lib/harness-lens/clients/installer/index.ts +2368 -0
  125. package/.pi/lib/harness-lens/clients/latency-logger.ts +80 -0
  126. package/.pi/lib/harness-lens/clients/lens-config.ts +43 -0
  127. package/.pi/lib/harness-lens/clients/lens-events.ts +164 -0
  128. package/.pi/lib/harness-lens/clients/lsp/aggregation.ts +91 -0
  129. package/.pi/lib/harness-lens/clients/lsp/client.ts +1466 -0
  130. package/.pi/lib/harness-lens/clients/lsp/config.ts +216 -0
  131. package/.pi/lib/harness-lens/clients/lsp/edits.ts +297 -0
  132. package/.pi/lib/harness-lens/clients/lsp/index.ts +1355 -0
  133. package/.pi/lib/harness-lens/clients/lsp/interactive-install.ts +424 -0
  134. package/.pi/lib/harness-lens/clients/lsp/language.ts +223 -0
  135. package/.pi/lib/harness-lens/clients/lsp/launch.ts +939 -0
  136. package/.pi/lib/harness-lens/clients/lsp/lsp-index.ts +11 -0
  137. package/.pi/lib/harness-lens/clients/lsp/path-utils.ts +12 -0
  138. package/.pi/lib/harness-lens/clients/lsp/server-strategies.ts +81 -0
  139. package/.pi/lib/harness-lens/clients/lsp/server.ts +1971 -0
  140. package/.pi/lib/harness-lens/clients/path-utils.ts +182 -0
  141. package/.pi/lib/harness-lens/clients/pipeline.ts +360 -0
  142. package/.pi/lib/harness-lens/clients/project-profile.ts +117 -0
  143. package/.pi/lib/harness-lens/clients/runtime-agent-end.ts +112 -0
  144. package/.pi/lib/harness-lens/clients/runtime-config.ts +33 -0
  145. package/.pi/lib/harness-lens/clients/runtime-coordinator.ts +186 -0
  146. package/.pi/lib/harness-lens/clients/runtime-tool-result.ts +171 -0
  147. package/.pi/lib/harness-lens/clients/safe-spawn.ts +339 -0
  148. package/.pi/lib/harness-lens/clients/secrets-scanner.ts +214 -0
  149. package/.pi/lib/harness-lens/clients/tool-policy.ts +2072 -0
  150. package/.pi/lib/harness-lens/clients/types.ts +59 -0
  151. package/.pi/lib/harness-lens/clients/widget-state.ts +283 -0
  152. package/.pi/lib/harness-lens/index.ts +532 -0
  153. package/.pi/lib/harness-lens/tools/lsp-diagnostics.ts +706 -0
  154. package/.pi/lib/harness-lens/tools/lsp-navigation.ts +1246 -0
  155. package/.pi/{extensions/lib → lib}/harness-posthog.ts +3 -0
  156. package/.pi/lib/harness-project-config.ts +91 -0
  157. package/.pi/lib/harness-run-context-responses.ts +9 -0
  158. package/.pi/lib/harness-run-context.ts +1 -3
  159. package/.pi/{extensions/lib/spawn-policy.ts → lib/harness-spawn-policy.ts} +4 -3
  160. package/.pi/{extensions/lib → lib}/harness-spawn-topology.ts +5 -28
  161. package/.pi/lib/harness-subagent-auth.ts +51 -0
  162. package/.pi/{extensions/lib → lib}/harness-subagent-precheck.ts +13 -10
  163. package/.pi/{extensions/lib → lib}/harness-subagent-submit-pipeline.ts +3 -3
  164. package/.pi/lib/harness-subagent-submit-register.ts +163 -0
  165. package/.pi/{extensions/lib → lib}/harness-subagent-submit-registry.ts +1 -55
  166. package/.pi/{extensions/lib → lib}/harness-subagents-bridge.ts +53 -14
  167. package/.pi/{extensions/lib → lib}/harness-subprocess-bootstrap.ts +1 -1
  168. package/.pi/lib/harness-ui-state.ts +27 -12
  169. package/.pi/{extensions/lib → lib}/plan-approval/create-plan.ts +2 -2
  170. package/.pi/{extensions/lib → lib}/plan-approval/format-plan.ts +2 -2
  171. package/.pi/{extensions/lib → lib}/plan-approval/plan-review.ts +162 -201
  172. package/.pi/{extensions/lib → lib}/plan-approval/render.ts +1 -1
  173. package/.pi/{extensions/lib → lib}/plan-approval/resolve-disk.ts +2 -2
  174. package/.pi/{extensions/lib → lib}/plan-approval/types.ts +1 -1
  175. package/.pi/{extensions/lib → lib}/plan-approval/validate.ts +3 -3
  176. package/.pi/{extensions/lib → lib}/plan-approval-readiness.ts +3 -52
  177. package/.pi/{extensions/lib → lib}/plan-debate-envelope.ts +1 -1
  178. package/.pi/{extensions/lib → lib}/plan-debate-gate.ts +1 -1
  179. package/.pi/{extensions/lib → lib}/plan-debate-lane.ts +1 -4
  180. package/.pi/{extensions/lib → lib}/plan-messenger.ts +1 -1
  181. package/.pi/prompts/harness-auto.md +2 -2
  182. package/.pi/prompts/harness-plan.md +4 -6
  183. package/.pi/prompts/harness-review.md +9 -9
  184. package/.pi/prompts/harness-run.md +7 -7
  185. package/.pi/prompts/harness-setup.md +42 -68
  186. package/.pi/prompts/harness-steer.md +2 -2
  187. package/.pi/scripts/README.md +3 -5
  188. package/.pi/scripts/generate-agents-policy-yaml.mjs +148 -0
  189. package/.pi/scripts/graphify-kb-updater.mjs +48 -8
  190. package/.pi/scripts/harness-agents-manifest.mjs +61 -4
  191. package/.pi/scripts/harness-agt-doctor.ts +36 -0
  192. package/.pi/scripts/harness-cli-verify.sh +9 -2
  193. package/.pi/scripts/harness-project-toggle.mjs +129 -0
  194. package/.pi/scripts/harness-sentrux-cli.mjs +142 -0
  195. package/.pi/scripts/harness-verify.mjs +113 -39
  196. package/.pi/scripts/harness-web-policy-guard.mjs +2 -2
  197. package/.pi/scripts/validate-plan-dag.mjs +65 -74
  198. package/.pi/scripts/vendor-pi-vcc-settings.stub.ts +2 -2
  199. package/.pi/scripts/vendor-sync-pi-vcc.sh +1 -1
  200. package/.pi/skills/architecture/broker-domain/SKILL.md +65 -0
  201. package/.pi/skills/architecture/cqrs/SKILL.md +63 -0
  202. package/.pi/skills/architecture/event-driven/SKILL.md +60 -0
  203. package/.pi/skills/architecture/hexagonal-ports-adapters/SKILL.md +66 -0
  204. package/.pi/skills/architecture/layered/SKILL.md +68 -0
  205. package/.pi/skills/architecture/microkernel/SKILL.md +62 -0
  206. package/.pi/skills/architecture/microservices/SKILL.md +64 -0
  207. package/.pi/skills/architecture/modular-monolith/SKILL.md +65 -0
  208. package/.pi/skills/architecture/orchestration-driven-soa/SKILL.md +61 -0
  209. package/.pi/skills/architecture/pipeline/SKILL.md +63 -0
  210. package/.pi/skills/architecture/service-based/SKILL.md +64 -0
  211. package/.pi/skills/architecture/service-mesh/SKILL.md +60 -0
  212. package/.pi/skills/architecture/space-based/SKILL.md +60 -0
  213. package/.pi/skills/ast-grep/SKILL.md +40 -321
  214. package/.pi/skills/delivery/debugging-discipline/SKILL.md +36 -0
  215. package/.pi/skills/delivery/documentation-update/SKILL.md +33 -0
  216. package/.pi/skills/delivery/requirements-to-implementation/SKILL.md +34 -0
  217. package/.pi/skills/delivery/risk-based-verification/SKILL.md +43 -0
  218. package/.pi/skills/delivery/tradeoff-analysis/SKILL.md +34 -0
  219. package/.pi/skills/engineering/api-contract-design/SKILL.md +38 -0
  220. package/.pi/skills/engineering/cohesion-coupling/SKILL.md +43 -0
  221. package/.pi/skills/engineering/complexity-control/SKILL.md +31 -0
  222. package/.pi/skills/engineering/defensive-programming/SKILL.md +38 -0
  223. package/.pi/skills/engineering/dependency-management/SKILL.md +29 -0
  224. package/.pi/skills/engineering/domain-modeling/SKILL.md +32 -0
  225. package/.pi/skills/engineering/error-handling/SKILL.md +37 -0
  226. package/.pi/skills/engineering/legacy-code-seams/SKILL.md +35 -0
  227. package/.pi/skills/engineering/naming-and-intent/SKILL.md +29 -0
  228. package/.pi/skills/engineering/refactoring-safe-evolution/SKILL.md +35 -0
  229. package/.pi/skills/engineering/routine-function-design/SKILL.md +34 -0
  230. package/.pi/skills/engineering/small-change-discipline/SKILL.md +35 -0
  231. package/.pi/skills/lsp-navigation/SKILL.md +89 -0
  232. package/.pi/skills/quality/code-review-self-check/SKILL.md +35 -0
  233. package/.pi/skills/quality/privacy-data-handling/SKILL.md +26 -0
  234. package/.pi/skills/quality/security-review/SKILL.md +34 -0
  235. package/.pi/skills/quality/test-strategy/SKILL.md +33 -0
  236. package/.pi/skills/quality/testability-design/SKILL.md +33 -0
  237. package/.pi/skills/systems/concurrency-safety/SKILL.md +32 -0
  238. package/.pi/skills/systems/data-modeling-migrations/SKILL.md +31 -0
  239. package/.pi/skills/systems/observability-instrumentation/SKILL.md +32 -0
  240. package/.pi/skills/systems/performance-measurement/SKILL.md +35 -0
  241. package/.pi/skills/systems/reliability-design/SKILL.md +32 -0
  242. package/.sentrux/rules.toml +20 -4
  243. package/AGENTS.md +5 -0
  244. package/CHANGELOG.md +26 -0
  245. package/README.md +85 -58
  246. package/THIRD_PARTY_NOTICES.md +12 -21
  247. package/package.json +15 -7
  248. package/vendor/pi-subagents/src/agents.ts +45 -1
  249. package/vendor/pi-subagents/src/subagents.ts +866 -811
  250. package/vendor/pi-vcc/src/core/brief.ts +68 -99
  251. package/vendor/pi-vcc/src/core/settings.ts +2 -2
  252. package/.agents/skills/caveman/SKILL.md +0 -67
  253. package/.pi/agents/harness/meta-optimizer.md +0 -36
  254. package/.pi/agents/harness/planning/scout-graphify.md +0 -39
  255. package/.pi/agents/harness/planning/scout-semantic.md +0 -41
  256. package/.pi/agents/harness/planning/scout-structure.md +0 -37
  257. package/.pi/extensions/lib/ask-user/dialog.ts +0 -260
  258. package/.pi/extensions/lib/harness-subagent-auth.ts +0 -209
  259. package/.pi/extensions/lib/harness-subagent-policy.ts +0 -236
  260. package/.pi/extensions/pi-model-router-harness.ts +0 -42
  261. package/.pi/harness/evolution/meta-optimizer.mjs +0 -99
  262. package/.pi/harness/specs/router-tuning-proposal.schema.json +0 -114
  263. package/.pi/model-router.example.json +0 -36
  264. package/.pi/prompts/harness-critic.md +0 -10
  265. package/.pi/prompts/harness-eval.md +0 -10
  266. package/.pi/prompts/harness-router-tune.md +0 -52
  267. package/.pi/scripts/harness-generate-model-router.mjs +0 -327
  268. package/.pi/scripts/harness-model-router-routing.test.mjs +0 -97
  269. package/.pi/scripts/harness-sync-model-router.mjs +0 -97
  270. package/.pi/scripts/vendor-sync-pi-model-router.sh +0 -47
  271. package/vendor/pi-model-router/.prettierignore +0 -4
  272. package/vendor/pi-model-router/.prettierrc +0 -5
  273. package/vendor/pi-model-router/AGENTS.md +0 -39
  274. package/vendor/pi-model-router/LICENSE +0 -21
  275. package/vendor/pi-model-router/README.md +0 -99
  276. package/vendor/pi-model-router/UPSTREAM_PIN.md +0 -10
  277. package/vendor/pi-model-router/docs/ARCHITECTURE.md +0 -54
  278. package/vendor/pi-model-router/extensions/commands.ts +0 -720
  279. package/vendor/pi-model-router/extensions/config.ts +0 -348
  280. package/vendor/pi-model-router/extensions/constants.ts +0 -1
  281. package/vendor/pi-model-router/extensions/index.ts +0 -478
  282. package/vendor/pi-model-router/extensions/provider.ts +0 -580
  283. package/vendor/pi-model-router/extensions/routing.ts +0 -564
  284. package/vendor/pi-model-router/extensions/state.ts +0 -52
  285. package/vendor/pi-model-router/extensions/types.ts +0 -95
  286. package/vendor/pi-model-router/extensions/ui.ts +0 -144
  287. package/vendor/pi-model-router/model-router.example.json +0 -48
  288. package/vendor/pi-model-router/package.json +0 -48
  289. package/vendor/pi-model-router/tsconfig.json +0 -16
  290. /package/.pi/{prompts → harness/docs}/planning-rubrics.md +0 -0
  291. /package/.pi/{extensions/lib → lib}/ask-user/fallback.ts +0 -0
  292. /package/.pi/{extensions/lib → lib}/ask-user/render.ts +0 -0
  293. /package/.pi/{extensions/lib → lib}/ask-user/schema.ts +0 -0
  294. /package/.pi/{extensions/lib → lib}/ask-user/types.ts +0 -0
  295. /package/.pi/{extensions/lib → lib}/ask-user/validate-core.mjs +0 -0
  296. /package/.pi/{extensions/lib → lib}/ask-user/validate.ts +0 -0
  297. /package/.pi/{extensions/lib → lib}/harness-cocoindex-refresh.ts +0 -0
  298. /package/.pi/{extensions/lib → lib}/harness-paths.ts +0 -0
  299. /package/.pi/{extensions/lib → lib}/harness-spawn-budget.ts +0 -0
  300. /package/.pi/{extensions/lib → lib}/harness-vcc-settings.ts +0 -0
  301. /package/.pi/{extensions/lib → lib}/harness-web/run-cli.ts +0 -0
  302. /package/.pi/{extensions/lib → lib}/plan-approval/dialog.ts +0 -0
  303. /package/.pi/{extensions/lib → lib}/plan-approval/schema.ts +0 -0
  304. /package/.pi/{extensions/lib → lib}/plan-debate-eligibility.ts +0 -0
  305. /package/.pi/{extensions/lib → lib}/plan-debate-focus.ts +0 -0
  306. /package/.pi/{extensions/lib → lib}/plan-debate-id.ts +0 -0
  307. /package/.pi/{extensions/lib → lib}/plan-debate-lanes.ts +0 -0
  308. /package/.pi/{extensions/lib → lib}/plan-debate-round-status.ts +0 -0
  309. /package/.pi/{extensions/lib → lib}/plan-debate-write-guard.ts +0 -0
  310. /package/.pi/{extensions/lib → lib}/plan-review-gate.ts +0 -0
  311. /package/.pi/{extensions/lib → lib}/plan-review-integrator-rules.ts +0 -0
  312. /package/.pi/{extensions/lib → lib}/plan-scope-guard.ts +0 -0
  313. /package/.pi/{extensions/lib → lib}/posthog-client.ts +0 -0
  314. /package/.pi/{extensions/lib → lib}/posthog-node.d.ts +0 -0
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: test-strategy
3
+ description: Choose the right test level for a code change. Use when adding features, fixing bugs, refactoring, changing contracts, or improving coverage. Guides unit, integration, contract, characterization, regression, property, and end-to-end test selection without assuming a specific tool or runtime.
4
+ ---
5
+
6
+ # Test Strategy
7
+
8
+ Use this skill to add useful tests rather than merely more tests.
9
+
10
+ ## Choose test type by risk
11
+
12
+ - Unit test: pure logic, calculations, policies, branching, invariants.
13
+ - Integration test: storage, filesystem, network, process, or platform/runtime boundary.
14
+ - Contract test: public API, command, event, plugin, module facade, or service boundary.
15
+ - Characterization test: existing unclear behavior before legacy changes.
16
+ - Regression test: bug fix that must not reappear.
17
+ - End-to-end test: critical user journey or cross-boundary behavior not covered otherwise.
18
+ - Property or generative test: broad input space with stable invariants.
19
+
20
+ ## Workflow
21
+
22
+ 1. Identify the behavior that must be proven.
23
+ 2. Pick the lowest test level that gives confidence.
24
+ 3. Test public behavior and invariants, not incidental implementation details.
25
+ 4. Include edge cases: empty, missing, invalid, boundary, duplicate, reordered, and failure paths where relevant.
26
+ 5. Ensure tests fail for the bug/change before relying on them.
27
+ 6. Keep tests deterministic and readable.
28
+
29
+ ## Avoid
30
+
31
+ - Snapshot/golden tests that hide important intent.
32
+ - Mock-heavy tests that only verify implementation choreography.
33
+ - Broad end-to-end tests for simple pure logic.
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: testability-design
3
+ description: Reshape code so important behavior can be tested simply. Use when code is hard to test due to IO, time, randomness, globals, hidden dependencies, side effects, or platform/runtime coupling. Separates pure logic from effects and introduces stable seams.
4
+ ---
5
+
6
+ # Testability Design
7
+
8
+ Use this skill when verification is difficult because the design hides seams.
9
+
10
+ ## Workflow
11
+
12
+ 1. Identify behavior worth testing separately from the mechanism that triggers it.
13
+ 2. Move pure decisions/calculations away from IO and mutation where practical.
14
+ 3. Inject or pass volatile dependencies such as clocks, randomness, environment, storage, network, and external processes.
15
+ 4. Replace ambient/global state with explicit inputs or narrow adapters where safe.
16
+ 5. Expose behavior through a stable public seam rather than private internals.
17
+ 6. Keep tests close to the level of the behavior being guaranteed.
18
+
19
+ ## Good seams
20
+
21
+ - boundary adapters
22
+ - domain services or policies
23
+ - command/query handlers
24
+ - parser/serializer boundaries
25
+ - workflow step interfaces
26
+ - configuration providers
27
+ - repository/storage ports
28
+
29
+ ## Avoid
30
+
31
+ - Making private implementation public only for tests.
32
+ - Adding test-only branches to production logic.
33
+ - Over-abstracting every dependency before a real testability problem exists.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: concurrency-safety
3
+ description: Prevent race conditions and unsafe shared-state behavior. Use when modifying async work, parallel execution, queues, locks, caches, background jobs, shared mutable state, transactions, event handlers, or distributed coordination. Emphasizes idempotency, ordering, isolation, and deterministic tests.
4
+ ---
5
+
6
+ # Concurrency Safety
7
+
8
+ Use this skill when operations may overlap, reorder, duplicate, or observe stale state.
9
+
10
+ ## Workflow
11
+
12
+ 1. Identify shared mutable state and who can access it concurrently.
13
+ 2. Identify ordering assumptions and whether they are guaranteed.
14
+ 3. Check for duplicate, delayed, retried, or out-of-order execution.
15
+ 4. Use appropriate isolation: immutability, ownership, lock, transaction, compare-and-set, queue serialization, or idempotency key.
16
+ 5. Keep critical sections small and failure-safe.
17
+ 6. Ensure cleanup/release happens on error paths.
18
+ 7. Add tests or simulations for duplicate and interleaved operations where practical.
19
+
20
+ ## Review questions
21
+
22
+ - Can two callers perform this action at once?
23
+ - Can this message/job/event be processed twice?
24
+ - Can a stale read overwrite newer state?
25
+ - Is the operation atomic from the user's perspective?
26
+ - Is there a deadlock, starvation, or resource leak risk?
27
+
28
+ ## Avoid
29
+
30
+ - Assuming single-thread/process execution unless enforced.
31
+ - Using time sleeps as correctness guarantees.
32
+ - Global mutable state without ownership rules.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: data-modeling-migrations
3
+ description: Safely evolve stored data and schemas. Use when adding or changing database fields, indexes, files, serialized formats, caches, event payloads, search indexes, or migration scripts. Focuses on compatibility, rollout phases, rollback, existing data, and query behavior.
4
+ ---
5
+
6
+ # Data Modeling and Migrations
7
+
8
+ Use this skill when code changes persisted or exchanged data.
9
+
10
+ ## Workflow
11
+
12
+ 1. Identify every reader and writer of the data.
13
+ 2. Separate schema/format change, data backfill, and code behavior change when risk warrants.
14
+ 3. Prefer backward-compatible additions before breaking removals or renames.
15
+ 4. Plan behavior while old and new versions coexist.
16
+ 5. Validate existing production-like data assumptions.
17
+ 6. Add indexes or access paths based on actual query patterns.
18
+ 7. Define rollback or recovery for failed migrations.
19
+ 8. Add tests for old data, new data, missing fields, and mixed-version compatibility.
20
+
21
+ ## Safety checks
22
+
23
+ - Is the migration destructive or irreversible?
24
+ - Does it lock or block critical paths?
25
+ - Are defaults correct for existing records?
26
+ - Can old code read new data and new code read old data during rollout?
27
+ - Are caches/search/projections updated or rebuildable?
28
+
29
+ ## Ask before
30
+
31
+ Destructive deletion, irreversible transformation, broad backfill, or compatibility-breaking format changes.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: observability-instrumentation
3
+ description: Add useful logs, metrics, traces, events, and diagnostics without noise or data leaks. Use when changing failure paths, background jobs, workflows, integrations, performance-sensitive paths, or production-debuggable behavior. Focuses on actionable signals and safe context.
4
+ ---
5
+
6
+ # Observability Instrumentation
7
+
8
+ Use this skill to make behavior diagnosable in real environments.
9
+
10
+ ## Signal types
11
+
12
+ - Logs: discrete decisions, failures, lifecycle transitions, and unusual states.
13
+ - Metrics: counts, durations, rates, queue depth, success/failure, saturation.
14
+ - Traces/spans: cross-boundary request or workflow paths.
15
+ - Audit/events: business-relevant actions that need history.
16
+ - Health checks: readiness, liveness, dependency status.
17
+
18
+ ## Workflow
19
+
20
+ 1. Identify what a maintainer/operator must know when this fails.
21
+ 2. Add signals at boundaries and important state transitions.
22
+ 3. Include correlation identifiers or stable context when available.
23
+ 4. Redact secrets and personal/sensitive data.
24
+ 5. Keep labels/cardinality bounded.
25
+ 6. Avoid logging tight loops or expected noisy paths at high severity.
26
+ 7. Test or inspect that instrumentation executes on success and failure paths.
27
+
28
+ ## Review questions
29
+
30
+ - Can someone diagnose the failure without reproducing locally?
31
+ - Are logs actionable rather than decorative?
32
+ - Will this create noise, cost, or privacy risk?
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: performance-measurement
3
+ description: Improve performance with evidence instead of premature optimization. Use when optimizing latency, throughput, memory, startup, storage, queries, algorithms, rendering, build time, or hot paths. Guides baseline measurement, bottleneck isolation, complexity analysis, and regression guards.
4
+ ---
5
+
6
+ # Performance Measurement
7
+
8
+ Use this skill before and during performance work.
9
+
10
+ ## Workflow
11
+
12
+ 1. Define the performance goal and user/system impact.
13
+ 2. Measure a baseline with representative input or workload.
14
+ 3. Identify the bottleneck before changing code.
15
+ 4. Estimate algorithmic complexity and data-size effects.
16
+ 5. Make the smallest optimization that targets the measured bottleneck.
17
+ 6. Re-measure and compare against the baseline.
18
+ 7. Add a benchmark, regression test, or monitoring signal when future regressions matter.
19
+ 8. Preserve readability unless performance evidence justifies complexity.
20
+
21
+ ## Common bottleneck classes
22
+
23
+ - repeated expensive work
24
+ - inefficient data access pattern
25
+ - unnecessary serialization/parsing
26
+ - blocking IO in hot path
27
+ - unbounded memory growth
28
+ - poor batching/caching strategy
29
+ - algorithmic complexity mismatch
30
+
31
+ ## Avoid
32
+
33
+ - Optimizing cold paths.
34
+ - Adding caches without invalidation rules.
35
+ - Trading correctness or maintainability for unmeasured speed.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: reliability-design
3
+ description: Design code for predictable behavior under faults. Use when touching IO, storage, queues, events, workflows, services, retries, timeouts, background jobs, distributed state, or operator-facing failures. Applies reliability, fault tolerance, partial failure, degradation, and recovery thinking.
4
+ ---
5
+
6
+ # Reliability Design
7
+
8
+ Use this skill when code must keep working, fail safely, or recover under imperfect conditions.
9
+
10
+ ## Workflow
11
+
12
+ 1. Identify failure modes: dependency down, timeout, duplicate work, partial write, stale read, invalid state, resource exhaustion, human/operator error.
13
+ 2. Decide desired behavior for each important failure: reject, retry, compensate, degrade, queue, alert, or fail fast.
14
+ 3. Add timeouts and cancellation where waits can hang.
15
+ 4. Add retries only when operations are safe or idempotent.
16
+ 5. Preserve enough state/context for recovery.
17
+ 6. Add observability for failures and recovery paths.
18
+ 7. Test representative failure modes.
19
+
20
+ ## Design checks
21
+
22
+ - Is there a single source of truth for critical state?
23
+ - Can the operation run twice safely?
24
+ - What happens if the process stops halfway?
25
+ - What does the caller see during partial failure?
26
+ - How will an operator or developer diagnose this?
27
+
28
+ ## Avoid
29
+
30
+ - Infinite retries.
31
+ - Hidden partial success.
32
+ - Treating network/storage/process calls as always reliable.
@@ -23,9 +23,9 @@ order = 0
23
23
 
24
24
  [[layers]]
25
25
  name = "contracts"
26
- paths = [".pi/harness/specs/*", ".pi/harness/docs/*"]
26
+ paths = [".pi/harness/specs/*", ".pi/harness/docs/*", ".pi/harness/policies/*", ".pi/harness/agents.policy.yaml", ".pi/harness/examples/*"]
27
27
  order = 1
28
- # Harness schemas, ADRs, and governance docs
28
+ # Harness schemas, ADRs, AGT policies, and agents.policy SSOT
29
29
 
30
30
  [[layers]]
31
31
  name = "runtime"
@@ -41,9 +41,15 @@ order = 3
41
41
 
42
42
  [[layers]]
43
43
  name = "tooling"
44
- paths = [".pi/scripts/*", "test/*"]
44
+ paths = [".pi/scripts/*"]
45
45
  order = 4
46
- # Harness CLI scripts and tests
46
+ # Harness CLI scripts
47
+
48
+ [[layers]]
49
+ name = "foundation"
50
+ paths = [".pi/lib/*"]
51
+ order = 5
52
+ # Shared harness/AGT libraries (imported by extensions and scripts)
47
53
 
48
54
  [[boundaries]]
49
55
  from = ".agents/skills/*"
@@ -65,6 +71,16 @@ from = ".pi/harness/specs/*"
65
71
  to = ".pi/extensions/*"
66
72
  reason = "Contracts are data-only JSON schemas; extensions implement behavior"
67
73
 
74
+ [[boundaries]]
75
+ from = ".pi/lib/*"
76
+ to = ".pi/extensions/*"
77
+ reason = "Foundation lib must not import extension modules"
78
+
79
+ [[boundaries]]
80
+ from = ".pi/harness/policies/*"
81
+ to = ".pi/extensions/*"
82
+ reason = "Declarative AGT YAML must not depend on extension implementation"
83
+
68
84
  [[boundaries]]
69
85
  from = ".pi/scripts/*"
70
86
  to = ".agents/skills/*"
package/AGENTS.md CHANGED
@@ -4,6 +4,11 @@ Purpose: Agentic coding harness — architecture, research, decisions, implement
4
4
  Owner: pi-mono + user
5
5
  Created: 2026-05-14
6
6
 
7
+ ## Instruction Boundaries
8
+
9
+ - `.pi/SYSTEM.md` is the reusable harness-level agent prompt and should remain project-agnostic for external projects.
10
+ - Keep ultimate-pi-specific paths, ownership, local conventions, and repository facts in this `AGENTS.md` file (or nearby project docs), not in `.pi/SYSTEM.md`.
11
+
7
12
  ## Structure
8
13
 
9
14
  - graphify-out/ → Knowledge graph (run `graphify update .` to build)
package/CHANGELOG.md CHANGED
@@ -4,6 +4,32 @@ All notable changes to this project are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ### ✨ Features
8
+
9
+ - **Harness lens:** Integrate selected pi-lens capabilities through a harness-owned extension, store lens state under `.pi/harness/.lens`, and route lens findings through harness PostHog telemetry instead of standalone lens health/telemetry surfaces.
10
+ - **Graphify KB updater:** Productize conservative daily discovery/promotion with explicit repo/release taxonomy, allowlist source-class gates, operator review queue reporting, scheduler smoke validation, and safe Graphify refresh controls.
11
+
12
+ ## [v0.19.0] — 2026-05-24
13
+
14
+ ### ✨ Features
15
+
16
+ - **Harness:** `agents.policy.yaml` as per-agent tool SSOT with manifest alignment; subprocess `subagent-governance` bundle and AGT `tool_allowed` enforcement.
17
+ - **Harness:** Consolidate shared modules under `.pi/lib/` (moved from `.pi/extensions/lib/`); update imports, packaging, verify, and tests.
18
+ - **Harness:** AGT-backed policy gate with subprocess governance bundle (extends v0.18.x AGT work).
19
+
20
+ ### 🔧 Chores
21
+
22
+ - Apply Biome organize-imports and format fixes across moved harness library files.
23
+ - Commit pending harness architecture and context tooling updates.
24
+
25
+ ## [v0.18.1] — 2026-05-24
26
+
27
+ ### 🔧 Chores
28
+
29
+ - Ignore local project runtime config.
30
+ - Fix harness review revise flow and widget UX.
31
+ - Add harness project toggle controls.
32
+
7
33
  ## [v0.18.0] — 2026-05-23
8
34
 
9
35
  ### ✨ Features
package/README.md CHANGED
@@ -2,102 +2,129 @@
2
2
 
3
3
  > The **ultimate AI coding harness** on top of [**pi.dev**](https://pi.dev).
4
4
 
5
- `ultimate-pi` is a pi package that adds a governed coding workflow: plan first, then implement, then independent review—so agents cannot silently skip planning or merge unsafe changes.
5
+ `ultimate-pi` adds a governed coding workflow to Pi: bootstrap the repo, plan with evidence, execute only against an approved PlanPacket, then run an independent review gate before merge.
6
6
 
7
7
  ## Quick start
8
8
 
9
- **Requirements:** Node 18+, npm 9+, git.
9
+ **Requirements:** Node 18+, npm 9+, git, and Pi.
10
10
 
11
- 1. **Install** (from your project directory):
11
+ 1. Install the package in your project:
12
12
 
13
13
  ```bash
14
14
  pi install npm:ultimate-pi
15
15
  /reload
16
16
  ```
17
17
 
18
- 2. **Bootstrap** (once per project):
18
+ 2. Bootstrap the harness once per project:
19
19
 
20
20
  ```text
21
21
  /harness-setup
22
22
  ```
23
23
 
24
- 3. **Run a task** (full pipeline in one command):
24
+ 3. Run the strict end-to-end pipeline:
25
25
 
26
26
  ```text
27
27
  /harness-auto "implement feature X safely"
28
28
  ```
29
29
 
30
- That runs: plan → execute → evaluateadversary policy decision. It does **not** auto-merge.
30
+ `/harness-auto` runs plan → execute → reviewoptional steer loop. It may prepare commit/PR work when gates pass, but it never auto-merges.
31
31
 
32
- If something blocks, inspect status (no run id needed):
32
+ ## Core workflow
33
+
34
+ ### Recommended: one command
33
35
 
34
36
  ```text
35
- /harness-run-status
36
- /harness-policy-status
37
- /harness-trace-last
37
+ /harness-auto "your task" [--quick] [--risk low|med|high]
38
38
  ```
39
39
 
40
- ## Commands
41
-
42
- | Command | What it does |
43
- |---------|----------------|
44
- | `/harness-setup` | One-time project bootstrap (tools, harness dirs, extensions) |
45
- | `/harness-auto "<task>"` | End-to-end pipeline (recommended) |
46
- | `/harness-plan "<task>"` | Create or **revise** the active plan in context (no plan path to copy) |
47
- | `/harness-run` | Execute the active plan from context (**no `--plan`** on happy path) |
48
- | `/harness-eval` | Eval for active run (optional `--run`; spawns isolated `harness/evaluator`) |
49
- | `/harness-review` | Independent review (optional `--run`) |
50
- | `/harness-critic` | Adversarial review (optional `--run`) |
51
- | `/harness-trace` | Trace summary (optional `--run`) |
52
- | `/harness-run-status` | Where you are + what to run next (no run id shown) |
53
- | `/harness-new-run` | Abandon current run and start fresh |
54
- | `/harness-use-run <id>` | Advanced recovery only |
55
- | `/harness-trace-last` | Last phase / handoff (no run id) |
56
- | `/harness-policy-status` | Current policy / block reasons |
57
- | `/harness-abort [reason]` | Stop and replan path |
58
-
59
- ## Manual workflow
60
-
61
- Use this when you want each step separate:
40
+ Use this for most feature, fix, and refactor work. The parent orchestrator handles the phase handoffs and keeps active run context in `.pi/harness/active-run.json` plus run artifacts under `.pi/harness/runs/`.
41
+
42
+ ### Manual: phase by phase
62
43
 
63
44
  ```text
64
- /harness-plan "your task"
45
+ /harness-plan "your task" [--risk low|med|high] [--quick]
65
46
  /harness-run
66
- /harness-eval
67
- /harness-review
68
- /harness-critic
47
+ /harness-review [--quick]
69
48
  ```
70
49
 
71
- The harness **remembers the active run and plan** per project you do not pass `plan-packet.json` paths or run ids between steps. The live widget shows phase/policy; after each step the agent (and UI notify) suggests the next command.
50
+ Manual mode is useful when you want to inspect or approve each handoff. On the happy path you do **not** pass `--plan` or a run id; the harness restores the active PlanPacket and run context.
72
51
 
73
- Recovery: `--run` and `--plan` remain for scripts; `/harness-use-run` and `/harness-run-status` for operators.
52
+ ### Repair loop
74
53
 
75
- ## Defaults you should know
54
+ If `/harness-review` returns `implementation_gap`, run:
76
55
 
77
- - **System prompt** — [`.pi/extensions/00-ultimate-pi-system-prompt.ts`](.pi/extensions/00-ultimate-pi-system-prompt.ts) sets the base prompt from packaged [`.pi/SYSTEM.md`](.pi/SYSTEM.md), or from your workspace override **`.pi/system.md`** (lowercase) if you create one. Nothing is copied into your project by default. After upgrading the package or editing either file, run **`/reload`**.
78
- - **Model routing (vendored + gated)** — [`pi-model-router`](https://github.com/yeliu84/pi-model-router) ships inside this package (`vendor/pi-model-router/`). [`.pi/extensions/pi-model-router-harness.ts`](.pi/extensions/pi-model-router-harness.ts) activates it **only after** `.pi/model-router.json` exists (generation: `/harness-setup` Step 3.5), so **`router/auto` does not appear** beforehand. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). [`.pi/scripts/harness-sync-model-router.mjs`](.pi/scripts/harness-sync-model-router.mjs) may set **`defaultProvider`/`defaultModel`** to **`router`/`auto`** when the project sets no default — run **`/reload`** afterward. Do **not** add `npm:@yeliu84/pi-model-router` to `.pi/settings.json`; it duplicates the fork. Maintainer refresh: **`npm run vendor:sync-router`**.
79
- - **Active run + plan context** — PlanPacket lives at a fixed path per run; the extension injects it for `/harness-plan` (revise) and `/harness-run` (execute). Session state plus `.pi/harness/active-run.json`; no run ids or plan paths to copy.
80
- - **Review isolation** — `/harness-eval`, `/harness-review`, and `/harness-critic` spawn isolated subagents (`inherit_context: false`); stay in the same session (see ADR 0032).
81
- - **Concurrent plans** — a second `/harness-plan` while a run is active is blocked until `/harness-abort` or `/harness-new-run` (except drift replan / amend after `needs_clarification`).
82
- - **Plan before mutate** — write/edit/shell that changes the repo is blocked until execute phase.
83
- - **No auto-merge** — you decide when to open or merge a PR.
84
- - **Structured runs** — each run writes artifacts under `.pi/harness/runs/` for replay and audit.
56
+ ```text
57
+ /harness-steer
58
+ /harness-review
59
+ ```
85
60
 
86
- Optional: copy [`.env.example`](.env.example) to `.env` if you use PostHog or other integrations wired by `/harness-setup`.
61
+ `/harness-steer` uses `artifacts/repair-brief.yaml` and respawns the executor in repair mode without widening the approved plan scope.
62
+
63
+ ## Command reference
64
+
65
+ | Command | Purpose |
66
+ |---|---|
67
+ | `/harness-setup [--skip-graphify] [--skip-tools] [--non-interactive] [--force]` | Idempotent project bootstrap: Graphify, harness-web/Scrapling, CLI tools, settings, contracts, Sentrux, harness lens, and verification. |
68
+ | `/harness-auto "<task>" [--quick] [--risk low\|med\|high]` | Strict full pipeline: plan, execute, review, steer when appropriate. |
69
+ | `/harness-plan "<task>" [--risk low\|med\|high] [--quick]` | PM-grade planning: reconnaissance, decomposition, hypothesis, external research, ExecutionPlan, DAG validation, Review Gate debate, `approve_plan`, `create_plan`. |
70
+ | `/harness-run` | Executes the approved active PlanPacket by spawning `harness/running/executor`; no inline implementation. |
71
+ | `/harness-review [--run <id>] [--quick] [--readonly] [--trace <ref>]` | Post-run verification gate: deterministic checks, benchmark evaluator, policy verdict, adversary, optional tie-breaker. |
72
+ | `/harness-steer [--attempt N]` | Post-review repair pass for `implementation_gap`; executor reads `repair-brief.yaml`, then you re-run `/harness-review`. |
73
+ | `/harness-abort [reason]` | Safely aborts the active run, clears plan readiness, and re-locks mutation until a fresh plan is approved. |
74
+ | `/harness-trace [--run <id>] [--phase plan\|execute\|evaluate\|adversary\|merge]` | Summarizes run traces and artifact handoffs for replay/forensics. |
75
+ | `/harness-incident --trigger <reason> [--run <id>] [--severity low\|med\|high\|critical]` | Records incident, rollback, and override trail for harness failures. |
76
+ | `/harness-sentrux-steward [--run <id>]` | Ad-hoc architectural intent review for Sentrux manifest/rule alignment. |
77
+ | `/graphify [directory]` | Bootstraps or updates the Graphify knowledge graph. |
78
+ | `/wiki-autoresearch [topic]` | Runs autonomous web research and builds a Graphify-backed research wiki. |
79
+ | `/wiki-save` | Saves the current conversation or insight as a structured wiki note. |
80
+ | `/release [patch\|minor\|major] [--dry-run]` | Maintainer release helper. |
81
+
82
+ ## Harness phases and agents
83
+
84
+ - **Planning** uses agents under `.pi/agents/harness/planning/` plus parent-led Graphify → `sg` → `ccc` reconnaissance. Legacy tool-tied `planning/scout-*` agents have been removed; planning context is captured in `artifacts/planning-context.yaml`.
85
+ - **Running** uses `.pi/agents/harness/running/executor.md` via agent id `harness/running/executor`.
86
+ - **Reviewing** uses `.pi/agents/harness/reviewing/` via `harness/reviewing/evaluator`, `harness/reviewing/adversary`, and `harness/reviewing/tie-breaker`.
87
+ - **Support agents** such as `harness/incident-recorder`, `harness/sentrux-steward`, and `harness/trace-librarian` remain under `.pi/agents/harness/`.
88
+
89
+ Subagents run isolated from the parent session. They persist canonical YAML through `submit_*` tools; the parent gates with `harness_artifact_ready` and writes only orchestrator-owned merge artifacts.
90
+
91
+ ## Artifacts and layout
92
+
93
+ | Path | Description |
94
+ |---|---|
95
+ | `.pi/harness/active-run.json` | Active run pointer for happy-path commands. |
96
+ | `.pi/harness/runs/<run_id>/plan-packet.yaml` | Approved execution baseline. |
97
+ | `.pi/harness/runs/<run_id>/research-brief.yaml` | Planning evidence and research merge. |
98
+ | `.pi/harness/runs/<run_id>/artifacts/` | Planning context, decomposition, research, benchmark, verdict, adversary, repair, and Sentrux artifacts. |
99
+ | `.pi/harness/runs/<run_id>/handoff/executor-summary.yaml` | Executor handoff written by `submit_executor_handoff`. |
100
+ | `.pi/harness/incidents/` | Incident records and rollback/override trail. |
101
+ | `.pi/harness/docs/adrs/` | Harness architectural decisions. |
102
+ | `.pi/harness/specs/` | Artifact contracts and schemas seeded into projects. |
103
+
104
+ ## Safety defaults
105
+
106
+ - **Graph before grep:** planning consults `graphify-out/GRAPH_REPORT.md` and Graphify queries before raw file reads.
107
+ - **Plan before mutate:** mutating tools are blocked until `/harness-plan` approves and creates a plan.
108
+ - **No inline execution:** `/harness-run` delegates to `harness/running/executor` only.
109
+ - **No inline review:** `/harness-review` delegates verdicts to isolated reviewing agents.
110
+ - **No auto-merge:** final merge remains a human/operator decision.
111
+ - **Sentrux is the architecture signal:** structural baselines and gates inform review; executor does not optimize metrics as a goal.
112
+ - **pi-lens is edit-time diagnostics:** LSP/lint/format/ast feedback complements Sentrux and does not replace architecture gating.
87
113
 
88
114
  ## Troubleshooting
89
115
 
90
116
  | Problem | Try |
91
- |---------|-----|
92
- | Setup fails | `node --version` (need 18+), rerun `/harness-setup` |
93
- | "No active run" on eval | Finish plan+run first, or `/harness-run-status` |
94
- | Forgot where you left off | `/harness-run-status` |
95
- | Second plan rejected | `/harness-abort` or `/harness-new-run` |
96
- | Blocked in evaluate/review | Spawn review via Agent (`harness/evaluator` / `harness/adversary`); do not run review tools inline in execute phase |
97
- | High plan drift | `harness-drift-replan` or abort then replan (ADR 0007) |
98
- | Budget / scope stop | `/harness-budget-status`, narrow the task or split the plan |
99
- | Test integrity warning | `/harness-test-integrity-last`, fix or justify test changes |
117
+ |---|---|
118
+ | Setup fails | Confirm `node --version` is 18+, `npm --version` is 9+, then rerun `/harness-setup`. |
119
+ | No approved plan | Run `/harness-plan "<task>"`, then `/harness-run`. |
120
+ | Need to inspect handoff | Run `/harness-trace` or inspect `.pi/harness/runs/<run_id>/`. |
121
+ | Need to restart safely | Run `/harness-abort [reason]`, then create a fresh plan. |
122
+ | Review says `implementation_gap` | Run `/harness-steer`, then `/harness-review`. |
123
+ | Review says `plan_gap` | Revise with `/harness-plan "<updated task>"`. |
124
+ | Sentrux missing | Install/configure Sentrux or keep it skipped; harness verification still reports the status. |
125
+
126
+ Optional integrations can be configured by copying `.env.example` to `.env`; `/harness-setup` appends missing keys without overwriting existing values.
100
127
 
101
128
  ## Contributing
102
129
 
103
- Local development, harness internals, and quality gates: [CONTRIBUTING.md](./CONTRIBUTING.md) and [`.pi/harness/README.md`](.pi/harness/README.md).
130
+ Local development, harness internals, and quality gates: [CONTRIBUTING.md](./CONTRIBUTING.md), [`.pi/scripts/README.md`](.pi/scripts/README.md), and [`.pi/harness/docs/adrs/`](.pi/harness/docs/adrs/).
@@ -1,31 +1,22 @@
1
- # Third-party notices
2
-
3
- ## pi-model-router (vendored)
4
-
5
- - **Project:** https://github.com/yeliu84/pi-model-router
6
- - **License:** MIT ([vendor/pi-model-router/LICENSE](vendor/pi-model-router/LICENSE))
7
- - **Pinned revision:** See [vendor/pi-model-router/UPSTREAM_PIN.md](vendor/pi-model-router/UPSTREAM_PIN.md)
8
- - ultimate-pi loads it from [`vendor/pi-model-router`](vendor/pi-model-router); import specifiers were adapted for `@earendil-works/pi-coding-agent` and related Pi packages.
9
-
10
1
  ## pi-vcc (vendored)
11
2
 
12
- - **Project:** https://github.com/sting8k/pi-vcc
13
- - **Conceptual basis:** https://github.com/lllyasviel/VCC (View-oriented Conversation Compiler)
14
- - **License:** MIT (see upstream repository)
15
- - **Pinned revision:** See [vendor/pi-vcc/UPSTREAM_PIN.md](vendor/pi-vcc/UPSTREAM_PIN.md)
16
- - ultimate-pi loads it from [`vendor/pi-vcc`](vendor/pi-vcc) via [`.pi/extensions/ultimate-pi-vcc.ts`](.pi/extensions/ultimate-pi-vcc.ts). Harness configuration is env-only: `HARNESS_VCC_COMPACTION`, `HARNESS_VCC_DEBUG` ([`.pi/extensions/lib/harness-vcc-settings.ts`](.pi/extensions/lib/harness-vcc-settings.ts)). Maintainer refresh: `npm run vendor:sync-vcc`.
3
+ - **Project:** https://github.com/sting8k/pi-vcc
4
+ - **Conceptual basis:** https://github.com/lllyasviel/VCC (View-oriented Conversation Compiler)
5
+ - **License:** MIT (see upstream repository)
6
+ - **Pinned revision:** See [vendor/pi-vcc/UPSTREAM_PIN.md](vendor/pi-vcc/UPSTREAM_PIN.md)
7
+ - ultimate-pi loads it from [`vendor/pi-vcc`](vendor/pi-vcc) via [`.pi/extensions/ultimate-pi-vcc.ts`](.pi/extensions/ultimate-pi-vcc.ts). Harness configuration is env-only: `HARNESS_VCC_COMPACTION`, `HARNESS_VCC_DEBUG` ([`.pi/lib/harness-vcc-settings.ts`](.pi/lib/harness-vcc-settings.ts)). Maintainer refresh: `npm run vendor:sync-vcc`.
17
8
 
18
9
  ## pi-subagents (vendored)
19
10
 
20
- - **Project:** https://github.com/narumiruna/pi-extensions (`extensions/pi-subagents`)
21
- - **npm:** `@narumitw/pi-subagents@0.1.26`
22
- - **License:** MIT ([vendor/pi-subagents/LICENSE](vendor/pi-subagents/LICENSE))
23
- - **Pinned revision:** See [vendor/pi-subagents/UPSTREAM_PIN.md](vendor/pi-subagents/UPSTREAM_PIN.md)
11
+ - **Project:** https://github.com/narumiruna/pi-extensions (`extensions/pi-subagents`)
12
+ - **npm:** `@narumitw/pi-subagents@0.1.26`
13
+ - **License:** MIT ([vendor/pi-subagents/LICENSE](vendor/pi-subagents/LICENSE))
14
+ - **Pinned revision:** See [vendor/pi-subagents/UPSTREAM_PIN.md](vendor/pi-subagents/UPSTREAM_PIN.md)
24
15
  - ultimate-pi loads it from [`vendor/pi-subagents`](vendor/pi-subagents) via [`.pi/extensions/harness-subagents.ts`](.pi/extensions/harness-subagents.ts) with harness discovery, spawn gates, and subprocess env. Maintainer refresh: `npm run vendor:sync-subagents`.
25
16
 
26
17
  ## CocoIndex Code (CLI + skill)
27
18
 
28
- - **Project:** https://github.com/cocoindex-io/cocoindex-code
29
- - **License:** Apache-2.0
30
- - **Install:** `uv tool install 'cocoindex-code[full]'` (see `/harness-setup` §2.4)
19
+ - **Project:** https://github.com/cocoindex-io/cocoindex-code
20
+ - **License:** Apache-2.0
21
+ - **Install:** `uv tool install 'cocoindex-code[full]'` (see `/harness-setup` §2.4)
31
22
  - ultimate-pi vendors the upstream agent skill at [`.agents/skills/ccc/`](.agents/skills/ccc/) and bootstraps indexes via [`.pi/scripts/harness-cocoindex-bootstrap.sh`](.pi/scripts/harness-cocoindex-bootstrap.sh). Replaces deprecated `@beaconbay/ck-search`.