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.
- package/.agents/skills/harness-debate-plan/SKILL.md +1 -1
- package/.agents/skills/harness-decisions/SKILL.md +2 -3
- package/.agents/skills/harness-governor/SKILL.md +6 -5
- package/.agents/skills/harness-orchestration/SKILL.md +4 -4
- package/.agents/skills/harness-review/SKILL.md +7 -7
- package/.agents/skills/harness-sentrux-setup/SKILL.md +4 -3
- package/.agents/skills/harness-steer/SKILL.md +1 -1
- package/.agents/skills/sentrux/SKILL.md +9 -9
- package/.pi/PACKAGING.md +4 -4
- package/.pi/SYSTEM.md +54 -120
- package/.pi/agents/harness/incident-recorder.md +0 -1
- package/.pi/agents/harness/planning/decompose.md +1 -3
- package/.pi/agents/harness/planning/execution-plan-author.md +0 -2
- package/.pi/agents/harness/planning/hypothesis-validator.md +0 -2
- package/.pi/agents/harness/planning/hypothesis.md +0 -2
- package/.pi/agents/harness/planning/implementation-researcher.md +0 -2
- package/.pi/agents/harness/planning/plan-adversary.md +0 -2
- package/.pi/agents/harness/planning/plan-evaluator.md +1 -3
- package/.pi/agents/harness/planning/planning-context.md +0 -2
- package/.pi/agents/harness/planning/review-integrator.md +0 -2
- package/.pi/agents/harness/planning/sprint-contract-auditor.md +0 -2
- package/.pi/agents/harness/planning/stack-researcher.md +0 -2
- package/.pi/agents/harness/{adversary.md → reviewing/adversary.md} +0 -2
- package/.pi/agents/harness/{evaluator.md → reviewing/evaluator.md} +0 -2
- package/.pi/agents/harness/{tie-breaker.md → reviewing/tie-breaker.md} +0 -2
- package/.pi/agents/harness/{executor.md → running/executor.md} +0 -2
- package/.pi/agents/harness/sentrux-bootstrap.md +0 -1
- package/.pi/agents/harness/sentrux-steward.md +0 -2
- package/.pi/agents/harness/trace-librarian.md +0 -1
- package/.pi/extensions/00-harness-project-control.ts +133 -0
- package/.pi/extensions/00-posthog-network-bootstrap.ts +1 -1
- package/.pi/extensions/agt-kill-switch.ts +57 -0
- package/.pi/extensions/agt-prompt-guard.ts +32 -0
- package/.pi/extensions/budget-guard.ts +2 -0
- package/.pi/extensions/custom-footer.ts +46 -145
- package/.pi/extensions/custom-header.ts +1 -1
- package/.pi/extensions/custom-system-prompt.ts +1 -1
- package/.pi/extensions/debate-orchestrator.ts +7 -5
- package/.pi/extensions/harness-ask-user.ts +8 -8
- package/.pi/extensions/harness-debate-tools.ts +27 -43
- package/.pi/extensions/harness-lens.ts +94 -0
- package/.pi/extensions/harness-live-widget.ts +33 -2
- package/.pi/extensions/harness-plan-approval.ts +12 -12
- package/.pi/extensions/harness-run-context.ts +1214 -852
- package/.pi/extensions/harness-subagent-governance.ts +8 -0
- package/.pi/extensions/harness-subagent-submit.ts +36 -164
- package/.pi/extensions/harness-subagents.ts +4 -4
- package/.pi/extensions/harness-telemetry.ts +3 -1
- package/.pi/extensions/harness-web-tools.ts +3 -3
- package/.pi/extensions/observation-bus.ts +2 -0
- package/.pi/extensions/policy-gate.ts +27 -5
- package/.pi/extensions/review-integrity.ts +91 -10
- package/.pi/extensions/sentrux-rules-sync.ts +3 -1
- package/.pi/extensions/subagent-governance.ts +92 -0
- package/.pi/extensions/test-diff-integrity.ts +1 -0
- package/.pi/extensions/trace-recorder.ts +3 -1
- package/.pi/extensions/{ultimate-pi-vcc.ts → vcc-compaction.ts} +1 -1
- package/.pi/harness/README.md +6 -2
- package/.pi/harness/agents.manifest.json +38 -49
- package/.pi/harness/agents.policy.yaml +275 -0
- package/.pi/harness/corpus/graphify-kb-updater.config.json +55 -0
- package/.pi/harness/docs/adrs/0006-sentrux-dual-layer.md +2 -1
- package/.pi/harness/docs/adrs/0030-inhouse-vcc-compaction.md +1 -1
- package/.pi/harness/docs/adrs/0035-plan-phase-review-gate.md +1 -1
- package/.pi/harness/docs/adrs/0044-harness-steer-loop.md +3 -2
- package/.pi/harness/docs/adrs/0045-harness-lens-minimal-contract.md +49 -0
- package/.pi/harness/docs/adrs/0045-phase-scoped-agent-directories.md +33 -0
- package/.pi/harness/docs/adrs/0046-agt-policy-engine.md +51 -0
- package/.pi/harness/docs/adrs/0047-agt-layered-security.md +39 -0
- package/.pi/harness/docs/adrs/0048-tool-call-hook-order.md +25 -0
- package/.pi/harness/docs/adrs/0049-agents-policy-manifest.md +36 -0
- package/.pi/harness/docs/adrs/README.md +6 -0
- package/.pi/harness/docs/graphify-kb-updater-runbook.md +11 -5
- package/.pi/harness/docs/practice-map.md +2 -2
- package/.pi/harness/evolution/README.md +1 -2
- package/.pi/harness/examples/agents.policy.project.yaml +19 -0
- package/.pi/harness/examples/policies/custom-deny-bash.yaml +9 -0
- package/.pi/harness/policies/bash-denylists.yaml +5 -0
- package/.pi/harness/policies/defaults.yaml +51 -0
- package/.pi/harness/policies/orchestrator.yaml +18 -0
- package/.pi/harness/policies/phases.yaml +10 -0
- package/.pi/harness/policies/roles.yaml +5 -0
- package/.pi/harness/policies/web-guard.yaml +5 -0
- package/.pi/harness/policies/workflow-sequences.yaml +9 -0
- package/.pi/harness/sentrux/architecture.manifest.json +26 -4
- package/.pi/harness/specs/harness-spawn-context.schema.json +1 -1
- package/.pi/harness/specs/observation.schema.json +2 -1
- package/.pi/lib/agents-policy.d.mts +70 -0
- package/.pi/lib/agents-policy.mjs +325 -0
- package/.pi/lib/agents-policy.ts +19 -0
- package/.pi/lib/agt/audit-run-sink.ts +52 -0
- package/.pi/lib/agt/build-evaluation-context.ts +285 -0
- package/.pi/lib/agt/config.ts +28 -0
- package/.pi/lib/agt/delegation.ts +69 -0
- package/.pi/lib/agt/evaluate-policy.ts +56 -0
- package/.pi/lib/agt/identity-registry.ts +41 -0
- package/.pi/lib/agt/index.ts +55 -0
- package/.pi/lib/agt/kill-switch-state.ts +11 -0
- package/.pi/lib/agt/legacy-evaluate.ts +101 -0
- package/.pi/lib/agt/policy-engine.ts +154 -0
- package/.pi/lib/agt/rings.ts +21 -0
- package/.pi/lib/agt/sre-hooks.ts +45 -0
- package/.pi/lib/agt/trust-run-store.ts +26 -0
- package/.pi/lib/agt/workflow-history.ts +29 -0
- package/.pi/lib/agt-governance-active.ts +14 -0
- package/.pi/lib/agt-tool-guard.ts +78 -0
- package/.pi/lib/ask-user/dialog.ts +314 -0
- package/.pi/{extensions/lib → lib}/debate-bus-core.ts +10 -10
- package/.pi/{extensions/lib → lib}/debate-bus-state.ts +1 -1
- package/.pi/{extensions/lib → lib}/extension-load-guard.ts +21 -0
- package/.pi/lib/harness-agt-tool-guard.ts +5 -0
- package/.pi/{extensions/lib → lib}/harness-artifact-gate.ts +6 -16
- package/.pi/lib/harness-debate-core-deps.ts +14 -0
- package/.pi/lib/harness-debate-workflow-deps.ts +43 -0
- package/.pi/lib/harness-lens/.gitattributes +1 -0
- package/.pi/lib/harness-lens/clients/edit-autopatch.ts +88 -0
- package/.pi/lib/harness-lens/clients/file-kinds.ts +380 -0
- package/.pi/lib/harness-lens/clients/file-time.ts +215 -0
- package/.pi/lib/harness-lens/clients/file-utils.ts +484 -0
- package/.pi/lib/harness-lens/clients/format-service.ts +276 -0
- package/.pi/lib/harness-lens/clients/formatters.ts +1000 -0
- package/.pi/lib/harness-lens/clients/git-guard.ts +31 -0
- package/.pi/lib/harness-lens/clients/indent-retarget.ts +90 -0
- package/.pi/lib/harness-lens/clients/installer/index.ts +2368 -0
- package/.pi/lib/harness-lens/clients/latency-logger.ts +80 -0
- package/.pi/lib/harness-lens/clients/lens-config.ts +43 -0
- package/.pi/lib/harness-lens/clients/lens-events.ts +164 -0
- package/.pi/lib/harness-lens/clients/lsp/aggregation.ts +91 -0
- package/.pi/lib/harness-lens/clients/lsp/client.ts +1466 -0
- package/.pi/lib/harness-lens/clients/lsp/config.ts +216 -0
- package/.pi/lib/harness-lens/clients/lsp/edits.ts +297 -0
- package/.pi/lib/harness-lens/clients/lsp/index.ts +1355 -0
- package/.pi/lib/harness-lens/clients/lsp/interactive-install.ts +424 -0
- package/.pi/lib/harness-lens/clients/lsp/language.ts +223 -0
- package/.pi/lib/harness-lens/clients/lsp/launch.ts +939 -0
- package/.pi/lib/harness-lens/clients/lsp/lsp-index.ts +11 -0
- package/.pi/lib/harness-lens/clients/lsp/path-utils.ts +12 -0
- package/.pi/lib/harness-lens/clients/lsp/server-strategies.ts +81 -0
- package/.pi/lib/harness-lens/clients/lsp/server.ts +1971 -0
- package/.pi/lib/harness-lens/clients/path-utils.ts +182 -0
- package/.pi/lib/harness-lens/clients/pipeline.ts +360 -0
- package/.pi/lib/harness-lens/clients/project-profile.ts +117 -0
- package/.pi/lib/harness-lens/clients/runtime-agent-end.ts +112 -0
- package/.pi/lib/harness-lens/clients/runtime-config.ts +33 -0
- package/.pi/lib/harness-lens/clients/runtime-coordinator.ts +186 -0
- package/.pi/lib/harness-lens/clients/runtime-tool-result.ts +171 -0
- package/.pi/lib/harness-lens/clients/safe-spawn.ts +339 -0
- package/.pi/lib/harness-lens/clients/secrets-scanner.ts +214 -0
- package/.pi/lib/harness-lens/clients/tool-policy.ts +2072 -0
- package/.pi/lib/harness-lens/clients/types.ts +59 -0
- package/.pi/lib/harness-lens/clients/widget-state.ts +283 -0
- package/.pi/lib/harness-lens/index.ts +532 -0
- package/.pi/lib/harness-lens/tools/lsp-diagnostics.ts +706 -0
- package/.pi/lib/harness-lens/tools/lsp-navigation.ts +1246 -0
- package/.pi/{extensions/lib → lib}/harness-posthog.ts +3 -0
- package/.pi/lib/harness-project-config.ts +91 -0
- package/.pi/lib/harness-run-context-responses.ts +9 -0
- package/.pi/lib/harness-run-context.ts +1 -3
- package/.pi/{extensions/lib/spawn-policy.ts → lib/harness-spawn-policy.ts} +4 -3
- package/.pi/{extensions/lib → lib}/harness-spawn-topology.ts +5 -28
- package/.pi/lib/harness-subagent-auth.ts +51 -0
- package/.pi/{extensions/lib → lib}/harness-subagent-precheck.ts +13 -10
- package/.pi/{extensions/lib → lib}/harness-subagent-submit-pipeline.ts +3 -3
- package/.pi/lib/harness-subagent-submit-register.ts +163 -0
- package/.pi/{extensions/lib → lib}/harness-subagent-submit-registry.ts +1 -55
- package/.pi/{extensions/lib → lib}/harness-subagents-bridge.ts +53 -14
- package/.pi/{extensions/lib → lib}/harness-subprocess-bootstrap.ts +1 -1
- package/.pi/lib/harness-ui-state.ts +27 -12
- package/.pi/{extensions/lib → lib}/plan-approval/create-plan.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/format-plan.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/plan-review.ts +162 -201
- package/.pi/{extensions/lib → lib}/plan-approval/render.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-approval/resolve-disk.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/types.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-approval/validate.ts +3 -3
- package/.pi/{extensions/lib → lib}/plan-approval-readiness.ts +3 -52
- package/.pi/{extensions/lib → lib}/plan-debate-envelope.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-debate-gate.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-debate-lane.ts +1 -4
- package/.pi/{extensions/lib → lib}/plan-messenger.ts +1 -1
- package/.pi/prompts/harness-auto.md +2 -2
- package/.pi/prompts/harness-plan.md +4 -6
- package/.pi/prompts/harness-review.md +9 -9
- package/.pi/prompts/harness-run.md +7 -7
- package/.pi/prompts/harness-setup.md +42 -68
- package/.pi/prompts/harness-steer.md +2 -2
- package/.pi/scripts/README.md +3 -5
- package/.pi/scripts/generate-agents-policy-yaml.mjs +148 -0
- package/.pi/scripts/graphify-kb-updater.mjs +48 -8
- package/.pi/scripts/harness-agents-manifest.mjs +61 -4
- package/.pi/scripts/harness-agt-doctor.ts +36 -0
- package/.pi/scripts/harness-cli-verify.sh +9 -2
- package/.pi/scripts/harness-project-toggle.mjs +129 -0
- package/.pi/scripts/harness-sentrux-cli.mjs +142 -0
- package/.pi/scripts/harness-verify.mjs +113 -39
- package/.pi/scripts/harness-web-policy-guard.mjs +2 -2
- package/.pi/scripts/validate-plan-dag.mjs +65 -74
- package/.pi/scripts/vendor-pi-vcc-settings.stub.ts +2 -2
- package/.pi/scripts/vendor-sync-pi-vcc.sh +1 -1
- package/.pi/skills/architecture/broker-domain/SKILL.md +65 -0
- package/.pi/skills/architecture/cqrs/SKILL.md +63 -0
- package/.pi/skills/architecture/event-driven/SKILL.md +60 -0
- package/.pi/skills/architecture/hexagonal-ports-adapters/SKILL.md +66 -0
- package/.pi/skills/architecture/layered/SKILL.md +68 -0
- package/.pi/skills/architecture/microkernel/SKILL.md +62 -0
- package/.pi/skills/architecture/microservices/SKILL.md +64 -0
- package/.pi/skills/architecture/modular-monolith/SKILL.md +65 -0
- package/.pi/skills/architecture/orchestration-driven-soa/SKILL.md +61 -0
- package/.pi/skills/architecture/pipeline/SKILL.md +63 -0
- package/.pi/skills/architecture/service-based/SKILL.md +64 -0
- package/.pi/skills/architecture/service-mesh/SKILL.md +60 -0
- package/.pi/skills/architecture/space-based/SKILL.md +60 -0
- package/.pi/skills/ast-grep/SKILL.md +40 -321
- package/.pi/skills/delivery/debugging-discipline/SKILL.md +36 -0
- package/.pi/skills/delivery/documentation-update/SKILL.md +33 -0
- package/.pi/skills/delivery/requirements-to-implementation/SKILL.md +34 -0
- package/.pi/skills/delivery/risk-based-verification/SKILL.md +43 -0
- package/.pi/skills/delivery/tradeoff-analysis/SKILL.md +34 -0
- package/.pi/skills/engineering/api-contract-design/SKILL.md +38 -0
- package/.pi/skills/engineering/cohesion-coupling/SKILL.md +43 -0
- package/.pi/skills/engineering/complexity-control/SKILL.md +31 -0
- package/.pi/skills/engineering/defensive-programming/SKILL.md +38 -0
- package/.pi/skills/engineering/dependency-management/SKILL.md +29 -0
- package/.pi/skills/engineering/domain-modeling/SKILL.md +32 -0
- package/.pi/skills/engineering/error-handling/SKILL.md +37 -0
- package/.pi/skills/engineering/legacy-code-seams/SKILL.md +35 -0
- package/.pi/skills/engineering/naming-and-intent/SKILL.md +29 -0
- package/.pi/skills/engineering/refactoring-safe-evolution/SKILL.md +35 -0
- package/.pi/skills/engineering/routine-function-design/SKILL.md +34 -0
- package/.pi/skills/engineering/small-change-discipline/SKILL.md +35 -0
- package/.pi/skills/lsp-navigation/SKILL.md +89 -0
- package/.pi/skills/quality/code-review-self-check/SKILL.md +35 -0
- package/.pi/skills/quality/privacy-data-handling/SKILL.md +26 -0
- package/.pi/skills/quality/security-review/SKILL.md +34 -0
- package/.pi/skills/quality/test-strategy/SKILL.md +33 -0
- package/.pi/skills/quality/testability-design/SKILL.md +33 -0
- package/.pi/skills/systems/concurrency-safety/SKILL.md +32 -0
- package/.pi/skills/systems/data-modeling-migrations/SKILL.md +31 -0
- package/.pi/skills/systems/observability-instrumentation/SKILL.md +32 -0
- package/.pi/skills/systems/performance-measurement/SKILL.md +35 -0
- package/.pi/skills/systems/reliability-design/SKILL.md +32 -0
- package/.sentrux/rules.toml +20 -4
- package/AGENTS.md +5 -0
- package/CHANGELOG.md +26 -0
- package/README.md +85 -58
- package/THIRD_PARTY_NOTICES.md +12 -21
- package/package.json +15 -7
- package/vendor/pi-subagents/src/agents.ts +45 -1
- package/vendor/pi-subagents/src/subagents.ts +866 -811
- package/vendor/pi-vcc/src/core/brief.ts +68 -99
- package/vendor/pi-vcc/src/core/settings.ts +2 -2
- package/.agents/skills/caveman/SKILL.md +0 -67
- package/.pi/agents/harness/meta-optimizer.md +0 -36
- package/.pi/agents/harness/planning/scout-graphify.md +0 -39
- package/.pi/agents/harness/planning/scout-semantic.md +0 -41
- package/.pi/agents/harness/planning/scout-structure.md +0 -37
- package/.pi/extensions/lib/ask-user/dialog.ts +0 -260
- package/.pi/extensions/lib/harness-subagent-auth.ts +0 -209
- package/.pi/extensions/lib/harness-subagent-policy.ts +0 -236
- package/.pi/extensions/pi-model-router-harness.ts +0 -42
- package/.pi/harness/evolution/meta-optimizer.mjs +0 -99
- package/.pi/harness/specs/router-tuning-proposal.schema.json +0 -114
- package/.pi/model-router.example.json +0 -36
- package/.pi/prompts/harness-critic.md +0 -10
- package/.pi/prompts/harness-eval.md +0 -10
- package/.pi/prompts/harness-router-tune.md +0 -52
- package/.pi/scripts/harness-generate-model-router.mjs +0 -327
- package/.pi/scripts/harness-model-router-routing.test.mjs +0 -97
- package/.pi/scripts/harness-sync-model-router.mjs +0 -97
- package/.pi/scripts/vendor-sync-pi-model-router.sh +0 -47
- package/vendor/pi-model-router/.prettierignore +0 -4
- package/vendor/pi-model-router/.prettierrc +0 -5
- package/vendor/pi-model-router/AGENTS.md +0 -39
- package/vendor/pi-model-router/LICENSE +0 -21
- package/vendor/pi-model-router/README.md +0 -99
- package/vendor/pi-model-router/UPSTREAM_PIN.md +0 -10
- package/vendor/pi-model-router/docs/ARCHITECTURE.md +0 -54
- package/vendor/pi-model-router/extensions/commands.ts +0 -720
- package/vendor/pi-model-router/extensions/config.ts +0 -348
- package/vendor/pi-model-router/extensions/constants.ts +0 -1
- package/vendor/pi-model-router/extensions/index.ts +0 -478
- package/vendor/pi-model-router/extensions/provider.ts +0 -580
- package/vendor/pi-model-router/extensions/routing.ts +0 -564
- package/vendor/pi-model-router/extensions/state.ts +0 -52
- package/vendor/pi-model-router/extensions/types.ts +0 -95
- package/vendor/pi-model-router/extensions/ui.ts +0 -144
- package/vendor/pi-model-router/model-router.example.json +0 -48
- package/vendor/pi-model-router/package.json +0 -48
- package/vendor/pi-model-router/tsconfig.json +0 -16
- /package/.pi/{prompts → harness/docs}/planning-rubrics.md +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/fallback.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/render.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/schema.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/types.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/validate-core.mjs +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/validate.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-cocoindex-refresh.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-paths.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-spawn-budget.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-vcc-settings.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-web/run-cli.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-approval/dialog.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-approval/schema.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-eligibility.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-focus.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-id.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-lanes.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-round-status.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-write-guard.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-review-gate.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-review-integrator-rules.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-scope-guard.ts +0 -0
- /package/.pi/{extensions/lib → lib}/posthog-client.ts +0 -0
- /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.
|
package/.sentrux/rules.toml
CHANGED
|
@@ -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
|
|
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/*"
|
|
44
|
+
paths = [".pi/scripts/*"]
|
|
45
45
|
order = 4
|
|
46
|
-
# Harness CLI scripts
|
|
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`
|
|
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.
|
|
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.
|
|
18
|
+
2. Bootstrap the harness once per project:
|
|
19
19
|
|
|
20
20
|
```text
|
|
21
21
|
/harness-setup
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
3.
|
|
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
|
-
|
|
30
|
+
`/harness-auto` runs plan → execute → review → optional steer loop. It may prepare commit/PR work when gates pass, but it never auto-merges.
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
## Core workflow
|
|
33
|
+
|
|
34
|
+
### Recommended: one command
|
|
33
35
|
|
|
34
36
|
```text
|
|
35
|
-
/harness-
|
|
36
|
-
/harness-policy-status
|
|
37
|
-
/harness-trace-last
|
|
37
|
+
/harness-auto "your task" [--quick] [--risk low|med|high]
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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-
|
|
67
|
-
/harness-review
|
|
68
|
-
/harness-critic
|
|
47
|
+
/harness-review [--quick]
|
|
69
48
|
```
|
|
70
49
|
|
|
71
|
-
|
|
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
|
-
|
|
52
|
+
### Repair loop
|
|
74
53
|
|
|
75
|
-
|
|
54
|
+
If `/harness-review` returns `implementation_gap`, run:
|
|
76
55
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
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`
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
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)
|
|
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/).
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -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/
|
|
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`.
|