@haposoft/cafekit 0.16.0-rc.8 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -28
- package/bin/__tests__/codex-hooks-ownership.test.js +239 -0
- package/bin/__tests__/codex-hooks.test.js +175 -0
- package/bin/__tests__/codex-native.test.js +1882 -70
- package/bin/__tests__/develop-contract.test.js +442 -23
- package/bin/__tests__/grok-envelope.test.js +271 -0
- package/bin/__tests__/grok-platform.test.js +133 -0
- package/bin/__tests__/hook-payload.test.js +194 -0
- package/bin/__tests__/installer-safety.test.js +3 -3
- package/bin/__tests__/omp-bridge.test.js +168 -0
- package/bin/__tests__/omp-hooks.test.js +178 -0
- package/bin/__tests__/omp-runtime.test.js +150 -0
- package/bin/__tests__/optional-skill-inventory.test.js +249 -0
- package/bin/__tests__/output-styles.test.js +214 -0
- package/bin/__tests__/package-inventory.test.js +1735 -98
- package/bin/__tests__/runtime-dir.test.js +158 -0
- package/bin/__tests__/runtime-schema.test.js +113 -0
- package/bin/__tests__/secret-output-guardrail.test.js +122 -0
- package/bin/__tests__/skill-routing-source.test.js +172 -0
- package/bin/__tests__/specs-v2-execution-closeout.test.js +28 -1
- package/bin/install.js +15 -5
- package/bin/lib/codex-install.js +170 -5
- package/bin/lib/context.js +64 -3
- package/bin/lib/i18n.js +15 -36
- package/bin/lib/skill-deps.js +5 -5
- package/bin/phases/claude-runtime.js +23 -0
- package/bin/phases/claude-settings.js +8 -0
- package/bin/phases/codex-hooks.js +156 -0
- package/bin/phases/codex-runtime.js +29 -38
- package/bin/phases/copy-payload.js +15 -2
- package/bin/phases/omp-runtime.js +140 -0
- package/bin/phases/root-config.js +3 -0
- package/bin/phases/select-platform.js +22 -1
- package/bin/phases/select-skill-bundles.js +96 -0
- package/bin/phases/skill-inventory.js +71 -0
- package/bin/phases/skills-setup.js +9 -2
- package/bin/phases/summary.js +0 -4
- package/bin/phases/write-metadata.js +8 -5
- package/package.json +8 -2
- package/src/claude/CLAUDE.md +3 -3
- package/src/claude/agents/brainstormer.md +52 -69
- package/src/claude/agents/code-auditor.md +32 -14
- package/src/claude/agents/debugger.md +35 -20
- package/src/claude/agents/deployer.md +12 -5
- package/src/claude/agents/docs-keeper.md +11 -1
- package/src/claude/agents/implementer.md +25 -13
- package/src/claude/agents/inspector.md +6 -3
- package/src/claude/agents/project-manager.md +1 -1
- package/src/claude/agents/researcher.md +26 -55
- package/src/claude/agents/spec-maker.md +12 -7
- package/src/claude/agents/strategist.md +52 -0
- package/src/claude/agents/test-runner.md +117 -132
- package/src/claude/agents/ui-ux-designer.md +1 -1
- package/src/claude/hooks/__tests__/fixtures/statusline-default.golden +1 -0
- package/src/claude/hooks/__tests__/precompact.test.js +158 -0
- package/src/claude/hooks/__tests__/semantic-review-authority.test.js +2 -0
- package/src/claude/hooks/__tests__/spec-gate.test.js +348 -3
- package/src/claude/hooks/__tests__/state.test.js +7 -0
- package/src/claude/hooks/__tests__/statusline.test.js +196 -0
- package/src/claude/hooks/agent.cjs +13 -8
- package/src/claude/hooks/completion-authority.cjs +10 -4
- package/src/claude/hooks/docs-sync.cjs +14 -11
- package/src/claude/hooks/inspect-block.cjs +28 -8
- package/src/claude/hooks/lib/config.cjs +8 -2
- package/src/claude/hooks/lib/counter.cjs +7 -5
- package/src/claude/hooks/lib/hook-payload.cjs +160 -0
- package/src/claude/hooks/lib/hook-state-dir.cjs +39 -0
- package/src/claude/hooks/lib/runtime-dir.cjs +49 -0
- package/src/claude/hooks/lib/secret-keywords.cjs +42 -0
- package/src/claude/hooks/precompact.cjs +106 -0
- package/src/claude/hooks/privacy-block.cjs +4 -2
- package/src/claude/hooks/rules.cjs +5 -3
- package/src/claude/hooks/secret-output-guardrail.cjs +44 -0
- package/src/claude/hooks/semantic-review-authority.cjs +6 -4
- package/src/claude/hooks/session.cjs +37 -9
- package/src/claude/hooks/spec-gate.cjs +21 -11
- package/src/claude/hooks/spec-state.cjs +11 -7
- package/src/claude/hooks/state.cjs +7 -5
- package/src/claude/hooks/task-scaffold-guard.cjs +30 -9
- package/src/claude/hooks/usage.cjs +6 -5
- package/src/claude/migration-manifest.json +31 -15
- package/src/claude/output-styles/coding-level-0-eli5.md +103 -0
- package/src/claude/output-styles/coding-level-1-junior.md +124 -0
- package/src/claude/output-styles/coding-level-2-mid.md +146 -0
- package/src/claude/output-styles/coding-level-3-senior.md +148 -0
- package/src/claude/output-styles/coding-level-4-lead.md +159 -0
- package/src/claude/output-styles/coding-level-5-god.md +91 -0
- package/src/claude/references/debugger/core-philosophy.md +5 -3
- package/src/claude/references/debugger/frontend-verification.md +2 -2
- package/src/claude/references/debugger/log-ci-analysis.md +13 -1
- package/src/claude/references/debugger/parallel-agent-hydration.md +19 -34
- package/src/claude/references/debugger/performance-diagnostics.md +2 -2
- package/src/claude/references/debugger/root-cause-tracing.md +37 -6
- package/src/claude/references/debugger/side-effect-gate.md +3 -1
- package/src/claude/references/debugger/verification-protocol.md +13 -12
- package/src/claude/rules/orchestrator.md +7 -1
- package/src/claude/rules/process-management.md +39 -0
- package/src/claude/rules/review-audit-self-decision.md +48 -0
- package/src/claude/rules/skill-domain-routing.md +26 -24
- package/src/claude/rules/skill-workflow-routing.md +22 -14
- package/src/claude/rules/state-sync.md +7 -1
- package/src/claude/rules/workflow.md +5 -3
- package/src/claude/runtime.json +1 -0
- package/src/claude/runtime.schema.json +205 -0
- package/src/claude/scripts/generate-skill-catalog.cjs +156 -122
- package/src/claude/scripts/provenance.cjs +29 -9
- package/src/claude/scripts/spec-receipt.cjs +65 -4
- package/src/claude/scripts/workflow-policy.cjs +1 -1
- package/src/claude/settings/settings.json +16 -0
- package/src/claude/skills/agent-browser/SKILL.md +1 -1
- package/src/claude/skills/ai-multimodal/SKILL.md +1 -1
- package/src/claude/skills/brainstorm/SKILL.md +193 -172
- package/src/claude/skills/brainstorm/references/question-framework.md +105 -167
- package/src/claude/skills/chrome-devtools/SKILL.md +1 -1
- package/src/claude/skills/code-review/SKILL.md +43 -25
- package/src/claude/skills/code-review/references/spec-compliance-review.md +3 -4
- package/src/claude/skills/code-review/references/verification-gate.md +1 -1
- package/src/claude/skills/debug/SKILL.md +48 -19
- package/src/claude/skills/delegate/SKILL.md +1 -1
- package/src/claude/skills/develop/SKILL.md +92 -65
- package/src/claude/skills/develop/references/parallel-waves.md +36 -63
- package/src/claude/skills/develop/references/quality-gate.md +31 -4
- package/src/claude/skills/develop/references/subagent-patterns.md +21 -7
- package/src/claude/skills/docs/SKILL.md +42 -23
- package/src/claude/skills/docs/references/init-workflow.md +4 -4
- package/src/claude/skills/docs/references/reconstruct-workflow.md +6 -6
- package/src/claude/skills/docs/references/standard-docs-workflow.md +6 -2
- package/src/claude/skills/docs/references/summarize-workflow.md +2 -2
- package/src/claude/skills/docs/references/update-workflow.md +9 -7
- package/src/claude/skills/docs/templates/requirements-as-is.md +1 -1
- package/src/claude/skills/docx/SKILL.md +1 -1
- package/src/claude/skills/git/SKILL.md +1 -1
- package/src/claude/skills/git/references/commit-protocols.md +1 -1
- package/src/claude/skills/git/references/finish-branch.md +1 -1
- package/src/claude/skills/hotfix/SKILL.md +159 -170
- package/src/claude/skills/hotfix/references/diagnosis-protocol.md +14 -9
- package/src/claude/skills/hotfix/references/parallel-patterns.md +27 -13
- package/src/claude/skills/hotfix/references/prevention-gate.md +5 -0
- package/src/claude/skills/hotfix/references/review-cycle.md +21 -15
- package/src/claude/skills/hotfix/references/workflow-specialized.md +53 -21
- package/src/claude/skills/inspect/SKILL.md +55 -46
- package/src/claude/skills/inspect/references/internal-inspection.md +21 -5
- package/src/claude/skills/loop/SKILL.md +114 -0
- package/src/claude/skills/loop/references/bounded-loop-protocol.md +104 -0
- package/src/claude/skills/loop/references/metric-and-guard-contract.md +76 -0
- package/src/claude/skills/pdf/SKILL.md +1 -1
- package/src/claude/skills/pptx/SKILL.md +1 -1
- package/src/claude/skills/question/SKILL.md +16 -13
- package/src/claude/skills/research/SKILL.md +70 -43
- package/src/claude/skills/route/SKILL.md +94 -0
- package/src/claude/skills/route/references/agent-timing.md +46 -0
- package/src/claude/skills/route/references/chaining-patterns.md +53 -0
- package/src/claude/skills/route/references/task-taxonomy.md +48 -0
- package/src/claude/skills/specs/SKILL.md +51 -71
- package/src/claude/skills/specs/references/review.md +11 -8
- package/src/claude/skills/specs/references/templates.md +34 -18
- package/src/claude/skills/specs/templates/requirements-init.md +1 -1
- package/src/claude/skills/specs/templates/research.md +2 -2
- package/src/claude/skills/sync/SKILL.md +6 -6
- package/src/claude/skills/sync/references/sync-protocols.md +1 -1
- package/src/claude/skills/test/SKILL.md +120 -120
- package/src/claude/skills/test/references/execution-strategy.md +208 -361
- package/src/claude/skills/test/references/failure-triage.md +55 -121
- package/src/claude/skills/test/references/test-memory.md +20 -34
- package/src/claude/skills/ui-ux-pro-max/SKILL.md +1 -1
- package/src/claude/skills/web-testing/SKILL.md +1 -1
- package/src/claude/skills/xlsx/SKILL.md +1 -1
- package/src/claude/status.cjs +135 -33
- package/src/codex/AGENTS.md +14 -4
- package/src/codex/hooks/docs-sync.cjs +8 -3
- package/src/codex/hooks/lib/hook-context.cjs +18 -4
- package/src/codex/hooks/rules.cjs +29 -1
- package/src/codex/hooks/secret-output-guardrail.cjs +30 -0
- package/src/codex/hooks/spec-gate.cjs +3 -8
- package/src/codex/hooks/spec-state.cjs +3 -2
- package/src/codex/hooks.json +5 -0
- package/src/codex/rules/state-sync.md +7 -1
- package/src/codex/runtime.json +2 -0
- package/src/common/.env.example +1 -1
- package/src/omp/extensions/cafekit-bridge.mjs +233 -0
- package/src/omp/hooks/privacy-block.cjs +250 -0
- package/src/omp/runtime.json +33 -0
- package/bin/lib/rtk-run.js +0 -28
- package/bin/phases/setup-rtk.js +0 -159
- package/src/claude/skills/backend-development/SKILL.md +0 -101
- package/src/claude/skills/backend-development/references/backend-api-design.md +0 -495
- package/src/claude/skills/backend-development/references/backend-architecture.md +0 -454
- package/src/claude/skills/backend-development/references/backend-authentication.md +0 -338
- package/src/claude/skills/backend-development/references/backend-code-quality.md +0 -659
- package/src/claude/skills/backend-development/references/backend-debugging.md +0 -904
- package/src/claude/skills/backend-development/references/backend-devops.md +0 -491
- package/src/claude/skills/backend-development/references/backend-mindset.md +0 -387
- package/src/claude/skills/backend-development/references/backend-performance.md +0 -397
- package/src/claude/skills/backend-development/references/backend-security.md +0 -342
- package/src/claude/skills/backend-development/references/backend-technologies.md +0 -256
- package/src/claude/skills/backend-development/references/backend-testing.md +0 -429
- package/src/claude/skills/devops/.env.example +0 -76
- package/src/claude/skills/devops/SKILL.md +0 -102
- package/src/claude/skills/devops/references/browser-rendering.md +0 -305
- package/src/claude/skills/devops/references/cloudflare-d1-kv.md +0 -123
- package/src/claude/skills/devops/references/cloudflare-platform.md +0 -271
- package/src/claude/skills/devops/references/cloudflare-r2-storage.md +0 -280
- package/src/claude/skills/devops/references/cloudflare-workers-advanced.md +0 -312
- package/src/claude/skills/devops/references/cloudflare-workers-apis.md +0 -309
- package/src/claude/skills/devops/references/cloudflare-workers-basics.md +0 -418
- package/src/claude/skills/devops/references/docker-basics.md +0 -297
- package/src/claude/skills/devops/references/docker-compose.md +0 -292
- package/src/claude/skills/devops/references/gcloud-platform.md +0 -297
- package/src/claude/skills/devops/references/gcloud-services.md +0 -304
- package/src/claude/skills/devops/references/kubernetes-basics.md +0 -95
- package/src/claude/skills/devops/references/kubernetes-helm-advanced.md +0 -70
- package/src/claude/skills/devops/references/kubernetes-helm.md +0 -81
- package/src/claude/skills/devops/references/kubernetes-kubectl.md +0 -74
- package/src/claude/skills/devops/references/kubernetes-security-advanced.md +0 -94
- package/src/claude/skills/devops/references/kubernetes-security.md +0 -89
- package/src/claude/skills/devops/references/kubernetes-troubleshooting-advanced.md +0 -74
- package/src/claude/skills/devops/references/kubernetes-troubleshooting.md +0 -49
- package/src/claude/skills/devops/references/kubernetes-workflows-advanced.md +0 -75
- package/src/claude/skills/devops/references/kubernetes-workflows.md +0 -76
- package/src/claude/skills/devops/scripts/cloudflare_deploy.py +0 -269
- package/src/claude/skills/devops/scripts/docker_optimize.py +0 -332
- package/src/claude/skills/devops/scripts/requirements.txt +0 -20
- package/src/claude/skills/devops/scripts/tests/requirements.txt +0 -3
- package/src/claude/skills/devops/scripts/tests/test_cloudflare_deploy.py +0 -285
- package/src/claude/skills/devops/scripts/tests/test_docker_optimize.py +0 -436
- package/src/claude/skills/frontend-design/SKILL.md +0 -135
- package/src/claude/skills/frontend-design/references/ai-multimodal-overview.md +0 -165
- package/src/claude/skills/frontend-design/references/analysis-best-practices.md +0 -80
- package/src/claude/skills/frontend-design/references/analysis-prompts.md +0 -141
- package/src/claude/skills/frontend-design/references/analysis-techniques.md +0 -118
- package/src/claude/skills/frontend-design/references/animejs.md +0 -396
- package/src/claude/skills/frontend-design/references/anti-slop-rules.md +0 -103
- package/src/claude/skills/frontend-design/references/asset-generation.md +0 -337
- package/src/claude/skills/frontend-design/references/bento-motion-engine.md +0 -142
- package/src/claude/skills/frontend-design/references/design-extraction-overview.md +0 -71
- package/src/claude/skills/frontend-design/references/extraction-best-practices.md +0 -141
- package/src/claude/skills/frontend-design/references/extraction-output-templates.md +0 -162
- package/src/claude/skills/frontend-design/references/extraction-prompts.md +0 -127
- package/src/claude/skills/frontend-design/references/magicui-components.md +0 -129
- package/src/claude/skills/frontend-design/references/performance-guardrails.md +0 -169
- package/src/claude/skills/frontend-design/references/premium-design-patterns.md +0 -93
- package/src/claude/skills/frontend-design/references/redesign-audit-checklist.md +0 -114
- package/src/claude/skills/frontend-design/references/technical-accessibility.md +0 -119
- package/src/claude/skills/frontend-design/references/technical-best-practices.md +0 -97
- package/src/claude/skills/frontend-design/references/technical-optimization.md +0 -44
- package/src/claude/skills/frontend-design/references/technical-overview.md +0 -90
- package/src/claude/skills/frontend-design/references/technical-workflows.md +0 -150
- package/src/claude/skills/frontend-design/references/visual-analysis-overview.md +0 -95
- package/src/claude/skills/frontend-design/references/workflow-3d.md +0 -102
- package/src/claude/skills/frontend-design/references/workflow-describe.md +0 -87
- package/src/claude/skills/frontend-design/references/workflow-immersive.md +0 -87
- package/src/claude/skills/frontend-design/references/workflow-quick.md +0 -57
- package/src/claude/skills/frontend-design/references/workflow-screenshot.md +0 -63
- package/src/claude/skills/frontend-design/references/workflow-video.md +0 -74
- package/src/claude/skills/frontend-development/SKILL.md +0 -406
- package/src/claude/skills/frontend-development/resources/common-patterns.md +0 -331
- package/src/claude/skills/frontend-development/resources/complete-examples.md +0 -872
- package/src/claude/skills/frontend-development/resources/component-patterns.md +0 -502
- package/src/claude/skills/frontend-development/resources/data-fetching.md +0 -767
- package/src/claude/skills/frontend-development/resources/file-organization.md +0 -502
- package/src/claude/skills/frontend-development/resources/loading-and-error-states.md +0 -501
- package/src/claude/skills/frontend-development/resources/performance.md +0 -406
- package/src/claude/skills/frontend-development/resources/routing-guide.md +0 -364
- package/src/claude/skills/frontend-development/resources/styling-guide.md +0 -428
- package/src/claude/skills/frontend-development/resources/typescript-standards.md +0 -418
- package/src/claude/skills/mobile-development/SKILL.md +0 -218
- package/src/claude/skills/mobile-development/references/mobile-android.md +0 -604
- package/src/claude/skills/mobile-development/references/mobile-best-practices.md +0 -544
- package/src/claude/skills/mobile-development/references/mobile-debugging.md +0 -1089
- package/src/claude/skills/mobile-development/references/mobile-frameworks.md +0 -465
- package/src/claude/skills/mobile-development/references/mobile-ios.md +0 -496
- package/src/claude/skills/mobile-development/references/mobile-mindset.md +0 -542
- package/src/claude/skills/react-best-practices/AGENTS.md +0 -2249
- package/src/claude/skills/react-best-practices/README.md +0 -123
- package/src/claude/skills/react-best-practices/SKILL.md +0 -128
- package/src/claude/skills/react-best-practices/metadata.json +0 -15
- package/src/claude/skills/react-best-practices/rules/_sections.md +0 -46
- package/src/claude/skills/react-best-practices/rules/_template.md +0 -28
- package/src/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +0 -55
- package/src/claude/skills/react-best-practices/rules/advanced-use-latest.md +0 -49
- package/src/claude/skills/react-best-practices/rules/async-api-routes.md +0 -38
- package/src/claude/skills/react-best-practices/rules/async-defer-await.md +0 -80
- package/src/claude/skills/react-best-practices/rules/async-dependencies.md +0 -36
- package/src/claude/skills/react-best-practices/rules/async-parallel.md +0 -28
- package/src/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +0 -99
- package/src/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +0 -59
- package/src/claude/skills/react-best-practices/rules/bundle-conditional.md +0 -31
- package/src/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +0 -49
- package/src/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +0 -35
- package/src/claude/skills/react-best-practices/rules/bundle-preload.md +0 -50
- package/src/claude/skills/react-best-practices/rules/client-event-listeners.md +0 -74
- package/src/claude/skills/react-best-practices/rules/client-swr-dedup.md +0 -56
- package/src/claude/skills/react-best-practices/rules/js-batch-dom-css.md +0 -82
- package/src/claude/skills/react-best-practices/rules/js-cache-function-results.md +0 -80
- package/src/claude/skills/react-best-practices/rules/js-cache-property-access.md +0 -28
- package/src/claude/skills/react-best-practices/rules/js-cache-storage.md +0 -70
- package/src/claude/skills/react-best-practices/rules/js-combine-iterations.md +0 -32
- package/src/claude/skills/react-best-practices/rules/js-early-exit.md +0 -50
- package/src/claude/skills/react-best-practices/rules/js-hoist-regexp.md +0 -45
- package/src/claude/skills/react-best-practices/rules/js-index-maps.md +0 -37
- package/src/claude/skills/react-best-practices/rules/js-length-check-first.md +0 -49
- package/src/claude/skills/react-best-practices/rules/js-min-max-loop.md +0 -82
- package/src/claude/skills/react-best-practices/rules/js-set-map-lookups.md +0 -24
- package/src/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +0 -57
- package/src/claude/skills/react-best-practices/rules/rendering-activity.md +0 -26
- package/src/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
- package/src/claude/skills/react-best-practices/rules/rendering-conditional-render.md +0 -40
- package/src/claude/skills/react-best-practices/rules/rendering-content-visibility.md +0 -38
- package/src/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +0 -46
- package/src/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
- package/src/claude/skills/react-best-practices/rules/rendering-svg-precision.md +0 -28
- package/src/claude/skills/react-best-practices/rules/rerender-defer-reads.md +0 -39
- package/src/claude/skills/react-best-practices/rules/rerender-dependencies.md +0 -45
- package/src/claude/skills/react-best-practices/rules/rerender-derived-state.md +0 -29
- package/src/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +0 -74
- package/src/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +0 -58
- package/src/claude/skills/react-best-practices/rules/rerender-memo.md +0 -44
- package/src/claude/skills/react-best-practices/rules/rerender-transitions.md +0 -40
- package/src/claude/skills/react-best-practices/rules/server-after-nonblocking.md +0 -73
- package/src/claude/skills/react-best-practices/rules/server-cache-lru.md +0 -41
- package/src/claude/skills/react-best-practices/rules/server-cache-react.md +0 -26
- package/src/claude/skills/react-best-practices/rules/server-parallel-fetching.md +0 -79
- package/src/claude/skills/react-best-practices/rules/server-serialization.md +0 -38
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: cf:test
|
|
3
3
|
description: "Execute the smallest adequate verification scope and own the canonical execution proof."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
when_to_use: "Use after implementation, for a feature scope, or for an explicit test request."
|
|
@@ -12,174 +12,174 @@ metadata:
|
|
|
12
12
|
---
|
|
13
13
|
# Test — execution proof owner
|
|
14
14
|
|
|
15
|
-
`
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
`cf:test` executes the smallest adequate real verification and owns the
|
|
16
|
+
canonical execution result. For process-first work it returns one typed proof
|
|
17
|
+
handoff to the controller; it never writes task state or the inline Receipt.
|
|
18
|
+
Review consumes validated proof and never invents or duplicates execution.
|
|
19
19
|
|
|
20
20
|
## Usage
|
|
21
21
|
|
|
22
22
|
```text
|
|
23
|
-
/
|
|
24
|
-
/
|
|
25
|
-
/
|
|
26
|
-
/
|
|
27
|
-
/
|
|
28
|
-
/
|
|
29
|
-
/
|
|
30
|
-
/
|
|
23
|
+
/cf:test
|
|
24
|
+
/cf:test --full
|
|
25
|
+
/cf:test <scope-or-path>
|
|
26
|
+
/cf:test <feature-name>
|
|
27
|
+
/cf:test specs/<feature>
|
|
28
|
+
/cf:test specs/<feature>/task-NN-<slug>.md
|
|
29
|
+
/cf:test --ui <url>
|
|
30
|
+
/cf:test --ui-auth <url>
|
|
31
|
+
/cf:test --ui-flow <url>
|
|
31
32
|
```
|
|
32
33
|
|
|
33
34
|
## Hard gates
|
|
34
35
|
|
|
35
|
-
- Never claim a pass without executing the relevant command.
|
|
36
|
-
- Never mock,
|
|
37
|
-
-
|
|
38
|
-
`PASS
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
36
|
+
- Never claim a pass without executing the exact relevant command.
|
|
37
|
+
- Never mock, weaken, delete, or skip a failing assertion to obtain green.
|
|
38
|
+
- Missing tooling, a missing command, nonzero exit, or zero executed tests is
|
|
39
|
+
never `PASS`. Do not auto-install project-local tooling during proof.
|
|
40
|
+
- Preserve exact commands, counts, output, reachability, proof level, Base,
|
|
41
|
+
Head, artifact hashes, and redaction labels.
|
|
42
|
+
- Source, installed, and live proof are distinct. Live adherence is
|
|
43
|
+
`[UNVERIFIED]` without a host invocation.
|
|
44
|
+
- Use only `PASS | PASS_WITH_WARNINGS | FAIL | BLOCKED`. Unknown, malformed,
|
|
45
|
+
partial, contradictory, duplicate, skipped, or stale proof fails closed.
|
|
43
46
|
|
|
44
|
-
##
|
|
47
|
+
## Target routing
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
when that target exists. Compare actual execution against
|
|
49
|
-
`scope_lock`, contracts, completion criteria, runtime reachability, and
|
|
50
|
-
negative-path obligations.
|
|
49
|
+
Classify current filesystem bytes before selecting tests. Use `lstat` so broken
|
|
50
|
+
links count as markers. Never migrate or repair packet state while testing.
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
| Observed state | Route |
|
|
53
|
+
|---|---|
|
|
54
|
+
| Valid regular `plan.md` with `Specs-Contract: process-first-ready-v1`, one or more valid regular flat `task-NN-*.md`, and no legacy marker | Process-first |
|
|
55
|
+
| Any flat marker that is orphaned, malformed, duplicated, symlinked, nonregular, or mixed with a legacy marker | `BLOCKED` |
|
|
56
|
+
| Valid regular legacy root resolving every nested task and separate receipt, with no flat marker | Legacy adapter |
|
|
57
|
+
| Orphan, malformed, symlinked, nonregular, identity-conflicting, or mixed legacy state | `BLOCKED` |
|
|
58
|
+
| No flat or legacy marker | Ordinary non-Spec testing |
|
|
58
59
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
A flat marker is a direct-child `plan.md` or `task-NN-*.md`. A legacy marker is
|
|
61
|
+
`spec.json`, a nested legacy task, or a separate legacy receipt. See
|
|
62
|
+
`references/execution-strategy.md` for the complete validation truth table.
|
|
62
63
|
|
|
63
64
|
## Spec-Aware Mode
|
|
64
65
|
|
|
65
66
|
<SCOPE-GATE>
|
|
66
|
-
For a feature target, test only
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
For a feature target, test only current accepted scope, the active task's exact
|
|
68
|
+
Verification Plan, and reachable runtime surfaces. Missing or orphaned
|
|
69
|
+
reachability fails even when a command exits successfully.
|
|
69
70
|
</SCOPE-GATE>
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
For a process-first feature:
|
|
73
|
+
|
|
74
|
+
1. Read current `plan.md` and flat task bytes. Select only a contained regular
|
|
75
|
+
task whose dependencies allow proof.
|
|
76
|
+
2. Use the task's exact `Command`, exact unique `Named probes`, `Reachability`,
|
|
77
|
+
`Oracle`, `Counterexample`, required proof level, and artifact declaration.
|
|
78
|
+
3. Run the smallest adequate proof. `--full` expands scope but cannot weaken
|
|
79
|
+
the Verification Plan or substitute unrelated green tests.
|
|
80
|
+
4. Return exactly one canonical `test-proof-v1` object. Do not edit `plan.md`,
|
|
81
|
+
`Status:`, the task's `## Receipt`, or any sibling task.
|
|
82
|
+
5. The Develop controller validates the payload, recomputes its digest, checks
|
|
83
|
+
current provenance, and alone writes process-first Status and inline Receipt.
|
|
73
84
|
|
|
74
85
|
## Execution
|
|
75
86
|
|
|
76
|
-
1. Detect
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
receipt. For a task use `receipts/<task-basename>.md`; never append execution
|
|
85
|
-
evidence to the task plan. A receipt must not contain secrets or placeholder
|
|
86
|
-
provenance.
|
|
87
|
+
1. Detect commands from task and repository files; never invent them.
|
|
88
|
+
2. Run a cheap compile or typecheck precheck when the project provides one.
|
|
89
|
+
3. Execute the exact task command and all named probes with real counts.
|
|
90
|
+
4. Inspect negative paths, runtime reachability, and declared artifacts.
|
|
91
|
+
5. Capture tracked, untracked, and ignored project-command drift separately
|
|
92
|
+
from runtime Head. Never silently clean or hide project changes.
|
|
93
|
+
6. Redact sensitive material, validate the complete proof object, then return a
|
|
94
|
+
concise human report separately from the machine handoff.
|
|
87
95
|
|
|
88
|
-
Required proof
|
|
96
|
+
Required proof follows the behavior:
|
|
89
97
|
|
|
90
98
|
| Surface | Adequate proof |
|
|
91
99
|
|---|---|
|
|
92
100
|
| pure logic/parser/validator | unit plus negative path |
|
|
93
|
-
| stateful UI or module wiring | component/integration
|
|
101
|
+
| stateful UI or module wiring | component/integration plus mounted path |
|
|
94
102
|
| API, persistence, provider, or process boundary | real contract/state handoff |
|
|
95
103
|
| complete user workflow | E2E or UI flow |
|
|
96
|
-
| layout
|
|
97
|
-
| interactive focus/labels/keyboard | accessibility check |
|
|
104
|
+
| layout, focus, labels, keyboard | viewport/visual/accessibility check |
|
|
98
105
|
| regression | reproduction before fix plus passing regression |
|
|
99
106
|
| security/performance | only when requirement, risk, or boundary requires it |
|
|
100
107
|
|
|
101
|
-
##
|
|
102
|
-
|
|
103
|
-
The receipt is execution evidence, not a status marker. It must contain the
|
|
104
|
-
task identity and canonical `tasks/task-*.md` path for task receipts, the actual
|
|
105
|
-
command, a successful exit/result, expected versus observed behavior, applicable
|
|
106
|
-
negative-path and reachability proof, both provenance anchors (`Base` and
|
|
107
|
-
`Head`, or their canonical aliases), and any declared artifact SHA-256. Reject
|
|
108
|
-
`Exit: 1`, conflicting outcomes, empty commands, placeholders, missing
|
|
109
|
-
provenance, zero execution, and failure summaries. No-artifact tasks remain
|
|
110
|
-
compatible; declared artifacts require hashes.
|
|
111
|
-
|
|
112
|
-
Closeout and flash callers must also provide an explicit runtime binding; a
|
|
113
|
-
valid-length `Base`/`Head` pair alone is not identity proof. The minimal adapter
|
|
114
|
-
contract is `const binding = policy.createReceiptBinding({ base, head })`, then
|
|
115
|
-
pass `receipt_binding: binding` to `completionDecision` or include the binding's
|
|
116
|
-
`expectedProvenance` in the flash task. The policy requires that binding and
|
|
117
|
-
compares both receipt anchors before completion or flash promotion.
|
|
118
|
-
|
|
119
|
-
For a normal closeout, emit a receipt that the shared policy validator accepts.
|
|
120
|
-
Legacy task `## Evidence` remains readable, but prefer the separate receipt. If
|
|
121
|
-
both exist and their proof identities conflict, report `FAIL` and do not choose
|
|
122
|
-
one. After all task receipts pass, execute final integration and create
|
|
123
|
-
`feature-receipt.md` exactly once. Taskless Compact/Full specs create that file
|
|
124
|
-
only at final closeout; absence before closeout is normal.
|
|
125
|
-
For `--flash`, emit proof for the current `FLASH_UNVERIFIED` task only. Only explicit trusted sync-finalize may promote it. The
|
|
126
|
-
receipt may make the task eligible for trusted sync-finalize, but it must not
|
|
127
|
-
promote the task, unblock dependents, or fabricate a done state.
|
|
108
|
+
## Process-first proof handoff
|
|
128
109
|
|
|
129
|
-
|
|
110
|
+
The machine payload is canonical UTF-8 JSON with exact top-level keys:
|
|
130
111
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
112
|
+
```text
|
|
113
|
+
schema_version, target, verdict, command, exit, counts, provenance,
|
|
114
|
+
proof_level, expected, observed, reachability, artifacts, branches,
|
|
115
|
+
raw_output, redactions, payload_sha256
|
|
116
|
+
```
|
|
134
117
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
118
|
+
`schema_version` is exactly `test-proof-v1`; unknown keys block. Branch IDs map
|
|
119
|
+
one-to-one to exact unique Named probes. The digest is lowercase SHA-256 of
|
|
120
|
+
stable JSON excluding only `payload_sha256`. Exact field shapes, nullable
|
|
121
|
+
pre-execution `BLOCKED` rules, and aggregation live in
|
|
122
|
+
`references/execution-strategy.md`.
|
|
123
|
+
|
|
124
|
+
Only all required branches passing with exact command, exit 0, executed > 0,
|
|
125
|
+
failed/skipped 0, matching Base/Head, `reachability.status: PASS`, valid artifact
|
|
126
|
+
hashes, and safe redaction can aggregate `PASS`. Aggregate in this order:
|
|
127
|
+
`FAIL` > `BLOCKED` > `PASS_WITH_WARNINGS` > `PASS`.
|
|
128
|
+
|
|
129
|
+
## Persistent-write and authentication boundary
|
|
130
|
+
|
|
131
|
+
- `.hapo/test-memory.json` is optional read-only context. Hash absent/present
|
|
132
|
+
bytes before and after; never create, merge, or update it during proof.
|
|
133
|
+
- Put only Test-owned temporary files outside the project and clean them.
|
|
134
|
+
Never create Test-owned reports, caches, lazy installs, or auth state.
|
|
135
|
+
- For authenticated UI proof, prefer the project's own auth helper. Otherwise
|
|
136
|
+
use only an explicitly selected user-controlled profile bound to a confirmed
|
|
137
|
+
HTTPS or localhost origin, identity, permissions, and action scope.
|
|
138
|
+
- Block cross-origin redirects and destructive production actions without fresh
|
|
139
|
+
consent. Never ask for, export, paste, or persist cookies or tokens.
|
|
140
|
+
- Redact Authorization, Cookie, Set-Cookie, session tokens, credentials, and
|
|
141
|
+
scoped PII from commands, headers/bodies, logs, screenshots, and reports.
|
|
142
|
+
If safe proof is impossible, return `BLOCKED`.
|
|
143
|
+
|
|
144
|
+
## Verdict and report
|
|
138
145
|
|
|
139
146
|
```markdown
|
|
140
147
|
## Test Verdict
|
|
141
148
|
|
|
142
149
|
**Status:** PASS | PASS_WITH_WARNINGS | FAIL | BLOCKED
|
|
143
|
-
**Scope:** [target and
|
|
144
|
-
**Commands:** [exact commands]
|
|
150
|
+
**Scope:** [target and selected proof]
|
|
151
|
+
**Commands:** [exact redacted commands]
|
|
145
152
|
**Exit:** [actual result]
|
|
146
|
-
**Duration:** [measured time]
|
|
147
|
-
**Receipt:** [path or inline canonical receipt]
|
|
148
153
|
|
|
149
154
|
### Results
|
|
150
155
|
- Passed: N | Failed: N | Skipped: N | Executed: N
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
- Runtime reachability: PASS | FAIL | BLOCKED
|
|
155
|
-
- Artifact/provenance checks: PASS | FAIL | BLOCKED
|
|
156
|
+
- Reachability: PASS | FAIL | BLOCKED
|
|
157
|
+
- Proof level: source | installed | live
|
|
158
|
+
- Project-command drift: [tracked/untracked/ignored, or none]
|
|
156
159
|
|
|
157
160
|
### Action
|
|
158
|
-
-
|
|
159
|
-
complete a task.
|
|
160
|
-
- PASS_WITH_WARNINGS → give the receipt to the closeout owner, but keep the
|
|
161
|
-
task unfinished until a literal `PASS` decision is recorded.
|
|
162
|
-
- FAIL → list exact failures; implementation remains unfinished.
|
|
163
|
-
- BLOCKED → state the changed prerequisite; do not blind-retry.
|
|
161
|
+
- [controller handoff, exact failure, or changed prerequisite]
|
|
164
162
|
```
|
|
165
163
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
164
|
+
Do not place the full JSON payload, secrets, verbose raw logs, or screenshots in
|
|
165
|
+
the concise report. `PASS_WITH_WARNINGS` remains unfinished; only literal
|
|
166
|
+
validated `PASS` may be synchronized by the controller.
|
|
167
|
+
|
|
168
|
+
## Legacy workflow compatibility
|
|
170
169
|
|
|
171
|
-
|
|
170
|
+
A valid legacy packet keeps the v2.1 adapter, legacy task resolution, and its
|
|
171
|
+
separate receipt path. Do not write process-first inline proof into it. If
|
|
172
|
+
legacy proof identities conflict or the packet is mixed/malformed, return
|
|
173
|
+
`BLOCKED`; never choose one source or migrate it during unrelated testing.
|
|
172
174
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
blocker, or no tests, do not promote any task.
|
|
175
|
+
Flash legacy behavior remains proof-only: testing may make a current
|
|
176
|
+
`FLASH_UNVERIFIED` task eligible for trusted sync-finalize, but never promotes
|
|
177
|
+
state or unblocks dependents itself. Only explicit trusted sync-finalize may
|
|
178
|
+
promote it.
|
|
178
179
|
|
|
179
180
|
## References
|
|
180
181
|
|
|
181
|
-
- `references/execution-strategy.md` —
|
|
182
|
-
|
|
183
|
-
- `references/failure-triage.md` — failure classification
|
|
184
|
-
- `references/test-memory.md` — optional historical context
|
|
185
|
-
evidence always wins.
|
|
182
|
+
- `references/execution-strategy.md` — routing, payload schema, aggregation,
|
|
183
|
+
blast radius, UI safety, and report separation.
|
|
184
|
+
- `references/failure-triage.md` — failure classification and four verdicts.
|
|
185
|
+
- `references/test-memory.md` — optional read-only historical context.
|