intent-planner 0.13.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/LICENSE +21 -0
- package/README.en.md +225 -0
- package/README.md +225 -0
- package/bin/cli.mjs +289 -0
- package/package.json +46 -0
- package/src/install.mjs +527 -0
- package/templates/en/agents/claude/CLAUDE.md +62 -0
- package/templates/en/agents/codex/AGENTS.md +62 -0
- package/templates/en/agents/gemini/GEMINI.md +62 -0
- package/templates/en/claude/skills/CONTRACT.md +86 -0
- package/templates/en/claude/skills/intent-compass/SKILL.md +55 -0
- package/templates/en/claude/skills/intent-compass/rules/algo-qoc.md +62 -0
- package/templates/en/claude/skills/intent-compass/rules/constraint-surfacing.md +41 -0
- package/templates/en/claude/skills/intent-discover/SKILL.md +63 -0
- package/templates/en/claude/skills/intent-discover/rules/algo-drift-analysis.md +34 -0
- package/templates/en/claude/skills/intent-discover/rules/algo-gore-lite.md +35 -0
- package/templates/en/claude/skills/intent-discover/rules/algo-impact-analysis.md +37 -0
- package/templates/en/claude/skills/intent-discover/rules/algo-intent-recovery.md +39 -0
- package/templates/en/claude/skills/intent-discover/rules/designer-questions.md +78 -0
- package/templates/en/claude/skills/intent-discover/rules/drift-terrain.md +105 -0
- package/templates/en/claude/skills/intent-discover/rules/mode-selection.md +31 -0
- package/templates/en/claude/skills/intent-export-cc-sdd/SKILL.md +88 -0
- package/templates/en/claude/skills/intent-export-cc-sdd/rules/drift-export-check.md +75 -0
- package/templates/en/claude/skills/intent-export-cc-sdd/rules/export-questions.md +23 -0
- package/templates/en/claude/skills/intent-export-cc-sdd/rules/map-cc-sdd.md +62 -0
- package/templates/en/claude/skills/intent-export-openspec/SKILL.md +90 -0
- package/templates/en/claude/skills/intent-export-openspec/rules/drift-export-check.md +50 -0
- package/templates/en/claude/skills/intent-export-openspec/rules/export-questions.md +23 -0
- package/templates/en/claude/skills/intent-export-openspec/rules/map-openspec.md +75 -0
- package/templates/en/claude/skills/intent-from-spec/SKILL.md +60 -0
- package/templates/en/claude/skills/intent-from-spec/rules/extract-intent.md +56 -0
- package/templates/en/claude/skills/intent-from-spec/rules/gap-readout.md +54 -0
- package/templates/en/claude/skills/intent-from-spec/rules/load-bearing.md +48 -0
- package/templates/en/claude/skills/intent-from-spec/rules/omission-recap.md +42 -0
- package/templates/en/claude/skills/intent-improve/SKILL.md +70 -0
- package/templates/en/claude/skills/intent-improve/rules/improve-axes.md +121 -0
- package/templates/en/claude/skills/intent-overview/SKILL.md +63 -0
- package/templates/en/claude/skills/intent-overview/rules/aggregate-sources.md +61 -0
- package/templates/en/claude/skills/intent-overview/rules/gap-readout.md +54 -0
- package/templates/en/claude/skills/intent-overview/rules/mermaid-tree.md +78 -0
- package/templates/en/claude/skills/intent-overview/rules/progress-readout.md +119 -0
- package/templates/en/claude/skills/intent-packets/SKILL.md +97 -0
- package/templates/en/claude/skills/intent-packets/rules/algo-additive-slicing.md +55 -0
- package/templates/en/claude/skills/intent-packets/rules/algo-characterization-test.md +40 -0
- package/templates/en/claude/skills/intent-packets/rules/algo-example-mapping.md +47 -0
- package/templates/en/claude/skills/intent-packets/rules/algo-migration-slicing.md +47 -0
- package/templates/en/claude/skills/intent-packets/rules/decision-slots.md +88 -0
- package/templates/en/claude/skills/intent-packets/rules/export-route.md +54 -0
- package/templates/en/claude/skills/intent-packets/rules/first-packet.md +35 -0
- package/templates/en/claude/skills/intent-packets/rules/packet-format.md +207 -0
- package/templates/en/claude/skills/intent-packets/rules/walking-skeleton.md +35 -0
- package/templates/en/claude/skills/intent-release-note/SKILL.md +58 -0
- package/templates/en/claude/skills/intent-release-note/rules/format-changelog.md +40 -0
- package/templates/en/claude/skills/intent-release-note/rules/format-github-releases.md +41 -0
- package/templates/en/claude/skills/intent-release-note/rules/format-select.md +32 -0
- package/templates/en/claude/skills/intent-release-note/rules/source-scope.md +42 -0
- package/templates/en/claude/skills/intent-status/SKILL.md +171 -0
- package/templates/en/claude/skills/intent-status/rules/decision-table.md +47 -0
- package/templates/en/claude/skills/intent-to-spec/SKILL.md +68 -0
- package/templates/en/claude/skills/intent-to-spec/rules/fabrication-guard.md +41 -0
- package/templates/en/claude/skills/intent-to-spec/rules/format-integrated.md +42 -0
- package/templates/en/claude/skills/intent-to-spec/rules/format-nonprogram.md +45 -0
- package/templates/en/claude/skills/intent-to-spec/rules/format-upstream.md +41 -0
- package/templates/en/claude/skills/intent-to-spec/rules/source-scope.md +50 -0
- package/templates/en/claude/skills/intent-validate/SKILL.md +80 -0
- package/templates/en/claude/skills/intent-validate/rules/validate-checks.md +121 -0
- package/templates/en/claude/skills/intent-writeback/SKILL.md +71 -0
- package/templates/en/claude/skills/intent-writeback/rules/writeback-protocol.md +139 -0
- package/templates/en/codex/skills/CONTRACT.md +77 -0
- package/templates/en/codex/skills/intent-compass/SKILL.md +52 -0
- package/templates/en/codex/skills/intent-compass/rules/algo-qoc.md +62 -0
- package/templates/en/codex/skills/intent-compass/rules/constraint-surfacing.md +41 -0
- package/templates/en/codex/skills/intent-discover/SKILL.md +60 -0
- package/templates/en/codex/skills/intent-discover/rules/algo-drift-analysis.md +34 -0
- package/templates/en/codex/skills/intent-discover/rules/algo-gore-lite.md +35 -0
- package/templates/en/codex/skills/intent-discover/rules/algo-impact-analysis.md +37 -0
- package/templates/en/codex/skills/intent-discover/rules/algo-intent-recovery.md +39 -0
- package/templates/en/codex/skills/intent-discover/rules/designer-questions.md +78 -0
- package/templates/en/codex/skills/intent-discover/rules/drift-terrain.md +105 -0
- package/templates/en/codex/skills/intent-discover/rules/mode-selection.md +31 -0
- package/templates/en/codex/skills/intent-export-cc-sdd/SKILL.md +85 -0
- package/templates/en/codex/skills/intent-export-cc-sdd/rules/drift-export-check.md +75 -0
- package/templates/en/codex/skills/intent-export-cc-sdd/rules/export-questions.md +23 -0
- package/templates/en/codex/skills/intent-export-cc-sdd/rules/map-cc-sdd.md +62 -0
- package/templates/en/codex/skills/intent-export-openspec/SKILL.md +87 -0
- package/templates/en/codex/skills/intent-export-openspec/rules/drift-export-check.md +50 -0
- package/templates/en/codex/skills/intent-export-openspec/rules/export-questions.md +23 -0
- package/templates/en/codex/skills/intent-export-openspec/rules/map-openspec.md +75 -0
- package/templates/en/codex/skills/intent-from-spec/SKILL.md +58 -0
- package/templates/en/codex/skills/intent-from-spec/rules/extract-intent.md +56 -0
- package/templates/en/codex/skills/intent-from-spec/rules/gap-readout.md +54 -0
- package/templates/en/codex/skills/intent-from-spec/rules/load-bearing.md +48 -0
- package/templates/en/codex/skills/intent-from-spec/rules/omission-recap.md +42 -0
- package/templates/en/codex/skills/intent-improve/SKILL.md +67 -0
- package/templates/en/codex/skills/intent-improve/rules/improve-axes.md +121 -0
- package/templates/en/codex/skills/intent-overview/SKILL.md +61 -0
- package/templates/en/codex/skills/intent-overview/rules/aggregate-sources.md +61 -0
- package/templates/en/codex/skills/intent-overview/rules/gap-readout.md +54 -0
- package/templates/en/codex/skills/intent-overview/rules/mermaid-tree.md +78 -0
- package/templates/en/codex/skills/intent-overview/rules/progress-readout.md +119 -0
- package/templates/en/codex/skills/intent-packets/SKILL.md +94 -0
- package/templates/en/codex/skills/intent-packets/rules/algo-additive-slicing.md +55 -0
- package/templates/en/codex/skills/intent-packets/rules/algo-characterization-test.md +40 -0
- package/templates/en/codex/skills/intent-packets/rules/algo-example-mapping.md +47 -0
- package/templates/en/codex/skills/intent-packets/rules/algo-migration-slicing.md +47 -0
- package/templates/en/codex/skills/intent-packets/rules/decision-slots.md +88 -0
- package/templates/en/codex/skills/intent-packets/rules/export-route.md +54 -0
- package/templates/en/codex/skills/intent-packets/rules/first-packet.md +35 -0
- package/templates/en/codex/skills/intent-packets/rules/packet-format.md +207 -0
- package/templates/en/codex/skills/intent-packets/rules/walking-skeleton.md +35 -0
- package/templates/en/codex/skills/intent-release-note/SKILL.md +56 -0
- package/templates/en/codex/skills/intent-release-note/rules/format-changelog.md +40 -0
- package/templates/en/codex/skills/intent-release-note/rules/format-github-releases.md +41 -0
- package/templates/en/codex/skills/intent-release-note/rules/format-select.md +32 -0
- package/templates/en/codex/skills/intent-release-note/rules/source-scope.md +42 -0
- package/templates/en/codex/skills/intent-status/SKILL.md +169 -0
- package/templates/en/codex/skills/intent-status/rules/decision-table.md +47 -0
- package/templates/en/codex/skills/intent-to-spec/SKILL.md +66 -0
- package/templates/en/codex/skills/intent-to-spec/rules/fabrication-guard.md +41 -0
- package/templates/en/codex/skills/intent-to-spec/rules/format-integrated.md +42 -0
- package/templates/en/codex/skills/intent-to-spec/rules/format-nonprogram.md +45 -0
- package/templates/en/codex/skills/intent-to-spec/rules/format-upstream.md +41 -0
- package/templates/en/codex/skills/intent-to-spec/rules/source-scope.md +50 -0
- package/templates/en/codex/skills/intent-validate/SKILL.md +78 -0
- package/templates/en/codex/skills/intent-validate/rules/validate-checks.md +121 -0
- package/templates/en/codex/skills/intent-writeback/SKILL.md +68 -0
- package/templates/en/codex/skills/intent-writeback/rules/writeback-protocol.md +139 -0
- package/templates/en/intent/README.md +118 -0
- package/templates/en/intent/cc-sdd/README.md +28 -0
- package/templates/en/intent/compass-archive/README.md +9 -0
- package/templates/en/intent/compass-archive/archive/.gitkeep +0 -0
- package/templates/en/intent/compass-archive.md +7 -0
- package/templates/en/intent/constraint-library.md +32 -0
- package/templates/en/intent/constraint-starters.md +58 -0
- package/templates/en/intent/context-cost-cues.md +55 -0
- package/templates/en/intent/deltas/README.md +11 -0
- package/templates/en/intent/deltas/archive/.gitkeep +0 -0
- package/templates/en/intent/deltas.md +34 -0
- package/templates/en/intent/drift-log/README.md +11 -0
- package/templates/en/intent/drift-log/archive/.gitkeep +0 -0
- package/templates/en/intent/drift-log.md +41 -0
- package/templates/en/intent/drift-patterns.md +68 -0
- package/templates/en/intent/export-log/README.md +12 -0
- package/templates/en/intent/export-log/archive/.gitkeep +0 -0
- package/templates/en/intent/export-log.md +6 -0
- package/templates/en/intent/glossary.md +23 -0
- package/templates/en/intent/intent-compass.md +55 -0
- package/templates/en/intent/intent-tree.md +59 -0
- package/templates/en/intent/milestones/README.md +10 -0
- package/templates/en/intent/milestones/archive/.gitkeep +0 -0
- package/templates/en/intent/milestones.md +22 -0
- package/templates/en/intent/mode.local.md +23 -0
- package/templates/en/intent/mode.md +32 -0
- package/templates/en/intent/modes/README.md +28 -0
- package/templates/en/intent/modes/behavior-unknown.md +57 -0
- package/templates/en/intent/modes/feature-growth.md +57 -0
- package/templates/en/intent/modes/non-code.md +46 -0
- package/templates/en/intent/modes/refactor.md +56 -0
- package/templates/en/intent/modes/standard.md +50 -0
- package/templates/en/intent/nl-spec/README.md +18 -0
- package/templates/en/intent/openspec/proposal.md +15 -0
- package/templates/en/intent/openspec/spec-delta.md +25 -0
- package/templates/en/intent/overview/README.md +18 -0
- package/templates/en/intent/packets/README.md +29 -0
- package/templates/en/intent/packets/index.md +6 -0
- package/templates/en/intent/packets/plan.md +23 -0
- package/templates/en/intent/release-note/README.md +18 -0
- package/templates/en/intent/scripts/intent-check.mjs +786 -0
- package/templates/en/intent/scripts/pre-push +27 -0
- package/templates/en/intent/spec-ingest/README.md +18 -0
- package/templates/ja/agents/claude/CLAUDE.md +62 -0
- package/templates/ja/agents/codex/AGENTS.md +62 -0
- package/templates/ja/agents/gemini/GEMINI.md +62 -0
- package/templates/ja/claude/skills/CONTRACT.md +90 -0
- package/templates/ja/claude/skills/intent-compass/SKILL.md +55 -0
- package/templates/ja/claude/skills/intent-compass/rules/algo-qoc.md +62 -0
- package/templates/ja/claude/skills/intent-compass/rules/constraint-surfacing.md +41 -0
- package/templates/ja/claude/skills/intent-discover/SKILL.md +63 -0
- package/templates/ja/claude/skills/intent-discover/rules/algo-drift-analysis.md +34 -0
- package/templates/ja/claude/skills/intent-discover/rules/algo-gore-lite.md +35 -0
- package/templates/ja/claude/skills/intent-discover/rules/algo-impact-analysis.md +37 -0
- package/templates/ja/claude/skills/intent-discover/rules/algo-intent-recovery.md +39 -0
- package/templates/ja/claude/skills/intent-discover/rules/designer-questions.md +78 -0
- package/templates/ja/claude/skills/intent-discover/rules/drift-terrain.md +105 -0
- package/templates/ja/claude/skills/intent-discover/rules/mode-selection.md +31 -0
- package/templates/ja/claude/skills/intent-export-cc-sdd/SKILL.md +88 -0
- package/templates/ja/claude/skills/intent-export-cc-sdd/rules/drift-export-check.md +75 -0
- package/templates/ja/claude/skills/intent-export-cc-sdd/rules/export-questions.md +23 -0
- package/templates/ja/claude/skills/intent-export-cc-sdd/rules/map-cc-sdd.md +62 -0
- package/templates/ja/claude/skills/intent-export-openspec/SKILL.md +90 -0
- package/templates/ja/claude/skills/intent-export-openspec/rules/drift-export-check.md +50 -0
- package/templates/ja/claude/skills/intent-export-openspec/rules/export-questions.md +23 -0
- package/templates/ja/claude/skills/intent-export-openspec/rules/map-openspec.md +75 -0
- package/templates/ja/claude/skills/intent-from-spec/SKILL.md +60 -0
- package/templates/ja/claude/skills/intent-from-spec/rules/extract-intent.md +56 -0
- package/templates/ja/claude/skills/intent-from-spec/rules/gap-readout.md +54 -0
- package/templates/ja/claude/skills/intent-from-spec/rules/load-bearing.md +48 -0
- package/templates/ja/claude/skills/intent-from-spec/rules/omission-recap.md +42 -0
- package/templates/ja/claude/skills/intent-improve/SKILL.md +70 -0
- package/templates/ja/claude/skills/intent-improve/rules/improve-axes.md +121 -0
- package/templates/ja/claude/skills/intent-overview/SKILL.md +63 -0
- package/templates/ja/claude/skills/intent-overview/rules/aggregate-sources.md +61 -0
- package/templates/ja/claude/skills/intent-overview/rules/gap-readout.md +54 -0
- package/templates/ja/claude/skills/intent-overview/rules/mermaid-tree.md +78 -0
- package/templates/ja/claude/skills/intent-overview/rules/progress-readout.md +119 -0
- package/templates/ja/claude/skills/intent-packets/SKILL.md +97 -0
- package/templates/ja/claude/skills/intent-packets/rules/algo-additive-slicing.md +55 -0
- package/templates/ja/claude/skills/intent-packets/rules/algo-characterization-test.md +40 -0
- package/templates/ja/claude/skills/intent-packets/rules/algo-example-mapping.md +47 -0
- package/templates/ja/claude/skills/intent-packets/rules/algo-migration-slicing.md +47 -0
- package/templates/ja/claude/skills/intent-packets/rules/decision-slots.md +88 -0
- package/templates/ja/claude/skills/intent-packets/rules/export-route.md +54 -0
- package/templates/ja/claude/skills/intent-packets/rules/first-packet.md +35 -0
- package/templates/ja/claude/skills/intent-packets/rules/packet-format.md +207 -0
- package/templates/ja/claude/skills/intent-packets/rules/walking-skeleton.md +35 -0
- package/templates/ja/claude/skills/intent-release-note/SKILL.md +58 -0
- package/templates/ja/claude/skills/intent-release-note/rules/format-changelog.md +40 -0
- package/templates/ja/claude/skills/intent-release-note/rules/format-github-releases.md +41 -0
- package/templates/ja/claude/skills/intent-release-note/rules/format-select.md +32 -0
- package/templates/ja/claude/skills/intent-release-note/rules/source-scope.md +42 -0
- package/templates/ja/claude/skills/intent-status/SKILL.md +171 -0
- package/templates/ja/claude/skills/intent-status/rules/decision-table.md +47 -0
- package/templates/ja/claude/skills/intent-to-spec/SKILL.md +68 -0
- package/templates/ja/claude/skills/intent-to-spec/rules/fabrication-guard.md +41 -0
- package/templates/ja/claude/skills/intent-to-spec/rules/format-integrated.md +42 -0
- package/templates/ja/claude/skills/intent-to-spec/rules/format-nonprogram.md +45 -0
- package/templates/ja/claude/skills/intent-to-spec/rules/format-upstream.md +41 -0
- package/templates/ja/claude/skills/intent-to-spec/rules/source-scope.md +50 -0
- package/templates/ja/claude/skills/intent-validate/SKILL.md +80 -0
- package/templates/ja/claude/skills/intent-validate/rules/validate-checks.md +121 -0
- package/templates/ja/claude/skills/intent-writeback/SKILL.md +71 -0
- package/templates/ja/claude/skills/intent-writeback/rules/writeback-protocol.md +139 -0
- package/templates/ja/codex/skills/CONTRACT.md +81 -0
- package/templates/ja/codex/skills/intent-compass/SKILL.md +52 -0
- package/templates/ja/codex/skills/intent-compass/rules/algo-qoc.md +62 -0
- package/templates/ja/codex/skills/intent-compass/rules/constraint-surfacing.md +41 -0
- package/templates/ja/codex/skills/intent-discover/SKILL.md +60 -0
- package/templates/ja/codex/skills/intent-discover/rules/algo-drift-analysis.md +34 -0
- package/templates/ja/codex/skills/intent-discover/rules/algo-gore-lite.md +35 -0
- package/templates/ja/codex/skills/intent-discover/rules/algo-impact-analysis.md +37 -0
- package/templates/ja/codex/skills/intent-discover/rules/algo-intent-recovery.md +39 -0
- package/templates/ja/codex/skills/intent-discover/rules/designer-questions.md +78 -0
- package/templates/ja/codex/skills/intent-discover/rules/drift-terrain.md +105 -0
- package/templates/ja/codex/skills/intent-discover/rules/mode-selection.md +31 -0
- package/templates/ja/codex/skills/intent-export-cc-sdd/SKILL.md +85 -0
- package/templates/ja/codex/skills/intent-export-cc-sdd/rules/drift-export-check.md +75 -0
- package/templates/ja/codex/skills/intent-export-cc-sdd/rules/export-questions.md +23 -0
- package/templates/ja/codex/skills/intent-export-cc-sdd/rules/map-cc-sdd.md +62 -0
- package/templates/ja/codex/skills/intent-export-openspec/SKILL.md +87 -0
- package/templates/ja/codex/skills/intent-export-openspec/rules/drift-export-check.md +50 -0
- package/templates/ja/codex/skills/intent-export-openspec/rules/export-questions.md +23 -0
- package/templates/ja/codex/skills/intent-export-openspec/rules/map-openspec.md +75 -0
- package/templates/ja/codex/skills/intent-from-spec/SKILL.md +58 -0
- package/templates/ja/codex/skills/intent-from-spec/rules/extract-intent.md +56 -0
- package/templates/ja/codex/skills/intent-from-spec/rules/gap-readout.md +54 -0
- package/templates/ja/codex/skills/intent-from-spec/rules/load-bearing.md +48 -0
- package/templates/ja/codex/skills/intent-from-spec/rules/omission-recap.md +42 -0
- package/templates/ja/codex/skills/intent-improve/SKILL.md +67 -0
- package/templates/ja/codex/skills/intent-improve/rules/improve-axes.md +121 -0
- package/templates/ja/codex/skills/intent-overview/SKILL.md +61 -0
- package/templates/ja/codex/skills/intent-overview/rules/aggregate-sources.md +61 -0
- package/templates/ja/codex/skills/intent-overview/rules/gap-readout.md +54 -0
- package/templates/ja/codex/skills/intent-overview/rules/mermaid-tree.md +78 -0
- package/templates/ja/codex/skills/intent-overview/rules/progress-readout.md +119 -0
- package/templates/ja/codex/skills/intent-packets/SKILL.md +94 -0
- package/templates/ja/codex/skills/intent-packets/rules/algo-additive-slicing.md +55 -0
- package/templates/ja/codex/skills/intent-packets/rules/algo-characterization-test.md +40 -0
- package/templates/ja/codex/skills/intent-packets/rules/algo-example-mapping.md +47 -0
- package/templates/ja/codex/skills/intent-packets/rules/algo-migration-slicing.md +47 -0
- package/templates/ja/codex/skills/intent-packets/rules/decision-slots.md +88 -0
- package/templates/ja/codex/skills/intent-packets/rules/export-route.md +54 -0
- package/templates/ja/codex/skills/intent-packets/rules/first-packet.md +35 -0
- package/templates/ja/codex/skills/intent-packets/rules/packet-format.md +207 -0
- package/templates/ja/codex/skills/intent-packets/rules/walking-skeleton.md +35 -0
- package/templates/ja/codex/skills/intent-release-note/SKILL.md +56 -0
- package/templates/ja/codex/skills/intent-release-note/rules/format-changelog.md +40 -0
- package/templates/ja/codex/skills/intent-release-note/rules/format-github-releases.md +41 -0
- package/templates/ja/codex/skills/intent-release-note/rules/format-select.md +32 -0
- package/templates/ja/codex/skills/intent-release-note/rules/source-scope.md +42 -0
- package/templates/ja/codex/skills/intent-status/SKILL.md +169 -0
- package/templates/ja/codex/skills/intent-status/rules/decision-table.md +47 -0
- package/templates/ja/codex/skills/intent-to-spec/SKILL.md +66 -0
- package/templates/ja/codex/skills/intent-to-spec/rules/fabrication-guard.md +41 -0
- package/templates/ja/codex/skills/intent-to-spec/rules/format-integrated.md +42 -0
- package/templates/ja/codex/skills/intent-to-spec/rules/format-nonprogram.md +45 -0
- package/templates/ja/codex/skills/intent-to-spec/rules/format-upstream.md +41 -0
- package/templates/ja/codex/skills/intent-to-spec/rules/source-scope.md +50 -0
- package/templates/ja/codex/skills/intent-validate/SKILL.md +78 -0
- package/templates/ja/codex/skills/intent-validate/rules/validate-checks.md +121 -0
- package/templates/ja/codex/skills/intent-writeback/SKILL.md +68 -0
- package/templates/ja/codex/skills/intent-writeback/rules/writeback-protocol.md +139 -0
- package/templates/ja/intent/README.md +118 -0
- package/templates/ja/intent/cc-sdd/README.md +28 -0
- package/templates/ja/intent/compass-archive/README.md +9 -0
- package/templates/ja/intent/compass-archive/archive/.gitkeep +0 -0
- package/templates/ja/intent/compass-archive.md +7 -0
- package/templates/ja/intent/constraint-library.md +32 -0
- package/templates/ja/intent/constraint-starters.md +58 -0
- package/templates/ja/intent/context-cost-cues.md +55 -0
- package/templates/ja/intent/deltas/README.md +11 -0
- package/templates/ja/intent/deltas/archive/.gitkeep +0 -0
- package/templates/ja/intent/deltas.md +34 -0
- package/templates/ja/intent/drift-log/README.md +11 -0
- package/templates/ja/intent/drift-log/archive/.gitkeep +0 -0
- package/templates/ja/intent/drift-log.md +41 -0
- package/templates/ja/intent/drift-patterns.md +68 -0
- package/templates/ja/intent/export-log/README.md +12 -0
- package/templates/ja/intent/export-log/archive/.gitkeep +0 -0
- package/templates/ja/intent/export-log.md +6 -0
- package/templates/ja/intent/glossary.md +23 -0
- package/templates/ja/intent/intent-compass.md +55 -0
- package/templates/ja/intent/intent-tree.md +59 -0
- package/templates/ja/intent/milestones/README.md +10 -0
- package/templates/ja/intent/milestones/archive/.gitkeep +0 -0
- package/templates/ja/intent/milestones.md +22 -0
- package/templates/ja/intent/mode.local.md +23 -0
- package/templates/ja/intent/mode.md +32 -0
- package/templates/ja/intent/modes/README.md +28 -0
- package/templates/ja/intent/modes/behavior-unknown.md +57 -0
- package/templates/ja/intent/modes/feature-growth.md +57 -0
- package/templates/ja/intent/modes/non-code.md +46 -0
- package/templates/ja/intent/modes/refactor.md +56 -0
- package/templates/ja/intent/modes/standard.md +50 -0
- package/templates/ja/intent/nl-spec/README.md +18 -0
- package/templates/ja/intent/openspec/proposal.md +15 -0
- package/templates/ja/intent/openspec/spec-delta.md +25 -0
- package/templates/ja/intent/overview/README.md +18 -0
- package/templates/ja/intent/packets/README.md +29 -0
- package/templates/ja/intent/packets/index.md +6 -0
- package/templates/ja/intent/packets/plan.md +23 -0
- package/templates/ja/intent/release-note/README.md +18 -0
- package/templates/ja/intent/scripts/intent-check.mjs +786 -0
- package/templates/ja/intent/scripts/pre-push +27 -0
- package/templates/ja/intent/spec-ingest/README.md +18 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# format 写像:非プログラム成果物向け(文書・業務・研究等)
|
|
2
|
+
|
|
3
|
+
`intent-to-spec` skill が、source scope 解釈が読み取った三層の素材を、**非プログラム成果物向けの自然言語 Spec**(文書・業務プロセス・研究/意思決定など、cc-sdd も openspec も使わない経路の読める成果物)へ組み立てるための写像規則。SKILL.md は手順と報告形式のみを持ち、「どの素材をどの順で・どの見出しに配置するか」は本ルールを参照する。
|
|
4
|
+
|
|
5
|
+
## 責務の境界(写像であって読み取り・照合ではない)
|
|
6
|
+
|
|
7
|
+
- 本ルールは **format 写像** である。素材の構成・順序・見出しへの割り当てだけを担う。射影元(intent-tree / compass / packets / steering)を読み直さず、独自のパーサ・スキーマを持たない。source scope 解釈が受け渡した素材(どの層・どの見出し・どの packet 由来かを保ったもの)をそのまま並べ替える。
|
|
8
|
+
- 各記述を射影元へ辿れる形にすること、inferred の標識、不変則の保持は**捏造抑制ルールの責務**であり、本ルールは行わない。canonical 由来と inferred 由来の素材は区別したまま受け取り、その区別を崩さずに配置する。
|
|
9
|
+
- 本ルールは**詰め方(mode)を持たない**。意図の詰め方は `intent/modes/` の責務であり(DR16)、出力体裁の器である本ルールへ混入させない。
|
|
10
|
+
|
|
11
|
+
## 基本姿勢(成果物そのものを読み手の言葉で読ませる)
|
|
12
|
+
|
|
13
|
+
非プログラム成果物向け Spec は、コードを書かない読み手(文書の合意者・業務の担当者・研究や意思決定の関係者)が、**何が決まり・なぜそうで・どう判断し・何を満たせばよいか**をそのまま読み下せる体裁である。実装語彙(API・モジュール・テストケース等)を前面に出さず、対象領域の言葉で成果物を提示する。したがって:
|
|
14
|
+
|
|
15
|
+
- 背景・目的(なぜ)と、満たすべき到達点(何を)を、成果物の冒頭で読み手の言葉で示す。
|
|
16
|
+
- 守るべき約束・判断のよりどころ(不変則・判断基準)を、個別の中身より前に置く。
|
|
17
|
+
- 受容(合意できたか・差し戻すか)の基準は、コードの testable 語彙ではなく**合意・受容の言葉**で示す(degrade 語彙は packets 側が読み替えるのであり、本ルールはその読み替え済み素材をそのまま置く)。
|
|
18
|
+
- 流暢さのために素材に無い背景・詳細を足さない(補完が要る箇所は捏造抑制ルールが inferred として扱うのであり、本ルールが本文に溶かし込んではならない)。
|
|
19
|
+
|
|
20
|
+
## 構成
|
|
21
|
+
|
|
22
|
+
source scope 解釈が受け渡した三層の素材を、汎用1枚の成果物として次の順で配置する(領域別の枚数・粒度の網羅はここでは行わない)。各セクションには、その素材がどの層・どの見出し由来かが後段の捏造抑制ルールで辿れるよう、由来を保ったまま渡す。
|
|
23
|
+
|
|
24
|
+
| 順 | セクション | 何を置くか | 主な素材の由来 |
|
|
25
|
+
|---|---|---|---|
|
|
26
|
+
| 1 | 背景と目的 | この成果物が向かう方向と、それが解く課題(読み手の言葉で) | Intent の North Star(compass)+ intent-tree の L0–L1 |
|
|
27
|
+
| 2 | 守るべき約束・前提 | 逸脱してはならない不変則と、避ける方向 | compass の Invariants / Anti-direction(+指定時のみ steering 制約) |
|
|
28
|
+
| 3 | 判断のよりどころ | 迷ったときに何を優先するかの基準 | compass の Decision Rules |
|
|
29
|
+
| 4 | 中身(満たすべき個別の到達点) | 上記のもとで満たすべき個別の要求・合意事項 | 横断 requirements(packets の個別要求・依存・受容根拠) |
|
|
30
|
+
| 5 | 受容の基準 | 合意できたか・差し戻すかを判定する受容語彙(degrade 済み) | packets の検証語彙(非コード読み替え済み・testable→受容基準で判定可能 等) |
|
|
31
|
+
| 6 | 前提・未確定(あれば) | 確定した上記と**混ぜずに**別枠で置く前提・未解決の問い | intent-tree の Assumptions / Open Questions(inferred 由来) |
|
|
32
|
+
|
|
33
|
+
- セクション 1–5 は canonical 由来の素材で構成する。順序を入れ替えない(背景・目的 → 約束 → 判断基準 → 中身 → 受容の順を非プログラム向け体裁の核とする)。
|
|
34
|
+
- セクション 6 は inferred 由来(Assumptions / Open Questions)の素材を、canonical の本文へ溶かさず**末尾の別枠**に置く。素材が無ければセクションごと省く(空見出しを作らない)。
|
|
35
|
+
- 該当する素材が無い層はセクションを省く(無い情報を埋めない)。ただし背景と目的(1)と守るべき約束・前提(2)は本体裁の要であり、素材が読み取れているなら必ず置く。
|
|
36
|
+
- steering が読み取れていない場合でも(steering は opt-in)、Intent と packets の二層から 1・2・4・5 を構成できる。steering 不在だけを理由に成果物を欠落させない。
|
|
37
|
+
|
|
38
|
+
## 不変条件
|
|
39
|
+
|
|
40
|
+
- 射影元を読み直さない・変更しない(写像のみ。読み取りは source scope 解釈、書き込みは SKILL.md の派生 Write の責務)。出力は `.intent/nl-spec/` 配下の派生物に限り、canonical(intent-tree / compass / packets)は read-only のまま扱う。
|
|
41
|
+
- 各記述を射影元へ辿れる形を保ち、射影元に無い記述は inferred として標識する(標識そのものは捏造抑制ルールに委ね、本ルールは区別を崩さず配置するだけを守る)。
|
|
42
|
+
- 背景・目的(why)と約束・判断基準を、個別の中身より**前**に置く順序を崩さない。
|
|
43
|
+
- canonical 由来の素材と inferred 由来の素材を混在させない(区別を保ったまま配置する)。
|
|
44
|
+
- 素材に無い背景・動機・詳細を、文章を整えるために足さない。
|
|
45
|
+
- 出力体裁(format)の器に意図の詰め方(mode)を混入させない(DR16: 責務分離)。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# format 写像:上流向け(why 前面)
|
|
2
|
+
|
|
3
|
+
`intent-to-spec` skill が、source scope 解釈が読み取った三層の素材を、**上流向けの自然言語 Spec**(why が先に立つ RFP / 提案書ふうの体裁)へ組み立てるための写像規則。SKILL.md は手順と報告形式のみを持ち、「どの素材をどの順で・どの見出しに配置するか」は本ルールを参照する。
|
|
4
|
+
|
|
5
|
+
## 責務の境界(写像であって読み取り・照合ではない)
|
|
6
|
+
|
|
7
|
+
- 本ルールは **format 写像** である。素材の構成・順序・見出しへの割り当てだけを担う。
|
|
8
|
+
- 射影元(intent-tree / compass / packets / steering)を**読み直さない**。独自のパーサ・スキーマを持たず、source scope 解釈が受け渡した素材(どの層・どの見出し・どの packet 由来かを保ったもの)をそのまま並べ替える。
|
|
9
|
+
- 各記述を射影元へ辿れる形にすること、射影元に無い記述を inferred として標識すること、不変則を省略・改変せず保持することは**捏造抑制ルールの責務**であり、本ルールは行わない。本ルールは canonical 由来の素材と inferred 由来の素材(Assumptions / Open Questions)を**区別したまま**受け取り、その区別を崩さずに配置することだけを守る。
|
|
10
|
+
- 中間 format(上流と統合の中間)は、本ルールの「why 前面」の度合いを統合仕様書側へ寄せたものとして扱う。独立した別ルールを持たない。
|
|
11
|
+
|
|
12
|
+
## 基本姿勢(why を前面に置く)
|
|
13
|
+
|
|
14
|
+
上流向け Spec は、**何を作るか(what)より、なぜそれを作るか(why)と何を守るか(制約)を先に読ませる**体裁である。読み手は実装者ではなく、方向と妥当性を判断する立場(上流の意思決定者)を想定する。したがって:
|
|
15
|
+
|
|
16
|
+
- 目的・不変則・判断基準(why と制約)を文書の**前面**に置く。
|
|
17
|
+
- 個別の requirements・受入条件のような実装に近い詳細は、why と制約の**後**に、それらを支える材料として置く。
|
|
18
|
+
- 流暢さのために素材に無い背景・動機を足さない(補完が要る箇所は捏造抑制ルールが inferred として扱うのであり、本ルールが本文に溶かし込んではならない)。
|
|
19
|
+
|
|
20
|
+
## 構成(上から下へ:why → 制約 → 判断基準 → 個別要求)
|
|
21
|
+
|
|
22
|
+
source scope 解釈が受け渡した三層の素材を、次の順で配置する。各セクションには、その素材がどの層・どの見出し由来かが後段の捏造抑制ルールで辿れるよう、由来を保ったまま渡す。
|
|
23
|
+
|
|
24
|
+
| 順 | セクション | 何を置くか | 主な素材の由来 |
|
|
25
|
+
|---|---|---|---|
|
|
26
|
+
| 1 | 目的(なぜ作るか) | この Spec が向かう方向と、それが解く課題 | Intent の North Star(compass)+ intent-tree の L0–L1(why の上位) |
|
|
27
|
+
| 2 | 守るべき不変則・制約 | 逸脱してはならない不変則と、避ける方向 | compass の Invariants / Anti-direction(+指定時のみ steering 制約) |
|
|
28
|
+
| 3 | 判断基準 | 設計・実装で迷ったときの判断のよりどころ | compass の Decision Rules |
|
|
29
|
+
| 4 | 個別の要求 | 上記の why と制約のもとで満たすべき個別要求 | 横断 requirements(packets の個別要求・依存・証拠) |
|
|
30
|
+
| 5 | 前提・未確定(あれば) | 確定した上記と**混ぜずに**別枠で置く前提・未解決の問い | intent-tree の Assumptions / Open Questions(inferred 由来) |
|
|
31
|
+
|
|
32
|
+
- セクション 1–4 は canonical 由来の素材で構成する。順序を入れ替えない(why → 制約 → 判断基準 → 個別要求の順を上流向けの体裁の核とする)。
|
|
33
|
+
- セクション 5 は inferred 由来(Assumptions / Open Questions)の素材を、canonical の本文へ溶かさず**末尾の別枠**に置く。素材が無ければセクションごと省く(空見出しを作らない)。
|
|
34
|
+
- 該当する素材が無い層はセクションを省く(無い情報を埋めない)。ただし目的(1)と不変則・制約(2)は上流向け体裁の要であり、素材が読み取れているなら必ず置く。
|
|
35
|
+
|
|
36
|
+
## 不変条件
|
|
37
|
+
|
|
38
|
+
- 射影元を読み直さない・変更しない(写像のみ。読み取りは source scope 解釈、書き込みは SKILL.md の派生 Write の責務)。
|
|
39
|
+
- why(目的)と制約(不変則・判断基準)を、個別要求より**前**に置く順序を崩さない。
|
|
40
|
+
- canonical 由来の素材と inferred 由来の素材を混在させない(区別を保ったまま配置し、標識そのものは捏造抑制ルールに委ねる)。
|
|
41
|
+
- 素材に無い背景・動機・詳細を、文章を整えるために足さない。
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# source scope 解釈手順(read-only・三層読み取り)
|
|
2
|
+
|
|
3
|
+
`intent-to-spec` skill が、利用者の指定した範囲(source scope)を解釈し、その範囲の三層(Intent / steering 制約 / requirements)を素材として読み取るための正本。SKILL.md は手順と報告形式のみを持ち、「どの範囲をどう解釈し、何をどの見出しから読み取るか」は本ルールを参照する。本ルールは射影元を**読むだけ**であり、canonical な `.intent/*.md`・packets・steering(tech.md 等)を一切変更しない(書き込みは `.intent/nl-spec/` 配下のみ、かつ本ルールの責務外)。
|
|
4
|
+
|
|
5
|
+
## posture(独自パーサを持たず `.intent/` を読んで解釈する)
|
|
6
|
+
|
|
7
|
+
範囲の解釈と三層の読み取りは、独自のパーサ・スキーマ・索引を持たず、LLM が `.intent/` の成果物を直接読んで行う。新しい構造を導入せず、既存成果物の見出し・列・frontmatter をそのまま素材として扱う。逆算・検査・drift の判定ロジックは再実装せず、それらが残した出力があれば読むだけである。
|
|
8
|
+
|
|
9
|
+
## 範囲の解釈(引数 + 対話補完)
|
|
10
|
+
|
|
11
|
+
利用者が `/intent-to-spec` に与えた引数を起点に、次の4軸で範囲を解釈する。引数だけで一意に定まらない軸は、利用者に問い、回答を待ってから確定する(推測で埋めない)。
|
|
12
|
+
|
|
13
|
+
| 軸 | 解釈すること | 既定(無指定のとき) |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| Intent サブツリー | intent-tree のどの階層・どの枝を素材にするか(L0–L4 のどこから下流まで) | 範囲が一意でなければ問う。曖昧なまま生成しない |
|
|
16
|
+
| packet 群 | どの packet を素材にするか(packet 名の列挙 / "all" / 状態での絞り込み) | 範囲が一意でなければ問う |
|
|
17
|
+
| steering 制約 | steering 級の制約(tech.md 等)を素材に含めるか | 含めない。明示指定(例: "+steering")があるときのみ含める |
|
|
18
|
+
| 横断 requirements | 複数 packet を横断する個別 requirements のどの範囲を束ねるか | 上記 packet 群の指定に従う |
|
|
19
|
+
|
|
20
|
+
- 引数で範囲が一意に確定したら、対話補完は行わない(不要な問いを足さない)。
|
|
21
|
+
- 引数が一意に確定できないときは、確定できない軸だけを利用者に問い、回答を待ってから読み取りに進む。
|
|
22
|
+
|
|
23
|
+
## 三層の読み取り(正確な参照・固定)
|
|
24
|
+
|
|
25
|
+
確定した範囲について、次の三層を横断的に読み取り、ひとつの文書の素材として束ねる。各成果物の見出し・列・frontmatter は下表で固定する(変われば本ルールの追従が必要=Revalidation Trigger)。
|
|
26
|
+
|
|
27
|
+
| 層 | 読むファイル | 正確な見出し/列(固定) | 素材としての扱い |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| Intent(why / 不変則 / 判断基準) | `.intent/intent-tree.md` | `## L0`〜`## L4`(階層本体)+ `## Assumptions`(+あれば `## Open Questions`) | 指定サブツリーの L0–L4 を canonical な why として読む。Assumptions / Open Questions は inferred として別枠で扱う |
|
|
30
|
+
| Intent(方向と制約) | `.intent/intent-compass.md` | `## North Star` / `## Anti-direction` / `## Invariants` / `## Decision Rules` | North Star を目的、Invariants を不変則、Decision Rules を判断基準、Anti-direction を避ける方向として読む |
|
|
31
|
+
| steering 制約(指定時のみ) | steering(`tech.md` 等) | 各 steering 文書の見出し | 範囲に含める指定があるときだけ、守るべき制約として読む。無指定なら読まない |
|
|
32
|
+
| requirements(個別要求) | `.intent/packets/index.md` + `.intent/packets/active/*.md` | index 列 `packet_id \| name \| state \| summary` + packet 本体 frontmatter(`depends_on` を含む)と本文 `## Evidence` | 指定 packet 群の個別要求・依存・証拠を読み取り、横断 requirements として束ねる |
|
|
33
|
+
|
|
34
|
+
- canonical な記述(tree の L0–L4 / compass 4 節 / packets / steering)と inferred 由来の記述(Assumptions / Open Questions)は、読み取りの段階で区別したまま保持し、混在させない。
|
|
35
|
+
- 範囲外の成果物は読まない(指定された範囲の `.intent/` 成果物のみを素材にする)。
|
|
36
|
+
|
|
37
|
+
## 範囲が曖昧 / 該当成果物が不在のとき(生成しない)
|
|
38
|
+
|
|
39
|
+
次のいずれかのときは、自然言語 Spec を**生成しない**。生成しないまま、利用者が次の一手を選べる情報を提示して止まる。
|
|
40
|
+
|
|
41
|
+
- **範囲が曖昧**(引数でも対話でも軸が一意に定まらない): 何が曖昧か(どの軸か)を名指しし、**利用可能な範囲**(実在する intent-tree のサブツリー・packet 一覧・steering の有無)を提示して、範囲の再指定を促す。
|
|
42
|
+
- **該当成果物が不在**(指定された intent-tree / compass / packet / steering が存在しない、または未記入): **不足している成果物**を名指しし、それを用意する該当スキル(discover / compass / packets 等)を案内する。推測で代替しない。
|
|
43
|
+
|
|
44
|
+
いずれの場合も書き込みは行わない。
|
|
45
|
+
|
|
46
|
+
## 読み取りの境界(read-only)
|
|
47
|
+
|
|
48
|
+
- 射影元(intent-tree / compass / packets / steering)は**読み取りのみ**で扱い、作成・変更・削除しない。
|
|
49
|
+
- 本ルールの責務は「範囲の解釈」と「三層の読み取り」までであり、読み取った素材を文書へ写像するのは format 系ルール、トレース付与・inferred 標識は捏造抑制ルールが担う。
|
|
50
|
+
- 読み取った素材は、後続の写像が射影元へ辿れるよう、どの層・どの見出し・どの packet 由来かを保ったまま受け渡す。
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: intent-validate
|
|
3
|
+
description: intent-tree・intent-compass・packets(+ export 下書き)を横断し、矛盾・カバレッジ漏れ・境界不整合・規範違反を深刻度付きで報告する読み取り専用の検証。修正は提案にとどめる。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# intent-validate Skill
|
|
7
|
+
|
|
8
|
+
## Core Mission
|
|
9
|
+
- **Success Criteria**:
|
|
10
|
+
- intent-tree・intent-compass・packets(+ export 下書き)を横断し、検査カタログの全検査を適用している(検査の集合・区分・深刻度は `rules/validate-checks.md` の表が正)
|
|
11
|
+
- 検出結果を深刻度別(要修正 / 推奨 / 情報)に分類し、各項目に検査 ID(`rules/validate-checks.md` の表の ID 列)・根拠(ファイルと該当記述)・修正の提案(再実行すべきスキル or 修正方針)を添えている
|
|
12
|
+
- 未検証対象(未作成 / 未記入の成果物、およびスキップした検査の ID)とその理由を明示している
|
|
13
|
+
- packet を PBR 四観点(利用者観点 / 運用観点 / テスト観点 / 保守観点)で静的に読み、各観点の破綻条件が記述されているかを read-only で確認している
|
|
14
|
+
- ファイルの作成・変更・削除を一切行っていない(read-only・一方向報告)
|
|
15
|
+
|
|
16
|
+
## Execution Steps
|
|
17
|
+
|
|
18
|
+
### Step 1: 前提を確認する
|
|
19
|
+
- `.intent/` が無ければ intent-planner のセットアップ手順(`npx intent-planner` の実行)を案内して終了する。
|
|
20
|
+
- `intent-tree.md` / `intent-compass.md` / `.intent/packets/` の一部欠落は**非ブロッキング**: 停止せず、検証可能な範囲で検査を実施し、欠けた成果物は未検証対象として報告する(packets は `.intent/packets/` 不在または `active/` が空の場合を欠落とみなし、packet 系検査をスキップする)。
|
|
21
|
+
|
|
22
|
+
### Step 2: 成果物を読む
|
|
23
|
+
- `.intent/intent-tree.md`、`.intent/intent-compass.md`、`.intent/packets/index.md` と `.intent/packets/plan.md`、検査対象の packet ファイル(packet 横断の検査では `active/` 配下の全件を読む。`archive/` は読まない)、`.intent/cc-sdd/<スラッグ>/*.md`(packet 毎の export 下書き。存在すれば)、`.intent/mode.local.md`(無ければ旧 `.intent/mode.md`)の mode 状態を読む。
|
|
24
|
+
- mode.local.md / mode.md 両不在は standard 既定で続行し告知する(停止しない)。
|
|
25
|
+
|
|
26
|
+
### Step 3: 検査カタログを適用する
|
|
27
|
+
- `rules/validate-checks.md` を読み、検査カタログの全検査を適用する(検査の集合・区分・深刻度は `rules/validate-checks.md` の表が正)。
|
|
28
|
+
- 深刻度の振り分け(L3 不一致の 要修正 / 推奨 の判定を含む)は rules の基準に従う。
|
|
29
|
+
- 境界検査の対象は `.intent/export-log.md` 最新行の packet のディレクトリ(同定はディレクトリ内 requirements.md の `## Source Packet` 見出し一致が正)。過去 packet の下書きは設計上併存するため違反として扱わない。export-log 不在・解釈不能時は下書きの Source Packet 見出しへフォールバックし(複数ディレクトリ時は断定せず候補提示)、その旨を報告する。
|
|
30
|
+
|
|
31
|
+
### Step 3.5: PBR 四観点を静的に確認する(read-only・破綻条件の探索)
|
|
32
|
+
- packet(`active/` 配下、export 下書きがあれば併せて)を以下の四観点で読み、各観点の**破綻条件が記述されているか**を静的に確認する。記述が欠落していれば該当観点の指摘として深刻度別一覧に載せる(自動修正・対話確認は行わない)。
|
|
33
|
+
- **利用者観点**: 利用者にとっての振る舞いの破綻条件(期待される振る舞いが崩れる入力・状況)が記述されているか。
|
|
34
|
+
- **運用観点**: 障害・タイムアウト・悪意ある入力に対する fail-safe 設計(縮退・拒否・再試行などの挙動)が記述されているか。
|
|
35
|
+
- **テスト観点**: 等価分割・境界値分析に基づくテストケースが作成可能か。作成不可能なら境界条件の欠落として報告する。
|
|
36
|
+
- **保守観点**: packet が内部に How(天井の固定)を抱え込み、実装エージェントの自由な設計を阻害していないか。
|
|
37
|
+
- いずれの観点でも、ハッピーパスの確認に留めず「この設計が破綻する条件(異常系・高負荷・不正入力)」を能動的に探す(確証バイアス緩和)。破綻条件が見当たらない場合は「未探索」ではなく「破綻条件の記述が欠落」として扱う。
|
|
38
|
+
- 本観点別確認は静的チェック項目であり、新たな対話ループ・状態機械・対話確認ツールを導入しない。対話的な観点別監査が必要なら、既存の reviewer subagent 運用(`kiro-review` 等)へ委ねる旨を Open Questions / 修正の提案に記す。
|
|
39
|
+
|
|
40
|
+
### Step 3.6: 造語の疑いを名指しする(`coinage-suspect`・read-only・意味的)
|
|
41
|
+
- **母集合を読む**: `.intent/glossary.md`(正規語彙の軽量台帳)を read のみで読み、「正規語」列とその「別表記・同義語」を母集合とする。`.intent/glossary.md` が**不在なら母集合を空とみなし、本検出を一切発火しない**(既存の validate 出力を変えない・後方互換)。
|
|
42
|
+
- **判定する(意味的・機械検査ではない)**: intent 成果物(intent-tree / intent-compass / packets + export 下書きがあれば)に現れる語のうち、母集合(正規語・別表記・同義語)の**どこにも無い語**を「造語の疑い」として名指しする。判定は意味的な読み(LLM 文脈での同義・表記ゆれの把握を含む)で行い、正規表現の機械的一致ではない。`scripts/intent-check.mjs` には一切寄せない。
|
|
43
|
+
- **除外条件**: 次は造語の疑いとして名指ししない。
|
|
44
|
+
- 固有名詞(製品名・人名・組織名 等)。
|
|
45
|
+
- 既存の確立した英語の技術用語。
|
|
46
|
+
- **terminology 作法に従い初出に一行説明が添えられている正当な新語**(terminology が既に統治する語を二重に拾わない)。
|
|
47
|
+
- **温度**: 候補提示に留め断定しない(誤検知前提)。「これは造語かもしれない」という候補として挙げ、利用者の判断を奪わない。判定に迷う場合は挙げない。
|
|
48
|
+
- **沈黙**: 造語の疑いが1件も無いときは、造語検出に関する出力を**一切発火しない**(無理に何かを造語扱いしない)。
|
|
49
|
+
- **言い換え案を添える(提示のみ)**: 造語の疑いを名指しするとき、その語を寄せられる **glossary 台帳の正規語(複数なら候補列挙)を「修正の提案」として添える**(例: 「`<造語>` は glossary の `<正規語>` に寄せられる候補」)。名指しと同じく候補に留め断定しない。glossary に妥当な寄せ先が見当たらないときは寄せ先を断定せず「台帳に正規語の追加を検討」と添える。言い換え案は造語の名指しに連動し、検出が沈黙するときは言い換え案も出さない。
|
|
50
|
+
- **言い換えは提示までで自動改変しない**: 言い換え・統合の案は read-only の報告に留め、canonical(intent-tree / intent-compass / packets)も glossary 台帳も**自動で書き換えない**。本スキルは案を名指しするだけで、ファイルを編集しない。実際の反映は人が承認してから行う**別アクション**である(本機能は提示まで・INV20)。
|
|
51
|
+
- **gate にしない**: 造語の疑いは深刻度「情報」の一方向報告であり、export や実装を止めない。
|
|
52
|
+
|
|
53
|
+
### Step 4: 報告する(一方向・修正は提案のみ)
|
|
54
|
+
- 検出結果を深刻度別(要修正 / 推奨 / 情報)の一覧で提示し、各指摘に深刻度とともに検査 ID(`rules/validate-checks.md` の表の ID 列)を併記する(例: `要修正 invariant-conflict: …`)。
|
|
55
|
+
- 各項目に「根拠(ファイルと該当記述)」と「修正の提案(再実行すべきスキル or 修正方針)」を必ず添える。
|
|
56
|
+
- 未検証対象とその理由を明示し、スキップした検査は ID で特定する。
|
|
57
|
+
- 残った Open Questions を提示する。
|
|
58
|
+
- 自動修正は一切行わない。
|
|
59
|
+
|
|
60
|
+
## Output Description
|
|
61
|
+
|
|
62
|
+
**読み手**: 検出結果を見て是正するか判断する人間開発者。
|
|
63
|
+
**この出力で最初に掴ませること**: 「**要修正が N 件・推奨が M 件**。直すべきはこれ、再実行すべきコマンドはこれ」。検査 ID・未検証対象の列挙は判断材料の詳細なので、件数と要修正項目より後に置く。
|
|
64
|
+
|
|
65
|
+
出力は結論(件数と要修正)を先頭に立てる。
|
|
66
|
+
|
|
67
|
+
- **判定サマリ(先頭・1行)**: `要修正 N 件 / 推奨 M 件 / 情報 K 件`。要修正が 0 件なら「重大な問題なし」と明言する。
|
|
68
|
+
- **要修正の一覧(次)**: 各項目に検査 ID + 根拠(ファイルと該当記述)+ 修正の提案(再実行すべきスキル or 修正方針)。読み手が最初に手を付けるべき塊。
|
|
69
|
+
- **詳細**: 推奨 / 情報レベルの検出一覧(同形式)、未検証対象(スキップした検査の ID を含む)とその理由、人間が確認すべき Open Questions。
|
|
70
|
+
- 修正の提案には次に実行すべきコマンドを含める(例: `/intent-compass` の再実行)。
|
|
71
|
+
- `coinage-suspect` の指摘では、修正の提案欄に**正規語への言い換え・統合の更新案**(寄せ先の正規語、または妥当な寄せ先が無ければ台帳への正規語追加の検討)を添える。提示のみで自動改変せず、反映は人が承認してからの別アクションとして扱う。
|
|
72
|
+
|
|
73
|
+
## Safety & Fallback
|
|
74
|
+
- 読み取り専用: いかなるファイルも作成・変更・削除しない。修正は提案にとどめ、再実行すべきスキル or 修正方針を必ず添える。
|
|
75
|
+
- `.intent/` 不在のみ停止条件: セットアップ手順を案内して終了する。
|
|
76
|
+
- 成果物の一部欠落は非ブロッキング: 検証可能な範囲のみ検査し、未検証対象と理由を明示する。
|
|
77
|
+
- mode.md 不在は停止せず standard 既定で続行し告知する。
|
|
78
|
+
- アプリケーションコードは変更しない(INV6。read-only のため書き込み経路自体を持たない)。
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# 検査カタログ: intent-validate
|
|
2
|
+
|
|
3
|
+
`intent-validate` skill が適用する検査の正本。SKILL.md は手順と報告形式のみを持ち、検査の定義はこのファイルを参照する。検査を追加するときはこの表に行を足すだけでよい(表が正)。各検査の ID は検査の安定識別子で、報告の各指摘に深刻度とともに併記される(ID の一覧・個数もこの表が正)。
|
|
4
|
+
|
|
5
|
+
## 深刻度の3分類
|
|
6
|
+
|
|
7
|
+
| 深刻度 | 定義 |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| 要修正 | 着工前に解消すべき矛盾・整合性破壊。このまま export / 実装へ進むと architectural drift の原因になる |
|
|
10
|
+
| 推奨 | 品質リスク。直ちに着工を止めるほどではないが、解消すると成果物の判断基準としての信頼性が上がる |
|
|
11
|
+
| 情報 | 注意喚起。対応は任意だが、把握しておくべき状態 |
|
|
12
|
+
|
|
13
|
+
### 降格規則
|
|
14
|
+
|
|
15
|
+
- 欠落項目に対応する理由付きの意図的な見送り記録(Deferred または Open Questions)がある場合、当該項目の深刻度を「情報」に下げて報告する。
|
|
16
|
+
|
|
17
|
+
## 検査カタログ
|
|
18
|
+
|
|
19
|
+
| ID | 区分 | 検査 | 実施条件 | 深刻度の目安 |
|
|
20
|
+
|----|------|------|----------|--------------|
|
|
21
|
+
| invariant-conflict | 矛盾 | packet の Scope/Expected Behavior が compass Invariants と衝突 | 常時 | 要修正 |
|
|
22
|
+
| anti-direction-violation | 矛盾 | packet の方向が compass Anti-direction に該当 | 常時 | 要修正 |
|
|
23
|
+
| l3-intent-mismatch | 矛盾 | intent-tree の L3 意図と packet 内容の不一致(L3 の明示記述と直接矛盾 = 要修正、解釈の余地がある乖離 = 推奨) | 常時 | 要修正/推奨 |
|
|
24
|
+
| goal-without-packet | カバレッジ | tree の L1–L3 ゴールでどの packet(L4 含む)にも対応しないもの | 常時 | 推奨 |
|
|
25
|
+
| orphan-packet | カバレッジ | Parent Intent が tree のどの節にも遡れない孤立 packet | 常時 | 要修正 |
|
|
26
|
+
| stale-questions | カバレッジ | tree/compass/packets の未解決 Question の滞留 | 常時 | 情報 |
|
|
27
|
+
| stale-assumptions | カバレッジ | intent-tree の Assumptions に canonical への昇格も棄却もされないまま残る項目 | 常時 | 情報 |
|
|
28
|
+
| dependency-cycle | 整合 | `depends_on` に循環依存 A→…→A がある | 常時 | 要修正 |
|
|
29
|
+
| dependency-broken-ref | 整合 | `depends_on` が存在しない packet_id を参照している | 常時 | 要修正 |
|
|
30
|
+
| invariant-uninherited | 整合 | compass 普遍 invariant が packet `## Safety / Invariants` に継がれていない(衝突でなく沈黙の欠落) | 常時(compass Invariants 記入 かつ active packet あり) | 推奨 |
|
|
31
|
+
| invariant-stale-vs-compass | 整合 | compass の節更新日(Invariants 節 / Decision Rules 節)が packet `updated_at` より新しい(追随漏れ候補) | 常時(compass 節更新日・packet 更新日あり) | 推奨 |
|
|
32
|
+
| decision-rule-mismatch | 整合 | packet `## Decisions` が compass Decision Rules に反する | 常時(compass Decision Rules 記入 かつ packet に `## Decisions` あり) | 要修正/推奨 |
|
|
33
|
+
| decision-rule-code-alignment | 整合 | Decision Rule の主文/Context が名指すコードモジュール(ファイル名・モジュール名)を Grep で読み、Rule 主文と実装の意味的乖離を AI の限定的意味照合で検出する。突合面=コード実装の意味(突合面=packet スロット値の `decision-rule-mismatch` と分離)。出力に「AI による意味照合の推定」ラベルを付し断定しない一方向報告 | 常時(Decision Rule がコードモジュールを名指す かつ 名指し先が存在する) | 推奨 |
|
|
34
|
+
| packet-scope-overlap | 境界 | active/ 配下の packet ファイル間の Scope 重複・責務衝突(archive/ は読まない) | 常時 | 要修正 |
|
|
35
|
+
| decision-slot-empty | 完全性の床 | packet の `## Decisions` 節に播かれた意思決定スロット(④)のうち、値が空(未記入)のもの。理由付きの `未定` は降格規則により情報へ降格 | `## Decisions` 節にスロットが播かれた packet | 推奨 |
|
|
36
|
+
| decision-slot-unsown | 完全性の床 | `## Decisions` 節は存在するが、共通コアスロット(`decision-slots.md` の8 ID)が1つも播かれていない | `## Decisions` 節を持つ packet(節自体が無い旧 packet は未検証対象としてスキップ) | 推奨 |
|
|
37
|
+
| export-draft-mismatch | 境界 | 現行 export 下書き(export-log 最新行の packet のディレクトリ)と対象 packet ファイル(active/ 配下)の整合(Invariants 転記の不一致・packet 定義との乖離など) | 常時 | 推奨 |
|
|
38
|
+
| requirements-smell | 品質 | 要求記述に曖昧語・主観語・比較級・弱い語・未定義代名詞が残る(例: 「適切に」「高速」「より良い」「など」「できる限り」「それ」の指示先不明)。検出して引用し利用者の判断に委ねる(言い換えを正本に書き戻さない) | 常時 | 推奨 |
|
|
39
|
+
| ambiguous-deferred-phrasing | 品質 | packet の `## Decisions` 節で Human-fixed / Agent-discretion の区分の外にあり、かつ Revisit when 併記の無い未確定動詞(想定 / 流用 / 予定 / TBD / 暫定 等)が確定の文体に紛れている。検出して引用し利用者の判断に委ねる(言い換えを正本に書き戻さない) | 常時(packet に `## Decisions` 節あり) | 情報 |
|
|
40
|
+
| trace-downstream-missing | カバレッジ | tree の L1–L3 意図に対応する packet は在るのに、その packet に下流リンク(`verified-by`/検証)が無く検証へ辿れない(下向きカバレッジの検証側)。packet 自体の欠落は `goal-without-packet` が担うので重複させない | 常時 | 推奨 |
|
|
41
|
+
| trace-pre-rs-missing | カバレッジ | packet の frontmatter に上流リンク `parent_intents` キーが無い/空(意図→要求 pre-RS の切断点)。`parent_intents` は在るが tree のどの節にも遡れない孤立は `orphan-packet` が担うので重複させない | 常時 | 推奨 |
|
|
42
|
+
| poc-experiment-missing | 規範 | 仮説・反証条件・GO/NO-GO のいずれかが「PoC 実験定義」に未記録 | designer-questions=on かつ purpose=poc | 要修正 |
|
|
43
|
+
| l1-metric-missing | 規範 | L1 項目に `計測基準:` 行が無い | designer-questions=on | 推奨 |
|
|
44
|
+
| walking-skeleton-missing | 規範 | plan.md の「Walking Skeleton」節が未記入(plan.md が記入済みの場合) | designer-questions=on | 推奨 |
|
|
45
|
+
| screen-sketch-missing | 規範 | 「画面ラフ参照」セクションが未記入(パス・リンク・「対象外」・理由付き「無し」のいずれも無い) | designer-questions=on | 推奨 |
|
|
46
|
+
| designer-questions-unrecorded | 規範 | designer-questions が未記録(区分「規範」の検査をスキップし本行のみ告知) | designer-questions 未記録 | 情報 |
|
|
47
|
+
| purpose-unrecorded | 規範 | purpose が未記録(仮説・反証条件・GO/NO-GO の検査をスキップし本行のみ告知) | designer-questions=on かつ purpose 未記録 | 情報 |
|
|
48
|
+
| coinage-suspect | 品質 | 母集合=`.intent/glossary.md`(正規語彙の軽量台帳)に照らし、台帳のどこにも無い語を「造語の疑い」として read-only で名指しする。判定は意味的(固有名詞・既存英語用語・初出一行説明済みの正当な新語を除外)で機械検査に寄せない。候補提示に留め断定せず、造語の疑いが無ければ沈黙する | 常時(`.intent/glossary.md` あり) | info |
|
|
49
|
+
|
|
50
|
+
- 実施条件「常時」は、未検証対象の原則(対象成果物が未作成・未記入なら当該検査をスキップ)を上書きしない。
|
|
51
|
+
- 実施条件の designer-questions / purpose は mode.md に記録された値を指す。実施条件を満たさない検査は実施しない。designer-questions=off と記録されている場合、区分「規範」の検査はすべて実施しない。読み手は designer-questions を先に判定し、on と記録されていない限り purpose の値を参照しない。
|
|
52
|
+
|
|
53
|
+
## 完全性の床検査の注記(推論しない・宣言ベース)
|
|
54
|
+
|
|
55
|
+
- `decision-slot-empty` / `decision-slot-unsown` は「完全性の床」(切り捨て線)を担う。④ 制約下の意思決定(整合性・冪等性・エラー意味論・認可 等)が空のまま export/実装へ進むのを防ぐ。スロットの正本は `intent-packets/rules/decision-slots.md`(区分・発火条件・値域はそちらが正)。
|
|
56
|
+
- **該当性を packet 内容から推論しない**: これらの検査は `## Decisions` 節に**実際に播かれた**スロットのみを対象とする。「この packet は書き込みを伴うはずだからスロットが要る」といった推論的判断はしない(どのスロットを播くかは discover の elicitation で人が確認する責務。`depends_on` を推論しないのと同じ規律)。
|
|
57
|
+
- `## Decisions` 節自体が無い旧 packet は未検証対象としてスキップする(即時の一括移行を強制しない。次回の更新フローでスロットを遅延補完する)。
|
|
58
|
+
- 理由付きの `未定` は `decision-slot-empty` について降格規則により「情報」へ降格する(意図的な見送りとしての遅延は許容する。完全性の床は「空欄の禁止」であって「全項目の即時確定の強制」ではない)。
|
|
59
|
+
|
|
60
|
+
## 依存健全性検査の注記(read-only と参照先の解決範囲)
|
|
61
|
+
|
|
62
|
+
- `dependency-cycle` / `dependency-broken-ref` は **read-only** で packet 正本(frontmatter 等)を一切変更しない。
|
|
63
|
+
- `dependency-broken-ref` の参照先 packet_id の存在確認は **active+archive の packet_id 全集合**に対して行う(archive 済みの packet_id も「存在する」とみなす)。
|
|
64
|
+
|
|
65
|
+
## smells / トレース検査の注記(read-only・最小十分・書き戻さない)
|
|
66
|
+
|
|
67
|
+
- `requirements-smell` は曖昧語・主観語・比較級・弱い語・未定義代名詞を**検出して引用するだけ**で、言い換え案を正本に書き戻さない。深刻度は「推奨」(着工を止めるほどではないが解消すると判断基準としての信頼性が上がる)。
|
|
68
|
+
- トレース検査(`trace-downstream-missing` / `trace-pre-rs-missing`)は **read-only** で、導出したリンクや欠落の補完を正本に書き戻さない(`depends_on` を推論・自動算出しない既存規律に乗る)。
|
|
69
|
+
- トレースは**最小十分**に留める: 全 artifact 間を総当たりで結ばず、「なぜ存在するか(上流 `parent_intents`)・どこで実現したか(`realized-by`)・どう検証したか(`verified-by`)」が辿れる欠落のみを指摘する。下流リンクは任意(記入済みの場合に検証へ辿れるかを見る)。
|
|
70
|
+
- 既存カバレッジ検査との境界: packet 自体の欠落は `goal-without-packet`、`parent_intents` は在るが tree に遡れない孤立は `orphan-packet` が担う。`trace-downstream-missing` は packet が在るのに検証へ辿れない側、`trace-pre-rs-missing` は `parent_intents` キー自体が無い/空の切断点に焦点を絞り、重複検査を作らない。
|
|
71
|
+
|
|
72
|
+
## 未確定動詞検査の注記(read-only・降格規則を厳格適用・書き戻さない)
|
|
73
|
+
|
|
74
|
+
- `ambiguous-deferred-phrasing` は packet `## Decisions` 節で **Human-fixed / Agent-discretion の区分の外**にあり、かつ **Revisit when の併記が無い**未確定動詞(確定の文体に紛れた仮置き)を検出して引用するだけで、言い換え案・確定案を正本に書き戻さない(`requirements-smell` と同じ read-only パターン)。深刻度は **「情報」**(誤検知が高いため要修正へ昇格させない)。
|
|
75
|
+
- **未確定動詞の確定語彙リスト**(このリストに限定し、`requirements-smell` の語彙〔適切に / 高速 / より良い / など / できる限り / 「それ」等〕とは重複させない):
|
|
76
|
+
- 「想定」「流用」「予定」「TBD」「暫定」。
|
|
77
|
+
- **名詞的慣用の誤検知除外(必須)**: 上記語彙でも、未確定の意図を示さない名詞的・副詞的慣用は検出しない。具体的には「想定内」「想定通り」のような確定済みの含意で使われる語形を除外し、「〜する想定」「〜を流用(する)」のように**未確定の動作・意図を示す動詞的用法に限定**する。判定に迷う場合は挙げず、利用者の判断を奪わない。
|
|
78
|
+
- **降格規則の厳格適用**: 検出箇所が Deferred / Open Questions / 理由付き未定スロット(理由+Revisit when 併記)として既に保留記録されている場合、降格規則により当該検出を抑制する(既に構造的な保留として記録された未確定は再掲しない)。既定でも「情報」深刻度であり、要修正・推奨へは昇格させない。
|
|
79
|
+
- 既存軸との棲み分け: 区分外・Revisit when 無しの未確定動詞(文体マッチ)を見るのが本軸で、空スロットそのものは `decision-slot-empty`、compass Decision Rules との矛盾は `decision-rule-mismatch` が担う。重複検査を作らない。
|
|
80
|
+
|
|
81
|
+
## 決定↔コード乖離検査の注記(read-only 検査層で唯一の推論例外・境界条件付き)
|
|
82
|
+
|
|
83
|
+
- `decision-rule-code-alignment` は、Decision Rule の**主文/Context がコードモジュール(ファイル名・モジュール名)を名指す**ときに限り、そのモジュールを Grep で読み、Rule 主文と実装の**意味的乖離を AI の限定的意味照合で検出**する。
|
|
84
|
+
- **これは read-only 検査層で唯一の推論例外**である。他のすべての検査軸(既存3軸〔`invariant-uninherited` / `invariant-stale-vs-compass` / `decision-rule-mismatch`〕・`ambiguous-deferred-phrasing`・status / improve 系を含む)は推論しない。**この軸だけが例外であり、例外を他軸へ波及させない**(他軸は記述の有無・直接矛盾の有無を読むに留める従来規律のまま)。
|
|
85
|
+
- **境界条件(誤検知の再現性低下の代償補償・必須)**:
|
|
86
|
+
- 出力に必ず**「AI による意味照合の推定」**という明示ラベルを付し、断定しない。
|
|
87
|
+
- severity は**推奨**止まり。要修正へは昇格させない。
|
|
88
|
+
- 利用者が一次根拠にせず**人間確認を促す一方向報告**に徹する(canonical・コードのいずれも自動修正しない)。
|
|
89
|
+
- **名指し起点限定**: Decision Rule がモジュールを名指さない・抽象的 Rule・乖離が観測できない場合は挙げない(「どのモジュールを見るか」は Rule の名指しが起点であり、意味照合は「見るべき対象が定まった後」に限る)。判定に迷う場合は挙げず、利用者の判断を奪わない。
|
|
90
|
+
- **突合面の分離(必須・二重検出回避)**: 本軸の突合面は**コード実装の意味**である。突合面が packet `## Decisions` スロット値のテキスト突合(推論なし)である既存 `decision-rule-mismatch` とは突合面が異なるため、同一 Decision Rule で両軸が該当しても二重検出にはならない(前者=コード実装と Rule、本軸=packet スロット値と Rule)。
|
|
91
|
+
- **tool 不変(必須)**: intent-validate の allowed-tools は `Read, Glob, Grep` のまま(Write / Bash を増やさない)。コードは Grep で読むのみで一切変更しない(INV6)。AI 意味照合は skill 本文の判断であって tool ではない。
|
|
92
|
+
|
|
93
|
+
## L3 不一致の振り分け基準
|
|
94
|
+
|
|
95
|
+
- intent-tree の L3 の**明示記述と直接矛盾**する packet 内容 = **要修正**
|
|
96
|
+
- **解釈の余地がある乖離**(明示記述は無いが方向性がずれて見える等)= **推奨**
|
|
97
|
+
- 迷ったら推奨に倒し、根拠の引用を添えて利用者の判断に委ねる
|
|
98
|
+
|
|
99
|
+
## compass 適合検査の注記(継承・stale・ADR 乖離の突合)
|
|
100
|
+
|
|
101
|
+
- 棲み分け:
|
|
102
|
+
- `invariant-uninherited` ≠ `invariant-conflict`: 後者は「衝突=矛盾」の検出、本軸は「沈黙の欠落」の検出。同一 packet で両方該当し得るが検出観点が異なる。
|
|
103
|
+
- `decision-rule-mismatch` ≠ `l3-intent-mismatch`: 後者は intent-tree L3 との突合、本軸は compass Decision Rules との突合。
|
|
104
|
+
- 振り分け基準(`decision-rule-mismatch`。`l3-intent-mismatch` の雛形を流用): Decision Rules の明示記述と直接矛盾 = 要修正/解釈の余地がある乖離 = 推奨/迷ったら推奨に倒し、根拠の引用を添えて人の判断に委ねる。
|
|
105
|
+
- **突合面の限定(必須)**: ADR(Context/Decision/Why/Alternatives/Consequences/Revisit when の6欄長文)と packet `## Decisions`(スロット値域)は構造が非対称なので、突合面を **「Decision Rules エントリの `Decision`(採る選択肢の主文)」 対 「packet `## Decisions` の各スロットの確定値」** に限定する。Why/Alternatives/Consequences 等の周辺欄は根拠の引用元に使うが、矛盾判定の主軸にはしない。
|
|
106
|
+
- 突合例: Decision Rules の `Decision`=「集計ロジックはドメイン層に置く」、packet `## Decisions` の該当スロット確定値=「UI で集計する」→ 直接矛盾 = 要修正。`Decision`=「rollback 可能な slice を優先」で packet が一括置換寄りだが明示の否定はない → 解釈余地 = 推奨。
|
|
107
|
+
- **軸の役割分離(必須)**: 時間軸(更新日比較)を持つのは `invariant-stale-vs-compass` のみ。`invariant-uninherited`(継承の有無)と `decision-rule-mismatch`(ADR との矛盾の有無)は「今の状態」を見る軸で、compass の節更新日とは連動しない。これら2軸は compass の現行 invariant / Decision Rules を毎回読んで個別指摘する(「どの invariant がどの packet で欠けているか」を出すのが本軸の価値)。
|
|
108
|
+
- **出力粒度**: 時間軸を持つ `invariant-stale-vs-compass` のみ既定で **件数サマリ1行**(例: `Invariants 節更新後に未追随の packet が N 件 / Decision Rules 節更新後に M 件`)に留め、個別 packet 列挙は利用者要求時のみ展開する(狼少年化の回避)。要修正と断定せず推奨で提示する。stale 比較は compass 側の該当節更新日と packet `updated_at` の**両方が実打刻(`—` でない)されたペアのみ**を対象とする。`invariant-uninherited` / `decision-rule-mismatch` は個別指摘が既定。
|
|
109
|
+
- 推論禁止(必須): packet 内容から該当性を推論しない(`decision-slot` 検査と同じ規律)。意味照合は記述の有無・直接矛盾の有無を読むに留める。
|
|
110
|
+
- 後方互換: compass `Updated (...)` が `—`/不在 / packet `updated_at` 不在 / `## Decisions` 不在 / Invariants 未記入 は当該検査を**未検証対象として ID 付きで明示しスキップ**し、stale を断定しない。
|
|
111
|
+
|
|
112
|
+
## 境界検査の注記(export 下書きの対象選定)
|
|
113
|
+
|
|
114
|
+
- export 下書き(`.intent/cc-sdd/<スラッグ>/*.md`)は **packet 毎に併存**する。export 下書き整合の境界検査の対象は `.intent/export-log.md` 最新行の packet のディレクトリに限る。過去 packet の下書きは設計上併存するため、その存在自体は違反として扱わない。
|
|
115
|
+
|
|
116
|
+
## 未検証対象の扱い(検証可能な範囲の原則)
|
|
117
|
+
|
|
118
|
+
1. 検証対象の成果物が未作成または未記入の場合、その成果物を必要とする検査はスキップする。
|
|
119
|
+
2. 残りの検査は検証可能な範囲で実施する(全体を中断しない)。
|
|
120
|
+
3. 報告には「未検証対象」を設け、スキップした検査と理由(どのファイルが未作成 / 未記入か)を明示する。
|
|
121
|
+
4. 例: `.intent/packets/` が無い(または active/ が空)→ 矛盾・カバレッジ・境界の packet 系検査をスキップし、tree/compass 単体で可能な検査(未解決 Question の滞留 等)のみ実施する。
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: intent-writeback
|
|
3
|
+
description: export 済み packet の実装完了後、実装で得た学びを delta として deltas.md に記録し、承認された項目だけを canonical 成果物(intent-tree / intent-compass / packets)へ昇格する。canonical を直接書き換えない。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# intent-writeback Skill
|
|
7
|
+
|
|
8
|
+
## Core Mission
|
|
9
|
+
- **Success Criteria**:
|
|
10
|
+
- 対象 packet を4段優先順(引数 → export-log 最新行 → Source Packet 見出し → テキスト照合 + 確認)で1つに特定している
|
|
11
|
+
- 実装の現実と packet 定義・compass の突き合わせから5観点の学びを抽出・提示している
|
|
12
|
+
- 学びをまず deltas.md に delta として記録し、canonical 成果物を直接書き換えていない
|
|
13
|
+
- 承認された項目だけを canonical へ反映し、delta に Status と反映先を記録している
|
|
14
|
+
- 見送り項目に「却下(再提案不要) | 保留(次回 writeback で再提案)」の2値タグを付している
|
|
15
|
+
- writeback が完了した packet に state: done・closed_at・spec_refs を記入し、archive/<年>/ へ移動して index.md を再生成している
|
|
16
|
+
- アプリケーションコードを一切変更していない
|
|
17
|
+
|
|
18
|
+
## Execution Steps
|
|
19
|
+
|
|
20
|
+
### Step 1: 対象 packet を特定する
|
|
21
|
+
- `rules/writeback-protocol.md` を読み、4段優先順(①引数 → ②export-log.md 最新行の packet 名(正典)→ ③下書きの「## Source Packet」見出し(packet ディレクトリが1つのみ存在する場合に限る)→ ④テキスト照合 + 利用者確認)で対象を1つに特定する。フォールバック(③以降)で特定した場合はその旨を告知し、それでも特定できなければ指定を求めて停止する(rules 参照)。
|
|
22
|
+
- 対象 packet のファイルを `.intent/packets/` の index.md / `active/` 配下の `name` 照合で特定する。`active/` に無ければ `archive/` を明示参照して特定し、done / superseded である事実を報告する(通常 archive/ を読まない原則の唯一の明示例外。rules 参照)。
|
|
23
|
+
- `.intent/mode.md` を読む。無ければ standard 既定で続行し告知する。
|
|
24
|
+
- 対象 packet の過去 delta エントリ一覧(「保留」タグ付き見送り項目を含む)を提示する。同一 packet の再書き戻しは新エントリとする(rules 参照)。
|
|
25
|
+
|
|
26
|
+
### Step 2: 学びを抽出して提示する
|
|
27
|
+
- 実装の現実(コードベース・テスト・`.kiro/specs/`。すべて読み取りのみ)と、packet 定義(対象 packet ファイル)・cc-sdd 下書き・intent-compass.md を突き合わせる。
|
|
28
|
+
- rules の5観点([decision] / [invariant-violation] / [implicit-behavior] / [deferred-resolved] / [question])で学びを抽出し、タグ付きの一覧で提示する。
|
|
29
|
+
|
|
30
|
+
### Step 3: delta を記録する(canonical 不可侵)
|
|
31
|
+
- 抽出した学びを `.intent/deltas.md` に新規エントリ(Status: pending)として記録する。
|
|
32
|
+
- deltas.md が無ければ、rules 内包の正規テンプレートから新規作成する(既存ファイルは上書きしない)。
|
|
33
|
+
- この段階では canonical(intent-tree.md / intent-compass.md / `.intent/packets/` 配下)を一切書き換えない。
|
|
34
|
+
|
|
35
|
+
### Step 4: 昇格を確認する(承認の粒度を分ける)
|
|
36
|
+
- 承認の粒度は学びの種類で分ける(rules §3 第2段)。全件を一律に一件ずつ問わない。
|
|
37
|
+
- **ゲート対象**(`[invariant-violation]` と Decision Rules を変える `[decision]`)は項目ごとに承認を確認する。
|
|
38
|
+
- **それ以外(L3 追記系・`[question]` 転記)**は反映先を一覧で提示し、止めたい項目があれば指定を求めたうえで、無指定なら一括昇格する。
|
|
39
|
+
- 止めた(承認されない)項目には「却下(再提案不要) | 保留(次回 writeback で再提案)」のどちらかを確認する。
|
|
40
|
+
|
|
41
|
+
### Step 5: 承認分を昇格し、記録を確定する
|
|
42
|
+
- 承認された項目だけを canonical へ反映する。Decision Rules の変更を伴う昇格は ADR 形式(Context / Decision / Why / Consequences)の新エントリ追加 + 旧エントリへの superseded 注記 + 旧エントリの compass-archive/<rule-slug>.md(rule 単位ファイル)への6欄のままの退避(CONTRACT 分割・archive 規約・rules 参照)。
|
|
43
|
+
- [question] の学びは intent-tree.md の Open Questions へ転記し、転記先を反映先に記録する。
|
|
44
|
+
- delta エントリに Status(promoted / closed)と反映先、見送り項目の2値タグを記録する。保留項目の再提案結果(昇格 / 却下確定 / 継続保留)のタグ確定更新もここで行う。
|
|
45
|
+
|
|
46
|
+
### Step 6: packet の完了処理を行う
|
|
47
|
+
- writeback の完了時、対象 packet の完了処理を一連の操作として行う(rules 参照): ① frontmatter に `state: done`・`closed_at`・`spec_refs`(`.kiro/specs/` の進行 spec と照合し、利用者確認で確定)を記入 → ② `archive/<closed_at の年>/` へ移動 → ③ index.md を `active/` の frontmatter から再生成する。
|
|
48
|
+
|
|
49
|
+
## Output Description
|
|
50
|
+
|
|
51
|
+
**読み手**: 実装の学びを意図へ昇格させ、packet を締める人間開発者。
|
|
52
|
+
**この出力で最初に掴ませること**: 「**canonical に昇格したのはこれ / 保留はこれ**。対象 packet は done になり archive へ移った」。学びの抽出・delta 記録の過程は、昇格結果に至る詳細。
|
|
53
|
+
|
|
54
|
+
出力は結論(昇格結果と完了処理)を先頭に立てる。
|
|
55
|
+
|
|
56
|
+
- **昇格結果(先頭)**: 何が canonical(intent-tree / intent-compass / packets)へ昇格したか、反映先明細つき。止めた項目は「却下(再提案不要) / 保留(次回再提案)」の見送りタグで区別して示す。
|
|
57
|
+
- **完了処理の結果(次)**: 対象 packet の `state: done`・`closed_at`・`spec_refs` 記入、`archive/<年>/` への移動、index.md 再生成。「この packet はこれで締まった」と分かる形。
|
|
58
|
+
- **昇格提案**(承認を求める段で出ていれば): ゲート対象(invariant 違反・Decision Rules 変更)は項目ごとに確認、L3 追記系は一覧提示 + 止める項目の指定。
|
|
59
|
+
- **詳細**: 抽出した学び一覧(5観点 [decision]/[invariant-violation]/[implicit-behavior]/[deferred-resolved]/[question] のタグ付き)、delta 記録結果(deltas.md のエントリ)。
|
|
60
|
+
|
|
61
|
+
## Safety & Fallback
|
|
62
|
+
- 対象 packet が特定できなければ、状況を提示して書き戻し対象の指定を求めて停止する。
|
|
63
|
+
- packet ファイルは削除しない(archive への移動のみ)。Bash の用途は、日時取得・`.intent/packets/` 配下のディレクトリ作成(mkdir)と archive への移動に限る(アプリケーションコードを変更しない invariant は維持)。
|
|
64
|
+
- deltas.md 不在時は rules 内包テンプレートから新規作成する(既存ファイルは上書きしない)。
|
|
65
|
+
- 承認なしに canonical を書き換えない。承認が無ければ pending のまま保持して終了する。
|
|
66
|
+
- `.kiro/specs/` とコードベースは読み取りのみ。`.kiro/` へは書き込まない。
|
|
67
|
+
- mode.md 不在は停止せず standard 既定で続行し告知する。
|
|
68
|
+
- アプリケーションコードは変更しない(INV6)。
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Writeback Protocol(intent-writeback の正本規約)
|
|
2
|
+
|
|
3
|
+
`/intent-writeback` の判定と手順の正本。SKILL.md は手順の骨格のみを持ち、判定はこのファイルに従う。canonical 成果物とは intent-tree.md / intent-compass.md / `.intent/packets/` 配下(packet ファイル・plan.md)を指す。
|
|
4
|
+
|
|
5
|
+
## 1. 対象特定(4段優先順 + フォールバック)
|
|
6
|
+
|
|
7
|
+
上から first-match で対象 packet を1つに特定する。フォールバック(3 以降)で特定した場合は、その事実(どの段で特定したか)を利用者向け出力で告知する。
|
|
8
|
+
|
|
9
|
+
1. **引数の packet 名**: 引数で packet が指定されていればそれを対象とする。
|
|
10
|
+
2. **export-log.md 最新行(正典)**: `.intent/export-log.md`(`| packet | exported_at | commit |` テーブル)の最新データ行 = 末尾のデータ行の packet 名を対象とする。export-log が存在する定常状態では、ここで確定する。
|
|
11
|
+
3. **下書きの「## Source Packet」見出し(フォールバック)**: export-log.md が不在・最新行をパース不能な場合、`.intent/cc-sdd/<packetスラッグ>/requirements.md` の「## Source Packet」見出しから packet 名を読む。packet ディレクトリが**1つのみ**存在する場合に限りその見出しを採用する。複数存在する場合は各ディレクトリの見出しを候補として列挙し、4 へ直行する。この段は初回 export 直後など export-log が未整備の過渡期向けの救済であり、定常状態では 2 で確定する。
|
|
12
|
+
4. **テキスト照合フォールバック(利用者確認必須)**: 下書き本文と index.md / `active/` 配下の packet ファイルの packet 名(frontmatter の `name`)をテキスト照合して候補を挙げ、利用者に自然言語で問い、回答を待つ。確認なしに対象を確定しない。
|
|
13
|
+
|
|
14
|
+
それでも特定できなければ、状況(見つからなかった旨と調べた場所)を提示し、書き戻し対象 packet の指定を利用者に求めて停止する。
|
|
15
|
+
|
|
16
|
+
**ディレクトリ同定規則(packet 名 → ディレクトリ)**: packet 名からディレクトリを同定する正は「ディレクトリ内 requirements.md の `## Source Packet` 見出しが packet 名と一致すること」。スラッグ計算は探索の高速路であり、スラッグが一致しても見出しが一致しなければそのディレクトリとは同定しない。
|
|
17
|
+
|
|
18
|
+
**対象解決の archive 例外**: 解決された対象 packet のファイルが `active/` に無い場合(先行する supersede・完了処理済み等)は、`archive/` 配下を frontmatter の `name` 照合で**明示的に**参照して特定する(「通常 archive/ を読まない」原則の唯一の明示例外)。特定したら、当該 packet が done / superseded である事実を利用者に報告する。archived かつ未 done の packet への書き戻しでは、対象 packet ファイルへは反映せず、学びを intent-tree.md / intent-compass.md / 後継 packet(`superseded_by` の指す packet ファイル)へ振り向ける。
|
|
19
|
+
|
|
20
|
+
## 2. 学び抽出の観点(5種・タグ1:1)
|
|
21
|
+
|
|
22
|
+
対象 packet の定義(対象 packet ファイル)・cc-sdd 下書き(Intent 由来の制約を含む)・intent-compass.md と、実装の現実(コードベース・テスト・`.kiro/specs/`。すべて読み取りのみ)を突き合わせ、次の5観点で学びを抽出する。タグは観点と1:1。実装の現実を読む際、Decision Rule(intent-compass.md)が名指すコードモジュール(ファイル名・モジュール名)も grep 突合の視野に含め、Rule 主文と実装の乖離を `[invariant-violation]` として抽出してよい。
|
|
23
|
+
|
|
24
|
+
| タグ | 観点 |
|
|
25
|
+
|------|------|
|
|
26
|
+
| `[decision]` | 新しい決定(実装中に下した、packet 定義に書かれていない判断) |
|
|
27
|
+
| `[invariant-violation]` | 発見された invariant 違反(既存 Invariants と実装の現実の衝突) |
|
|
28
|
+
| `[implicit-behavior]` | 意図に書かれていなかった暗黙挙動(実装からの逆抽出) |
|
|
29
|
+
| `[deferred-resolved]` | 解消された Deferred |
|
|
30
|
+
| `[question]` | 新たな未解決 Question |
|
|
31
|
+
|
|
32
|
+
学び抽出時に intent-compass.md の Decision Rules の **Revisit when** 欄と突き合わせ、Revisit when 条件に合致する学びの行には該当 Decision への参照を付記する(例: `[decision] <新しい決定>(Revisit 該当: <該当 Decision の Context 要約>)`)。付記は学び行内の自由記述であり、deltas.md の正規テンプレート(§9)は変更しない。
|
|
33
|
+
|
|
34
|
+
## 3. 二段階プロトコル
|
|
35
|
+
|
|
36
|
+
**この §3 の制約の射程は writeback フェーズ(実装後に現実から学びを逆抽出して canonical へ戻す局面)に限る。** 実装**前**に判断基準・作業単位を起草する `/intent-compass`(compass の North Star / Anti-direction / Invariants / Decision Rules を直接 Write する)・`/intent-packets`(packet ファイルを直接起案する)は起草スキルであり、本制約の対象外(それらが canonical を直接書くのは正規動作)。本制約が禁じるのは「実装後の学び反映を delta を経ずに canonical へ直接書き込むこと」であって、実装前の起草ではない。
|
|
37
|
+
|
|
38
|
+
writeback フェーズにおいては、canonical 成果物を直接書き換えないことが本スキルの根幹。必ず次の二段階を踏む。
|
|
39
|
+
|
|
40
|
+
なお「実装が完了し、その現実から学びを canonical へ戻す」局面に入ったら、それは writeback フェーズの入口である。packet ファイルへ Evidence を直書きして済ませず、本プロトコル(delta 経由)を通す。
|
|
41
|
+
|
|
42
|
+
### 第1段: delta 記録(canonical 不可侵)
|
|
43
|
+
|
|
44
|
+
- 抽出した学びを deltas の **packet 単位の分割ファイル** `.intent/deltas/<packet-slug>.md` に新規エントリ(Status: pending)として記録する(CONTRACT「append-only 記録の分割・archive 規約」。`<packet-slug>` は対象 packet 名から既存スラッグ規則で導出・新採番なし)。`deltas/` ディレクトリが無ければ作る。この段階では canonical を一切触らない。終端(promoted/closed)になった過去エントリは `.intent/deltas/archive/<年>/` へ退避し active を薄く保つ(移しきってから旧を畳む・移行は本スライスの migration が担う)。
|
|
45
|
+
- 利用者が何も承認しなくてもエントリは pending のまま残る(承認なしの自動書き換え禁止)。
|
|
46
|
+
|
|
47
|
+
### 第2段: 承認 → 項目ごと昇格
|
|
48
|
+
|
|
49
|
+
承認の粒度は学びの種類で分ける。すべてを同じ重みで一件ずつ問わない(実運用では大半が「実装が既にそうなっている事実の記録」であり、yes/no の余地がないため、全件を一律に問うと承認が儀式化する)。
|
|
50
|
+
|
|
51
|
+
- **ゲート対象(明示承認が必須)**: 次の2種は canonical の判断基準・不変条件に影響するため、必ず項目ごとに利用者へ自然言語で問い、回答を待つ。
|
|
52
|
+
- `[invariant-violation]`(発見された invariant 違反。「コード修正する / 記録のみに留める」等の対応方針を利用者が決める)。
|
|
53
|
+
- **Decision Rules(compass の ADR)の変更を伴う `[decision]`**(§4 の ADR 昇格に該当するもの。Revisit when 該当を含む既存 Decision の置き換え・追加)。
|
|
54
|
+
- **既定一括昇格(L3 追記系)**: 上記以外の学び(intent-tree.md L3 への追記に留まる `[decision]` / `[implicit-behavior]` / `[deferred-resolved]`、および `[question]` の Open Questions 転記)は、反映先を一覧で提示し、**個別に止めたい項目があれば指定を求めたうえで、無指定なら一括で昇格する**。一件ずつの yes/no は求めない。
|
|
55
|
+
- いずれの経路でも、第1段で全件 delta 記録済みであること・利用者に止める機会を1回提示することで「承認なしの自動書き換え禁止」(§3 冒頭の根幹)は維持される。利用者が止めた項目は見送り扱いとし §5 の2値タグを付す。
|
|
56
|
+
- 承認・一括昇格された項目を canonical へ反映し、delta エントリに `Status: promoted (<昇格日>)` と反映先を記録する。
|
|
57
|
+
- 状態の確定: **1件以上を承認して canonical 反映 → `promoted`**。**全項目を「却下」で見送り → `closed`**。どちらも終端状態。保留を含んで未確定のままなら pending を維持する。
|
|
58
|
+
|
|
59
|
+
## 4. ADR 昇格規約(Decision Rules の変更を伴う昇格)
|
|
60
|
+
|
|
61
|
+
判断基準(Decision Rules)の変更を伴う昇格は、intent-compass.md の既存 ADR 形式に完全準拠する。
|
|
62
|
+
|
|
63
|
+
- **新エントリを追加する**: **Context**(問いと状況)/ **Decision**(採る選択肢)/ **Why**(基準)/ **Alternatives considered**(検討した代替案と不採用理由の要約)/ **Consequences**(Invariants・Anti-direction への接続)/ **Revisit when**(見直し条件。定まらない場合は「未定」と明示記録する)。**Why 欄は必須**(省略しない)。
|
|
64
|
+
- 置き換えられる旧エントリには **superseded 注記**を付す(旧エントリ側に superseded である旨と置き換え先への参照を追記する)。
|
|
65
|
+
- superseded 注記を付した旧エントリは、**6欄のまま**(要約への置換をしない)退避された Decision Rule の **rule 単位ファイル** `.intent/compass-archive/<rule-slug>.md` へ move する(CONTRACT「append-only 記録の分割・archive 規約」。`<rule-slug>` は退避する Decision Rule の識別子を既存スラッグ規則で導出・新採番なし。同一 rule の再 supersede は同ファイルに集まる)。`compass-archive/` ディレクトリが無ければ作る。旧エントリは削除しない(移動のみ・6欄 byte 不変)。active な Decision Rules エントリは現行どおり intent-compass.md 内に直接記載のまま保つ(別ファイルへのポインタ化をしない)。
|
|
66
|
+
- **独自の Supersedes フィールドは導入しない**(新エントリ側に専用フィールドを作らない。注記は旧エントリ側に付す)。
|
|
67
|
+
- 6欄形式の導入前に記録された旧4欄エントリ(Alternatives considered / Revisit when を持たないもの)は有効として扱い、欄の不足をエラー・指摘・書き換えの対象にしない。
|
|
68
|
+
|
|
69
|
+
## 5. 見送りタグの確定更新(writeback の責務)
|
|
70
|
+
|
|
71
|
+
- 昇格しなかった学びには2値タグを必ず付す: **却下(再提案不要)** | **保留(次回 writeback で再提案)**。
|
|
72
|
+
- 保留タグの項目は次回 writeback 起動時に再提案する。再提案の結果(昇格 / 却下確定 / 継続保留)を**旧エントリの該当見送り項目のタグへ反映する確定操作は writeback の責務**である。`/intent-improve` は保留項目への対応を促す誘導のみを行い、タグの確定更新は行わない。
|
|
73
|
+
|
|
74
|
+
## 6. [question] の消化
|
|
75
|
+
|
|
76
|
+
- `[question]` タグの学びは、intent-tree.md の Open Questions へ転記した時点で消化済みとする。
|
|
77
|
+
- 昇格記録の反映先に転記先(intent-tree.md Open Questions)を記録する。
|
|
78
|
+
|
|
79
|
+
## 7. 完了の一連操作(done 化・archive 移動・index 再生成)
|
|
80
|
+
|
|
81
|
+
対象 packet の writeback が完了したら(delta の終端状態の確定後)、packet の完了処理を次の**順序固定の一連の操作**として行う(done のまま `active/` に滞留する状態を作らない)。
|
|
82
|
+
|
|
83
|
+
1. 対象 packet ファイルの frontmatter に `state: done`・`closed_at`(完了日)・`spec_refs` を記入する。`spec_refs` は対応する spec/feature 名であり、`.kiro/specs/` の進行 spec と照合して候補を挙げ、利用者確認で確定記入する。
|
|
84
|
+
2. packet ファイルを `archive/<closed_at の年>/` へ移動する(削除しない。移動のみ)。
|
|
85
|
+
3. `index.md` を再生成する: `active/` 配下の全 packet ファイルの frontmatter のみから `| packet_id | name | state | summary |` テーブルを `packet_id` 昇順で構成する(`active/` が空ならヘッダのみが正規形)。
|
|
86
|
+
|
|
87
|
+
中断などで done のまま `active/` に残った場合は、`/intent-status` の整合検査が滞留として報告する。
|
|
88
|
+
|
|
89
|
+
## 8. 過去エントリ一覧の提示(再書き戻し)
|
|
90
|
+
|
|
91
|
+
- **読み取りは分割形で横断する(CONTRACT「append-only 記録の分割・archive 規約」。`intent-overview` の `aggregate-sources.md`・`intent-status` の decision-table 脚注10と同一規律)**: `deltas` / `export-log` の過去エントリを読むときは、分割形 `.intent/<rec>/*.md` 群(あれば正本・自然キー昇順)→ 無ければ旧 `.intent/<rec>.md`(生成ミラー)への read fallback の順で横断読みする。分割形と旧単一ミラーが共存するときは**分割形を正本**とし、ミラーを二重に数えない。archive(`.intent/<rec>/archive/`)は履歴として読む(active 集計に混ぜない)。この読み取りは書き込み(§4 の分割書き込み)と別経路であり、書き戻し漏れの突合・過去エントリ一覧の提示が分割前後で同じ結果を返す(behavior-preserving)。
|
|
92
|
+
- 起動時に、対象 packet の過去 delta エントリ一覧(「保留」タグ付きの見送り項目を含む。上記の分割形横断読みで収集)を必ず提示する。
|
|
93
|
+
- 同一 packet の再書き戻し(再 export・再実装後)は、既存エントリを書き換えず**新エントリ**として追記する(履歴保持)。
|
|
94
|
+
- 「対応 delta の有無」の機械判定は**初回サイクルのみ**有効。2巡目以降の書き戻し要否は、過去エントリ一覧を提示した上で利用者が判断する。
|
|
95
|
+
- writeback の完了後も対象 packet の下書き(`.intent/cc-sdd/<packetスラッグ>/`)は**削除しない**(packet ごとに永続保持)。書き戻し漏れの列挙は、export-log(分割形横断読み)の全行 × 残存する `.intent/cc-sdd/<packetスラッグ>/` 下書き × deltas(分割形横断読み)の突合で行う。
|
|
96
|
+
|
|
97
|
+
## 9. deltas.md 正規テンプレート(正本)
|
|
98
|
+
|
|
99
|
+
以下が deltas.md の正規テンプレートの**正本**であり、scaffold(配布後の `.intent/deltas.md` の初期内容)はその写し。見出し構造を変えるときは必ずここを先に変える。
|
|
100
|
+
|
|
101
|
+
- `.intent/deltas.md` が無い環境(既存利用者)では、初回起動時にこのテンプレートから新規作成する。
|
|
102
|
+
- **既存の deltas.md は上書きしない**(非破壊)。既存ファイルにはエントリの追記・Status とタグの更新のみを行う。
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
# Intent Deltas
|
|
106
|
+
|
|
107
|
+
> `/intent-writeback` が記録し、`/intent-status` と `/intent-improve` が参照します。canonical 成果物(intent-tree.md / intent-compass.md / `.intent/packets/` 配下の packet ファイル・plan.md)は、この delta 経由でのみ事後更新されます。
|
|
108
|
+
|
|
109
|
+
## 運用説明
|
|
110
|
+
|
|
111
|
+
- 書き戻しは二段階です: `/intent-writeback` はまず学びをここに delta として記録し(canonical は直接書き換えない)、ユーザーが承認した項目だけを canonical 成果物へ昇格させます。
|
|
112
|
+
- 1 packet の1回の書き戻し = 1 エントリ。同一 packet の再書き戻し(再 export・再実装後)は新エントリとして追記します(履歴保持)。「対応 delta の有無」の機械判定は初回サイクルのみ有効で、2巡目以降の書き戻し要否は過去エントリ一覧を見てユーザーが判断します。
|
|
113
|
+
- 下書きの保持(packet 毎ディレクトリ): `.intent/cc-sdd/<packetスラッグ>/` の下書きは packet ごとに永続保持されます(Git 非追跡・ローカル専用)。書き戻しが完了しても下書きは削除されません。export 履歴は `.intent/export-log.md` に記録されており(export ごとに packet 名・日時・コミットを1行追記)、過去に export した packet の書き戻し漏れは export-log.md の全行 × 残存する `.intent/cc-sdd/<packetスラッグ>/` 下書き × このファイルの突合で列挙します。
|
|
114
|
+
|
|
115
|
+
## 状態の意味論
|
|
116
|
+
|
|
117
|
+
- `pending`: 記録済みで未昇格。
|
|
118
|
+
- `promoted` / `closed` は終端状態です。1件以上を承認して canonical へ反映 → `promoted`、全項目を「却下」で見送り → `closed`。
|
|
119
|
+
- 見送り項目には「却下(再提案不要) | 保留(次回 writeback で再提案)」の2値タグが必須です。保留の項目だけが次回 `/intent-writeback` での再提案対象(および `/intent-improve` の確認対象)になり、タグの確定更新(昇格 / 却下確定 / 継続保留)は `/intent-writeback` が行います。
|
|
120
|
+
- `[question]` タグの学びは intent-tree.md の Open Questions へ転記した時点で消化済みです(転記先を昇格記録の反映先に記録します)。
|
|
121
|
+
|
|
122
|
+
## Delta: <packet-name> — <ISO 8601 日付>
|
|
123
|
+
|
|
124
|
+
- Status: pending | promoted (<昇格日>) | closed (<クローズ日>)
|
|
125
|
+
- Source: export-log.md 最新行 | .intent/cc-sdd/<packetスラッグ>/ の Source Packet | ユーザー指定
|
|
126
|
+
|
|
127
|
+
### 学び
|
|
128
|
+
|
|
129
|
+
- [decision] <新しい決定>
|
|
130
|
+
- [invariant-violation] <発見された invariant 違反>
|
|
131
|
+
- [implicit-behavior] <意図に書かれていなかった暗黙挙動>
|
|
132
|
+
- [deferred-resolved] <解消された Deferred>
|
|
133
|
+
- [question] <新たな未解決 Question>
|
|
134
|
+
|
|
135
|
+
### 昇格記録(promoted / closed 時)
|
|
136
|
+
|
|
137
|
+
- 反映先: intent-compass.md Decision Rules 新エントリ(旧エントリに superseded 注記)/ intent-tree.md L3 / 対象 packet ファイル(active/ 配下)/ plan.md の Deferred(解消の注記)
|
|
138
|
+
- 見送り: <昇格しなかった学び> — 却下(再提案不要) | 保留(次回 writeback で再提案)
|
|
139
|
+
```
|