@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,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: "Turn a substantial feature idea into a bounded, reviewed plan and executable flat task files, with human decisions at scope, findings, and completion. Use when
|
|
2
|
+
name: cf:specs
|
|
3
|
+
description: "Turn a substantial or risk-elevated feature idea into a bounded, reviewed plan and executable flat task files, with human decisions at scope, findings, and completion. Use when work needs durable coordination or is not eligible for direct work; skip only when a change is clear, isolated, reversible, routine, and likely limited to one or two files."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "<feature-description>"
|
|
6
6
|
metadata:
|
|
@@ -9,19 +9,23 @@ metadata:
|
|
|
9
9
|
---
|
|
10
10
|
# Specs — process-first planning
|
|
11
11
|
|
|
12
|
-
Quality comes from a short decision process; honesty comes from evidence. Keep
|
|
13
|
-
the human at exactly three gates and let the agent do the work between them.
|
|
14
|
-
The durable output is Markdown that can be read and edited without a compiler.
|
|
12
|
+
Quality comes from a short decision process; honesty comes from evidence. Keep the human at exactly three gates; durable output is editable Markdown.
|
|
15
13
|
|
|
16
|
-
## Step 0 —
|
|
14
|
+
## Step 0 — classify risk before routing
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
likely limited to one or two files. Use this skill when the request crosses
|
|
20
|
-
components, contains a product or architecture choice, has meaningful failure
|
|
21
|
-
risk, or needs several tasks, sessions, or owners.
|
|
16
|
+
Classify material risk before choosing a workflow; user wording never lowers an observed floor.
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
- `critical`: auth/secrets/privacy; destructive/irreversible work or possible data loss/corruption; money/privilege/safety; production-state mutation.
|
|
19
|
+
- `elevated`: cross-component contracts, compatibility, concurrency, external integration, or installed/runtime behavior.
|
|
20
|
+
- `routine`: only when no elevated or critical signal applies.
|
|
21
|
+
|
|
22
|
+
Work directly only when the cause and change are clear, isolated, reversible,
|
|
23
|
+
`routine`, and likely limited to one or two files. Route unresolved user-owned
|
|
24
|
+
observable choices to C1/C2 first; after they settle, route material competing
|
|
25
|
+
technical designs through Brainstorm. Split three or more independent
|
|
26
|
+
subsystems; otherwise use one Specs packet for any material work that does not qualify for direct work or Brainstorm-only exploration. A subsystem is independent only when its outcome, boundary, and verification/deployment path can move through the lifecycle separately.
|
|
27
|
+
|
|
28
|
+
Do not create a plan merely because documentation mentions this skill; the user must invoke Specs or ask for durable planning.
|
|
25
29
|
|
|
26
30
|
## The three human gates
|
|
27
31
|
|
|
@@ -31,9 +35,7 @@ documentation. The user must invoke Specs or ask for durable planning.
|
|
|
31
35
|
| C2 — Findings | after adversarial review | accept, reject, or revise each deduplicated finding |
|
|
32
36
|
| C3 — Done | after execution | accept completion from current command output and receipts |
|
|
33
37
|
|
|
34
|
-
Ask once at each gate. Do not ask for routine implementation choices between
|
|
35
|
-
the gates. If new evidence invalidates the scope, return to C1 instead of
|
|
36
|
-
silently expanding it.
|
|
38
|
+
Ask once at each gate. Do not ask for routine implementation choices between them. New evidence that invalidates scope returns to C1.
|
|
37
39
|
|
|
38
40
|
## Primary output layout
|
|
39
41
|
|
|
@@ -46,59 +48,44 @@ specs/<feature>/
|
|
|
46
48
|
└── task-02-<slug>.md
|
|
47
49
|
```
|
|
48
50
|
|
|
49
|
-
Task files are flat beside `plan.md`. Do not create a nested task directory.
|
|
50
|
-
Use safe lowercase feature and task slugs. Read
|
|
51
|
-
[`references/templates.md`](references/templates.md) before authoring these
|
|
52
|
-
files.
|
|
51
|
+
Task files are flat beside `plan.md`. Do not create a nested task directory. Use safe lowercase slugs and read [`references/templates.md`](references/templates.md) first.
|
|
53
52
|
|
|
54
53
|
## Flow
|
|
55
54
|
|
|
56
55
|
### 1. Challenge scope, then open C1
|
|
57
56
|
|
|
58
|
-
Inspect the repository before drafting. Answer three questions with current
|
|
59
|
-
`path:line` evidence:
|
|
57
|
+
Inspect the repository before drafting. Answer three questions with current `path:line` evidence:
|
|
60
58
|
|
|
61
59
|
1. What already exists and can be reused?
|
|
62
60
|
2. What is the smallest change set that delivers the requested outcome?
|
|
63
|
-
3. What signals expansion: more than eight touched files, more than two new
|
|
64
|
-
services/classes, or more than three independent work groups?
|
|
61
|
+
3. What signals expansion: more than eight touched files, more than two new services/classes, or three or more independently deliverable subsystems?
|
|
65
62
|
|
|
66
63
|
Present the answers and ask the user to EXPAND, KEEP, or CUT. Record the chosen
|
|
67
64
|
scope and explicit exclusions in `plan.md`.
|
|
68
65
|
|
|
69
66
|
### 2. Write the plan and task packets
|
|
70
67
|
|
|
71
|
-
Keep `plan.md` as the short index: C1 decision, EARS
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
Keep `plan.md` as the short index: C1 decision, EARS criteria, exclusions, and task table. Give every criterion a stable ID mapped by task rows.
|
|
69
|
+
|
|
70
|
+
For a Specs route, persist the canonical `## Coverage profile` from
|
|
71
|
+
`references/templates.md`: one `CP-NN` row per observable outcome; tasks reference IDs instead of copying it.
|
|
74
72
|
|
|
75
|
-
|
|
76
|
-
normally no more than about five owned files, explicit dependencies, measurable
|
|
77
|
-
acceptance, and a runnable verification command. A task must deliver usable
|
|
78
|
-
behavior; do not create preparation-only tasks.
|
|
73
|
+
Each task has one usable outcome, normally at most about five owned files, explicit dependencies, measurable acceptance, and a runnable verification command; no preparation-only tasks.
|
|
79
74
|
|
|
80
|
-
Author exact
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
alone does not change `pending` to `blocked`; the resolver derives which pending
|
|
84
|
-
task is next. Change `blocked` to `pending` only after current evidence closes
|
|
85
|
-
every non-dependency blocker; keep pre-execution Receipts empty.
|
|
75
|
+
Author exact state: `pending` means semantically ready for the dependency-aware queue.
|
|
76
|
+
Use `blocked` while a C1/C2 decision, accepted finding, or `UNKNOWN` closure remains
|
|
77
|
+
open. Dependencies alone do not change `pending`; the resolver queues them. Promote only after current evidence closes every non-dependency blocker; keep pre-execution Receipts empty.
|
|
86
78
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
`Required proof` is planned, not executed evidence. Unknown command/caller/environment
|
|
80
|
+
reachability blocks `pending`; known unrun proof does not. Missing, failed, or unavailable
|
|
81
|
+
required evidence blocks `done`/C3; levels never promote. Rederive affected CP rows after accepted scope, outcome, criteria, ownership, dependency, risk, or proof deltas, before status.
|
|
82
|
+
Source/static checks prove the written contract, not live-model adherence.
|
|
90
83
|
|
|
91
84
|
### 3. Review adversarially, then open C2
|
|
92
85
|
|
|
93
|
-
Read [`references/review.md`](references/review.md) and run its fresh-context
|
|
94
|
-
review. Every finding needs a reproducible `path:line` citation and a concrete
|
|
95
|
-
failure scenario. Deduplicate, rank, and cap the list at 15.
|
|
86
|
+
Read [`references/review.md`](references/review.md) and run its fresh-context review. Require reproducible `path:line` plus a failure scenario; deduplicate, rank, and cap at 15.
|
|
96
87
|
|
|
97
|
-
Ask the user to accept, reject, or revise each finding
|
|
98
|
-
decisions. After every plan edit, run the consistency sweep across all plan and
|
|
99
|
-
task files, then rederive every task status rather than only the first candidate.
|
|
100
|
-
Write task dependencies as exact flat task basenames so the queue can derive them.
|
|
101
|
-
Stop after two paper-review rounds; later findings require runtime evidence.
|
|
88
|
+
Ask the user to accept, reject, or revise each finding; apply only accepted decisions. After every edit, sweep all packet files and rederive every status. Dependencies use exact flat task basenames. Stop after two paper rounds; later findings require runtime evidence.
|
|
102
89
|
|
|
103
90
|
### 4. Execute one task at a time
|
|
104
91
|
|
|
@@ -127,33 +114,26 @@ it does not invent product approval, review independence, or runtime coverage.
|
|
|
127
114
|
1. **A1 — Scope once.** Raise scope pressure at C1; reopen only with new proof.
|
|
128
115
|
2. **A2 — Small packets.** One task, one outcome, one owner, one proof command.
|
|
129
116
|
3. **A3 — One fact, one home.** Reference decisions; never copy mutable lists.
|
|
130
|
-
4. **A4 — Files are state.**
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
ownership, dependencies, criteria IDs, and copied prose across every file.
|
|
138
|
-
8. **B4 — Stop paper churn.** Two pre-code review rounds maximum; later claims
|
|
139
|
-
need runtime evidence.
|
|
140
|
-
9. **C1 — State is derived.** Status follows fresh blocker and proof evidence.
|
|
141
|
-
10. **C2 — Rules pay rent.** Add a rule or machine check only when it prevents a
|
|
142
|
-
cited real incident; reassess rules when the primary model changes.
|
|
117
|
+
4. **A4 — Files are state.** Markdown is canonical; indexes are disposable.
|
|
118
|
+
5. **B1 — Cite the repository.** Use current `path:line` or `[UNVERIFIED]`.
|
|
119
|
+
6. **B2 — Review fresh.** The author does not impersonate the reviewer.
|
|
120
|
+
7. **B3 — Sweep edits.** Reconcile names, decisions, CP rows, ownership, dependencies, criteria, and proof.
|
|
121
|
+
8. **B4 — Stop paper churn.** Two pre-code rounds; later claims need runtime evidence.
|
|
122
|
+
9. **C1 — Derive state.** Status follows fresh blocker and proof evidence.
|
|
123
|
+
10. **C2 — Rules pay rent.** Require a cited failure; reassess for model changes.
|
|
143
124
|
|
|
144
125
|
## Machine boundary
|
|
145
126
|
|
|
146
|
-
The shared workflow resolver recognizes only a regular `plan.md` plus one or
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
Markdown look more authoritative.
|
|
127
|
+
The shared workflow resolver recognizes only a regular `plan.md` plus one or more
|
|
128
|
+
regular flat `task-*.md` files in one direct feature directory, and projects exact
|
|
129
|
+
`Status:` values without inferring blockers from prose. The Stop gate re-reads every
|
|
130
|
+
done Receipt, binding Base and Head to the live runtime until the task file is
|
|
131
|
+
committed, unchanged, and the tree outside the specs root is clean. It detects drift
|
|
132
|
+
between a receipt and the tree, not invention: a valid pair costs one command and no
|
|
133
|
+
verification run, so a receipt for a command that never ran satisfies it in either
|
|
134
|
+
mode. C3 is where a human weighs the evidence. These checks are a final safety net,
|
|
135
|
+
not a substitute for C1-C3 judgment. Do not add a new schema, approval field,
|
|
136
|
+
readiness bit, or review state to make the Markdown look more authoritative.
|
|
157
137
|
|
|
158
138
|
## Legacy compatibility
|
|
159
139
|
|
|
@@ -26,19 +26,22 @@ evidence.
|
|
|
26
26
|
| Scope Auditor | Is new state scoped to the right lifetime and owner? | constructors, writers, cleanup, and existing equivalents |
|
|
27
27
|
| Contract Verifier | Are all consumers and compatibility surfaces covered? | caller/test/export/config/help inventory |
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
Keep Fact Checker as the baseline. Assign every remaining material CP risk to a
|
|
30
|
+
named reviewer lens; a critical row includes both relevant security-adversary and
|
|
31
|
+
failure-mode coverage, and nonmaterial lenses are not added. Scale reviewer count
|
|
32
|
+
to independent work groups:
|
|
30
33
|
|
|
31
34
|
| Groups | Reviewers | Roles | Claim budget |
|
|
32
35
|
|---|---:|---|---:|
|
|
33
|
-
| 1-2 | 2 | Fact Checker plus
|
|
34
|
-
| 3-5 | 3 | Fact Checker
|
|
35
|
-
| 6+ | 4 | all
|
|
36
|
+
| 1-2 | 2 | Fact Checker plus all matching material lenses | about 5 per group |
|
|
37
|
+
| 3-5 | 3 | Fact Checker plus all matching material lenses | about 10 per group |
|
|
38
|
+
| 6+ | 4 | Fact Checker plus all matching material lenses | at least 15 total |
|
|
36
39
|
|
|
37
|
-
|
|
40
|
+
Reviewer count is fixed by the table, not lens count. Give each reviewer a distinct primary lens; when material lenses exceed reviewers, combine related named lenses on one reviewer and keep every material lens assigned.
|
|
38
41
|
|
|
39
42
|
## B2 — fresh-context red team
|
|
40
43
|
|
|
41
|
-
Use reviewers that did not author the plan and
|
|
44
|
+
Use reviewers that did not author the plan and assign these lenses from affected CP rows:
|
|
42
45
|
|
|
43
46
|
- **Security adversary:** authorization bypass, injection, secret exposure,
|
|
44
47
|
unsafe path and trust-boundary transitions.
|
|
@@ -101,8 +104,8 @@ A repair that adds user semantics or scope returns to C1.
|
|
|
101
104
|
After any accepted finding or user edit:
|
|
102
105
|
|
|
103
106
|
1. Reread every file in `specs/<feature>/`.
|
|
104
|
-
2. List deltas
|
|
105
|
-
|
|
107
|
+
2. List accepted deltas; rederive affected CP rows using the canonical delta list
|
|
108
|
+
in the templates before task status.
|
|
106
109
|
3. Search every delta and its old spelling across the whole feature packet.
|
|
107
110
|
4. Reconcile the plan table, task details, examples, acceptance mapping, and
|
|
108
111
|
verification commands.
|
|
@@ -27,6 +27,11 @@ Specs-Contract: process-first-ready-v1
|
|
|
27
27
|
## Out of scope
|
|
28
28
|
- <deliberate exclusion>
|
|
29
29
|
|
|
30
|
+
## Coverage profile
|
|
31
|
+
| ID | Outcome | Change kinds | Material surfaces | Ambiguity/action | Risk/evidence | Required proof |
|
|
32
|
+
|---|---|---|---|---|---|---|
|
|
33
|
+
| CP-01 | <externally observable outcome> | <all kinds> | <all material surfaces> | <state + action> | <level + evidence> | <source/installed/live set> |
|
|
34
|
+
|
|
30
35
|
## Acceptance criteria
|
|
31
36
|
| ID | EARS criterion | Proof |
|
|
32
37
|
|---|---|---|
|
|
@@ -60,6 +65,9 @@ Status: blocked
|
|
|
60
65
|
- In: <exact behavior>
|
|
61
66
|
- Out: <nearby behavior deliberately excluded>
|
|
62
67
|
|
|
68
|
+
## Coverage
|
|
69
|
+
- <exact `CP-NN` IDs owned by this task>
|
|
70
|
+
|
|
63
71
|
## Ownership
|
|
64
72
|
- Modify: `src/a.ts`
|
|
65
73
|
- Create: `test/a.test.ts`
|
|
@@ -74,7 +82,7 @@ Status: blocked
|
|
|
74
82
|
## Verification Plan
|
|
75
83
|
- Command: `<exact runnable command>`
|
|
76
84
|
- Named probe: <existing concrete probe/test/hook ID; never only a suite label>
|
|
77
|
-
- Reachability: <
|
|
85
|
+
- Reachability: <known command/caller/environment per required level; `UNKNOWN` only when the path cannot yet be established>
|
|
78
86
|
- Oracle: <externally observable success or failure>
|
|
79
87
|
- Counterexample: <material alternative behavior that must make this proof fail>
|
|
80
88
|
- Artifacts: <required artifact path plus digest algorithm/comparison rule, or explicitly ephemeral with cleanup rule>
|
|
@@ -83,18 +91,22 @@ Status: blocked
|
|
|
83
91
|
<!-- Fill only after execution; see canonical form below. -->
|
|
84
92
|
````
|
|
85
93
|
|
|
86
|
-
Trace `Command → Named probe → Reachability → Oracle`. Aggregate suites
|
|
87
|
-
|
|
88
|
-
|
|
94
|
+
Trace `Command → Named probe → Reachability → Oracle`. Aggregate suites name the
|
|
95
|
+
owning concrete probe. `Required proof` is a planned level set, not execution
|
|
96
|
+
evidence: known but unrun proof may be `pending`; `UNKNOWN` reachability blocks
|
|
97
|
+
`pending`; missing, failed, or unavailable required evidence blocks `done`/C3.
|
|
98
|
+
Levels stay separate and never promote one another. Run mutation or destructive
|
|
89
99
|
negative controls only on disposable copies under a verified temporary root,
|
|
90
100
|
never tracked worktree or canonical source bytes.
|
|
101
|
+
For every required level in each referenced CP row, map its named probe and
|
|
102
|
+
reachability here; one command may own several explicitly named level probes.
|
|
91
103
|
|
|
92
104
|
## Status matrix
|
|
93
105
|
|
|
94
106
|
| Status condition | Persisted state |
|
|
95
107
|
|---|---|
|
|
96
108
|
| C1/C2 decision open | `blocked` |
|
|
97
|
-
| accepted finding open or `UNKNOWN` | `blocked` |
|
|
109
|
+
| accepted finding open or `UNKNOWN` reachability | `blocked` |
|
|
98
110
|
| every non-dependency blocker closed | `pending` |
|
|
99
111
|
| named task dependency not done | keep `pending`; queue gates it |
|
|
100
112
|
Use only direct-child task basenames or `none` under `## Dependencies`; keep `## Receipt` empty until execution produces canonical proof.
|
|
@@ -138,33 +150,37 @@ Avoid implementation detail unless it is a user-approved contract. Replace
|
|
|
138
150
|
|
|
139
151
|
## Example Mapping rule
|
|
140
152
|
|
|
141
|
-
|
|
142
|
-
C2; do not guess. When a rule is ambiguous, add two or three examples:
|
|
153
|
+
Classify ambiguity in every affected CP row:
|
|
143
154
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```
|
|
155
|
+
| State | Required action |
|
|
156
|
+
|---|---|
|
|
157
|
+
| `none` | proceed |
|
|
158
|
+
| `examples-needed` | add two or three examples only for an already decided rule; promote to `decision-needed` if an example changes observable behavior |
|
|
159
|
+
| `decision-needed` | ask the user at C1/C2 and keep affected tasks blocked |
|
|
160
|
+
| `design-needed` | after user-owned decisions settle, route material competing technical designs through Brainstorm |
|
|
151
161
|
|
|
152
|
-
|
|
162
|
+
Do not let examples choose a product outcome: retention of 30 versus 90 days is
|
|
163
|
+
`decision-needed`. Keep examples only until they clarify the decided rule.
|
|
153
164
|
|
|
154
165
|
## No-invention and conditional boundary contracts
|
|
155
166
|
|
|
156
167
|
Before implementation handoff, apply the **no-invention gate**: if two implementations conform to the packet text yet can produce different externally observable output, state, error, security, or compatibility behavior, surface the missing choice as an explicit C1 or C2 question and block handoff.
|
|
157
168
|
|
|
169
|
+
For a Specs route, `plan.md` owns one `## Coverage profile` row per externally observable outcome; direct and Brainstorm-only routes do not persist it. Change kinds are multi-valued (`add`, `modify`, `fix`, `refactor`, `remove`, `migrate`, `integrate`), and unfamiliar kinds or surfaces use `other:<verbatim>` rather than disappearing. Each task references its CP IDs; authoring, review, edge, and proof obligations union only inside affected rows/tasks. Rederive affected CP rows after any accepted scope, outcome, criteria, ownership, dependency, risk, or proof delta before task status.
|
|
170
|
+
|
|
158
171
|
A boundary is material when the task creates, changes, or depends on it and a different choice changes an external observation, security, durable data, compatibility, or proof reachability. Require only the matching material row; omit nonmaterial categories.
|
|
159
172
|
For every required row, name each listed choice exactly; labels such as “JSON”, “local path”, “locked”, or “timestamped” alone remain unresolved.
|
|
160
173
|
|
|
161
174
|
| Boundary | Required contract when material |
|
|
162
175
|
|---|---|
|
|
176
|
+
| Interaction/UI | entry journey; visible/loading/empty/error states; input/focus/keyboard; accessibility; responsive/native/device behavior |
|
|
163
177
|
| API/CLI | entrypoint/route or command grammar; identity/auth; input/default/normalization; success output; error/status/exit; duplicate/retry/idempotency; compatibility |
|
|
164
|
-
|
|
|
165
|
-
|
|
|
178
|
+
| Data/schema | authority/storage/transaction; version; exact keys/nesting/types; required/optional; enum/format/bounds/cardinality; unknown-field behavior; compatibility/migration |
|
|
179
|
+
| Async/state | initial/terminal states; event + guard + effect + next + error; ordering/concurrency; duplicate/retry; writer/lock acquire/contention/release; cancellation; rollback/recovery |
|
|
166
180
|
| Filesystem/security | authoritative root; trusted/untrusted segment grammar; lexical + canonical containment and symlink policy; flags/mode; temp/rename/fsync; lock/stale reclaim; crash cleanup |
|
|
181
|
+
| Runtime/deploy | config/env/flags; registration/packaging; OS/arch; rollout/rollback; health/logging; operator recovery |
|
|
167
182
|
| Time/retention | clock source; unit/precision/timezone; endpoints and inclusion/comparator; anomaly behavior; expiry/purge/recovery |
|
|
183
|
+
| AI/model | provider/model/prompt/tool schema; nondeterminism/bounds; safety/privacy; fallback; cost/token limit; eval oracle |
|
|
168
184
|
| Integration/proof | caller; export/registration; packaging/config; native path/consumer; proof level (`source`/`installed`/`live`); observable failure oracle |
|
|
169
185
|
|
|
170
186
|
## Twelve edge-case dimensions
|
|
@@ -194,7 +210,7 @@ Before C2 confirm:
|
|
|
194
210
|
- dependencies are acyclic and refer to real task numbers;
|
|
195
211
|
- commands are runnable from the named work context;
|
|
196
212
|
- negative, recovery, and reachability probes exist where risk requires them;
|
|
197
|
-
-
|
|
213
|
+
- every ambiguity follows its required action; examples only clarify decided rules;
|
|
198
214
|
- the latest consistency sweep reports zero unresolved contradictions.
|
|
199
215
|
|
|
200
216
|
Stop expanding when a fresh reviewer finds no new material failure with new
|
|
@@ -8,11 +8,11 @@ Research exists only because this uncertainty can change requirements or design.
|
|
|
8
8
|
|
|
9
9
|
## Evidence Summary
|
|
10
10
|
|
|
11
|
-
<!--
|
|
11
|
+
<!-- Keep the mandatory H2 headings in this exact order. Record each material claim with: claim; URL or repository path:line; authority; date/version; project applicability; confirmed|inferred|unresolved. For comparisons include ranked fit, decisive tradeoffs, contradictions, and limits. -->
|
|
12
12
|
|
|
13
13
|
## Decision
|
|
14
14
|
|
|
15
|
-
<!-- State the selected decision and
|
|
15
|
+
<!-- State the selected decision, research depth, and decisive evidence; if evidence cannot choose safely, state unresolved and name what would settle it. -->
|
|
16
16
|
|
|
17
17
|
## Remaining Gaps
|
|
18
18
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: cf:sync
|
|
3
3
|
description: "Synchronize process-first task Status and inline Receipts without inventing proof; also preserves existing legacy Specs state."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
when_to_use: "Invoke after implementation or verification changes a task's real state, or to audit a feature packet for drift."
|
|
@@ -19,11 +19,11 @@ state. Never infer proof, approval, review independence, or product readiness.
|
|
|
19
19
|
## Commands
|
|
20
20
|
|
|
21
21
|
```text
|
|
22
|
-
/
|
|
23
|
-
/
|
|
24
|
-
/
|
|
25
|
-
/
|
|
26
|
-
/
|
|
22
|
+
/cf:sync <feature> <task-NN-slug.md> in_progress
|
|
23
|
+
/cf:sync <feature> <task-NN-slug.md> blocked "reason"
|
|
24
|
+
/cf:sync <feature> <task-NN-slug.md> done
|
|
25
|
+
/cf:sync <feature> <task-NN-slug.md> sync-finalize
|
|
26
|
+
/cf:sync audit <feature>
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
Resolve one regular direct-child task inside `specs/<feature>/`. Reject path
|
|
@@ -22,7 +22,7 @@ to change one task state.
|
|
|
22
22
|
changes; retain the stale receipt only when clearly labelled non-authoritative.
|
|
23
23
|
|
|
24
24
|
For Flash, keep `Status: in_progress`, `FLASH_UNVERIFIED`, and blocker
|
|
25
|
-
`awaiting /
|
|
25
|
+
`awaiting /cf:test <feature>`. Only sync-finalize with fresh canonical proof
|
|
26
26
|
may replace that marker and set done.
|
|
27
27
|
|
|
28
28
|
## Receipt update
|