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,62 @@
|
|
|
1
|
+
# Mapping: packet → cc-sdd
|
|
2
|
+
|
|
3
|
+
選んだ packet 1つを cc-sdd の下書きへ変換する規則。`intent-export-cc-sdd` skill が使う。これは export ターゲット別マッピングの1つ(cc-sdd 用)。別ターゲット(OpenSpec 等)を足す場合は `rules/map-<target>.md` を追加し、対応する `intent-export-<target>` skill を作る(縫い目)。
|
|
4
|
+
|
|
5
|
+
## 入力範囲(厳守 / 情報源契約)
|
|
6
|
+
|
|
7
|
+
- 読むのは **対象 packet 1つ** と **`.intent/intent-compass.md` の Invariants / Anti-direction** のみ。
|
|
8
|
+
- Intent Tree 全文・他 packet は**読まない**。全体方向が必要なときのみ Tree の L0–L1 を**要約として**ピンポイント参照する(本文転記は不可)。
|
|
9
|
+
- これにより cc-sdd へ渡る情報量を 1 packet 相当に抑える(トークン爆発を防ぐ)。
|
|
10
|
+
|
|
11
|
+
## 出力(3ファイルの下書き / 本体は作らない)
|
|
12
|
+
|
|
13
|
+
下書きは packet ごとのディレクトリ `.intent/cc-sdd/<packetスラッグ>/` 配下に書く(スラッグの導出は次節「出力レイアウト」)。
|
|
14
|
+
|
|
15
|
+
### `.intent/cc-sdd/<packetスラッグ>/requirements.md`
|
|
16
|
+
- cc-sdd の `/kiro-spec-init` に投入する **Project Description 本文**(凝縮テキスト)。
|
|
17
|
+
- 含めるもの: (a) 誰の課題か、(b) 現状、(c) 何を変えたいか / In・Out scope / 守るべき invariant / parent intent。
|
|
18
|
+
- **必須見出し(出力契約)**: `## Source Packet`・`## Parent Intent`・`## Invariants` の3見出しを必ず含める。`## Source Packet` の値は packet 名の**正確な転記**とする(このディレクトリがどの packet に属するかを同定する錨)。
|
|
19
|
+
- 情報源は対象 packet(Why/Scope/Expected Behavior/Safety)と compass の Invariants に限定する。
|
|
20
|
+
|
|
21
|
+
### `.intent/cc-sdd/<packetスラッグ>/design.md`
|
|
22
|
+
- cc-sdd の design 生成時の**見落とし防止ヒント(箇条書き)**。本体ではない。
|
|
23
|
+
- 由来: packet の Scope/Non-scope/Rollback + compass の技術制約 Invariant。観点は責務境界・依存方向・副作用・移行/ロールバック・リスク・技術制約(compass Invariants のうち技術スタック・基盤・ライセンス制約があれば、cc-sdd の design 技術選定が逸脱しないようヒントに転記)。
|
|
24
|
+
|
|
25
|
+
### `.intent/cc-sdd/<packetスラッグ>/tasks.md`
|
|
26
|
+
- 先頭に **「Intent 由来の制約」セクション**(parent intent / invariant / Anti-direction 要約)を置く。
|
|
27
|
+
- その後に cc-sdd の tasks 生成チェック項目(characterization test / migration slice / 各タスクの invariant 参照)。
|
|
28
|
+
- 由来: packet の Validation/Rollback + parent intent + compass の Invariants/Anti-direction。
|
|
29
|
+
|
|
30
|
+
## 出力レイアウト(スラッグ規則と衝突規則)
|
|
31
|
+
|
|
32
|
+
### スラッグ規則(決定的)
|
|
33
|
+
|
|
34
|
+
packet 名からディレクトリ名(スラッグ)を以下の順で**決定的に**導出する。同じ packet 名は常に同じスラッグになる。
|
|
35
|
+
|
|
36
|
+
1. NFC 正規化する。
|
|
37
|
+
2. 前後の空白を trim する。
|
|
38
|
+
3. ASCII 大文字を小文字にする。
|
|
39
|
+
4. 空白とパスに危険な文字(`/ \ : * ? " < > |`)を `-` に置換する。
|
|
40
|
+
5. 連続する `-` を1つに圧縮する。
|
|
41
|
+
6. 先頭・末尾の `-` を除去する。
|
|
42
|
+
|
|
43
|
+
- 非 ASCII 文字(日本語等)はそのまま保持する。
|
|
44
|
+
- 結果が空文字列になる場合はスラッグを `unnamed-packet` とし、その旨を利用者に告知する。
|
|
45
|
+
|
|
46
|
+
### 衝突規則
|
|
47
|
+
|
|
48
|
+
- スラッグが既存ディレクトリと一致し、かつそのディレクトリの requirements.md の `## Source Packet` 見出しが**異なる** packet 名を指す場合のみ衝突とする。`-2` から始まる連番を付与して別名を割り当て、packet 名 → ディレクトリ名の対応を利用者に告知する。黙って上書きしない。
|
|
49
|
+
- `## Source Packet` が**同一** packet 名を指す場合は衝突ではなく再 export であり、同じディレクトリの下書きをその場で更新する。
|
|
50
|
+
|
|
51
|
+
## impl への伝播(戦略X)
|
|
52
|
+
|
|
53
|
+
- tasks ヒントは「**個々のタスクに紐づく invariant 参照**」の粒度で書く。
|
|
54
|
+
- 狙い: cc-sdd が生成する本体 `tasks.md` の各タスクへ parent intent と invariant が**転記される**こと。これにより、別セッションで `.intent/` を読まずに起動される impl サブエージェントも、cc-sdd 成果物(tasks.md)経由で invariant / Anti-direction を参照できる。
|
|
55
|
+
- **責任分界**: intent-planner の責務は「転記されやすい構造でヒントを渡す」ところまで。実際の転記は cc-sdd の tasks 生成に委ねる(cc-sdd の挙動には依存しない)。完全転記は**保証ではなく、構造で確率を最大化**する。
|
|
56
|
+
|
|
57
|
+
## 不変条件
|
|
58
|
+
|
|
59
|
+
- cc-sdd の requirements/design/tasks の**本体を完成させない**(下書き・ヒントまで)。
|
|
60
|
+
- tasks ヒントは必ず parent intent と invariant への参照を含む。
|
|
61
|
+
- **他 packet のディレクトリへは書き込まない**(書き込み先は対象 packet のスラッグ配下のみ)。
|
|
62
|
+
- cc-sdd の skill には介入しない。
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: intent-export-openspec
|
|
3
|
+
description: 選んだ packet 1つを、トークンを浪費せず OpenSpec へ渡せる proposal 下書き + delta spec ヒントに変換する。OpenSpec の本体生成は侵さない。続行指示時に /opsx:propose を起動できる。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
allowed-tools: Read, Write, Glob, Grep, AskUserQuestion, Skill, Bash
|
|
6
|
+
argument-hint: <対象 packet 名(任意)>
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# intent-export-openspec Skill
|
|
10
|
+
|
|
11
|
+
## Core Mission
|
|
12
|
+
- **Success Criteria**:
|
|
13
|
+
- 対象 packet 1つを OpenSpec の proposal 下書き(Why/What Changes/Impact)+ delta spec ヒントに変換している
|
|
14
|
+
- 入力を対象 packet ファイル + compass のプロジェクト普遍 Invariants/Anti-direction に限定し、Tree/Compass 全文を OpenSpec へ転記していない
|
|
15
|
+
- delta ヒントが parent intent / invariant 参照を持ち、impl への伝播構造になっている
|
|
16
|
+
- 出力主役が自然言語案内で、続行指示時に /opsx:propose を起動できる
|
|
17
|
+
- 出力先を `.intent/openspec/` に閉じ、`.intent/cc-sdd/` には触れていない
|
|
18
|
+
- アプリケーションコードを一切変更していない
|
|
19
|
+
|
|
20
|
+
## Execution Steps
|
|
21
|
+
|
|
22
|
+
### Step 1: 対象 packet を1つに絞る
|
|
23
|
+
- `.intent/packets/index.md` を読み、active packet の候補を提示する。index.md が不在の場合は `.intent/packets/active/` 配下の frontmatter から直接候補一覧を構成して継続し、index の再生成を促す。`.intent/packets/` 自体が不在(または `active/` が空)なら「先に `/intent-packets` を実行」を案内して停止する。
|
|
24
|
+
- 引数で packet が指定されていればそれを、なければ候補から優先順位や利用者確認で1つに絞り、確定した対象 packet のファイル(`.intent/packets/active/` 配下)のみを読む(全 packet ファイルの丸読みをしない)。
|
|
25
|
+
- **draft ガード**: 確定した対象 packet の `state` が draft の場合、AskUserQuestion で「active 化して export を続行するか」を確認し、利用者が承認したら frontmatter の `state` を active へ更新して `index.md` を再生成してから続行する(確認なしに draft のまま export しない。export が canonical を書き換えるのはこの active 化に限る)。
|
|
26
|
+
- `.intent/mode.local.md`(無ければ旧 `.intent/mode.md`)の mode 状態を読む。無ければ standard 既定で続行し告知する。
|
|
27
|
+
|
|
28
|
+
### Step 1.5: enforcement ゲート(writeback 鮮度検査)
|
|
29
|
+
- Step 1 で読んだ `.intent/mode.md` の `## Enforcement(ユーザー管理)` セクションから `enforcement` の値を確認する。off・未記載・不正値(mode.md 不在を含む)なら本検査を行わず、現行どおり Step 1.6 へ続行する。
|
|
30
|
+
- remind または gate のとき、Bash で `node .intent/scripts/intent-check.mjs` を実行し(読み取り専用スクリプト。ファイルの作成・変更・削除を行わない)、stdout に従う。
|
|
31
|
+
- **判定行の解釈規則**: 停止判断は stdout 1行目の判定行の `block=` のみを正とする(再導出・独自解釈をしない)。警告の要否は `result=stale` または `pending>0` で決める。`result=not-applicable` のときも判定行の `pending=` の値をそのまま使う。
|
|
32
|
+
- gate かつ `block=yes` のとき: 根拠(pending の packet 名・経過コミット数/閾値。intent-check の2行目以降の人間可読行をそのまま引用する)を提示して export を停止し、`/intent-writeback` の実行を案内する。続けて AskUserQuestion で「それでも export を続行するか」を確認し、利用者が明示的に続行を指示したときのみ、警告を提示したうえで export を実行する(誤検知時の逃げ道)。
|
|
33
|
+
- remind かつ違反検出(`result=stale` または `pending>0`)のとき: 同じ根拠を警告として提示し、停止せず続行する。
|
|
34
|
+
- intent-check 自体が実行不可(Bash 不可・スクリプト不在・exit 2)のときのみ: staleness を not-applicable として扱い、`.intent/deltas.md` の pending な Delta エントリ(`- Status: pending` を持つもの)を Read/Grep で確認し、その結果を `pending` として上と同じ分岐に入る。
|
|
35
|
+
|
|
36
|
+
### Step 1.6: drift 照合(drift-watch)
|
|
37
|
+
- Step 1 で読んだ `.intent/mode.md` の `## Drift-watch(ユーザー管理)` セクションから `drift-watch` の値を確認する。`on` でないとき(off・未記載・不正値・セクション不在・mode.md 不在を含む)は本照合を行わず、現行どおり Step 1.7 へ続行する(現行動作とバイト等価)。
|
|
38
|
+
- `on` のときのみ、`rules/drift-export-check.md` を読み、適用する。対象 packet の proposal/delta ヒント × compass(North Star / Anti-direction / Invariants)の照合・抵触の名指し提示・drift-log への `stage: export` エントリの append・outcome の利用者判定での確定は、すべて rule の手順に委ねる(ここに手順を複製しない)。
|
|
39
|
+
- この照合は **warn のみ・export を停止しない**(停止できるのは Step 1.5 の enforcement ゲートだけ。drift-watch は誤検知前提のため止めない)。
|
|
40
|
+
- 3関所の順序と直交: **enforcement(手続き・停止しうる, Step 1.5) → drift-watch(方向・停止しない, Step 1.6) → Open Questions(期限・停止しない, Step 1.7)**。検査対象が直交する(手続き / 方向 / 期限)。
|
|
41
|
+
|
|
42
|
+
### Step 1.7: 未回答 Open Questions の確認
|
|
43
|
+
- `rules/export-questions.md` を読み、適用する。
|
|
44
|
+
|
|
45
|
+
### Step 1.8: OpenSpec 前提の preflight 照合(warn のみ・停止しない)
|
|
46
|
+
- **リポジトリ直下の `openspec/` ディレクトリ**(OpenSpec ツールの目印)の有無を read-only で観測する(Read/Glob。`intent-check.mjs` 等の機械検査に寄せない)。**`.intent/openspec/`(本スキル自身の下書き出力先)とは別物**であり、出力先を前提目印に誤認しない。
|
|
47
|
+
- リポジトリ直下 `openspec/` が**不在**のとき: OpenSpec が導入されていない可能性を **warn** する。「OpenSpec 前提(リポジトリ直下の `openspec/`)が見当たらない。OpenSpec を導入するか、読める成果物が目的なら format 軸の射影(読める Spec への出口)も選べる」と案内する(出口の選び方は `rules/export-route.md` の出口判定レーンに従う。本 SKILL から他 export/射影スキルのコマンド名は名指ししない)。**下書き生成は止めない**(Step 2 以降へ続行する)。
|
|
48
|
+
- リポジトリ直下 `openspec/` が**存在**するとき: 何も出さず Step 2 へ続行する(従来どおり・warn 無し)。
|
|
49
|
+
- この照合は **warn のみ・export を停止しない**(停止できるのは Step 1.5 の enforcement ゲートだけ。preflight は drift-watch と同じ誤検知前提で止めない=`openspec/` を後から入れる経路を潰さない)。OpenSpec の入口契約 `/opsx:propose` は read-only で観測できないため、リポジトリ直下 `openspec/` を導入の代理目印とする。
|
|
50
|
+
|
|
51
|
+
### Step 2: マッピング規則を適用する
|
|
52
|
+
- `rules/map-openspec.md` を読み、適用する。
|
|
53
|
+
- 入力は対象 packet ファイル1つ(Safety / Invariants の packet 固有 invariant を含む)+ `.intent/intent-compass.md` のプロジェクト普遍 Invariants/Anti-direction のみ(Tree 全文・他 packet は読まない。方向が要る場合のみ Tree L0–L1 を要約参照)。
|
|
54
|
+
|
|
55
|
+
### Step 3: 下書きを生成する
|
|
56
|
+
- 下書きは packet ごとのディレクトリ `.intent/openspec/<スラッグ>/` 配下に書く。スラッグの導出と衝突時の扱いは `rules/map-openspec.md` の「出力レイアウト」節に従う。多 packet を続けて export しても他 packet のディレクトリを上書きしない。
|
|
57
|
+
- `.intent/openspec/<スラッグ>/proposal.md` に proposal 下書き(`## Why` / `## What Changes` / `## Impact`)を書く。`/opsx:propose` に投入できる最小かつ常に有効な「変更記述」テキストを冒頭から導出できる形にする。
|
|
58
|
+
- `.intent/openspec/<スラッグ>/spec-delta.md` に delta spec ヒント skeleton(`## ADDED Requirements` 既定 + 条件付き `## MODIFIED Requirements` / `## REMOVED Requirements`、`### Requirement: <name>` / `#### Scenario: <name>` の骨格)を書く。
|
|
59
|
+
- OpenSpec の本体は完成させない。delta はヒント skeleton までに留め、突き合わせ・完成は OpenSpec 側(`/opsx:propose` 以降)に委ねる(INV4)。proposal/delta には parent intent と invariant 参照を必ず残す。
|
|
60
|
+
- 下書きの生成を終えたら、export 記録を **packet 単位の分割ファイル** `.intent/export-log/<packet-slug>.md` へ書く(CONTRACT「append-only 記録の分割・archive 規約」に従う。cc-sdd と openspec はどちらも同じ分割規約で各 packet のファイルへ書くため、旧来の「target 横断で共有する単一ログ」末尾への並行追記衝突は分割で構造的に消える)。`<packet-slug>` は packet 名から既存スラッグ規則(`intent-packets/rules/packet-format.md`)で導出する(新採番・連番を作らない)。ファイルには scaffold と同じテーブルヘッダ(`| packet | exported_at | commit |`)+ `| <packet 名> | <export 日時(ISO 8601 UTC)> | <コミットハッシュ> |` の1行を書く(既存ファイルがあれば行を追記し、過去の行は消さない)。コミットハッシュは Bash で `git rev-parse --short HEAD`(読み取り専用)で取得し、取れない場合は `-`。`.intent/export-log/` ディレクトリが無ければ作る。
|
|
61
|
+
- 続けて旧 `.intent/export-log.md` を**生成 active ミラー**として再生成する: `.intent/export-log/*.md` の全データ行を `exported_at` 昇順に連結し、scaffold と同じヘッダ + 全行で上書きする(分割ファイルが正本・ミラーは派生で手編集しない)。これにより単一ファイルを読む既存経路(status / validate / writeback / intent-check)が壊れない。読み手横断追随が完結する後続スライス(wire)でミラーは fold される。
|
|
62
|
+
|
|
63
|
+
### Step 4: 受け渡しを案内する(自然言語主導)
|
|
64
|
+
- 出力の主役は自然言語案内: 対象 packet の `.intent/openspec/<スラッグ>/proposal.md` と `spec-delta.md` のパスを示し、「このまま OpenSpec に渡してよいか」を確認する。
|
|
65
|
+
- 利用者が続行を指示したら、対象 packet の `.intent/openspec/<スラッグ>/proposal.md` から最小の変更記述を読み、それを引数として `/opsx:propose` を起動する(`Skill` を使う。利用者にコピペを強制しない)。
|
|
66
|
+
- フォールバックとして、`/opsx:propose` 用のコピー可能な変更記述ブロックも併記する(主ではない)。
|
|
67
|
+
- **代行は `/opsx:propose` の起動まで**。その後の apply / sync / archive 等の後続ワークフローは OpenSpec 側に従い、自動で突き進まない。
|
|
68
|
+
- **戻り先の明示(writeback フェーズの入口)**: 案内の末尾に、OpenSpec 実装が一巡したら(実装の現実から学びが出たら)`/intent-writeback` で canonical へ戻すことを一行添える。実装後の学びを packet ファイルへ Evidence 直書きして済ませず、必ず writeback(delta 経由)を通す。これは「実装前の起草(compass/packets が canonical を直接書く)」と「実装後の逆抽出(writeback で delta 経由)」のフェーズ境界を利用者に明示するための案内。
|
|
69
|
+
|
|
70
|
+
## Output Description
|
|
71
|
+
- 対象 packet の `.intent/openspec/<スラッグ>/{proposal, spec-delta}.md` の下書き(`/opsx:propose` 投入用 proposal + delta ヒント skeleton)
|
|
72
|
+
- `.intent/export-log.md` への export 記録1行(追記)
|
|
73
|
+
- draft を active 化した場合の対象 packet ファイルの `state` 更新と `.intent/packets/index.md` の再生成(該当なしの場合は省略)
|
|
74
|
+
- 未回答 `[export まで]` Question の確認結果(提示した問いと利用者判断。該当なしの場合は省略)
|
|
75
|
+
- OpenSpec へ渡してよいかの確認(自然言語案内・主)
|
|
76
|
+
- `/opsx:propose` 用コピーブロック(フォールバック・従)
|
|
77
|
+
- 実装前に確認すべき点
|
|
78
|
+
- 実装が一巡したあとの戻り先案内(`/intent-writeback` で canonical へ。packet への Evidence 直書きで済ませない)
|
|
79
|
+
|
|
80
|
+
## Safety & Fallback
|
|
81
|
+
- `.intent/packets/` が不在(または `active/` が空)なら停止して `/intent-packets` を案内する。
|
|
82
|
+
- index.md 不在は停止せず、`active/` 配下から直接候補を構成して継続し、index の再生成を促す。
|
|
83
|
+
- canonical への書き込みは draft ガードの active 化(`state` 更新 + `index.md` 再生成)のみで、利用者の承認を得たときに限る。intent-tree / intent-compass / packet 本文は書き換えない。
|
|
84
|
+
- mode.md 不在は停止せず standard 既定で続行し告知する。
|
|
85
|
+
- enforcement の検査は fail-open: intent-check が実行不可でも export を止めない。停止するのは enforcement が gate で判定行が `block=yes` のとき、または実行不可フォールバックで gate かつ pending を検出したときのみで、いずれの場合も利用者の明示続行で実行できる。
|
|
86
|
+
- Open Questions の確認は停止ではなく確認であり、明示続行で export できる。
|
|
87
|
+
- OpenSpec の proposal / delta spec の本体を完成させない(下書き・ヒント skeleton まで)。
|
|
88
|
+
- `/opsx:propose` 以降の OpenSpec ワークフロー(apply / sync / archive 等)を自動起動しない。
|
|
89
|
+
- 出力先は `.intent/openspec/` に閉じ、`.intent/cc-sdd/` には書き込まない。
|
|
90
|
+
- アプリケーションコードは変更しない(INV6。他 skill の起動は INV6 と別概念であり許される)。
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Drift Export Check(export 水際照合)
|
|
2
|
+
|
|
3
|
+
`/intent-export-openspec` の Step 1.6 で使う、対象 packet の design/tasks ヒント × compass の照合ロジック。`drift-watch: on` のときだけ走る(off / 未記載 / 不正値は何もしない)。enforcement ゲート(Step 1.5・停止しうる)の後・Open Questions 確認(Step 1.7・停止しない)の前に挟み、OpenSpec へ渡す直前――逆戻りが効かなくなる直前――で compass の方向から外れていないかを警告する。
|
|
4
|
+
|
|
5
|
+
## 照合の根拠は compass
|
|
6
|
+
|
|
7
|
+
- **照合の根拠は `.intent/intent-compass.md` の North Star / Anti-direction / Invariants** にする。export の段階では compass が既に存在するため、ここでは型カタログ(`.intent/drift-patterns.md`)ではなく compass を根拠にする(discover の地形診断は compass も packet もまだ無いため型カタログを根拠にする。export はその姉妹工程で、根拠が compass である点が違い)。
|
|
8
|
+
- 水際照合は**誤検知前提**。compass の要素に「抵触した」ことは逸脱の確定ではない。妥当な設計を誤って拾うこと(false-positive)を最初から織り込み、空振りも含めて記録する。
|
|
9
|
+
- **この照合は方向の関所であり、停止しない**。enforcement ゲート(手続きの関所・停止しうる)とは検査対象が直交する。drift の検知で export を止めることはしない(停止できるのは Step 1.5 の enforcement ゲートだけ)。
|
|
10
|
+
|
|
11
|
+
## 手順
|
|
12
|
+
|
|
13
|
+
1. **入力を取得する**
|
|
14
|
+
- 対象 packet の **design/tasks ヒント生成内容**(いま export が生成しようとしている下書きの中身)を入力にする。
|
|
15
|
+
- `.intent/intent-compass.md` の **North Star** / **Anti-direction** / **Invariants**(プロジェクト普遍 Invariant)を読む。
|
|
16
|
+
- **compass 不在 / 未記入のとき**: 水際照合をスキップし、その旨を利用者に告知する(停止しない / drift-log にも書かない)。以降の手順は実行しない。
|
|
17
|
+
|
|
18
|
+
2. **design/tasks ヒントを compass と照合する**
|
|
19
|
+
- 生成しようとしている design/tasks ヒントを、compass の **Invariants**(壊してはいけない制約に抵触しないか)・**Anti-direction**(避けると決めた方向へ寄っていないか)・**North Star**(最終状態から逸れていないか)に照らす。
|
|
20
|
+
- これは**意味的な照合**であって機械判定ではない。誤検知前提で、疑わしければ拾う。
|
|
21
|
+
|
|
22
|
+
3. **抵触があるとき**
|
|
23
|
+
- 利用者に**警告のみ提示する**――**export を停止しない**。何に抵触したか(どの Invariant / Anti-direction / North Star か)と、design/tasks ヒントのどの部分が外れているかを名指しする。
|
|
24
|
+
- `drift-log.md` へ1エントリ append する(後述の append 手順)。値は:
|
|
25
|
+
- `pattern: <該当する drift-patterns の id | uncatalogued:<短い名> | ->`(特定できれば id、カタログ外の実逸脱なら `uncatalogued:<短い名>`、判別できなければ `-`)
|
|
26
|
+
- `stage: export`
|
|
27
|
+
- `packet: <対象 packet 名>`
|
|
28
|
+
- `mechanism: compass-anti-direction`(Anti-direction に抵触したとき)または `compass-invariant`(Invariant に抵触したとき。どちらの compass 要素に抵触したかで選ぶ)
|
|
29
|
+
- `outcome: caught`(**下書き**。drift-watch の推定であり、確定は利用者の `user-verdict` と後述の判定で決まる)
|
|
30
|
+
- `user-verdict: unjudged`
|
|
31
|
+
- `recorded_at: <ISO 8601>`
|
|
32
|
+
- `commit: <短縮ハッシュ | ->`
|
|
33
|
+
- `note: <1〜2行>`(何に抵触し、何を警告したか)
|
|
34
|
+
- 複数箇所が抵触したら、抵触ごとに1エントリずつ append する。
|
|
35
|
+
|
|
36
|
+
4. **outcome は利用者判定で確定する(下書きの解決)**
|
|
37
|
+
- `outcome` は手順3で `caught` を**下書き**しただけであり、最終値は利用者の判定で決まる:
|
|
38
|
+
- 利用者が警告を容れて design を引き戻したとき → `caught`(捕捉成功・効いた系)
|
|
39
|
+
- 利用者が無視してそのまま通したとき → `missed`(防げず通った・効かなかった系)
|
|
40
|
+
- 設計が実際には妥当で誤検知だったとき → `false-positive`(誤検知だった・効かなかった系)
|
|
41
|
+
- `user-verdict` が確定値を裏づける: 妥当な指摘なら `valid` / 誤検知なら `false-alarm` / 未判定なら `unjudged`。利用者が未判定でも `unjudged` のまま記録・集計対象になる。
|
|
42
|
+
|
|
43
|
+
## drift-log への append 手順
|
|
44
|
+
|
|
45
|
+
- **分割形で書く(CONTRACT「append-only 記録の分割・archive 規約」)**: drift-log は事象由来なので、単一 `drift-log.md` 末尾へ追記せず **日付+slug 単位の分割ファイル** `drift-log/<date>-<slug>.md` へ1エントリ書く。`<date>` は recorded_at の日付、`<slug>` は pattern(事象)を既存スラッグ規則(`intent-packets/rules/packet-format.md`)で導出する(新採番・連番を作らない)。別事象が別ファイルを触るため末尾衝突が原理的に消える。既存エントリは書き換え・削除しない(**append-only**)。
|
|
46
|
+
- **9キーを固定順で必ず全部書く**: `pattern` → `stage` → `packet` → `mechanism` → `outcome` → `user-verdict` → `recorded_at` → `commit` → `note`。9キーのうち1つでも欠けたエントリは書かない。
|
|
47
|
+
- **recorded_at**: 記録時刻を ISO 8601 で書く(transaction time)。
|
|
48
|
+
- **commit**: `git rev-parse --short HEAD` の結果を書く。非リポジトリ・git CLI 不在などで取得できないときは `-` とする(fail-open。記録は続行する)。
|
|
49
|
+
- **`drift-log/` ディレクトリが不在のとき**: ディレクトリを作ってから分割ファイルを書く。旧単一 `drift-log.md` が残っていても読み手は共存して読める(移行は本スライスの migration が担う)。
|
|
50
|
+
- エントリ書式は `.intent/drift-log.md` の「エントリ書式」節の見本(`### drift-log entry`)に従う。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Export Questions Check
|
|
2
|
+
|
|
3
|
+
export 実行前に、未回答の `[export まで]` 付き Open Questions を確認する手順。`/intent-export-openspec` の Step 1.7 で使う。対話はすべて利用者への確認として行う(確認の手段は SKILL.md の規約に従う)。
|
|
4
|
+
|
|
5
|
+
## 検出
|
|
6
|
+
|
|
7
|
+
- `.intent/intent-tree.md` と `.intent/intent-compass.md` の Open Questions 節を読み、`[export まで]` を含む問いを検出する。節に残っている問い = 未回答として扱う。
|
|
8
|
+
- 検出対象はこの2ファイルのみ。問いの正本は両ファイルの Open Questions 節であり、`.intent/packets/plan.md` の Deferred は意図的見送りの記録であって問いではないため対象外。
|
|
9
|
+
- **enforcement 設定(`.intent/mode.md` の Enforcement セクション)は参照しない**(Step 1.5 の enforcement ゲートとは独立に動作する)。
|
|
10
|
+
|
|
11
|
+
## 手順
|
|
12
|
+
|
|
13
|
+
1. **検出ゼロの場合(タグ規約を持たない旧 scaffold を含む)**
|
|
14
|
+
- 何も提示せず、次のステップへ進む(挙動変化なし)。
|
|
15
|
+
|
|
16
|
+
2. **検出ありの場合**
|
|
17
|
+
- 検出した問いの一覧を提示する。
|
|
18
|
+
- 「回答してから export するか、このまま続行するか」を利用者に確認する。
|
|
19
|
+
- これは停止ではなく確認である。利用者が明示的に続行を指示したら export を実行する。
|
|
20
|
+
|
|
21
|
+
## 規律
|
|
22
|
+
|
|
23
|
+
- コードを変更しない。
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Mapping: packet → OpenSpec
|
|
2
|
+
|
|
3
|
+
選んだ packet 1つを OpenSpec の proposal 下書き + delta spec ヒントへ変換する規則。`intent-export-openspec` skill が使う。これは export ターゲット別マッピングの1つ(OpenSpec 用)。別ターゲット(cc-sdd 等)は `rules/map-<target>.md` を追加し、対応する `intent-export-<target>` skill を作る(縫い目)。`map-cc-sdd` は変更しない。
|
|
4
|
+
|
|
5
|
+
## 入力範囲(厳守 / 情報源契約)
|
|
6
|
+
|
|
7
|
+
- 読むのは **対象 packet 1つ** と **`.intent/intent-compass.md` の Invariants / Anti-direction** のみ。
|
|
8
|
+
- Intent Tree 全文・他 packet は**読まない**。全体方向が必要なときのみ Tree の L0–L1 を**要約として**ピンポイント参照する(本文転記は不可)。
|
|
9
|
+
- これにより OpenSpec へ渡る情報量を 1 packet 相当に抑える(トークン爆発を防ぐ)。
|
|
10
|
+
- 生成物(proposal / delta)に**他 packet・Intent Tree 本文を引用/転記しない**。出典は対象 packet と compass に限定する。
|
|
11
|
+
|
|
12
|
+
## 出力(2ファイルの下書き / 本体は作らない)
|
|
13
|
+
|
|
14
|
+
下書きは packet ごとのディレクトリ `.intent/openspec/<packetスラッグ>/` 配下に書く(スラッグの導出は次節「出力レイアウト」)。OpenSpec の入口契約(`/opsx:propose <自然言語の変更記述>`、proposal の Why/What Changes/Impact、delta spec の ADDED/MODIFIED/REMOVED + `### Requirement:` / `#### Scenario:`)に**片方向で**合わせる。OpenSpec 内部実装には依存しない。
|
|
15
|
+
|
|
16
|
+
### `.intent/openspec/<packetスラッグ>/proposal.md`
|
|
17
|
+
|
|
18
|
+
OpenSpec の `/opsx:propose` に渡す **proposal 下書き**。3つの見出しを必ず含める。
|
|
19
|
+
|
|
20
|
+
- `## Why` — packet の intent / Why を写し、**parent intent**(この packet が仕える上位の狙い)を明示する。なぜ今この変更が必要かを述べる。
|
|
21
|
+
- `## What Changes` — packet の deliverables / Scope を**箇条書き**で列挙する。compass の **Anti-direction** はこの節の中で **out-of-scope(やらないこと)として明示**する。
|
|
22
|
+
- `## Impact` — この変更が影響する spec / 契約と、守るべき制約。compass の **Invariants** を写し、影響範囲(触れる契約・能力)と invariant を並べる。
|
|
23
|
+
- **primary 出力**: `/opsx:propose` に投入できる**最小かつ常に有効な変更記述**テキストを proposal 冒頭から導出できる形で書く(proposal の構造化はその上の付加価値)。
|
|
24
|
+
- 情報源は対象 packet(Why/Scope/Expected Behavior/Safety)と compass の Invariants / Anti-direction に限定する。
|
|
25
|
+
|
|
26
|
+
### `.intent/openspec/<packetスラッグ>/spec-delta.md`
|
|
27
|
+
|
|
28
|
+
OpenSpec の delta spec の **ヒント skeleton**(本体ではない)。
|
|
29
|
+
|
|
30
|
+
- packet の受け入れ条件 / Expected Behavior を `### Requirement: <name>`(**normative な SHALL / MUST 文**)と `#### Scenario: <name>`(**GIVEN / WHEN / THEN**)の骨格へ対応づける。
|
|
31
|
+
- 見出し構文(`### Requirement:` / `#### Scenario:`)を**正確に seed** し、OpenSpec の validate に通る構造へ誘導する。
|
|
32
|
+
- 振り分け規則は次節「delta の振り分け」に従う。
|
|
33
|
+
- 本体は完成させない。突き合わせ・完成は OpenSpec 側(`/opsx:propose` 以降)に委ねる(INV4)。
|
|
34
|
+
|
|
35
|
+
## delta の振り分け(ADDED / MODIFIED / REMOVED)
|
|
36
|
+
|
|
37
|
+
- **既定**: packet の受け入れ条件はすべて `## ADDED Requirements` に置く。
|
|
38
|
+
- **条件付き**: packet の **Scope** または compass の **Anti-direction** が既存の能力・振る舞いの**変更/廃止を明示的に参照している場合のみ**、`## MODIFIED Requirements` / `## REMOVED Requirements` に「**変更対象の能力名 + 変更方向**」のヒントを置く。
|
|
39
|
+
- MODIFIED / REMOVED は変更対象の同定ヒントに留め、既存 spec との突き合わせ・確定は OpenSpec 側に委ねる。明示参照がなければ MODIFIED / REMOVED は置かない。
|
|
40
|
+
|
|
41
|
+
## 出力レイアウト(スラッグ規則と衝突規則)
|
|
42
|
+
|
|
43
|
+
### スラッグ規則(決定的)
|
|
44
|
+
|
|
45
|
+
packet 名からディレクトリ名(スラッグ)を以下の順で**決定的に**導出する。同じ packet 名は常に同じスラッグになる。この規則は `packet-format.md` および `map-cc-sdd` のスラッグ規則と**同一**である(export ターゲット間で出力先導出を揃える)。
|
|
46
|
+
|
|
47
|
+
1. NFC 正規化する。
|
|
48
|
+
2. 前後の空白を trim する。
|
|
49
|
+
3. ASCII 大文字を小文字にする。
|
|
50
|
+
4. 空白とパスに危険な文字(`/ \ : * ? " < > |`)を `-` に置換する。
|
|
51
|
+
5. 連続する `-` を1つに圧縮する。
|
|
52
|
+
6. 先頭・末尾の `-` を除去する。
|
|
53
|
+
|
|
54
|
+
- 非 ASCII 文字(日本語等)はそのまま保持する。
|
|
55
|
+
- 結果が空文字列になる場合はスラッグを `unnamed-packet` とし、その旨を利用者に告知する。
|
|
56
|
+
|
|
57
|
+
### 衝突規則
|
|
58
|
+
|
|
59
|
+
- スラッグが既存ディレクトリと一致し、かつそのディレクトリの proposal.md が指す packet が**異なる** packet 名を指す場合のみ衝突とする。`-2` から始まる連番を付与して別名を割り当て、packet 名 → ディレクトリ名の対応を利用者に告知する。黙って上書きしない。
|
|
60
|
+
- **同一** packet 名を指す場合は衝突ではなく再 export であり、同じディレクトリの下書きをその場で更新する。
|
|
61
|
+
|
|
62
|
+
## intent 伝播(OpenSpec が生成する成果物へ届かせる)
|
|
63
|
+
|
|
64
|
+
- proposal の `## Why` に **parent intent** を、`## Impact` に **invariant** を明示し、OpenSpec が生成する成果物(spec / 設計 / タスク)へ取り込まれやすい構造で渡す。
|
|
65
|
+
- compass の **Invariants** を OpenSpec の **normative 文(SHALL / MUST)** と `## Impact` の制約へ落とし込む。delta の `### Requirement:` にも invariant が関わる場合はその制約を normative 文として seed する。
|
|
66
|
+
- 狙い: OpenSpec の change から実装へ進む段階でも parent intent と invariant が効き続け、局所最適防止が OpenSpec 経由でも蒸発しないこと。
|
|
67
|
+
- **責任分界**: intent-planner の責務は「**渡す内容の構造のみ**で parent intent / invariant を伝播する」ところまで。OpenSpec の内部実装には介入しない。実際の取り込みは OpenSpec 側に委ねる(OpenSpec の挙動には依存しない)。完全な取り込みは**保証ではなく、構造で確率を最大化**する。
|
|
68
|
+
|
|
69
|
+
## 不変条件
|
|
70
|
+
|
|
71
|
+
- OpenSpec の proposal / delta spec の**本体を完成させない**(下書き・ヒント skeleton まで)。delta の完成は `/opsx:propose` 以降に委ねる(INV4)。
|
|
72
|
+
- proposal の `## Why` / `## Impact` は必ず parent intent と invariant への参照を含む。
|
|
73
|
+
- 生成物に他 packet・Intent Tree 本文を引用/転記しない(情報源は対象 packet + compass に限定)。
|
|
74
|
+
- **他 packet のディレクトリへは書き込まない**(書き込み先は対象 packet のスラッグ配下のみ)。
|
|
75
|
+
- OpenSpec の skill / 内部実装には介入しない。出力先は `.intent/openspec/` に閉じ、`.intent/cc-sdd/` には触れない。
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: intent-from-spec
|
|
3
|
+
description: 利用者が渡した自然言語仕様書(PRD・設計仕様・機能仕様・issue・ユーザーストーリー)を read-only で読み、明示されていない意図候補を抽出し、既存の物差しに照らして沈黙をギャップとして表出し、load-bearing で定性優先づけして omission recap を提示する内向きの取り込みスキル。抽出はすべて Assumptions(仮説)であり、出力は `.intent/spec-ingest/` 配下の派生物に限定し canonical な成果物は一切変更しない。
|
|
4
|
+
allowed-tools: Read, Glob, Grep, Write
|
|
5
|
+
argument-hint: 取り込む自然言語仕様書のテキスト(ファイルパス指定または本文の貼り付け)
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# intent-from-spec Skill
|
|
9
|
+
|
|
10
|
+
## Core Mission
|
|
11
|
+
- **Success Criteria**:
|
|
12
|
+
- 利用者が渡した自然言語仕様書(PRD・設計仕様・機能仕様・issue・ユーザーストーリーなど一般的な開発仕様書のテキスト)を read-only で読み、目的・成果・能力・不変則・制約・anti-direction・暗黙の前提の意図候補を抽出している。抽出したすべての候補を Assumptions(推測された意図)として標識し、canonical(確定した意図)と混在させない(R1.1 / R1.2)
|
|
13
|
+
- ソースコード・実行トレース・テスト結果を意図抽出の入力に用いない。入力は利用者が指定した自然言語仕様書のテキストに限定する(R1.4)
|
|
14
|
+
- 仕様書に含まれる技術要求・セキュリティ要求などの守るべき制約を取りこぼさず Compass の Invariants 候補として拾い、その行き先を Invariants に限定する(steering(tech.md)/design への反映は下流に委ねる。R1.5 / R1.6)
|
|
15
|
+
- 入力として仕様書テキストが与えられていないとき、抽出を行わず、入力すべき仕様書を利用者に求めて終了する(fail-fast。R1.3)
|
|
16
|
+
- 既存の物差し(`validate-checks.md` の検査カタログ・`decision-slots.md` の共通コアスロット)に仕様書を照らし、埋まらない項目をギャップとして列挙する。各ギャップがどのカテゴリ・どのスロットの沈黙かを観測可能な形で示し、確定欠陥でなく仮説として提示する(R2.1 / R2.2 / R2.3)
|
|
17
|
+
- ギャップを提示している間も処理を停止せず、警告・気づきの提示に留める(drift-watch と同 stance。R2.4)
|
|
18
|
+
- 抽出物・ギャップを load-bearing(落ちると後続の正しさを損なう種類か)で定性的に仕分けし、high の項目を low と区別できる形で提示する。判定は `decision-slots.md` の「前倒し/遅延ドア」列を読んで写すだけで、数理ソルバー・数値スコア・閾値を持たない(R3.1 / R3.2 / R3.3)
|
|
19
|
+
- 「何を照合し(枠の提示)・何が埋まらなかったか」を omission recap として要約し、再確認を促す(R4.1)
|
|
20
|
+
- 承認された項目のみを canonical な Intent 構造へ載せる対象とし、未承認項目は Assumptions のまま破棄せず保持する。canonical への自動反映は行わず、昇格は利用者の人手コピーに委ねる(R4.2 / R4.3 / R4.4)
|
|
21
|
+
- 出力は `.intent/spec-ingest/` 配下の派生物に限定し、canonical な `.intent/*.md`・アプリケーションコード・入力仕様書を一切変更しない(read-only。R5.2)。命名規約 `intent-*` に従い、外部 spec ツール・kiro-* 開発環境を変更しない(R5.6)
|
|
22
|
+
|
|
23
|
+
## Execution Steps
|
|
24
|
+
|
|
25
|
+
### Step 1: 入力(自然言語仕様書テキスト)の存在を確認する(fail-fast)
|
|
26
|
+
- 利用者が `/intent-from-spec` を実行したとき、まず取り込む自然言語仕様書のテキスト(ファイルパス指定または本文の貼り付け)が与えられているかを確認する。
|
|
27
|
+
- 仕様書テキストが与えられていない場合は、**何も書き込まず**に入力の不在を明示し、取り込む仕様書(パス指定または貼り付け)を渡すよう利用者に求めて終了する(fail-fast。R1.3)。この時点では `.intent/spec-ingest/` 配下に一切書き込まない。
|
|
28
|
+
- ソースコード・実行トレース・テスト結果は意図抽出の入力に**用いない**。それらからの意図逆算は behavior-unknown モードの code→Intent が担う別経路であり、本スキルの対象外である(R1.4)。
|
|
29
|
+
- 物差しの正本(`intent-validate/rules/validate-checks.md`・`intent-packets/rules/decision-slots.md`)と canonical な `.intent/*.md`(あれば intent-tree / compass / mode)は後続 Step で read-only に参照する。無くても停止しない(紐づけ不能な箇所は不在を明示する)。
|
|
30
|
+
|
|
31
|
+
### Step 2: 4 つの rules に委譲して抽出・照合・仕分け・recap する
|
|
32
|
+
- 本スキルは独自の抽出・照合・判定・採点ロジックを持たない。各観点の正確な読み取り・転記・紐づけ規則は以下 4 つの rules に委譲する(相対パスで参照)。各 rules が指定する正確な見出し・転記先・ID 体系に従い、抽出候補をすべて Assumptions として標識し、物差しは読むだけで再実装せず、欠落・未観測は推測で埋めず明示する。
|
|
33
|
+
- `rules/extract-intent.md` — 仕様書テキストを読み、目的/成果/能力/不変則/制約/anti-direction/暗黙の前提の7カテゴリの意図候補を抽出する。全候補を Assumptions として標識し、各候補を転記先(intent-tree の L0–L4 Assumptions / compass の Invariants・Anti-direction・Decision Rules)が一意に決まる見出し・粒度で書き出す。技術/セキュリティ要求などの守るべき制約は取りこぼさず compass の Invariants 候補へ拾い、その行き先を Invariants に限定する(tech.md/design への反映は output に含めない=下流委譲。R1.1 / R1.2 / R1.4 / R1.5 / R1.6 / R5.1)。
|
|
34
|
+
- `rules/gap-readout.md` — `validate-checks.md` の安定 kebab-case 検査 ID と `decision-slots.md` の共通コア8スロット ID を**読み取り**、入力仕様書に照らして埋まらない項目をギャップとして列挙する。各ギャップがどの物差しの沈黙か(ID 紐づけ)・どのカテゴリ/スロットの沈黙か(観測可能な根拠)を示し、確定欠陥でなく仮説として提示する。独自の検査 ID・スロット ID を新しく定義しない。spec-ingest は提案者(proposer)であり受理ゲートではないため、仕様書の沈黙からスロット該当を**推論してよいが、確定はしない**(validate と別 posture)。処理を止めず warn のみ(R2.1 / R2.2 / R2.3 / R2.4)。
|
|
35
|
+
- `rules/load-bearing.md` — gap-readout がスロット ID に紐づけたギャップ・意図候補について、`decision-slots.md` の**「前倒し/遅延ドア」列**を読んで写すだけで high/low を定性仕分けする。「前倒し」=high(落ちると危険)、「遅延可」=low。数理ソルバー・数値スコア・閾値を持たず、判別軸を新たに発明しない。スロット ID に紐づけられない項目は load-bearing 不明として不在を明示する。high を low と観測可能に区別して提示し、low も切り捨てず保持する(R3.1 / R3.2 / R3.3)。
|
|
36
|
+
- `rules/omission-recap.md` — 「照合した枠(何を読んだか)/埋まった箇所/埋まらなかった箇所(沈黙)/照合できなかった箇所(不在)」を一覧として要約し、「沈黙の沈黙」(AI が網羅を匂わせ人間が探索を止める不作為エラー)を避ける。gap-readout が紐づけた既存 ID をそのまま引き再定義しない。承認項目のみ canonical 昇格の対象とし、未承認は Assumptions のまま保持、昇格は利用者が承認項目を手で discover / compass の対話へ持ち込む人手コピーであることを案内する(機械ハンドオフを持たない。R4.1 / R4.2 / R4.3 / R4.4)。
|
|
37
|
+
|
|
38
|
+
### Step 3: 派生ビューを最後に `.intent/spec-ingest/` へ書き込む(全置換・派生)
|
|
39
|
+
- すべての抽出・照合・仕分け・recap が終わってから、**最後に** `.intent/spec-ingest/spec-ingest.md` を**全置換**で書き込む(再生成の冪等性)。canonical な `.intent/*.md`(intent-tree / compass 等)・steering(tech.md)・design・入力仕様書には一切書き込まない。
|
|
40
|
+
- ビュー冒頭に、本ビューが派生(derived)・再生成可能であり・正本ではなく・Git 非追跡であること、および記載された意図候補・ギャップ・load-bearing 度がすべて Assumptions(仮説)であり利用者の承認まで暫定であることを明示する(R1.2)。
|
|
41
|
+
- 出力は extract-intent の転記先見出しに従い、人が intent-tree の Assumptions / compass の各ブロックへ 1:1 で写せる粒度で構成する(昇格の継ぎ目を人手に保つ)。
|
|
42
|
+
|
|
43
|
+
## Output Description
|
|
44
|
+
- `.intent/spec-ingest/spec-ingest.md`(派生・再生成可能・Git 非追跡。正本ではなく全項目が Assumptions である旨をビュー冒頭に明示)。内容は次を含む:
|
|
45
|
+
- **意図候補(抽出)**: extract-intent の output contract に従い、目的/成果/能力候補(→ intent-tree L0–L4 Assumptions)・Invariants 候補(→ compass Invariants、技術/セキュリティ制約を含む)・Anti-direction 候補(→ compass Anti-direction)・暗黙前提候補(→ intent-tree Assumptions / compass Decision Rules)を、転記先が一意に決まる見出しで提示。各候補に抽出根拠(仕様書のどの記述/沈黙からか)を併記。
|
|
46
|
+
- **ギャップ(沈黙)**: gap-readout が `validate-checks.md` / `decision-slots.md` の ID に紐づけたギャップを、どのカテゴリ/スロットの沈黙かとともに仮説として列挙。
|
|
47
|
+
- **load-bearing 仕分け**: high の項目を low と区別して提示(high を先頭にまとめる等)。スロットに紐づけ不能なものは load-bearing 不明として明示。
|
|
48
|
+
- **omission recap**: 照合した枠/埋まった箇所/埋まらなかった箇所/照合できなかった箇所の一覧と、承認項目を利用者が discover / compass へ手で転記する昇格案内。
|
|
49
|
+
- 素材が無いカテゴリ・軸は「該当記述なし(沈黙)/未観測」と明示し省略する(推測で埋めない)。
|
|
50
|
+
|
|
51
|
+
## Safety & Fallback
|
|
52
|
+
- **書込み境界**: 書込み先は `.intent/spec-ingest/` 配下限定である。canonical な `.intent/*.md`(intent-tree / compass / mode 等)・物差しの正本(`validate-checks.md` / `decision-slots.md`)・steering(tech.md)・design・入力仕様書は read-only であり、そこへは作成・変更・削除を一切行わない(frontmatter の `Write` は `.intent/spec-ingest/` 配下への書き込みのためにのみ許可される。R5.2)。
|
|
53
|
+
- **ギャップは仮説(warn のみ・止めない)**: ギャップ・load-bearing 度・意図候補はすべて確定した欠陥/深刻度ではなく Assumptions(仮説)である。提示している間も処理を停止せず、警告・気づきの提示に留める(drift-watch と同 stance。R2.3 / R2.4)。
|
|
54
|
+
- **承認ゲート・昇格は人手**: canonical への反映には利用者の明示的な承認を必須とする。承認項目のみを canonical 昇格の対象とし、未承認項目は破棄せず Assumptions のまま保持する。canonical への自動反映は行わない。昇格は利用者が承認項目を手で discover / compass の対話へ持ち込む人手コピーであり、spec-ingest は discover / compass を呼ばず、discover / compass が spec-ingest の出力を自動で読み込むこともない(機械ハンドオフを持たない=hidden shared ownership を作らない。R4.2 / R4.3 / R4.4)。
|
|
55
|
+
- **物差しを再実装しない**: 検査・スロット検証を自前で実行せず、`validate-checks.md` / `decision-slots.md` の ID カタログと「前倒し/遅延ドア」列を読むだけである。独自の検査 ID・スロット ID・スコアリング・重み付けエンジンを持たない。
|
|
56
|
+
- **外部依存ゼロ**(INV2 / R5.3)。外部パッケージ・AST パーサ・数理ソルバーを導入せず、Node 標準と自然言語ヒューリスティクスに限定し、抽出処理を自然言語のワークフロー内で完結させる。
|
|
57
|
+
- **アプリケーションコードを変更しない**(R5.2)。意図計画フェーズにおいてアプリケーションコードおよび入力された仕様書を変更しない(読み取りのみ)。
|
|
58
|
+
- **命名・外部非変更**: 命名規約 `intent-*` に従い、外部 spec ツール・kiro-* 開発環境を変更しない(R5.6)。
|
|
59
|
+
- **前提不在時**: 入力仕様書テキストが無いとき、何も書き込まず不在を明示し、取り込む仕様書(パス指定または貼り付け)を渡すよう利用者に求めて終了する(fail-fast。R1.3)。
|
|
60
|
+
- **部分欠落時**: 7カテゴリのうち仕様書が沈黙しているもの、物差しのカタログに紐づけ不能なギャップ、スロットに紐づけ不能で load-bearing 不明なものは、当該箇所を「該当記述なし(沈黙)/不在/不明」と明示し省略する(推測で埋めない)。
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 意図候補の抽出手順(read-only・全候補は Assumptions)
|
|
2
|
+
|
|
3
|
+
`intent-from-spec` skill が、利用者の渡した自然言語仕様書(PRD・設計仕様・機能仕様・issue・ユーザーストーリーなど一般的な開発仕様書のテキスト)を読み、明示されていない意図の候補を抽出するための正本。SKILL.md は手順と報告形式のみを持ち、「何を・どのカテゴリで読み取り、どの転記先へ向けて書き出すか」は本ルールを参照する。本ルールは仕様書を**読むだけ**であり、入力仕様書・canonical な `.intent/*.md`・steering(tech.md 等)・design を一切変更しない(書き込みは `.intent/spec-ingest/` 配下のみ)。
|
|
4
|
+
|
|
5
|
+
## posture(提案者であって判定者ではない)
|
|
6
|
+
|
|
7
|
+
本ルールが行うのは LLM 判断のヒューリスティクスによる**抽出(提案)**であり、確定された意図の認定ではない。抽出した候補はすべて**仮説(Assumptions)**であり、利用者が確認・承認するまで暫定として扱う。処理は止めず、警告・気づきの提示に留める(推測された意図は人間がレビューするまで暫定として扱う、というプロダクト不変条件に一貫する)。したがって本ルールは仕様書の記述・沈黙からスロット該当を**推論してよいが、確定はしない**。
|
|
8
|
+
|
|
9
|
+
## 入力の境界(固定)
|
|
10
|
+
|
|
11
|
+
- 入力は利用者が指定した自然言語仕様書のテキストに**限定**する(パス指定または貼り付け)。
|
|
12
|
+
- **ソースコード・実行トレース・テスト結果を意図抽出の入力に用いない**。それらからの意図逆算は behavior-unknown モードの code→Intent が担う別経路であり、本ルールの対象外である。
|
|
13
|
+
- 入力が与えられていないときは抽出を行わず、入力すべき仕様書を利用者に求める(何も書かない)。
|
|
14
|
+
|
|
15
|
+
## 抽出する候補カテゴリ(7種・すべて Assumptions)
|
|
16
|
+
|
|
17
|
+
仕様書テキストを読み、次の7カテゴリの候補を抽出する。各候補には抽出根拠(仕様書のどの記述・どの沈黙から導いたか)を併記する。**抽出したすべての候補を Assumptions(推測された意図)として標識し、canonical(確定した意図)と混在させない。**
|
|
18
|
+
|
|
19
|
+
1. **目的(Purpose)** — このプロダクト/機能は何のために存在するか。
|
|
20
|
+
2. **成果(Desired Outcomes)** — ユーザー・事業・運用・開発体験に起こしたい状態変化。
|
|
21
|
+
3. **能力(Capabilities)** — 成果を支える責務・能力(機能名でなく能力として)。
|
|
22
|
+
4. **不変則(Invariants)** — 絶対に壊してはいけない振る舞い・API・データ・UX・運用制約。技術要求・セキュリティ要求などの「守るべき制約」を含む。
|
|
23
|
+
5. **制約(Constraints)** — 守るべき技術/セキュリティ/運用上の要求・前提条件。
|
|
24
|
+
6. **anti-direction** — 進んではいけない方向、避けるべき局所最適。
|
|
25
|
+
7. **暗黙の前提(Implicit Assumptions)** — 仕様書が明示せず前提にしている事項、およびそこから導かれる判断。
|
|
26
|
+
|
|
27
|
+
> 技術要求・セキュリティ要求などの守るべき制約は、明示されていても暗黙でも**取りこぼさない**。これらは不変則カテゴリへ確実に拾い上げ、下記 output contract の Invariants 候補として書き出す。
|
|
28
|
+
|
|
29
|
+
## output contract(転記先が一意に決まる見出しで書き出す)
|
|
30
|
+
|
|
31
|
+
各候補を、人が転記先へ 1:1 で写せる見出し・粒度で書き出す。見出しは下表の転記先に一意対応させる。本ルールは候補を**書き出すところまで**を責務とし、転記先(canonical な intent-tree / compass、および steering / design)への反映は行わない。承認された候補を利用者が手で discover / compass の対話へ持ち込むことで昇格する(機械ハンドオフを持たない)。
|
|
32
|
+
|
|
33
|
+
| 抽出カテゴリ | 書き出す見出し | 転記先(人手・本ルールでは反映しない) |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| 目的 | `### 目的候補(→ intent-tree L0 Assumptions)` | intent-tree `## Assumptions`(L0: Product Purpose 相当) |
|
|
36
|
+
| 成果 | `### 成果候補(→ intent-tree L1 Assumptions)` | intent-tree `## Assumptions`(L1: Desired Outcomes 相当) |
|
|
37
|
+
| 能力 | `### 能力候補(→ intent-tree L2 Assumptions)` | intent-tree `## Assumptions`(L2: Capabilities 相当) |
|
|
38
|
+
| 不変則 | `### Invariants 候補(→ compass Invariants)` | compass `## Invariants` |
|
|
39
|
+
| 制約 | `### 制約候補(→ compass Invariants)` | compass `## Invariants` |
|
|
40
|
+
| anti-direction | `### Anti-direction 候補(→ compass Anti-direction)` | compass `## Anti-direction` |
|
|
41
|
+
| 暗黙の前提 | `### 暗黙前提候補(→ intent-tree Assumptions / Decision Rules)` | intent-tree `## Assumptions`、および前提から導かれる判断は compass `## Decision Rules` 候補 |
|
|
42
|
+
|
|
43
|
+
- **目的・成果・能力**は intent-tree の対応する L0–L4 レベルの `## Assumptions` 項目へ 1:1 で写せる粒度にする(canonical な L0–L4 本体には書かない)。
|
|
44
|
+
- **anti-direction** は compass の `## Anti-direction` ブロックへ写せる粒度にする。
|
|
45
|
+
- **暗黙の前提から導かれる判断**は compass の `## Decision Rules` 候補として書き出す(候補であり確定 ADR ではない)。
|
|
46
|
+
- **不変則・制約(技術/セキュリティ要求を含む守るべき制約)は compass の `## Invariants` ブロック候補へ書き出す。** Invariants 候補の行き先は compass の Invariants に**限定**する。
|
|
47
|
+
|
|
48
|
+
## 下流委譲(output に含めないこと)
|
|
49
|
+
|
|
50
|
+
- Invariants 候補が steering(tech.md)や design へ反映されるのは既存の流れ(writeback / export / 人手)が担う。**本ルールの output に tech.md / design への反映は含めない。** 本ルールの責務は Invariants 候補として compass 行きの見出しで記録するところまでに留め、単一正本を保つ。
|
|
51
|
+
- canonical な intent-tree / compass への書き込みも行わない(昇格は承認後に人手)。
|
|
52
|
+
|
|
53
|
+
## 欠落・未観測の扱い
|
|
54
|
+
|
|
55
|
+
- 7カテゴリのうち仕様書が沈黙しているものは、推測で埋めず「該当記述なし(沈黙)」として明示する。沈黙そのものをギャップとして扱うのは gap-readout 側の責務であり、本ルールは抽出できた候補と、抽出できなかったカテゴリの不在を区別して提示する。
|
|
56
|
+
- すべての出力は派生(derived)・再生成可能であり正本ではない旨を明示する。canonical へは書き戻さない。
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# 沈黙のギャップ表出手順(read-only・物差しを読むだけ・ギャップは仮説)
|
|
2
|
+
|
|
3
|
+
`intent-from-spec` skill が、利用者の渡した自然言語仕様書に既存の物差しを照らし、仕様書が**沈黙している箇所**をギャップとして表出するための正本。SKILL.md は手順と報告形式のみを持ち、「どの物差しを・どう読み、どのカテゴリ/スロットの沈黙として紐づけるか」は本ルールを参照する。本ルールは物差しのカタログを**読むだけ**であり、独自の検査 ID・スロット ID を定義しない。判定ロジックの正本は参照先にあり、本ルールはその ID 体系という器を借りて、仕様書が満たさない項目を振り分けるだけである。観測は Read / Glob / Grep に限り、入力仕様書・canonical な `.intent/*.md`・物差しの正本を一切変更しない(書き込みは `.intent/spec-ingest/` 配下のみ)。
|
|
4
|
+
|
|
5
|
+
## posture(提案者であって受理ゲートではない)
|
|
6
|
+
|
|
7
|
+
本ルールの posture を冒頭に明記する。これは隣の `intent-validate` と**別 posture** であり、矛盾ではない。
|
|
8
|
+
|
|
9
|
+
- `intent-packets/rules/decision-slots.md` は「ツール(slot 検証器)は成果物の内容からスロット該当を推論してはならない」と規律する。これは `intent-validate` が**受理ゲート(accept/reject の判定者)**だからである — 判定者が内容から該当を推論すると、宣言されていない事項で着工を止める/通す不当な判定が生じる。
|
|
10
|
+
- `intent-from-spec` は**提案者(proposer)**であって判定者ではない。出力は accept/reject の判定ではなく、人間の確認を必須とする **Assumptions(仮説)**である。
|
|
11
|
+
- したがって本ルールは **spec-ingest は仕様書の沈黙からスロット該当を推論してよいが、確定はしない**。validate が推論を禁じられるのは判定者だからであり、提案者である本ルールが推論するのは規律の例外ではなく、最初から別の posture に立っている。
|
|
12
|
+
- 推論された該当はすべて仮説として標識し、利用者が確認・承認するまで暫定として扱う(推論された意図は人間がレビューするまで暫定として扱う、というプロダクト不変条件に一貫する)。
|
|
13
|
+
|
|
14
|
+
## 読む物差し(ID を定義せず参照する)
|
|
15
|
+
|
|
16
|
+
本ルールは次の2つの既存正本の ID カタログを**読み取る**。ID の値域・発火条件・深刻度は参照先が正であり、本ルールでは複製・再定義しない(「表が正」)。
|
|
17
|
+
|
|
18
|
+
1. **`intent-validate/rules/validate-checks.md` の検査カタログ表** — `ID` 列の安定 kebab-case ID 群(`invariant-conflict` / `anti-direction-violation` / `requirements-smell` / `decision-slot-empty` / `decision-slot-unsown` など)と `深刻度の目安` 列を読む。検査の追加・変更はこの表が正であり、本ルールは ID 列をそのまま引く(再導出しない)。
|
|
19
|
+
2. **`intent-packets/rules/decision-slots.md` の共通コアスロット表** — 全モードで播く8スロットの ID 群(`decision-consistency` / `decision-idempotency` / `decision-error-semantics` / `decision-authz` / `decision-quality-priority` / `decision-fit-criterion` / `decision-exception-flow` / `decision-downstream-trace`)を読む。スロットの区分・閉じ先は参照先が正であり、本ルールはその ID をそのまま引く。
|
|
20
|
+
|
|
21
|
+
> 本ルールが独自の検査 ID/スロット ID を**新しく定義することはない**。上記カタログに無い ID を作らず、観測したギャップを既存 ID へ振り分ける。
|
|
22
|
+
|
|
23
|
+
## ギャップ列挙の手順
|
|
24
|
+
|
|
25
|
+
意図候補の抽出(extract-intent)が完了したら、上記カタログを読み、入力仕様書に照らして**埋まらない項目**をギャップとして列挙する。各ギャップは次の3点を観測可能な形で示す。
|
|
26
|
+
|
|
27
|
+
1. **どの物差しの沈黙か** — `validate-checks.md` の安定 kebab-case ID、または `decision-slots.md` の共通コアスロット ID のどれに対応するかを明示する(参照可能なものは ID に紐づけ、紐づけ不能なものは ID を省略し不在を明示する)。
|
|
28
|
+
2. **どのカテゴリ/スロットの沈黙か** — そのギャップが仕様書のどの不在(どの検査区分・どのスロット)の沈黙に当たるかを観測可能な根拠(仕様書のどの箇所が沈黙しているか)とともに示す。
|
|
29
|
+
3. **仮説としての提示** — 確定した欠陥としてではなく、利用者が確認すべき**仮説**として提示する(「この項目は仕様書が沈黙している疑いがある」)。確定欠陥の認定はしない。
|
|
30
|
+
|
|
31
|
+
### 紐づけの例(ID は参照先カタログから引く)
|
|
32
|
+
|
|
33
|
+
- 仕様書がデータ変更時の整合モデルに沈黙 → `decision-slots.md` の `decision-consistency` スロットの沈黙として紐づけ、仮説提示する。
|
|
34
|
+
- 仕様書が異常入力時の返却契約に沈黙 → `decision-error-semantics` スロットの沈黙。
|
|
35
|
+
- 仕様書がアクセス権限・実行アクターに沈黙 → `decision-authz` スロットの沈黙。
|
|
36
|
+
- 要求記述に曖昧語・主観語・比較級が残る → `validate-checks.md` の `requirements-smell` に紐づけ、引用して利用者の判断に委ねる(言い換えを正本に書き戻さない)。
|
|
37
|
+
- compass Invariants と衝突しうる方向の記述 → `invariant-conflict`、避けるべき方向の記述 → `anti-direction-violation` に紐づけて仮説提示する。
|
|
38
|
+
|
|
39
|
+
> 上記はいずれも例であり、ID の定義そのものではない。値域・発火条件・深刻度は参照先カタログを正とする。
|
|
40
|
+
|
|
41
|
+
## 処理を止めない(warn のみ・drift-watch と同 stance)
|
|
42
|
+
|
|
43
|
+
- ギャップを提示している間も処理を**停止しない**。本ルールは受理ゲートではないため、ギャップの存在で着工や後続を止めず、警告・気づきの提示に留める(drift-watch の「警告のみ・止めない」姿勢と一貫する)。
|
|
44
|
+
- 列挙したギャップはすべて仮説であり、利用者が確認・承認するまで Assumptions のまま保持する。承認も棄却もせず破棄しない。
|
|
45
|
+
|
|
46
|
+
## 「沈黙の沈黙」を避ける(何を照合したかも示す)
|
|
47
|
+
|
|
48
|
+
- 各ギャップを示すだけでなく、**何を照合したか(読んだ物差しの枠)**も提示し、検査した枠自体が見えないことによる不作為エラーを避ける(照合枠と埋まらなかった箇所の要約は omission-recap が担うが、本ルールも紐づけた ID 体系を明示することで「どの器に照らしたか」を観測可能にする)。
|
|
49
|
+
- 参照不能な箇所(カタログに該当 ID が無い・物差しが当該観点を持たない)は推測で埋めず、ID への紐づけを**省略**し不在を明示する。
|
|
50
|
+
|
|
51
|
+
## 出力の扱い
|
|
52
|
+
|
|
53
|
+
- すべての出力は派生(derived)・再生成可能であり正本ではない。canonical な intent-tree / compass へは書き戻さない(昇格は承認後に人手)。
|
|
54
|
+
- 本ルールは物差しの正本(`validate-checks.md` / `decision-slots.md`)を一切変更しない。検査やスロット検証を自前で実行せず、ID カタログを読みに行くだけである。
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# load-bearing 仕分け手順(read-only・表を読むだけ・数値を持たない)
|
|
2
|
+
|
|
3
|
+
`intent-from-spec` skill が、抽出した意図候補と表出したギャップを「落ちると後続の正しさを損なう種類か(load-bearing か)」で定性的に優先づけし、load-bearing 度が高い項目を低い項目と区別できる形で提示するための正本。SKILL.md は手順と報告形式のみを持ち、「何を判別軸として読み、どう high/low へ仕分けるか」は本ルールを参照する。本ルールは判別軸を**新たに発明せず**、既存正本の列を**読んで写すだけ**である。観測は Read / Glob / Grep に限り、入力仕様書・canonical な `.intent/*.md`・物差しの正本を一切変更しない(書き込みは `.intent/spec-ingest/` 配下のみ)。
|
|
4
|
+
|
|
5
|
+
## 判別軸は表を読む操作であって新たな判断ではない
|
|
6
|
+
|
|
7
|
+
本ルールの核は「**`decision-slots.md` の既存列を読んで写す**」ことに尽きる。high/low の軸を本ルールで定義・導出せず、数理ソルバー・数値スコア・閾値を一切持たない。仕分けは表を引く操作であり、新たに重み付けや採点を行うことではない。
|
|
8
|
+
|
|
9
|
+
- スロットごとの load-bearing 度は `intent-packets/rules/decision-slots.md` の**「前倒し/遅延ドア」列**に既に書かれている。本ルールはこの列を**第一の判別軸**として読む。
|
|
10
|
+
- この列は `decision-slots.md` の**共通コアスロット表・全モード別差分表(standard / refactor / behavior-unknown / feature-growth)のすべてに存在する**。したがって、どのスロットを引く場合でもこの列を一意に読める。
|
|
11
|
+
- 「根拠」列は**共通コア表にしか存在しない**。よってこれを判別の主キーにはせず、high と判定した理由を**補足説明**する材料としてのみ用いる(なぜ落ちると危険かの言葉を借りるだけで、high/low の判別そのものは「前倒し/遅延ドア」列で行う)。
|
|
12
|
+
|
|
13
|
+
## 読む列と high/low の対応
|
|
14
|
+
|
|
15
|
+
`decision-slots.md` の「前倒し/遅延ドア」列の値を、そのまま次のように写す。
|
|
16
|
+
|
|
17
|
+
| 「前倒し/遅延ドア」列の値 | load-bearing 度 | 意味 |
|
|
18
|
+
|---------------------------|-----------------|------|
|
|
19
|
+
| 前倒し(一方向・不可逆・セキュリティ/法規制の床) | **high** | 後から覆すと外部影響が大きく、落ちると後続の正しさを損なう。沈黙していると危険 |
|
|
20
|
+
| 遅延可(双方向・局所化でき可逆) | **low** | 双方向に決め直せ可逆で、後から局所的に補える。沈黙していても後続を直接は壊しにくい |
|
|
21
|
+
|
|
22
|
+
- 列の値が「前倒し」で始まるスロットの沈黙は **high**、「遅延可」で始まるスロットの沈黙は **low** とする。これ以上の段階(中間値・数値)を本ルールで導入しない。
|
|
23
|
+
- 「前倒し」「遅延可」の括弧内(一方向/双方向、不可逆/可逆、セキュリティ・法規制の床 など)は、その high/low をなぜそう読むかを表自身が説明している箇所であり、本ルールはその語をそのまま提示理由に引く(再定義しない)。
|
|
24
|
+
|
|
25
|
+
### 写しの例(値は参照先の表から引く)
|
|
26
|
+
|
|
27
|
+
- `decision-authz`(認可)は「前倒し(一方向: セキュリティ/法規制の床)」 → 沈黙は **high**。理由は共通コア表「根拠」列の「不可逆・セキュリティ床」を補足として添える。
|
|
28
|
+
- `decision-consistency`(整合性モデル)は「前倒し(一方向: 後から覆すと外部影響が大きい)」 → 沈黙は **high**。
|
|
29
|
+
- `decision-error-semantics`(エラー意味論)は「遅延可(双方向)」 → 沈黙は **low**。
|
|
30
|
+
- `decision-data-migration`(データ移行・feature-growth)は「前倒し(一方向: 不可逆)」 → 沈黙は **high**。
|
|
31
|
+
|
|
32
|
+
> いずれも参照先の表の値を写した例であって、本ルールでの再判定ではない。値が変わったら参照先の表が正であり、本ルールは追従して読み直すだけである。
|
|
33
|
+
|
|
34
|
+
## ギャップ・意図候補への適用
|
|
35
|
+
|
|
36
|
+
- gap-readout が `decision-slots.md` のスロット ID に紐づけたギャップは、そのスロット行の「前倒し/遅延ドア」列を引いて high/low を付す。スロット ID に紐づけられないギャップ(カタログに該当列が無いもの)は high/low を推測で付けず、**load-bearing 不明**として不在を明示する。
|
|
37
|
+
- 意図候補(extract-intent が拾った invariant・制約・anti-direction 等)も、対応するスロットがあればその行の列を引いて high/low を付す。とりわけ技術/セキュリティ要求由来の Invariants 候補は `decision-authz` 等の「前倒し」スロットに当たることが多く、**high** に寄る。
|
|
38
|
+
- high/low はいずれも**確定した深刻度ではなく仮説**である。利用者が確認・承認するまで Assumptions のまま保持し、本ルールの仕分けで項目を破棄も確定もしない。
|
|
39
|
+
|
|
40
|
+
## high と low を区別して提示する
|
|
41
|
+
|
|
42
|
+
- 提示では high の項目を low の項目と**観測可能に区別**する(例: high を先頭にまとめる、明示ラベルを付すなど)。すべてのギャップを等しく浴びせず、落ちると危険なものから利用者が対処できるようにする。
|
|
43
|
+
- 区別はラベル付けに留め、low を切り捨てない。low も Assumptions として保持し、omission-recap の再確認対象に含める。
|
|
44
|
+
|
|
45
|
+
## 出力の扱い
|
|
46
|
+
|
|
47
|
+
- すべての出力は派生(derived)・再生成可能であり正本ではない。canonical な intent-tree / compass へは書き戻さない(昇格は承認後に人手)。
|
|
48
|
+
- 本ルールは物差しの正本(`decision-slots.md`)を一切変更しない。スコアリングや重み付けエンジンを自前で持たず、「前倒し/遅延ドア」列を読みに行くだけである。
|