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,35 @@
|
|
|
1
|
+
# First Packet 推薦
|
|
2
|
+
|
|
3
|
+
最初に着手すべき packet をちょうど1つ、定性的な理由とともに推薦して記録する手順。`/intent-packets` の優先順位提示(Step 4)で常に使う。
|
|
4
|
+
|
|
5
|
+
## 適用条件
|
|
6
|
+
|
|
7
|
+
- **常時適用する。** `.intent/mode.md` の designer-questions に依存しない(off・未記録でも適用する)。
|
|
8
|
+
- SKILL.md Step 4 では、walking-skeleton の適用の**後**に本手順を適用する(walking-skeleton が適用されなかった場合も、本手順は適用する)。
|
|
9
|
+
|
|
10
|
+
## 手順
|
|
11
|
+
|
|
12
|
+
1. **材料を読む**
|
|
13
|
+
- packet 候補と優先順位、(記録されていれば)`.intent/packets/plan.md` の「Walking Skeleton」セクション、`.intent/mode.md` の purpose を読む。
|
|
14
|
+
|
|
15
|
+
2. **最初に着手すべき packet をちょうど1つ選ぶ**
|
|
16
|
+
- 理由は次の定性観点から該当するものを挙げる: **リスク低減** / **依存解放** / **rollback 容易性** / **学びの大きさ**。
|
|
17
|
+
- purpose=poc が記録されている場合は「仮説を最も安く反証できるか」の観点を必ず理由に含める(purpose が未記録・product の場合は purpose を参照しない)。
|
|
18
|
+
|
|
19
|
+
2.5. **優先順位・トレードオフの許容をユーザーに確認する**
|
|
20
|
+
- 推薦を確定する前に、優先順位とトレードオフの許容をユーザーに確認する: **速度 vs 品質のどちらを優先するか**、**この着手で削ってよい/後回しにしてよいスコープはどこか**。
|
|
21
|
+
- これは追認であり、推薦の上書きを促すものではない。推薦は提案であり、ここで得た利用者の優先順位判断が推薦と食い違う場合は、利用者の判断を優先して推薦・理由を見直す。
|
|
22
|
+
- 「該当なし/不明/後で確認」を選べる形で問い、回答を強制しない。保留・「後で確認」が選ばれた場合は推測で埋めず、当該項目を `.intent/packets/plan.md` の「Open Questions」へ逃がして(無ければ既存内容を保持したまま追記して)推薦を継続する。
|
|
23
|
+
|
|
24
|
+
3. **Walking Skeleton と整合させる**
|
|
25
|
+
- Walking Skeleton(E2E を貫く最小実装)の決定が記録済みなら、推薦をそれと整合させる。整合しない推薦を行う場合は、その理由を明示する。
|
|
26
|
+
|
|
27
|
+
4. **推薦を記録する**
|
|
28
|
+
- `.intent/packets/plan.md` の「Recommended First Packet」セクションに記録する: **推薦 packet**(packet 名)/ **理由**(定性観点)/ **Walking Skeleton との整合**(整合 / 整合しない場合はその理由 / Walking Skeleton 未記録)。
|
|
29
|
+
- **旧 scaffold への非破壊追記**: plan.md に「Recommended First Packet」セクションが無ければ、既存の記録内容を保持したままセクションを追記してから記録する。
|
|
30
|
+
|
|
31
|
+
## 規律
|
|
32
|
+
|
|
33
|
+
- 数値スコアリング(重み付け合計・点数化)を用いない。
|
|
34
|
+
- 推薦は提案であり、利用者の優先順位判断を上書きしない。
|
|
35
|
+
- コードを変更しない。
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Packet ファイル形式
|
|
2
|
+
|
|
3
|
+
packet ファイル(`.intent/packets/active/<packet_id>.md`・`.intent/packets/archive/<年>/<packet_id>.md`)の形式・ID 規則・状態遷移・index 再生成手順の**単一の正本**。packet を起案・更新・移動する skill と、packet を読む skill はこの規則に従う。
|
|
4
|
+
|
|
5
|
+
## frontmatter スキーマ(12キー固定)
|
|
6
|
+
|
|
7
|
+
各 packet ファイルは先頭に YAML frontmatter(`---` 区切り)を持つ。キーは次の **12キー固定**: `packet_id` / `name` / `state` / `created_at` / `updated_at` / `closed_at` / `parent_intents` / `spec_refs` / `superseded_by` / `summary` / `depends_on` / `mode`。
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
---
|
|
11
|
+
packet_id: pkt-20260612-auth-session-k3p9 # 不変。ファイル名と一致。末尾はセッション固有 rand。packet 間参照専用
|
|
12
|
+
name: "認証セッション整理" # packet 名の正本。export-log / Source Packet / deltas / slug 導出の照合キー
|
|
13
|
+
state: implementing # draft | ready | implementing | verifying | done
|
|
14
|
+
created_at: 2026-06-12T05:00:00Z # 起案日時(ISO 8601)
|
|
15
|
+
updated_at: 2026-06-12T05:00:00Z # 最終更新時点(ISO 8601)。新規作成時は created_at と同値、内容更新時はその時点
|
|
16
|
+
closed_at: "" # done 時に記入(日付)。移行時の不明は空のまま
|
|
17
|
+
parent_intents: [L1-2, L2-3] # tree への参照
|
|
18
|
+
spec_refs: [] # writeback 完了時に確定記入
|
|
19
|
+
superseded_by: "" # 置換時に後継 packet_id
|
|
20
|
+
summary: "認証セッションの整理" # index の1行要約の源
|
|
21
|
+
depends_on: [] # 依存先 packet の packet_id リスト(既定 [])。packet 間参照専用
|
|
22
|
+
mode: standard # packet 起草時に確定していたモード(起草時固定・遡及更新しない)
|
|
23
|
+
---
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- `state` は `draft | ready | implementing | verifying | done` の5値(「state 値域」参照)。superseded は state ではなく `superseded_by` 記入による**別軸**(「状態遷移と置き場所」参照)。
|
|
27
|
+
- `depends_on` は依存先 packet の `packet_id` のリスト(既定 `[]`)。`superseded_by` と同じく **packet 間参照には `packet_id` を用いる**(`name` は使わない)。人が宣言する依存のみを保持し、ツールは依存を推論・算出しない。
|
|
28
|
+
- **`mode` は packet が起草された時点で確定していたモードの出自記録**。値はモード名(例: `standard` / `deep` / `quick`)。起草時に CONTRACT.md の fallback 規約(mode.local.md → mode.md → standard)で解決した値を刻む。**起草時固定**(DR13)—起草後にモードがローカルで変わっても既存 packet の `mode` を遡及更新しない。モード不在・未確定の場合は既定値 `standard` を記録し、停止しない。**後方互換**: `mode` を持たない既存 packet は欠落として扱い、停止せず続行する(読むたびの自動補完をしない)。tree / compass / plan には刻まない(DR11)。
|
|
29
|
+
- **`updated_at` は packet の最終更新時点(ISO 8601)**。書き手スキル(intent-packets / writeback 等)が当該 packet を変更した時点で打刻する正本フィールド。打刻規律は次の通り:
|
|
30
|
+
- **新規作成時は `created_at` と同値**で初期化する(`—` や空にはしない)。
|
|
31
|
+
- **内容を更新した時点**を `updated_at` に記録する(その時点の現在時刻を ISO 8601 で打つ)。
|
|
32
|
+
- **内容変更を伴わない再実行では打刻しない(冪等)**。無変更で日時だけ進めない。
|
|
33
|
+
- 打刻責務は書くフェーズ(intent-packets / writeback 等)が負い、read-only 検証層(intent-validate)は `updated_at` を**読むのみ**で書き換えない。
|
|
34
|
+
- **後方互換**: `updated_at` を持たない既存 packet は欠落として扱い、即時一括移行を強制しない。読み手は不在を「未記入/未観測」として明示し推測で埋めない(`depends_on` 不在=「依存なし」と同型の遅延補完)。次に当該 packet を更新する書き手フローが差分追記する(非破壊)。
|
|
35
|
+
- **未確定のキーは空値で保持する**(キー自体を省略しない — index 再生成と検査の決定性のため)。`depends_on` は依存が無くても `[]` を保持し、キーを省略しない。
|
|
36
|
+
- **summary 保守規範**: packet 本文を更新した skill は frontmatter の `summary` も追従させる。
|
|
37
|
+
|
|
38
|
+
## name と packet_id の使い分け
|
|
39
|
+
|
|
40
|
+
- **`name` は packet 名の正本(照合キー)**。export-log の `| packet |` 列・cc-sdd 下書きの `## Source Packet`・deltas の Delta 見出し・cc-sdd スラッグ導出はすべて `name` を用いる。これらに `packet_id` を用いてはならない。
|
|
41
|
+
- **`packet_id` はファイル名(`<packet_id>.md`)と `superseded_by` 等の packet 間参照専用**。
|
|
42
|
+
|
|
43
|
+
### name の可変性
|
|
44
|
+
|
|
45
|
+
- 初回 export(export-log に行が載った時点)以降、`name` は**不変**。改名は supersede(後継 packet の起案 + 旧 packet の置換)として扱う。
|
|
46
|
+
- export 前の改名は差分更新として許可する(その場合も `packet_id`・ファイル名は変えない)。
|
|
47
|
+
|
|
48
|
+
### 名前 → ファイルの解決手順
|
|
49
|
+
|
|
50
|
+
1. `index.md` の `name` 列、または `active/` 配下の frontmatter の `name` を照合してファイルを特定する。
|
|
51
|
+
2. `active/` に無ければ `archive/` を**明示的に**参照する(「通常 archive/ は読まない」原則の明示例外)。
|
|
52
|
+
|
|
53
|
+
## ID 規則
|
|
54
|
+
|
|
55
|
+
- 形式: `pkt-<YYYYMMDD>-<スラッグ>-<rand>`。日付部は**起案日**(シェルで取得する)。末尾の `<rand>` は**セッション固有のランダムな短いトークン**(後述)で、並行セッションでも ID が衝突しないことを保証する不変の識別子の一部。
|
|
56
|
+
- `<rand>` は半角英小文字と数字(`[a-z0-9]`)4文字で、起案時にシェルで生成する(例: `LC_ALL=C tr -dc 'a-z0-9' < /dev/urandom | head -c 4`)。生成できない場合は推測値を埋めず、その旨を利用者に告知して停止する(日時を取得できない場合と同じ規律)。
|
|
57
|
+
- スラッグは `name` から次節の規則で導出する。次節は map-cc-sdd(cc-sdd export のスラッグ規則)と**同文の複製**であり、変更する場合は両方を同時に改訂する(cc-sdd 出力ディレクトリ名も同じ `name` から同じ規則で導出されるため、両者は一致する)。
|
|
58
|
+
|
|
59
|
+
### スラッグ規則(決定的)
|
|
60
|
+
|
|
61
|
+
packet 名からディレクトリ名(スラッグ)を以下の順で**決定的に**導出する。同じ packet 名は常に同じスラッグになる。
|
|
62
|
+
|
|
63
|
+
1. NFC 正規化する。
|
|
64
|
+
2. 前後の空白を trim する。
|
|
65
|
+
3. ASCII 大文字を小文字にする。
|
|
66
|
+
4. 空白とパスに危険な文字(`/ \ : * ? " < > |`)を `-` に置換する。
|
|
67
|
+
5. 連続する `-` を1つに圧縮する。
|
|
68
|
+
6. 先頭・末尾の `-` を除去する。
|
|
69
|
+
|
|
70
|
+
- 非 ASCII 文字(日本語等)はそのまま保持する。
|
|
71
|
+
- 結果が空文字列になる場合はスラッグを `unnamed-packet` とし、その旨を利用者に告知する。
|
|
72
|
+
|
|
73
|
+
### 衝突回避(並行セッション対応)
|
|
74
|
+
|
|
75
|
+
- 末尾の `<rand>` により、同日・同スラッグの**別 packet** を起案しても ID は衝突しない。**並行(並列)セッション**が互いの未保存 packet を読めない状況でも、各セッションが独立に生成した `<rand>` が異なるため別 ID になる。連番(`-2`, `-3`, …)で既存を読んでから採番する旧方式は、並行セッションでは互いを見られず衝突を防げないため用いない。
|
|
76
|
+
- 起案時に万一、生成した ID が既存ファイル(`active/` または `archive/`)と一致した場合は、黙って上書きせず `<rand>` を再生成して別 ID を割り当て、packet 名 → ID の対応を利用者に告知する。
|
|
77
|
+
- `packet_id` とファイル名(`<packet_id>.md`)は**不変**(改名・state 変更・移動でも変えない)。`<rand>` も ID の一部として一度確定したら変えない。
|
|
78
|
+
- **後方互換**: `<rand>` を持たない旧形式の ID(`pkt-<YYYYMMDD>-<スラッグ>`)も有効。即時一括移行は強制せず、既存 packet の ID は据え置く(改名は supersede 扱い)。
|
|
79
|
+
|
|
80
|
+
## state 値域
|
|
81
|
+
|
|
82
|
+
`state` は進行段階を区別する5値。各値は相互排他で、packet はちょうど1つの段階を取る。state は**宣言的な状態記録**であり、遷移規則・ガード・自動進行を持つ管理機構(state machine)を伴わない。
|
|
83
|
+
|
|
84
|
+
| state | 意味 | 置き場所 | Evidence | depends_on の扱い |
|
|
85
|
+
|-------|------|----------|----------|-------------------|
|
|
86
|
+
| `draft` | 起案中・未確定 | `active/` | 不要 | 任意 |
|
|
87
|
+
| `ready` | 着手可(依存解決済み・実装待ち) | `active/` | 不要 | 依存先が全て `done` であることが宣言の前提 |
|
|
88
|
+
| `implementing` | 実装中 | `active/` | 進行中の暫定記録可 | — |
|
|
89
|
+
| `verifying` | 実装済み・検証待ち(Evidence 未確定) | `active/` | 収集中(未確定明示) | — |
|
|
90
|
+
| `done` | 証拠取得済み・完了 | `archive/<年>/` | **確定済みであることが前提** | — |
|
|
91
|
+
|
|
92
|
+
- 終端は `done` のみ。`state=done` の確定は `## Evidence` 節に確定した検証結果があることを前提条件とする(「人/検査が確認 → 記入 → done」の宣言的順序であり、自動遷移ではない)。
|
|
93
|
+
- 進行段階の変更は宣言的に記入し、その確定は人または検査ゲートに基づく(AI の自己申告のみで確定しない)。
|
|
94
|
+
|
|
95
|
+
### 後方互換移行(旧 `draft | active | done` から)
|
|
96
|
+
|
|
97
|
+
| 旧 state | 新 state | 根拠 |
|
|
98
|
+
|----------|----------|------|
|
|
99
|
+
| `draft` | `draft` | 同一 |
|
|
100
|
+
| `active` | `implementing` | 着手済み packet の安全側既定(最も情報を失わない。後で `ready`/`verifying` へ宣言し直せる) |
|
|
101
|
+
| `done` | `done` | 同一 |
|
|
102
|
+
|
|
103
|
+
- `active → implementing` を既定にする理由: 旧 `active` は「着手済み or 着手可」の両方を含んでいたため、安全側(進行中とみなす)に倒し「終わっていないのに done 扱い」を防ぐ。
|
|
104
|
+
- 移行は**差分更新案として提示**し、利用者確認のうえ記入する。既存 packet を破壊しない・削除しない(**移動のみ**)。
|
|
105
|
+
- **`depends_on`/`## Evidence` の欠落の扱い**: 既存 packet に `depends_on` キーや `## Evidence` 節が無くても、即時一括移行を強制しない。読み手側は `depends_on` 不在を「依存なし(空集合と等価)」、`Evidence` 不在を「未記入」として扱う(推測で埋めない)。packet を次に更新する起案/更新フローが `depends_on: []` を差分追記する(非破壊の遅延補完)。
|
|
106
|
+
|
|
107
|
+
## 状態遷移と置き場所
|
|
108
|
+
|
|
109
|
+
- superseded は state ではなく `superseded_by` に後継 `packet_id` を記入する**別軸**。
|
|
110
|
+
- 置き場所の対応:
|
|
111
|
+
- `draft | ready | implementing | verifying` → `active/`
|
|
112
|
+
- `done` または `superseded_by` 記入済み → `archive/<年>/`
|
|
113
|
+
- state の記入と移動は一連の操作として行う(done のまま `active/` に滞留させない。滞留は status の整合検査の対象)。
|
|
114
|
+
- **削除禁止**: packet ファイルは移動のみで、削除しない。
|
|
115
|
+
|
|
116
|
+
## 本文セクション構成
|
|
117
|
+
|
|
118
|
+
frontmatter の直後に `# <name>` 見出しを置き(推奨)、以下の節を続ける(現行の packet 定義節の構成を継承)。
|
|
119
|
+
|
|
120
|
+
- `## Parent Intent` — この packet が支える L0 / L1 / L2 / L3。
|
|
121
|
+
- `## Why` — なぜこの packet が必要か。
|
|
122
|
+
- `## Scope` — 含むこと。
|
|
123
|
+
- `## Non-scope` — 含まないこと。
|
|
124
|
+
- `## Expected Behavior` — 完了後に観測できる振る舞い。
|
|
125
|
+
- `## Decisions` — 制約下の意思決定スロット(completeness schema の④中心スロット)。**`## Expected Behavior` の後・`## Safety / Invariants` の前**に置く。**スロットの値域(`確定値 | 未決定(理由付き)| 該当なし`)・4ステータス・発火条件・スロット ID の正本は `decision-slots.md`**(このカタログを単一参照として読む。本節はその投影)。**必須節**(下記の任意節と異なり、共通コアスロットを閉じる入れ物として常に保持する。スロット未播種なら空節で保持し、推測で埋めない)。
|
|
126
|
+
- `## Safety / Invariants` — 守るべき制約。**packet 固有 invariant の正本**(compass には書かない。compass にはプロジェクト普遍の invariant のみを置く)。
|
|
127
|
+
- `## Validation` — どう検証するか(**計画**)。テスト、手動確認、ログ確認、型検査など。
|
|
128
|
+
- `## Evidence` — 何を検証したか(**結果**)。`Validation`(計画)の直後・`Rollback` の前に置く。各エントリに「検証した結果・実施日・対応する検査軸 ID(`validate-checks.md` の安定 kebab-case ID)・出所(intent-validate / drift-watch / 人確認)」を含められる。
|
|
129
|
+
- `## Rollback` — 失敗時にどう戻せるか。
|
|
130
|
+
- `## Out of scope` — **任意(推奨)**。やらないこと(non-goals)を明示し過剰実装を防ぐ。未記入なら節を省略してよい。
|
|
131
|
+
- `## Verification protocol` — **任意(推奨)**。先に書くテスト・守るべき既存テスト・追加すべき失敗モードのテストを保持する。下流トレースリンク(realized-by / verified-by)もここに任意で保持できる。未記入なら節を省略してよい。
|
|
132
|
+
- `## cc-sdd Mapping` — この packet を cc-sdd の requirements / design / tasks にどう変換するか。
|
|
133
|
+
|
|
134
|
+
### `## Decisions`(人間固定とエージェント裁量の分離)
|
|
135
|
+
|
|
136
|
+
`## Decisions` は制約下の意思決定スロットを保持する節で、内部に次の2区分を持つ(区別して保持する)。
|
|
137
|
+
|
|
138
|
+
- **人間が固定した決定(Human-fixed / 確定値)**: 人が前倒しで固定した可視の設計規則(visible design rules)。値域 `確定値` のスロット。エージェントはこの規則を覆さない。
|
|
139
|
+
- **エージェント裁量ゾーン(Agent-discretion / 未定遅延)**: 規則の内側で局所探索をエージェントに委ねる領域。値域 `未決定(理由付き)` のスロット(`未定(遅延中)`)が対応づく。`未定` には理由・downstream への注意書き・再訪条件(Revisit when)を併記する。
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
## Decisions
|
|
143
|
+
### Human-fixed(確定値・visible rules)
|
|
144
|
+
- `decision-authz` 回答済み: 実行できるアクターは管理者ロールのみ
|
|
145
|
+
### Agent-discretion(未定遅延・再訪条件付き)
|
|
146
|
+
- `decision-idempotency` 未定: リトライ方式は実装裁量。Revisit when: 外部公開 API 化のとき
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
- スロットの値域・ステータス・発火条件・スロット ID は `decision-slots.md` が正本。本節はその投影であり、値域や ID をここで再定義しない。
|
|
150
|
+
- 閉じ先が既存節(`## Validation` / `## Expected Behavior` 等)のスロットは、本節に値を二重に書かず「既存節で閉じている」旨の参照のみを置く(重複定義しない)。
|
|
151
|
+
- スロット未播種なら**空節で保持**し(推測で埋めない)、節自体は省略しない。
|
|
152
|
+
|
|
153
|
+
### 節の格付け(必須 / 任意)
|
|
154
|
+
|
|
155
|
+
- **必須**: `## Decisions`(共通コアスロットを閉じる入れ物)のみ。スロット未播種でも空節として保持する。
|
|
156
|
+
- **任意(推奨)**: `## Out of scope` / `## Verification protocol` と下流トレースリンク(realized-by / verified-by)。未記入なら**節を省略してよい**(packet の肥大化と decision fatigue を避ける軽量思想を維持する)。
|
|
157
|
+
- frontmatter は **12キー固定**のまま変更しない。本節群の追加は**本文節のみ**であり、frontmatter を増やさない(トレースリンクも本文に持ち、frontmatter キーを足さない)。
|
|
158
|
+
|
|
159
|
+
### `## Validation`(計画)と `## Evidence`(結果)の区別
|
|
160
|
+
|
|
161
|
+
`Validation` は「どう検証するつもりか(計画)」、`Evidence` は「実際に検証した結果(実態)」であり、両者を**混在させない**。
|
|
162
|
+
|
|
163
|
+
```markdown
|
|
164
|
+
## Evidence
|
|
165
|
+
- 2026-06-15 — `unit: auth-session 失効テスト` green / `invariant-conflict` 該当なし
|
|
166
|
+
- 検査軸: invariant-conflict, l3-intent-mismatch
|
|
167
|
+
- 出所: intent-validate(人確認: ◯◯)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
- 各エントリ: 検証した結果・実施日・検査軸 ID(kebab-case)・出所を含められる。
|
|
171
|
+
- 結果が無ければ**空節で保持**し、未記入を推測で埋めない。
|
|
172
|
+
- Evidence は AI の自己申告ではなく、検査結果(intent-validate / drift-watch)または人の確認に基づき、出所を辿れる形で記録する。
|
|
173
|
+
- **`state=done` は Evidence に確定済みの検証結果があることを前提とする**(done だが Evidence 空は矛盾状態)。
|
|
174
|
+
|
|
175
|
+
### 検証語彙の非コード degrade(任意・正本)
|
|
176
|
+
|
|
177
|
+
`## Validation` / `## Rollback` の検証語彙はコード成果物を前提に書かれている。非コード成果物(文書・業務・研究)を packets で詰めるときは、次の読み替えを適用してよい(**任意の degrade**であり、ここが読み替え語彙の**正本**=非コードモード側はこの定義を参照する)。
|
|
178
|
+
|
|
179
|
+
- `testable` → 「レビュー観点/受容基準で判定可能」
|
|
180
|
+
- `rollback` → 「版管理/差し戻し」
|
|
181
|
+
- `behavior-preserving` → 「既存成果物の意味/合意を壊さない」
|
|
182
|
+
- ⑥単体完結(終端判定)の「利用者/呼び出し側」 → 「読み手/受け手」(非コード成果物では、packet の完了形が読み手/受け手から見て中途半端でない一貫した区切りになっていることを指す)
|
|
183
|
+
|
|
184
|
+
- この degrade は**任意**であり、コード前提の語彙を必須にしない(コード成果物では従来語彙のまま使う)。
|
|
185
|
+
- degrade を適用しても **packets 段はスキップしない**。非コード作業も packets を経由し、`## Decisions` の決定スロット播種(C3)を保つ(語彙を読み替えるだけで、packets を迂回しない)。
|
|
186
|
+
|
|
187
|
+
## index.md 再生成手順
|
|
188
|
+
|
|
189
|
+
`.intent/packets/index.md` は生成物であり手編集しない。canonical(packets/ 配下)を変更した skill は、処理完了時に以下の手順で再生成する。
|
|
190
|
+
|
|
191
|
+
1. `active/` 配下の全 packet ファイルの **frontmatter のみ**を読む(本文を読まない — 決定的)。
|
|
192
|
+
2. `| packet_id | name | state | summary |` のテーブルを `packet_id` **昇順**で構成する(`depends_on` は index 列に出さない — 決定性とテーブル肥大回避。依存は read-only 側が `active/` の frontmatter を直接読む)。
|
|
193
|
+
3. `active/` が空(または不在)の場合は、ヘッダのみの空テーブルが正規形。
|
|
194
|
+
|
|
195
|
+
## read-only 側が読む契約
|
|
196
|
+
|
|
197
|
+
intent-status / intent-overview などの read-only 側スキルは、本正本が定める次のインターフェースを**読むのみ**で、packet 正本を変更しない。
|
|
198
|
+
|
|
199
|
+
- **`state`(5値域)**: `draft | ready | implementing | verifying | done`。進捗の段階判定に用いる。
|
|
200
|
+
- **`depends_on`(packet_id のリスト)**: ブロック状態は「`depends_on` の中に `done` でない packet がある=ブロック中」として read-only で導出する。導出結果は packet に書き戻さない。依存に基づく次工程の自動起動・順序自動決定はしない。
|
|
201
|
+
- **`## Evidence` 節**: 検証結果・実施日・検査軸 ID・出所。進捗の「証拠の確定度」の素材。
|
|
202
|
+
|
|
203
|
+
**後方互換の読み取り規律(推測で埋めない)**:
|
|
204
|
+
- `depends_on` 不在 → 「依存なし(空集合)」として読む。
|
|
205
|
+
- `## Evidence` 不在/空 → 「未記入/未観測」として明示し、補完しない。
|
|
206
|
+
- 旧 `state: active` → 「進行中(`implementing` 相当)」として読む。
|
|
207
|
+
- 新フィールド・新節が未記入または不在のときは、当該箇所を「未記入/未観測」と明示する。
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Walking Skeleton Check
|
|
2
|
+
|
|
3
|
+
最優先 packet が主要なユーザージャーニーを端から端まで貫く(walking skeleton である)かを確認する手順。`/intent-packets` の優先順位提示(Step 4)で、`.intent/mode.md` の designer-questions が `on` のときのみ使う。対話はすべて利用者への確認として行う(確認の手段は SKILL.md の規約に従う)。
|
|
4
|
+
|
|
5
|
+
## 適用条件
|
|
6
|
+
|
|
7
|
+
- `.intent/mode.md` の `designer-questions` を読む。`on` のときのみ、Step 4 の優先順位提示に本手順を適用する。
|
|
8
|
+
- **designer-questions が on と記録されていない(off・未記録)ときは適用せず、既存 Step 4 の挙動を変えない**(未記録の場合の告知は `.intent/mode.md` の規約に従う)。
|
|
9
|
+
- **purpose は参照しない。**
|
|
10
|
+
|
|
11
|
+
## 手順
|
|
12
|
+
|
|
13
|
+
1. **E2E 判定**
|
|
14
|
+
- 最優先 packet の Scope と Expected Behavior を読み、主要なユーザージャーニーを端から端まで(入力 → 処理 → 観測可能な出力)貫くかを判定する。
|
|
15
|
+
- 判定の根拠は packet の記述に求める。途中の層で止まる packet(処理だけ・UI だけ等)は「貫かない」と判定する。
|
|
16
|
+
|
|
17
|
+
2. **判定結果と根拠を提示して確認する**
|
|
18
|
+
- 判定結果(貫く / 貫かない)とその根拠を利用者に提示し、確認する。
|
|
19
|
+
- 根拠は平易な言葉で提示する: この packet(cc-sdd に渡す作業単位)が何を作り、完了後に何がどこまで動くかを述べ、欄名を知らなくても判定根拠が読めるようにする。
|
|
20
|
+
|
|
21
|
+
3. **是正案を提示する(「貫かない」と判定した場合)**
|
|
22
|
+
- 最初の packet を walking skeleton にする案を、次のいずれかで提示する:
|
|
23
|
+
- **並べ替え案**: E2E を貫く packet が最優先になるよう優先順位を並べ替える。
|
|
24
|
+
- **統合案**: 複数 packet の Scope を統合し、E2E を貫く packet を作る。
|
|
25
|
+
- 利用者が walking skeleton 化を意図的に見送る場合は、それも選択として受け付ける(黙って落とさず記録する。手順 4)。
|
|
26
|
+
|
|
27
|
+
4. **確認結果を記録する**
|
|
28
|
+
- `.intent/packets/plan.md` の「Walking Skeleton」セクションに記録する: **最優先 packet**(packet 名)/ **E2E 判定**(貫く / 貫かない)/ **確認結果**(利用者の確認内容)。
|
|
29
|
+
- 意図的な見送りは、その理由とともに Deferred セクションへも記録する。
|
|
30
|
+
- **旧 scaffold への非破壊追記**: plan.md に「Walking Skeleton」セクションが無ければ、既存の記録内容を保持したままセクションを追記してから記録する。
|
|
31
|
+
|
|
32
|
+
## 規律
|
|
33
|
+
|
|
34
|
+
- 確認結果は intent-validate が参照する。記録を省略しない。
|
|
35
|
+
- コードを変更しない。
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: intent-release-note
|
|
3
|
+
description: git のコミット履歴を read-only で読み、各コミットを意図(packet name / parent intent / deltas / milestones)とテキスト照合して「なぜ変わったか」を厚くした release note を、format(changelog 風 / github-releases 風)で `.intent/release-note/` 配下へ派生出力する外向きの射影スキル。git・canonical は一切変更しない(read-only)。紐づかないコミットは薄い行で残し、意図と現実の落差を可視化する。
|
|
4
|
+
allowed-tools: Read, Glob, Grep, Bash, Write
|
|
5
|
+
argument-hint: <git range・format>(既定 range = 直近 tag〜HEAD。`<from>..<to>` 指定可。format 無指定なら既定(changelog)を用い、どの format で生成したかを出力に明示する)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# intent-release-note Skill
|
|
9
|
+
|
|
10
|
+
## Core Mission
|
|
11
|
+
- **Success Criteria**:
|
|
12
|
+
- 指定 range(既定 = 直近 tag〜HEAD、引数で `<from>..<to>` 指定可・fallback 付き)の git log を **read-only** で読む(commit / tag 作成 / push をしない)。
|
|
13
|
+
- 各コミットを意図(packet name / parent intent / deltas / milestones)と**テキスト照合**し、紐づいたものには「なぜ(どの意図のため変わったか)」を添える。
|
|
14
|
+
- 照合できないコミットは薄い changelog 行で並べ、**意図と現実の落差を可視化**する(黙って捨てない)。
|
|
15
|
+
- format(`rules/format-changelog.md` / `rules/format-github-releases.md` を引数で選択)に従って `.intent/release-note/` 配下へ派生出力する(全置換再生成)。
|
|
16
|
+
- canonical(intent-tree / compass / packets)・git の状態を一切変更しない(INV16 / INV17)。
|
|
17
|
+
|
|
18
|
+
## Execution Steps
|
|
19
|
+
|
|
20
|
+
### Step 1: range 解釈(範囲を確定する)
|
|
21
|
+
- 利用者が `/intent-release-note` を実行したとき、まず引数の range 指定を `rules/source-scope.md` に従って解釈する。
|
|
22
|
+
- 既定(range 無指定)は **直近 tag〜HEAD**(`git describe --tags --abbrev=0` で直近 tag を求め `<tag>..HEAD`)。引数 `<from>..<to>` があればそれを用いる。
|
|
23
|
+
- 直近 tag が無く既定が解決できないときは全履歴へ **fallback** し、その旨を出力に注記する(Fail-Soft)。不正な range 引数は明示エラーとし、release note を生成しない。
|
|
24
|
+
- 範囲が確定したら Step 2 へ進む(range は引数 + 既定 + fallback で一意化し、対話補完に依存しない)。
|
|
25
|
+
|
|
26
|
+
### Step 2: git log の read-only 読取
|
|
27
|
+
- `rules/source-scope.md` の **read-only allowlist** に従い、確定した range のコミットを read-only で読む。
|
|
28
|
+
- 用いてよいのは読み取り系の `git log` / `git tag`(一覧)/ `git describe` / `git rev-list` / `git rev-parse` / `git show` のみ。
|
|
29
|
+
- **書き込み系(`git commit` / `git tag <name>` 作成 / `git push` / `git checkout` / `git switch` / `git reset` / `git restore` / `git merge` / `git rebase` / `git cherry-pick` 等)を一切叩かない**(INV16)。
|
|
30
|
+
- 各コミットのハッシュ・件名・本文・author・日時を素材として読み取る。
|
|
31
|
+
|
|
32
|
+
### Step 3: コミット↔intent のテキスト照合(断定せず候補提示)
|
|
33
|
+
- 各コミットを intent と**テキスト照合**する。照合素材の優先順位は (1) packet name → (2) parent intent → (3) deltas → (4) milestones。`.intent/` 配下(`packets/`・`intent-tree.md`・`intent-compass.md`・`deltas.md`・`milestones.md`)の記載とコミットメッセージを、**ファイルから機械観測できる範囲**で照合する。
|
|
34
|
+
- いずれかにテキスト照合できたコミットには「なぜ(その意図のため変わったか)」を添える。複数該当時は最上位の素材を採る。
|
|
35
|
+
- 照合は既存 `intent-status` の温度と同型: **機械スコアリング・閾値・新判別軸を持たず**(AD23)、確信が低いときは**断定せず候補として提示**する(照合不能=常態として誤検出を許容する)。
|
|
36
|
+
- どれとも照合できないコミットは**薄い changelog 行で残す**(黙って捨てない・AD22)。
|
|
37
|
+
|
|
38
|
+
### Step 4: format 写像(既定なら format を明示)
|
|
39
|
+
- `rules/format-select.md` に従って format を確定する。引数 `changelog` / `github-releases`、無指定なら既定(changelog)を用い、**どの format で生成したかを出力に明示する**。
|
|
40
|
+
- 確定した format の出力構造ルール(`rules/format-changelog.md` または `rules/format-github-releases.md`)へ、Step 3 の照合済み素材(紐づくコミットの「なぜ」付き + 紐づかないコミットの薄い行)を渡して組み立てる。
|
|
41
|
+
- target format を本文へハードコードしない(rules に委譲・AD24)。出力構造そのものは format-* ルールの責務であり、本 SKILL は git 読み・照合・委譲を担う。
|
|
42
|
+
|
|
43
|
+
### Step 5: 派生 Write(`.intent/release-note/` へ全置換)
|
|
44
|
+
- 組み上がった release note を `.intent/release-note/release-note.md` へ **全置換**で Write する(派生・再生成可能)。
|
|
45
|
+
- 書込み先は `.intent/release-note/` 配下に限定する。canonical(intent-tree / compass / packets)・git の状態を一切変更しない(INV16 / INV17)。
|
|
46
|
+
- 対象 range にコミットが1件も無いときは、空である旨を出力に明示し canonical / git を変更しない。
|
|
47
|
+
|
|
48
|
+
## Output Description
|
|
49
|
+
- 出力の冒頭で対象 range(fallback したならその注記)と format(既定を用いたならその明示)を示す。
|
|
50
|
+
- 本体は選択した format の出力構造(changelog 風 = 種類別カテゴリ / github-releases 風 = 物語+変更一覧)に従う(`rules/format-*.md` の構成)。
|
|
51
|
+
- 意図に紐づくコミットは「なぜ」付き、紐づかないコミットは薄い行で並べ、落差が読み取れる形にする。
|
|
52
|
+
|
|
53
|
+
## Safety & Fallback
|
|
54
|
+
- **read-only の所有境界**: git は読むだけ(Step 2 の allowlist のみ)。commit / tag 作成 / push / working tree・ref を変更する操作をしない(INV16)。
|
|
55
|
+
- **派生出力の所有境界**: 書込みは `.intent/release-note/` 配下のみ。canonical を書き換えない(INV17)。
|
|
56
|
+
- **照合の所有境界**: テキスト照合のみ(機械スコアリングを持たない・AD23)。落差を落とさない(薄い行で残す・AD22)。
|
|
57
|
+
- **format の所有境界**: 出力構造は `rules/format-*.md` に委譲し、本文へハードコードしない(AD24)。format-* の出力構造を変更しない(seam 確定済み)。
|
|
58
|
+
- **異常系**: tag 不在 → fallback + 注記。不正 range → 明示エラーで生成しない。空 range → 空を明示。いずれも git / canonical を変更しない。
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# format 写像:changelog 風(Keep a Changelog 体裁)
|
|
2
|
+
|
|
3
|
+
`intent-release-note` skill(後続 packet で付加)が、git のコミット履歴と意図照合の結果を、**Keep a Changelog 風の release note** へ組み立てるための出力構造の定義。SKILL.md は手順と git 読み取り・intent 照合を担い、「どの素材をどの見出しへ・どの順で置くか」は本ルールを参照する。
|
|
4
|
+
|
|
5
|
+
## 責務の境界(出力構造の定義であって読み取り・照合ではない)
|
|
6
|
+
|
|
7
|
+
- 本ルールは **format 写像(出力構造の定義)** である。release note のセクション構成・カテゴリ分け・並び順だけを定める。
|
|
8
|
+
- git log を読む・コミットを意図(packet name / parent intent / deltas)と照合する・range を解釈するといった手続きは **SKILL.md の責務**であり、本ルールは行わない(本 seam では SKILL.md 未設置。本ルールは器として先置きされる)。
|
|
9
|
+
- 紐づいたコミットへ「なぜ(どの意図のため)」を添えること、紐づかないコミットを薄い行で残すこと(落差の可視化)の**判断**は SKILL.md が行う。本ルールは、その結果を**どの構造に流し込むか**だけを定める。
|
|
10
|
+
- 出力先が派生ディレクトリ(`.intent/release-note/`・git 非追跡・read-only)であること、canonical・git を書き換えないことは skill 側の不変条件であり、本ルールはその前提のもとで構造のみを与える。
|
|
11
|
+
|
|
12
|
+
## 基本姿勢(変更を分類して時系列に積む)
|
|
13
|
+
|
|
14
|
+
changelog 風は、**1リリース(または1 range)の変更を種類ごとに分類して並べる**体裁である。読み手は「このバージョンで何が増え・変わり・直り・消えたか」を素早く把握したい立場を想定する。したがって:
|
|
15
|
+
|
|
16
|
+
- バージョン(または range)見出しのもとに、変更を種類別カテゴリへ振り分ける。
|
|
17
|
+
- 各エントリは1行の簡潔な記述を基本とし、意図に紐づくものは「なぜ」を一言添える(添える文言は SKILL.md が用意し、本ルールはそれを Added/Changed 等の該当カテゴリへ置く)。
|
|
18
|
+
- 素材に無い変更を体裁のために創作しない(紐づかないコミットは薄い行のまま残す)。
|
|
19
|
+
|
|
20
|
+
## 構成(上から下へ)
|
|
21
|
+
|
|
22
|
+
| 順 | セクション | 何を置くか |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| 1 | 見出し(バージョン / range と日付) | 対象 range(既定は前タグ〜HEAD)の識別と、生成時点の日付 |
|
|
25
|
+
| 2 | Added(追加) | 新機能・新規追加にあたるコミット |
|
|
26
|
+
| 3 | Changed(変更) | 既存挙動の変更・改善にあたるコミット |
|
|
27
|
+
| 4 | Fixed(修正) | バグ修正にあたるコミット |
|
|
28
|
+
| 5 | Removed(削除) | 機能・要素の削除にあたるコミット |
|
|
29
|
+
| 6 | Other(その他・紐づかない変更) | 上記に分類できない・意図に紐づかないコミットを薄い行で残す(落差の可視化) |
|
|
30
|
+
|
|
31
|
+
- カテゴリ(2–5)は Keep a Changelog の標準カテゴリに合わせる。該当コミットが無いカテゴリは見出しごと省く(空見出しを作らない)。
|
|
32
|
+
- セクション 6 は、意図に紐づかない/分類不能なコミットを**黙って捨てず**薄い1行で残す枠。素材が無ければ省く。
|
|
33
|
+
- 各エントリの「なぜ」注記は、SKILL.md が照合結果として付したものをそのまま該当カテゴリ内に置く(本ルールが照合し直さない)。
|
|
34
|
+
|
|
35
|
+
## 不変条件
|
|
36
|
+
|
|
37
|
+
- git・canonical を読み直さない・変更しない(読み取り・照合は SKILL.md、書き込みは派生ディレクトリへの SKILL.md の Write の責務)。
|
|
38
|
+
- 変更を種類別カテゴリへ分類する構造を崩さない(changelog 風体裁の核)。
|
|
39
|
+
- 意図に紐づくコミットの「なぜ」と、紐づかないコミットの薄い行を、ともに落とさず配置する(落差を消さない)。
|
|
40
|
+
- 素材に無い変更・背景を、体裁を整えるために足さない。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# format 写像:github-releases 風(GitHub Releases 体裁)
|
|
2
|
+
|
|
3
|
+
`intent-release-note` skill(後続 packet で付加)が、git のコミット履歴と意図照合の結果を、**GitHub Releases 風の release note** へ組み立てるための出力構造の定義。SKILL.md は手順と git 読み取り・intent 照合を担い、「どの素材をどの見出しへ・どの順で置くか」は本ルールを参照する。
|
|
4
|
+
|
|
5
|
+
## 責務の境界(出力構造の定義であって読み取り・照合ではない)
|
|
6
|
+
|
|
7
|
+
- 本ルールは **format 写像(出力構造の定義)** である。release note のセクション構成・ハイライトの立て方・並び順だけを定める。
|
|
8
|
+
- git log を読む・コミットを意図(packet name / parent intent / deltas)と照合する・range を解釈するといった手続きは **SKILL.md の責務**であり、本ルールは行わない(本 seam では SKILL.md 未設置。本ルールは器として先置きされる)。
|
|
9
|
+
- 紐づいたコミットへ「なぜ(どの意図のため)」を添えること、紐づかないコミットを薄い行で残すこと(落差の可視化)の**判断**は SKILL.md が行う。本ルールは、その結果を**どの構造に流し込むか**だけを定める。
|
|
10
|
+
- 出力先が派生ディレクトリ(`.intent/release-note/`・git 非追跡・read-only)であること、canonical・git を書き換えないことは skill 側の不変条件であり、本ルールはその前提のもとで構造のみを与える。
|
|
11
|
+
|
|
12
|
+
## 基本姿勢(リリースの物語を上に、詳細を下に)
|
|
13
|
+
|
|
14
|
+
github-releases 風は、**1リリースを「読み物」として上から下へ読ませる**体裁である。読み手は「このリリースで何が嬉しいか(ハイライト)」をまず掴み、必要なら変更一覧へ降りていく立場を想定する。したがって:
|
|
15
|
+
|
|
16
|
+
- リリースのタイトルと短い要約(このリリースの主旨)を最上部に置く。
|
|
17
|
+
- 注目すべき変更を「ハイライト」として数点、意図に紐づく「なぜ」とともに先に立てる。
|
|
18
|
+
- 網羅的な変更一覧は、ハイライトの後に置く(読み飛ばし可能な詳細として)。
|
|
19
|
+
- 素材に無い成果を体裁のために創作しない(紐づかないコミットは薄い行のまま変更一覧へ残す)。
|
|
20
|
+
|
|
21
|
+
## 構成(上から下へ)
|
|
22
|
+
|
|
23
|
+
| 順 | セクション | 何を置くか |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| 1 | リリースタイトル | 対象 range(既定は前タグ〜HEAD)を識別するタイトル(タグ名・バージョン等) |
|
|
26
|
+
| 2 | 概要(このリリースの主旨) | このリリース全体が何を達成したかの短い要約 |
|
|
27
|
+
| 3 | ハイライト | 注目すべき変更を数点。意図に紐づく「なぜ」を添えて先に立てる |
|
|
28
|
+
| 4 | 変更一覧(What's Changed) | range 内の変更を網羅的に列挙。意図に紐づくものは「なぜ」付き、紐づかないものは薄い行(落差の可視化) |
|
|
29
|
+
| 5 | コントリビュータ(あれば) | range 内の貢献者。素材(git author)が取れる場合のみ |
|
|
30
|
+
|
|
31
|
+
- セクション 1–4 を基本構成とする。順序を入れ替えない(タイトル → 概要 → ハイライト → 変更一覧の「読み物」順を github-releases 風体裁の核とする)。
|
|
32
|
+
- セクション 3(ハイライト)と 4(変更一覧)は、SKILL.md が照合で「注目」と判断したものをハイライトへ、それ以外を変更一覧へ置く(本ルールが照合し直さない)。
|
|
33
|
+
- セクション 4 では、意図に紐づかないコミットを**黙って捨てず**薄い1行で残す。
|
|
34
|
+
- セクション 5 は素材(git author)が無ければ省く(空見出しを作らない)。
|
|
35
|
+
|
|
36
|
+
## 不変条件
|
|
37
|
+
|
|
38
|
+
- git・canonical を読み直さない・変更しない(読み取り・照合は SKILL.md、書き込みは派生ディレクトリへの SKILL.md の Write の責務)。
|
|
39
|
+
- タイトル → 概要 → ハイライト → 変更一覧の「読み物」順を崩さない(github-releases 風体裁の核)。
|
|
40
|
+
- 意図に紐づくコミットの「なぜ」と、紐づかないコミットの薄い行を、ともに落とさず配置する(落差を消さない)。
|
|
41
|
+
- 素材に無い成果・背景を、体裁を整えるために足さない。
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# format 選択手順(format 引数の解釈・委譲規律)
|
|
2
|
+
|
|
3
|
+
`intent-release-note` skill が、利用者の指定した format 引数を解釈し、対応する出力構造ルールへ委譲するための正本。SKILL.md は手順と報告形式のみを持ち、「どの format 引数をどの出力構造ルールへ委譲するか」は本ルールを参照する。本ルールは **委譲規律のみ**を持ち、出力構造そのもの(節構成・カテゴリ・並び)は持たない(それは `format-changelog.md` / `format-github-releases.md` の責務であり、二重管理しない・AD24)。
|
|
4
|
+
|
|
5
|
+
## posture(format を本体にハードコードせず rules へ委譲する)
|
|
6
|
+
|
|
7
|
+
target format を SKILL.md 本体へハードコードしない。format の選択は本ルールで解釈し、選ばれた出力構造の組み立ては該当 format ルールへ委譲する。format ルールを増やしたいときは出力構造ルールを足し、本ルールの委譲表に1行加えるだけで済むようにする。
|
|
8
|
+
|
|
9
|
+
## format 引数の解釈と委譲
|
|
10
|
+
|
|
11
|
+
利用者が `/intent-release-note` に与えた format 引数を、次のとおり解釈し委譲する。
|
|
12
|
+
|
|
13
|
+
| format 引数 | 委譲先(出力構造ルール) | 体裁 |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `changelog`(または同義の指定) | `rules/format-changelog.md` | Keep a Changelog 風(種類別カテゴリ) |
|
|
16
|
+
| `github-releases`(または同義の指定) | `rules/format-github-releases.md` | GitHub Releases 風(物語+変更一覧) |
|
|
17
|
+
| 無指定(既定) | `rules/format-changelog.md`(既定 format) | 既定を用い、**どの format で生成したかを出力に明示する** |
|
|
18
|
+
|
|
19
|
+
- format 引数で一意に format が確定したら、対話補完は行わない(利用者への問い返しに依存せず、既定で一意化する)。
|
|
20
|
+
- 既定 format(無指定時)は `changelog` とし、生成物の冒頭で「format = changelog(既定)」のように、どの format を用いたかを明示する。
|
|
21
|
+
|
|
22
|
+
## 委譲後の責務分担
|
|
23
|
+
|
|
24
|
+
- 本ルール: どの format を使うかを確定し、該当 format ルールへ「素材(照合済みコミット群=紐づくコミットの『なぜ』付き + 紐づかないコミットの薄い行)」を渡す。
|
|
25
|
+
- 委譲先(format-* ルール): 受け取った素材を、その format の出力構造(セクション・カテゴリ・並び)へ流し込む。git 読み・照合は行わない(SKILL.md の責務)。
|
|
26
|
+
|
|
27
|
+
## 不変条件
|
|
28
|
+
|
|
29
|
+
- 出力構造(節・カテゴリ・並び)を本ルールに書かない(format-* の責務。二重管理しない)。
|
|
30
|
+
- target format を SKILL.md 本体へハードコードしない(本ルールで選択し委譲する・AD24)。
|
|
31
|
+
- 既定 format を用いたときは、どの format で生成したかを必ず出力に明示する。
|
|
32
|
+
- format の選択に独自の機械スコアリング・閾値を持ち込まない(引数の素直な解釈と既定のみ)。
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# source scope 解釈手順(git range の解釈・read-only)
|
|
2
|
+
|
|
3
|
+
`intent-release-note` skill が、利用者の指定した範囲(git range)を解釈し、その範囲のコミットを read-only で読み取るための正本。SKILL.md は手順と報告形式のみを持ち、「range をどう解釈し、どの read-only git コマンドで読むか」は本ルールを参照する。本ルールは git 履歴を**読むだけ**であり、git の状態(commit / tag / branch / working tree)も canonical な `.intent/*.md` も一切変更しない(書き込みは `.intent/release-note/` 配下のみ、かつ SKILL.md の責務)。
|
|
4
|
+
|
|
5
|
+
## posture(独自パーサを持たず git を読んで解釈する)
|
|
6
|
+
|
|
7
|
+
range の解釈とコミットの読み取りは、独自のパーサ・スキーマ・索引を持たず、read-only git コマンドの出力を直接読んで行う。新しい構造を導入せず、git のコミットメッセージ・タグ・日時をそのまま素材として扱う。
|
|
8
|
+
|
|
9
|
+
## range の解釈(引数 + 既定 + fallback)
|
|
10
|
+
|
|
11
|
+
利用者が `/intent-release-note` に与えた range 引数を起点に、次のとおり対象範囲を解釈する。
|
|
12
|
+
|
|
13
|
+
| 入力 | 解釈すること | 解決 |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| range 無指定 | 既定範囲を用いる | **直近 tag〜HEAD**(直近の到達可能タグから HEAD まで)。`git describe --tags --abbrev=0` で直近 tag を求め、`<tag>..HEAD` を対象とする |
|
|
16
|
+
| `<from>..<to>` 指定 | 明示された範囲を用いる | 与えられた `<from>..<to>` をそのまま対象とする |
|
|
17
|
+
|
|
18
|
+
- 引数で範囲が一意に確定したら、対話補完は行わない(不要な問いを足さない。利用者への問い返しに依存せず、既定 + fallback で一意化する)。
|
|
19
|
+
|
|
20
|
+
## 異常系(Fail-Soft と明示エラー)
|
|
21
|
+
|
|
22
|
+
| 状況 | 振る舞い |
|
|
23
|
+
|---|---|
|
|
24
|
+
| 直近 tag が存在せず既定範囲が解決できない | **fallback**: 全履歴(最初のコミット〜HEAD)を対象とし、「tag が無いため全履歴を対象にした」旨を出力に注記する(Fail-Soft)。指定があればその範囲へ fallback する |
|
|
25
|
+
| 与えられた range 引数が不正(解釈不能) | **明示エラー**: range が解釈できない旨を返し、release note を生成しない(誤った範囲で出力しない) |
|
|
26
|
+
| 対象 range にコミットが1件も無い | 空である旨を出力に明示し、canonical / git を一切変更しない |
|
|
27
|
+
|
|
28
|
+
## read-only git コマンドの allowlist(書き込み厳禁)
|
|
29
|
+
|
|
30
|
+
range の解決とコミット読み取りには、次の **read-only コマンドのみ**を用いる。
|
|
31
|
+
|
|
32
|
+
- 許可(読み取り用法のみ): `git log` / `git tag`(一覧のみ。`-a`/`-m` 等の作成用法は不可)/ `git describe` / `git rev-list` / `git rev-parse` / `git show`。
|
|
33
|
+
- **禁止(一切叩かない)**: `git commit` / `git tag <name>`(作成)/ `git push` / `git fetch --prune 以外の書き込み` / `git checkout` / `git switch` / `git reset` / `git restore` / `git merge` / `git rebase` / `git cherry-pick` / その他 working tree・ref・remote を変更する操作。
|
|
34
|
+
|
|
35
|
+
git の状態を変更しないこと(INV16)。本ルールは range を解決し読み取る素材を SKILL.md へ渡すだけであり、照合・format 写像・出力先 Write は行わない。
|
|
36
|
+
|
|
37
|
+
## 不変条件
|
|
38
|
+
|
|
39
|
+
- git を読み直すだけで変更しない(read-only。書き込みは SKILL.md の `.intent/release-note/` への Write の責務)。
|
|
40
|
+
- 既定 range(直近 tag〜HEAD)・引数 range・fallback・不正エラーの解釈規律を崩さない。
|
|
41
|
+
- read-only allowlist の外のコマンドを足さない(書き込み系を導入しない)。
|
|
42
|
+
- range の解釈に独自の機械スコアリング・閾値を持ち込まない(照合は SKILL.md の Step 3 の責務であり、本ルールは範囲解決のみ)。
|