raptor-aios 0.1.0
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/CHANGELOG.md +26 -0
- package/LICENSE +21 -0
- package/README.md +315 -0
- package/bin/raptor.js +5 -0
- package/dist/_core/dist/agents/adapters/antigravity.d.ts +9 -0
- package/dist/_core/dist/agents/adapters/antigravity.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/antigravity.js +72 -0
- package/dist/_core/dist/agents/adapters/antigravity.js.map +1 -0
- package/dist/_core/dist/agents/adapters/claude-code.d.ts +9 -0
- package/dist/_core/dist/agents/adapters/claude-code.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/claude-code.js +71 -0
- package/dist/_core/dist/agents/adapters/claude-code.js.map +1 -0
- package/dist/_core/dist/agents/adapters/codex.d.ts +12 -0
- package/dist/_core/dist/agents/adapters/codex.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/codex.js +69 -0
- package/dist/_core/dist/agents/adapters/codex.js.map +1 -0
- package/dist/_core/dist/agents/adapters/copilot.d.ts +12 -0
- package/dist/_core/dist/agents/adapters/copilot.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/copilot.js +71 -0
- package/dist/_core/dist/agents/adapters/copilot.js.map +1 -0
- package/dist/_core/dist/agents/adapters/cursor.d.ts +9 -0
- package/dist/_core/dist/agents/adapters/cursor.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/cursor.js +62 -0
- package/dist/_core/dist/agents/adapters/cursor.js.map +1 -0
- package/dist/_core/dist/agents/adapters/gemini.d.ts +11 -0
- package/dist/_core/dist/agents/adapters/gemini.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/gemini.js +68 -0
- package/dist/_core/dist/agents/adapters/gemini.js.map +1 -0
- package/dist/_core/dist/agents/adapters/human.d.ts +10 -0
- package/dist/_core/dist/agents/adapters/human.d.ts.map +1 -0
- package/dist/_core/dist/agents/adapters/human.js +48 -0
- package/dist/_core/dist/agents/adapters/human.js.map +1 -0
- package/dist/_core/dist/agents/artifact-watcher.d.ts +86 -0
- package/dist/_core/dist/agents/artifact-watcher.d.ts.map +1 -0
- package/dist/_core/dist/agents/artifact-watcher.js +214 -0
- package/dist/_core/dist/agents/artifact-watcher.js.map +1 -0
- package/dist/_core/dist/agents/backup.d.ts +69 -0
- package/dist/_core/dist/agents/backup.d.ts.map +1 -0
- package/dist/_core/dist/agents/backup.js +107 -0
- package/dist/_core/dist/agents/backup.js.map +1 -0
- package/dist/_core/dist/agents/config.d.ts +36 -0
- package/dist/_core/dist/agents/config.d.ts.map +1 -0
- package/dist/_core/dist/agents/config.js +270 -0
- package/dist/_core/dist/agents/config.js.map +1 -0
- package/dist/_core/dist/agents/context-file.d.ts +35 -0
- package/dist/_core/dist/agents/context-file.d.ts.map +1 -0
- package/dist/_core/dist/agents/context-file.js +106 -0
- package/dist/_core/dist/agents/context-file.js.map +1 -0
- package/dist/_core/dist/agents/handoff.d.ts +57 -0
- package/dist/_core/dist/agents/handoff.d.ts.map +1 -0
- package/dist/_core/dist/agents/handoff.js +71 -0
- package/dist/_core/dist/agents/handoff.js.map +1 -0
- package/dist/_core/dist/agents/index.d.ts +32 -0
- package/dist/_core/dist/agents/index.d.ts.map +1 -0
- package/dist/_core/dist/agents/index.js +37 -0
- package/dist/_core/dist/agents/index.js.map +1 -0
- package/dist/_core/dist/agents/keys.d.ts +50 -0
- package/dist/_core/dist/agents/keys.d.ts.map +1 -0
- package/dist/_core/dist/agents/keys.js +91 -0
- package/dist/_core/dist/agents/keys.js.map +1 -0
- package/dist/_core/dist/agents/materialize.d.ts +37 -0
- package/dist/_core/dist/agents/materialize.d.ts.map +1 -0
- package/dist/_core/dist/agents/materialize.js +157 -0
- package/dist/_core/dist/agents/materialize.js.map +1 -0
- package/dist/_core/dist/agents/prompt-builder.d.ts +35 -0
- package/dist/_core/dist/agents/prompt-builder.d.ts.map +1 -0
- package/dist/_core/dist/agents/prompt-builder.js +261 -0
- package/dist/_core/dist/agents/prompt-builder.js.map +1 -0
- package/dist/_core/dist/agents/prompt-markers.d.ts +69 -0
- package/dist/_core/dist/agents/prompt-markers.d.ts.map +1 -0
- package/dist/_core/dist/agents/prompt-markers.js +111 -0
- package/dist/_core/dist/agents/prompt-markers.js.map +1 -0
- package/dist/_core/dist/agents/registry.d.ts +35 -0
- package/dist/_core/dist/agents/registry.d.ts.map +1 -0
- package/dist/_core/dist/agents/registry.js +102 -0
- package/dist/_core/dist/agents/registry.js.map +1 -0
- package/dist/_core/dist/agents/selector.d.ts +33 -0
- package/dist/_core/dist/agents/selector.d.ts.map +1 -0
- package/dist/_core/dist/agents/selector.js +120 -0
- package/dist/_core/dist/agents/selector.js.map +1 -0
- package/dist/_core/dist/agents/slash-materializer.d.ts +63 -0
- package/dist/_core/dist/agents/slash-materializer.d.ts.map +1 -0
- package/dist/_core/dist/agents/slash-materializer.js +131 -0
- package/dist/_core/dist/agents/slash-materializer.js.map +1 -0
- package/dist/_core/dist/agents/types.d.ts +121 -0
- package/dist/_core/dist/agents/types.d.ts.map +1 -0
- package/dist/_core/dist/agents/types.js +10 -0
- package/dist/_core/dist/agents/types.js.map +1 -0
- package/dist/_core/dist/audit/hash.d.ts +4 -0
- package/dist/_core/dist/audit/hash.d.ts.map +1 -0
- package/dist/_core/dist/audit/hash.js +12 -0
- package/dist/_core/dist/audit/hash.js.map +1 -0
- package/dist/_core/dist/audit/index.d.ts +6 -0
- package/dist/_core/dist/audit/index.d.ts.map +1 -0
- package/dist/_core/dist/audit/index.js +6 -0
- package/dist/_core/dist/audit/index.js.map +1 -0
- package/dist/_core/dist/audit/logger.d.ts +77 -0
- package/dist/_core/dist/audit/logger.d.ts.map +1 -0
- package/dist/_core/dist/audit/logger.js +93 -0
- package/dist/_core/dist/audit/logger.js.map +1 -0
- package/dist/_core/dist/audit/query.d.ts +13 -0
- package/dist/_core/dist/audit/query.d.ts.map +1 -0
- package/dist/_core/dist/audit/query.js +57 -0
- package/dist/_core/dist/audit/query.js.map +1 -0
- package/dist/_core/dist/audit/schema.d.ts +455 -0
- package/dist/_core/dist/audit/schema.d.ts.map +1 -0
- package/dist/_core/dist/audit/schema.js +341 -0
- package/dist/_core/dist/audit/schema.js.map +1 -0
- package/dist/_core/dist/audit/validate.d.ts +21 -0
- package/dist/_core/dist/audit/validate.d.ts.map +1 -0
- package/dist/_core/dist/audit/validate.js +139 -0
- package/dist/_core/dist/audit/validate.js.map +1 -0
- package/dist/_core/dist/constitution/core.d.ts +22 -0
- package/dist/_core/dist/constitution/core.d.ts.map +1 -0
- package/dist/_core/dist/constitution/core.js +102 -0
- package/dist/_core/dist/constitution/core.js.map +1 -0
- package/dist/_core/dist/constitution/index.d.ts +2 -0
- package/dist/_core/dist/constitution/index.d.ts.map +1 -0
- package/dist/_core/dist/constitution/index.js +2 -0
- package/dist/_core/dist/constitution/index.js.map +1 -0
- package/dist/_core/dist/extensions/index.d.ts +12 -0
- package/dist/_core/dist/extensions/index.d.ts.map +1 -0
- package/dist/_core/dist/extensions/index.js +12 -0
- package/dist/_core/dist/extensions/index.js.map +1 -0
- package/dist/_core/dist/extensions/integrate.d.ts +69 -0
- package/dist/_core/dist/extensions/integrate.d.ts.map +1 -0
- package/dist/_core/dist/extensions/integrate.js +181 -0
- package/dist/_core/dist/extensions/integrate.js.map +1 -0
- package/dist/_core/dist/extensions/loader.d.ts +24 -0
- package/dist/_core/dist/extensions/loader.d.ts.map +1 -0
- package/dist/_core/dist/extensions/loader.js +73 -0
- package/dist/_core/dist/extensions/loader.js.map +1 -0
- package/dist/_core/dist/extensions/manifest.d.ts +23 -0
- package/dist/_core/dist/extensions/manifest.d.ts.map +1 -0
- package/dist/_core/dist/extensions/manifest.js +176 -0
- package/dist/_core/dist/extensions/manifest.js.map +1 -0
- package/dist/_core/dist/extensions/registry.d.ts +32 -0
- package/dist/_core/dist/extensions/registry.d.ts.map +1 -0
- package/dist/_core/dist/extensions/registry.js +57 -0
- package/dist/_core/dist/extensions/registry.js.map +1 -0
- package/dist/_core/dist/extensions/resolver.d.ts +55 -0
- package/dist/_core/dist/extensions/resolver.d.ts.map +1 -0
- package/dist/_core/dist/extensions/resolver.js +143 -0
- package/dist/_core/dist/extensions/resolver.js.map +1 -0
- package/dist/_core/dist/extensions/types.d.ts +173 -0
- package/dist/_core/dist/extensions/types.d.ts.map +1 -0
- package/dist/_core/dist/extensions/types.js +83 -0
- package/dist/_core/dist/extensions/types.js.map +1 -0
- package/dist/_core/dist/frontmatter/index.d.ts +10 -0
- package/dist/_core/dist/frontmatter/index.d.ts.map +1 -0
- package/dist/_core/dist/frontmatter/index.js +24 -0
- package/dist/_core/dist/frontmatter/index.js.map +1 -0
- package/dist/_core/dist/gates/agent-gates.d.ts +16 -0
- package/dist/_core/dist/gates/agent-gates.d.ts.map +1 -0
- package/dist/_core/dist/gates/agent-gates.js +205 -0
- package/dist/_core/dist/gates/agent-gates.js.map +1 -0
- package/dist/_core/dist/gates/builtin.d.ts +18 -0
- package/dist/_core/dist/gates/builtin.d.ts.map +1 -0
- package/dist/_core/dist/gates/builtin.js +860 -0
- package/dist/_core/dist/gates/builtin.js.map +1 -0
- package/dist/_core/dist/gates/index.d.ts +7 -0
- package/dist/_core/dist/gates/index.d.ts.map +1 -0
- package/dist/_core/dist/gates/index.js +7 -0
- package/dist/_core/dist/gates/index.js.map +1 -0
- package/dist/_core/dist/gates/m7-gates.d.ts +17 -0
- package/dist/_core/dist/gates/m7-gates.d.ts.map +1 -0
- package/dist/_core/dist/gates/m7-gates.js +309 -0
- package/dist/_core/dist/gates/m7-gates.js.map +1 -0
- package/dist/_core/dist/gates/phase-gates.d.ts +18 -0
- package/dist/_core/dist/gates/phase-gates.d.ts.map +1 -0
- package/dist/_core/dist/gates/phase-gates.js +275 -0
- package/dist/_core/dist/gates/phase-gates.js.map +1 -0
- package/dist/_core/dist/gates/runner.d.ts +4 -0
- package/dist/_core/dist/gates/runner.d.ts.map +1 -0
- package/dist/_core/dist/gates/runner.js +64 -0
- package/dist/_core/dist/gates/runner.js.map +1 -0
- package/dist/_core/dist/gates/types.d.ts +36 -0
- package/dist/_core/dist/gates/types.d.ts.map +1 -0
- package/dist/_core/dist/gates/types.js +2 -0
- package/dist/_core/dist/gates/types.js.map +1 -0
- package/dist/_core/dist/hooks/index.d.ts +4 -0
- package/dist/_core/dist/hooks/index.d.ts.map +1 -0
- package/dist/_core/dist/hooks/index.js +4 -0
- package/dist/_core/dist/hooks/index.js.map +1 -0
- package/dist/_core/dist/hooks/runner.d.ts +28 -0
- package/dist/_core/dist/hooks/runner.d.ts.map +1 -0
- package/dist/_core/dist/hooks/runner.js +294 -0
- package/dist/_core/dist/hooks/runner.js.map +1 -0
- package/dist/_core/dist/hooks/runtime.d.ts +65 -0
- package/dist/_core/dist/hooks/runtime.d.ts.map +1 -0
- package/dist/_core/dist/hooks/runtime.js +212 -0
- package/dist/_core/dist/hooks/runtime.js.map +1 -0
- package/dist/_core/dist/hooks/types.d.ts +36 -0
- package/dist/_core/dist/hooks/types.d.ts.map +1 -0
- package/dist/_core/dist/hooks/types.js +23 -0
- package/dist/_core/dist/hooks/types.js.map +1 -0
- package/dist/_core/dist/index.d.ts +21 -0
- package/dist/_core/dist/index.d.ts.map +1 -0
- package/dist/_core/dist/index.js +20 -0
- package/dist/_core/dist/index.js.map +1 -0
- package/dist/_core/dist/manifest/index.d.ts +119 -0
- package/dist/_core/dist/manifest/index.d.ts.map +1 -0
- package/dist/_core/dist/manifest/index.js +125 -0
- package/dist/_core/dist/manifest/index.js.map +1 -0
- package/dist/_core/dist/markers/index.d.ts +47 -0
- package/dist/_core/dist/markers/index.d.ts.map +1 -0
- package/dist/_core/dist/markers/index.js +97 -0
- package/dist/_core/dist/markers/index.js.map +1 -0
- package/dist/_core/dist/mcp/config.d.ts +19 -0
- package/dist/_core/dist/mcp/config.d.ts.map +1 -0
- package/dist/_core/dist/mcp/config.js +114 -0
- package/dist/_core/dist/mcp/config.js.map +1 -0
- package/dist/_core/dist/mcp/index.d.ts +9 -0
- package/dist/_core/dist/mcp/index.d.ts.map +1 -0
- package/dist/_core/dist/mcp/index.js +8 -0
- package/dist/_core/dist/mcp/index.js.map +1 -0
- package/dist/_core/dist/mcp/materializer.d.ts +40 -0
- package/dist/_core/dist/mcp/materializer.d.ts.map +1 -0
- package/dist/_core/dist/mcp/materializer.js +161 -0
- package/dist/_core/dist/mcp/materializer.js.map +1 -0
- package/dist/_core/dist/mcp/targets.d.ts +37 -0
- package/dist/_core/dist/mcp/targets.d.ts.map +1 -0
- package/dist/_core/dist/mcp/targets.js +56 -0
- package/dist/_core/dist/mcp/targets.js.map +1 -0
- package/dist/_core/dist/mcp/types.d.ts +34 -0
- package/dist/_core/dist/mcp/types.d.ts.map +1 -0
- package/dist/_core/dist/mcp/types.js +8 -0
- package/dist/_core/dist/mcp/types.js.map +1 -0
- package/dist/_core/dist/models/analyze.d.ts +131 -0
- package/dist/_core/dist/models/analyze.d.ts.map +1 -0
- package/dist/_core/dist/models/analyze.js +301 -0
- package/dist/_core/dist/models/analyze.js.map +1 -0
- package/dist/_core/dist/models/checklist.d.ts +113 -0
- package/dist/_core/dist/models/checklist.d.ts.map +1 -0
- package/dist/_core/dist/models/checklist.js +159 -0
- package/dist/_core/dist/models/checklist.js.map +1 -0
- package/dist/_core/dist/models/clarify.d.ts +116 -0
- package/dist/_core/dist/models/clarify.d.ts.map +1 -0
- package/dist/_core/dist/models/clarify.js +166 -0
- package/dist/_core/dist/models/clarify.js.map +1 -0
- package/dist/_core/dist/models/impl-log.d.ts +64 -0
- package/dist/_core/dist/models/impl-log.d.ts.map +1 -0
- package/dist/_core/dist/models/impl-log.js +137 -0
- package/dist/_core/dist/models/impl-log.js.map +1 -0
- package/dist/_core/dist/models/index.d.ts +8 -0
- package/dist/_core/dist/models/index.d.ts.map +1 -0
- package/dist/_core/dist/models/index.js +8 -0
- package/dist/_core/dist/models/index.js.map +1 -0
- package/dist/_core/dist/models/plan.d.ts +24 -0
- package/dist/_core/dist/models/plan.d.ts.map +1 -0
- package/dist/_core/dist/models/plan.js +15 -0
- package/dist/_core/dist/models/plan.js.map +1 -0
- package/dist/_core/dist/models/spec.d.ts +23 -0
- package/dist/_core/dist/models/spec.d.ts.map +1 -0
- package/dist/_core/dist/models/spec.js +22 -0
- package/dist/_core/dist/models/spec.js.map +1 -0
- package/dist/_core/dist/models/tasks.d.ts +33 -0
- package/dist/_core/dist/models/tasks.d.ts.map +1 -0
- package/dist/_core/dist/models/tasks.js +78 -0
- package/dist/_core/dist/models/tasks.js.map +1 -0
- package/dist/_core/dist/presets/gates.d.ts +9 -0
- package/dist/_core/dist/presets/gates.d.ts.map +1 -0
- package/dist/_core/dist/presets/gates.js +173 -0
- package/dist/_core/dist/presets/gates.js.map +1 -0
- package/dist/_core/dist/presets/index.d.ts +10 -0
- package/dist/_core/dist/presets/index.d.ts.map +1 -0
- package/dist/_core/dist/presets/index.js +7 -0
- package/dist/_core/dist/presets/index.js.map +1 -0
- package/dist/_core/dist/presets/loader.d.ts +56 -0
- package/dist/_core/dist/presets/loader.d.ts.map +1 -0
- package/dist/_core/dist/presets/loader.js +216 -0
- package/dist/_core/dist/presets/loader.js.map +1 -0
- package/dist/_core/dist/presets/mobile-opinionated.d.ts +3 -0
- package/dist/_core/dist/presets/mobile-opinionated.d.ts.map +1 -0
- package/dist/_core/dist/presets/mobile-opinionated.js +78 -0
- package/dist/_core/dist/presets/mobile-opinionated.js.map +1 -0
- package/dist/_core/dist/presets/registry.d.ts +5 -0
- package/dist/_core/dist/presets/registry.d.ts.map +1 -0
- package/dist/_core/dist/presets/registry.js +14 -0
- package/dist/_core/dist/presets/registry.js.map +1 -0
- package/dist/_core/dist/presets/renderer.d.ts +5 -0
- package/dist/_core/dist/presets/renderer.d.ts.map +1 -0
- package/dist/_core/dist/presets/renderer.js +37 -0
- package/dist/_core/dist/presets/renderer.js.map +1 -0
- package/dist/_core/dist/presets/stacking.d.ts +29 -0
- package/dist/_core/dist/presets/stacking.d.ts.map +1 -0
- package/dist/_core/dist/presets/stacking.js +91 -0
- package/dist/_core/dist/presets/stacking.js.map +1 -0
- package/dist/_core/dist/presets/types.d.ts +22 -0
- package/dist/_core/dist/presets/types.d.ts.map +1 -0
- package/dist/_core/dist/presets/types.js +2 -0
- package/dist/_core/dist/presets/types.js.map +1 -0
- package/dist/_core/dist/prompts/audit-log.d.ts +73 -0
- package/dist/_core/dist/prompts/audit-log.d.ts.map +1 -0
- package/dist/_core/dist/prompts/audit-log.js +73 -0
- package/dist/_core/dist/prompts/audit-log.js.map +1 -0
- package/dist/_core/dist/prompts/index.d.ts +9 -0
- package/dist/_core/dist/prompts/index.d.ts.map +1 -0
- package/dist/_core/dist/prompts/index.js +7 -0
- package/dist/_core/dist/prompts/index.js.map +1 -0
- package/dist/_core/dist/prompts/renderer.d.ts +73 -0
- package/dist/_core/dist/prompts/renderer.d.ts.map +1 -0
- package/dist/_core/dist/prompts/renderer.js +179 -0
- package/dist/_core/dist/prompts/renderer.js.map +1 -0
- package/dist/_core/dist/prompts/resumption.d.ts +59 -0
- package/dist/_core/dist/prompts/resumption.d.ts.map +1 -0
- package/dist/_core/dist/prompts/resumption.js +149 -0
- package/dist/_core/dist/prompts/resumption.js.map +1 -0
- package/dist/_core/dist/skills/config.d.ts +27 -0
- package/dist/_core/dist/skills/config.d.ts.map +1 -0
- package/dist/_core/dist/skills/config.js +102 -0
- package/dist/_core/dist/skills/config.js.map +1 -0
- package/dist/_core/dist/skills/index.d.ts +9 -0
- package/dist/_core/dist/skills/index.d.ts.map +1 -0
- package/dist/_core/dist/skills/index.js +8 -0
- package/dist/_core/dist/skills/index.js.map +1 -0
- package/dist/_core/dist/skills/materializer.d.ts +45 -0
- package/dist/_core/dist/skills/materializer.d.ts.map +1 -0
- package/dist/_core/dist/skills/materializer.js +97 -0
- package/dist/_core/dist/skills/materializer.js.map +1 -0
- package/dist/_core/dist/skills/registry.d.ts +18 -0
- package/dist/_core/dist/skills/registry.d.ts.map +1 -0
- package/dist/_core/dist/skills/registry.js +36 -0
- package/dist/_core/dist/skills/registry.js.map +1 -0
- package/dist/_core/dist/skills/types.d.ts +39 -0
- package/dist/_core/dist/skills/types.d.ts.map +1 -0
- package/dist/_core/dist/skills/types.js +13 -0
- package/dist/_core/dist/skills/types.js.map +1 -0
- package/dist/_core/dist/state/feature.d.ts +58 -0
- package/dist/_core/dist/state/feature.d.ts.map +1 -0
- package/dist/_core/dist/state/feature.js +81 -0
- package/dist/_core/dist/state/feature.js.map +1 -0
- package/dist/_core/dist/state/index.d.ts +8 -0
- package/dist/_core/dist/state/index.d.ts.map +1 -0
- package/dist/_core/dist/state/index.js +6 -0
- package/dist/_core/dist/state/index.js.map +1 -0
- package/dist/_core/dist/state/init-options.d.ts +60 -0
- package/dist/_core/dist/state/init-options.d.ts.map +1 -0
- package/dist/_core/dist/state/init-options.js +74 -0
- package/dist/_core/dist/state/init-options.js.map +1 -0
- package/dist/_core/dist/template/engine.d.ts +7 -0
- package/dist/_core/dist/template/engine.d.ts.map +1 -0
- package/dist/_core/dist/template/engine.js +86 -0
- package/dist/_core/dist/template/engine.js.map +1 -0
- package/dist/_core/dist/template/helpers.d.ts +5 -0
- package/dist/_core/dist/template/helpers.d.ts.map +1 -0
- package/dist/_core/dist/template/helpers.js +59 -0
- package/dist/_core/dist/template/helpers.js.map +1 -0
- package/dist/_core/dist/template/index.d.ts +6 -0
- package/dist/_core/dist/template/index.d.ts.map +1 -0
- package/dist/_core/dist/template/index.js +6 -0
- package/dist/_core/dist/template/index.js.map +1 -0
- package/dist/_core/dist/template/loader.d.ts +36 -0
- package/dist/_core/dist/template/loader.d.ts.map +1 -0
- package/dist/_core/dist/template/loader.js +62 -0
- package/dist/_core/dist/template/loader.js.map +1 -0
- package/dist/_core/dist/template/parser.d.ts +3 -0
- package/dist/_core/dist/template/parser.d.ts.map +1 -0
- package/dist/_core/dist/template/parser.js +234 -0
- package/dist/_core/dist/template/parser.js.map +1 -0
- package/dist/_core/dist/template/types.d.ts +40 -0
- package/dist/_core/dist/template/types.d.ts.map +1 -0
- package/dist/_core/dist/template/types.js +14 -0
- package/dist/_core/dist/template/types.js.map +1 -0
- package/dist/_core/dist/verify/a11y.d.ts +36 -0
- package/dist/_core/dist/verify/a11y.d.ts.map +1 -0
- package/dist/_core/dist/verify/a11y.js +153 -0
- package/dist/_core/dist/verify/a11y.js.map +1 -0
- package/dist/_core/dist/verify/architecture.d.ts +37 -0
- package/dist/_core/dist/verify/architecture.d.ts.map +1 -0
- package/dist/_core/dist/verify/architecture.js +113 -0
- package/dist/_core/dist/verify/architecture.js.map +1 -0
- package/dist/_core/dist/verify/index.d.ts +10 -0
- package/dist/_core/dist/verify/index.d.ts.map +1 -0
- package/dist/_core/dist/verify/index.js +10 -0
- package/dist/_core/dist/verify/index.js.map +1 -0
- package/dist/_core/dist/verify/os-matrix.d.ts +35 -0
- package/dist/_core/dist/verify/os-matrix.d.ts.map +1 -0
- package/dist/_core/dist/verify/os-matrix.js +104 -0
- package/dist/_core/dist/verify/os-matrix.js.map +1 -0
- package/dist/_core/dist/verify/perf.d.ts +43 -0
- package/dist/_core/dist/verify/perf.d.ts.map +1 -0
- package/dist/_core/dist/verify/perf.js +69 -0
- package/dist/_core/dist/verify/perf.js.map +1 -0
- package/dist/_core/dist/verify/stores.d.ts +38 -0
- package/dist/_core/dist/verify/stores.d.ts.map +1 -0
- package/dist/_core/dist/verify/stores.js +57 -0
- package/dist/_core/dist/verify/stores.js.map +1 -0
- package/dist/_core/dist/version.d.ts +8 -0
- package/dist/_core/dist/version.d.ts.map +1 -0
- package/dist/_core/dist/version.js +11 -0
- package/dist/_core/dist/version.js.map +1 -0
- package/dist/_core/dist/workflows/bundled.d.ts +32 -0
- package/dist/_core/dist/workflows/bundled.d.ts.map +1 -0
- package/dist/_core/dist/workflows/bundled.js +254 -0
- package/dist/_core/dist/workflows/bundled.js.map +1 -0
- package/dist/_core/dist/workflows/engine.d.ts +74 -0
- package/dist/_core/dist/workflows/engine.d.ts.map +1 -0
- package/dist/_core/dist/workflows/engine.js +574 -0
- package/dist/_core/dist/workflows/engine.js.map +1 -0
- package/dist/_core/dist/workflows/expressions.d.ts +48 -0
- package/dist/_core/dist/workflows/expressions.d.ts.map +1 -0
- package/dist/_core/dist/workflows/expressions.js +336 -0
- package/dist/_core/dist/workflows/expressions.js.map +1 -0
- package/dist/_core/dist/workflows/index.d.ts +16 -0
- package/dist/_core/dist/workflows/index.d.ts.map +1 -0
- package/dist/_core/dist/workflows/index.js +15 -0
- package/dist/_core/dist/workflows/index.js.map +1 -0
- package/dist/_core/dist/workflows/parser.d.ts +38 -0
- package/dist/_core/dist/workflows/parser.d.ts.map +1 -0
- package/dist/_core/dist/workflows/parser.js +386 -0
- package/dist/_core/dist/workflows/parser.js.map +1 -0
- package/dist/_core/dist/workflows/sdd-flow.d.ts +85 -0
- package/dist/_core/dist/workflows/sdd-flow.d.ts.map +1 -0
- package/dist/_core/dist/workflows/sdd-flow.js +269 -0
- package/dist/_core/dist/workflows/sdd-flow.js.map +1 -0
- package/dist/_core/dist/workflows/types.d.ts +285 -0
- package/dist/_core/dist/workflows/types.d.ts.map +1 -0
- package/dist/_core/dist/workflows/types.js +13 -0
- package/dist/_core/dist/workflows/types.js.map +1 -0
- package/dist/_core/package.json +6 -0
- package/dist/_core/templates/constitution.md.hbs +46 -0
- package/dist/_core/templates/ghaWorkflow.yml.hbs +58 -0
- package/dist/_core/templates/hotfix.md.hbs +39 -0
- package/dist/_core/templates/plan.md.hbs +212 -0
- package/dist/_core/templates/preCommitHook.sh.hbs +30 -0
- package/dist/_core/templates/prePushHook.sh.hbs +45 -0
- package/dist/_core/templates/raptor.yml.hbs +24 -0
- package/dist/_core/templates/spec.md.hbs +127 -0
- package/dist/_core/templates/tasks.md.hbs +71 -0
- package/dist/commands/add-agent.d.ts +22 -0
- package/dist/commands/add-agent.d.ts.map +1 -0
- package/dist/commands/add-agent.js +121 -0
- package/dist/commands/add-agent.js.map +1 -0
- package/dist/commands/add-extension.d.ts +18 -0
- package/dist/commands/add-extension.d.ts.map +1 -0
- package/dist/commands/add-extension.js +83 -0
- package/dist/commands/add-extension.js.map +1 -0
- package/dist/commands/analyze.d.ts +18 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +323 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/approve.d.ts +14 -0
- package/dist/commands/approve.d.ts.map +1 -0
- package/dist/commands/approve.js +116 -0
- package/dist/commands/approve.js.map +1 -0
- package/dist/commands/audit/query.d.ts +23 -0
- package/dist/commands/audit/query.d.ts.map +1 -0
- package/dist/commands/audit/query.js +118 -0
- package/dist/commands/audit/query.js.map +1 -0
- package/dist/commands/audit/show.d.ts +17 -0
- package/dist/commands/audit/show.d.ts.map +1 -0
- package/dist/commands/audit/show.js +53 -0
- package/dist/commands/audit/show.js.map +1 -0
- package/dist/commands/checklist.d.ts +17 -0
- package/dist/commands/checklist.d.ts.map +1 -0
- package/dist/commands/checklist.js +255 -0
- package/dist/commands/checklist.js.map +1 -0
- package/dist/commands/clarify.d.ts +17 -0
- package/dist/commands/clarify.d.ts.map +1 -0
- package/dist/commands/clarify.js +254 -0
- package/dist/commands/clarify.js.map +1 -0
- package/dist/commands/doctor.d.ts +8 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +435 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/extension/add.d.ts +15 -0
- package/dist/commands/extension/add.d.ts.map +1 -0
- package/dist/commands/extension/add.js +93 -0
- package/dist/commands/extension/add.js.map +1 -0
- package/dist/commands/extension/info.d.ts +13 -0
- package/dist/commands/extension/info.d.ts.map +1 -0
- package/dist/commands/extension/info.js +75 -0
- package/dist/commands/extension/info.js.map +1 -0
- package/dist/commands/extension/list.d.ts +10 -0
- package/dist/commands/extension/list.d.ts.map +1 -0
- package/dist/commands/extension/list.js +71 -0
- package/dist/commands/extension/list.js.map +1 -0
- package/dist/commands/extension/remove.d.ts +14 -0
- package/dist/commands/extension/remove.d.ts.map +1 -0
- package/dist/commands/extension/remove.js +49 -0
- package/dist/commands/extension/remove.js.map +1 -0
- package/dist/commands/gate/approve.d.ts +15 -0
- package/dist/commands/gate/approve.d.ts.map +1 -0
- package/dist/commands/gate/approve.js +106 -0
- package/dist/commands/gate/approve.js.map +1 -0
- package/dist/commands/gate/list.d.ts +6 -0
- package/dist/commands/gate/list.d.ts.map +1 -0
- package/dist/commands/gate/list.js +38 -0
- package/dist/commands/gate/list.js.map +1 -0
- package/dist/commands/gate/skip.d.ts +14 -0
- package/dist/commands/gate/skip.d.ts.map +1 -0
- package/dist/commands/gate/skip.js +95 -0
- package/dist/commands/gate/skip.js.map +1 -0
- package/dist/commands/hook/list.d.ts +11 -0
- package/dist/commands/hook/list.d.ts.map +1 -0
- package/dist/commands/hook/list.js +152 -0
- package/dist/commands/hook/list.js.map +1 -0
- package/dist/commands/hook/run.d.ts +16 -0
- package/dist/commands/hook/run.d.ts.map +1 -0
- package/dist/commands/hook/run.js +74 -0
- package/dist/commands/hook/run.js.map +1 -0
- package/dist/commands/hotfix.d.ts +21 -0
- package/dist/commands/hotfix.d.ts.map +1 -0
- package/dist/commands/hotfix.js +216 -0
- package/dist/commands/hotfix.js.map +1 -0
- package/dist/commands/implement.d.ts +19 -0
- package/dist/commands/implement.d.ts.map +1 -0
- package/dist/commands/implement.js +282 -0
- package/dist/commands/implement.js.map +1 -0
- package/dist/commands/init.d.ts +43 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +465 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list-agents.d.ts +12 -0
- package/dist/commands/list-agents.d.ts.map +1 -0
- package/dist/commands/list-agents.js +55 -0
- package/dist/commands/list-agents.js.map +1 -0
- package/dist/commands/mcp/add.d.ts +21 -0
- package/dist/commands/mcp/add.d.ts.map +1 -0
- package/dist/commands/mcp/add.js +119 -0
- package/dist/commands/mcp/add.js.map +1 -0
- package/dist/commands/mcp/list.d.ts +10 -0
- package/dist/commands/mcp/list.d.ts.map +1 -0
- package/dist/commands/mcp/list.js +54 -0
- package/dist/commands/mcp/list.js.map +1 -0
- package/dist/commands/mcp/remove.d.ts +10 -0
- package/dist/commands/mcp/remove.d.ts.map +1 -0
- package/dist/commands/mcp/remove.js +53 -0
- package/dist/commands/mcp/remove.js.map +1 -0
- package/dist/commands/mcp/sync.d.ts +7 -0
- package/dist/commands/mcp/sync.d.ts.map +1 -0
- package/dist/commands/mcp/sync.js +31 -0
- package/dist/commands/mcp/sync.js.map +1 -0
- package/dist/commands/new.d.ts +19 -0
- package/dist/commands/new.d.ts.map +1 -0
- package/dist/commands/new.js +306 -0
- package/dist/commands/new.js.map +1 -0
- package/dist/commands/plan.d.ts +17 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +200 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/preset/add.d.ts +13 -0
- package/dist/commands/preset/add.d.ts.map +1 -0
- package/dist/commands/preset/add.js +66 -0
- package/dist/commands/preset/add.js.map +1 -0
- package/dist/commands/preset/info.d.ts +13 -0
- package/dist/commands/preset/info.d.ts.map +1 -0
- package/dist/commands/preset/info.js +80 -0
- package/dist/commands/preset/info.js.map +1 -0
- package/dist/commands/preset/list.d.ts +10 -0
- package/dist/commands/preset/list.d.ts.map +1 -0
- package/dist/commands/preset/list.js +63 -0
- package/dist/commands/preset/list.js.map +1 -0
- package/dist/commands/preset/remove.d.ts +14 -0
- package/dist/commands/preset/remove.d.ts.map +1 -0
- package/dist/commands/preset/remove.js +60 -0
- package/dist/commands/preset/remove.js.map +1 -0
- package/dist/commands/repair/constitution.d.ts +11 -0
- package/dist/commands/repair/constitution.d.ts.map +1 -0
- package/dist/commands/repair/constitution.js +117 -0
- package/dist/commands/repair/constitution.js.map +1 -0
- package/dist/commands/resync.d.ts +22 -0
- package/dist/commands/resync.d.ts.map +1 -0
- package/dist/commands/resync.js +103 -0
- package/dist/commands/resync.js.map +1 -0
- package/dist/commands/skill/add.d.ts +19 -0
- package/dist/commands/skill/add.d.ts.map +1 -0
- package/dist/commands/skill/add.js +107 -0
- package/dist/commands/skill/add.js.map +1 -0
- package/dist/commands/skill/list.d.ts +10 -0
- package/dist/commands/skill/list.d.ts.map +1 -0
- package/dist/commands/skill/list.js +56 -0
- package/dist/commands/skill/list.js.map +1 -0
- package/dist/commands/skill/remove.d.ts +10 -0
- package/dist/commands/skill/remove.d.ts.map +1 -0
- package/dist/commands/skill/remove.js +47 -0
- package/dist/commands/skill/remove.js.map +1 -0
- package/dist/commands/skill/sync.d.ts +7 -0
- package/dist/commands/skill/sync.d.ts.map +1 -0
- package/dist/commands/skill/sync.js +30 -0
- package/dist/commands/skill/sync.js.map +1 -0
- package/dist/commands/status.d.ts +17 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +265 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/tasks.d.ts +16 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +176 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/trace.d.ts +16 -0
- package/dist/commands/trace.d.ts.map +1 -0
- package/dist/commands/trace.js +113 -0
- package/dist/commands/trace.js.map +1 -0
- package/dist/commands/upgrade.d.ts +20 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +178 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/commands/verify/a11y.d.ts +15 -0
- package/dist/commands/verify/a11y.d.ts.map +1 -0
- package/dist/commands/verify/a11y.js +121 -0
- package/dist/commands/verify/a11y.js.map +1 -0
- package/dist/commands/verify/architecture.d.ts +11 -0
- package/dist/commands/verify/architecture.d.ts.map +1 -0
- package/dist/commands/verify/architecture.js +71 -0
- package/dist/commands/verify/architecture.js.map +1 -0
- package/dist/commands/verify/audit.d.ts +18 -0
- package/dist/commands/verify/audit.d.ts.map +1 -0
- package/dist/commands/verify/audit.js +108 -0
- package/dist/commands/verify/audit.js.map +1 -0
- package/dist/commands/verify/constitution.d.ts +10 -0
- package/dist/commands/verify/constitution.d.ts.map +1 -0
- package/dist/commands/verify/constitution.js +91 -0
- package/dist/commands/verify/constitution.js.map +1 -0
- package/dist/commands/verify/os-matrix.d.ts +14 -0
- package/dist/commands/verify/os-matrix.d.ts.map +1 -0
- package/dist/commands/verify/os-matrix.js +108 -0
- package/dist/commands/verify/os-matrix.js.map +1 -0
- package/dist/commands/verify/perf.d.ts +17 -0
- package/dist/commands/verify/perf.d.ts.map +1 -0
- package/dist/commands/verify/perf.js +106 -0
- package/dist/commands/verify/perf.js.map +1 -0
- package/dist/commands/verify/stores.d.ts +14 -0
- package/dist/commands/verify/stores.d.ts.map +1 -0
- package/dist/commands/verify/stores.js +98 -0
- package/dist/commands/verify/stores.js.map +1 -0
- package/dist/commands/verify.d.ts +14 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +97 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/workflow/catalog.d.ts +11 -0
- package/dist/commands/workflow/catalog.d.ts.map +1 -0
- package/dist/commands/workflow/catalog.js +164 -0
- package/dist/commands/workflow/catalog.js.map +1 -0
- package/dist/commands/workflow/list.d.ts +7 -0
- package/dist/commands/workflow/list.d.ts.map +1 -0
- package/dist/commands/workflow/list.js +50 -0
- package/dist/commands/workflow/list.js.map +1 -0
- package/dist/commands/workflow/resume.d.ts +13 -0
- package/dist/commands/workflow/resume.d.ts.map +1 -0
- package/dist/commands/workflow/resume.js +126 -0
- package/dist/commands/workflow/resume.js.map +1 -0
- package/dist/commands/workflow/run.d.ts +14 -0
- package/dist/commands/workflow/run.d.ts.map +1 -0
- package/dist/commands/workflow/run.js +139 -0
- package/dist/commands/workflow/run.js.map +1 -0
- package/dist/commands/workflow/status.d.ts +10 -0
- package/dist/commands/workflow/status.d.ts.map +1 -0
- package/dist/commands/workflow/status.js +86 -0
- package/dist/commands/workflow/status.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/agents.d.ts +12 -0
- package/dist/shared/agents.d.ts.map +1 -0
- package/dist/shared/agents.js +31 -0
- package/dist/shared/agents.js.map +1 -0
- package/dist/shared/artifact-io.d.ts +54 -0
- package/dist/shared/artifact-io.d.ts.map +1 -0
- package/dist/shared/artifact-io.js +71 -0
- package/dist/shared/artifact-io.js.map +1 -0
- package/dist/shared/feature-prompt.d.ts +18 -0
- package/dist/shared/feature-prompt.d.ts.map +1 -0
- package/dist/shared/feature-prompt.js +21 -0
- package/dist/shared/feature-prompt.js.map +1 -0
- package/dist/shared/hooks.d.ts +7 -0
- package/dist/shared/hooks.d.ts.map +1 -0
- package/dist/shared/hooks.js +52 -0
- package/dist/shared/hooks.js.map +1 -0
- package/dist/shared/mcp.d.ts +9 -0
- package/dist/shared/mcp.d.ts.map +1 -0
- package/dist/shared/mcp.js +15 -0
- package/dist/shared/mcp.js.map +1 -0
- package/dist/shared/project.d.ts +42 -0
- package/dist/shared/project.d.ts.map +1 -0
- package/dist/shared/project.js +98 -0
- package/dist/shared/project.js.map +1 -0
- package/dist/shared/workflow-resolver.d.ts +19 -0
- package/dist/shared/workflow-resolver.d.ts.map +1 -0
- package/dist/shared/workflow-resolver.js +71 -0
- package/dist/shared/workflow-resolver.js.map +1 -0
- package/dist/workflow/args-builder.d.ts +31 -0
- package/dist/workflow/args-builder.d.ts.map +1 -0
- package/dist/workflow/args-builder.js +110 -0
- package/dist/workflow/args-builder.js.map +1 -0
- package/dist/workflow/executor.d.ts +18 -0
- package/dist/workflow/executor.d.ts.map +1 -0
- package/dist/workflow/executor.js +112 -0
- package/dist/workflow/executor.js.map +1 -0
- package/extensions/git/commands/rpt.git.feature.md +85 -0
- package/extensions/git/extension.yml +47 -0
- package/package.json +58 -0
- package/scripts/bash/check-prerequisites.sh +149 -0
- package/scripts/bash/common.sh +389 -0
- package/scripts/bash/create-new-feature.sh +164 -0
- package/scripts/bash/setup-plan.sh +113 -0
- package/scripts/check-naming.sh +138 -0
- package/scripts/check-prompts.sh +165 -0
- package/scripts/check-tasks.sh +166 -0
- package/scripts/powershell/check-prerequisites.ps1 +117 -0
- package/scripts/powershell/common.ps1 +328 -0
- package/scripts/powershell/create-new-feature.ps1 +138 -0
- package/scripts/powershell/setup-plan.ps1 +96 -0
- package/scripts/prepare-npm.mjs +157 -0
- package/templates/checklist-template.md +103 -0
- package/templates/commands/analyze.md +103 -0
- package/templates/commands/checklist.md +87 -0
- package/templates/commands/clarify.md +85 -0
- package/templates/commands/constitution.md +126 -0
- package/templates/commands/implement.md +117 -0
- package/templates/commands/plan.md +125 -0
- package/templates/commands/specify.md +127 -0
- package/templates/commands/tasks.md +98 -0
- package/templates/commands/taskstoissues.md +81 -0
- package/templates/constitution-template.md +48 -0
- package/templates/plan-template.md +150 -0
- package/templates/spec-template.md +116 -0
- package/templates/tasks-template.md +77 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# check-naming.sh — Validates Raptor naming conventions.
|
|
3
|
+
#
|
|
4
|
+
# Spec Kit ref: E01 — "Convenção de naming aplicada e validada por linter"
|
|
5
|
+
#
|
|
6
|
+
# Rules:
|
|
7
|
+
# - Command files: rpt.<verb>.md (e.g., rpt.specify.md → templates/commands/specify.md)
|
|
8
|
+
# - Extension commands: rpt.<ext-id>.<verb>.md
|
|
9
|
+
# - Feature directories: <prefix>-<short-name> (NNN-name or YYYYMMDD-HHMMSS-name)
|
|
10
|
+
#
|
|
11
|
+
# Usage: ./scripts/check-naming.sh [repo-root]
|
|
12
|
+
#
|
|
13
|
+
# Exit codes:
|
|
14
|
+
# 0 — All checks pass
|
|
15
|
+
# 1 — Naming violations found
|
|
16
|
+
|
|
17
|
+
set -euo pipefail
|
|
18
|
+
|
|
19
|
+
REPO_ROOT="${1:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"
|
|
20
|
+
ERRORS=0
|
|
21
|
+
|
|
22
|
+
# ---------------------------------------------------------------------------
|
|
23
|
+
# Color helpers
|
|
24
|
+
# ---------------------------------------------------------------------------
|
|
25
|
+
RED='\033[0;31m'
|
|
26
|
+
GREEN='\033[0;32m'
|
|
27
|
+
YELLOW='\033[0;33m'
|
|
28
|
+
NC='\033[0m' # No Color
|
|
29
|
+
|
|
30
|
+
log_ok() { echo -e "${GREEN}✓${NC} $1"; }
|
|
31
|
+
log_warn() { echo -e "${YELLOW}⚠${NC} $1"; }
|
|
32
|
+
log_err() { echo -e "${RED}✗${NC} $1"; ERRORS=$((ERRORS + 1)); }
|
|
33
|
+
|
|
34
|
+
# ---------------------------------------------------------------------------
|
|
35
|
+
# Check 1: Command prompt files in templates/commands/
|
|
36
|
+
# ---------------------------------------------------------------------------
|
|
37
|
+
echo "=== Checking command prompt file naming ==="
|
|
38
|
+
|
|
39
|
+
COMMANDS_DIR="${REPO_ROOT}/templates/commands"
|
|
40
|
+
if [ -d "$COMMANDS_DIR" ]; then
|
|
41
|
+
for f in "$COMMANDS_DIR"/*.md; do
|
|
42
|
+
[ -f "$f" ] || continue
|
|
43
|
+
fname=$(basename "$f")
|
|
44
|
+
# Valid patterns: specify.md, clarify.md, plan.md, etc.
|
|
45
|
+
if [[ "$fname" =~ ^[a-z][a-z0-9_-]*\.md$ ]]; then
|
|
46
|
+
log_ok "Command file: $fname"
|
|
47
|
+
else
|
|
48
|
+
log_err "Invalid command file name: $fname (expected lowercase-verb.md)"
|
|
49
|
+
fi
|
|
50
|
+
done
|
|
51
|
+
else
|
|
52
|
+
log_warn "No templates/commands/ directory found"
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
# ---------------------------------------------------------------------------
|
|
56
|
+
# Check 2: Extension command files
|
|
57
|
+
# ---------------------------------------------------------------------------
|
|
58
|
+
echo ""
|
|
59
|
+
echo "=== Checking extension command file naming ==="
|
|
60
|
+
|
|
61
|
+
EXTENSIONS_DIR="${REPO_ROOT}/extensions"
|
|
62
|
+
if [ -d "$EXTENSIONS_DIR" ]; then
|
|
63
|
+
for ext_dir in "$EXTENSIONS_DIR"/*/; do
|
|
64
|
+
[ -d "$ext_dir" ] || continue
|
|
65
|
+
ext_id=$(basename "$ext_dir")
|
|
66
|
+
cmd_dir="${ext_dir}commands"
|
|
67
|
+
if [ -d "$cmd_dir" ]; then
|
|
68
|
+
for f in "$cmd_dir"/*.md; do
|
|
69
|
+
[ -f "$f" ] || continue
|
|
70
|
+
fname=$(basename "$f")
|
|
71
|
+
# Valid pattern: rpt.<ext-id>.<verb>.md
|
|
72
|
+
if [[ "$fname" =~ ^rpt\."$ext_id"\.[a-z][a-z0-9_-]*\.md$ ]]; then
|
|
73
|
+
log_ok "Extension command: $fname"
|
|
74
|
+
else
|
|
75
|
+
log_err "Invalid extension command name: $fname (expected rpt.${ext_id}.<verb>.md)"
|
|
76
|
+
fi
|
|
77
|
+
done
|
|
78
|
+
fi
|
|
79
|
+
done
|
|
80
|
+
else
|
|
81
|
+
log_warn "No extensions/ directory found"
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
# ---------------------------------------------------------------------------
|
|
85
|
+
# Check 3: Feature directory naming in specs/
|
|
86
|
+
# ---------------------------------------------------------------------------
|
|
87
|
+
echo ""
|
|
88
|
+
echo "=== Checking feature directory naming ==="
|
|
89
|
+
|
|
90
|
+
SPECS_DIR="${REPO_ROOT}/specs"
|
|
91
|
+
if [ -d "$SPECS_DIR" ]; then
|
|
92
|
+
for feat_dir in "$SPECS_DIR"/*/; do
|
|
93
|
+
[ -d "$feat_dir" ] || continue
|
|
94
|
+
dirname=$(basename "$feat_dir")
|
|
95
|
+
# Valid patterns:
|
|
96
|
+
# Sequential: NNN-short-name (e.g., 001-user-auth, 0042-payment)
|
|
97
|
+
# Timestamp: YYYYMMDD-HHMMSS-short-name
|
|
98
|
+
if [[ "$dirname" =~ ^[0-9]+-[a-z][a-z0-9-]*$ ]]; then
|
|
99
|
+
log_ok "Feature dir (sequential): $dirname"
|
|
100
|
+
elif [[ "$dirname" =~ ^[0-9]{8}-[0-9]{6}-[a-z][a-z0-9-]*$ ]]; then
|
|
101
|
+
log_ok "Feature dir (timestamp): $dirname"
|
|
102
|
+
else
|
|
103
|
+
log_err "Invalid feature directory name: $dirname (expected NNN-name or YYYYMMDD-HHMMSS-name)"
|
|
104
|
+
fi
|
|
105
|
+
done
|
|
106
|
+
else
|
|
107
|
+
log_warn "No specs/ directory found"
|
|
108
|
+
fi
|
|
109
|
+
|
|
110
|
+
# ---------------------------------------------------------------------------
|
|
111
|
+
# Check 4: Extension ID naming
|
|
112
|
+
# ---------------------------------------------------------------------------
|
|
113
|
+
echo ""
|
|
114
|
+
echo "=== Checking extension ID naming ==="
|
|
115
|
+
|
|
116
|
+
if [ -d "$EXTENSIONS_DIR" ]; then
|
|
117
|
+
for ext_dir in "$EXTENSIONS_DIR"/*/; do
|
|
118
|
+
[ -d "$ext_dir" ] || continue
|
|
119
|
+
ext_id=$(basename "$ext_dir")
|
|
120
|
+
if [[ "$ext_id" =~ ^[a-z][a-z0-9-]*$ ]]; then
|
|
121
|
+
log_ok "Extension ID: $ext_id"
|
|
122
|
+
else
|
|
123
|
+
log_err "Invalid extension ID: $ext_id (expected lowercase-kebab-case)"
|
|
124
|
+
fi
|
|
125
|
+
done
|
|
126
|
+
fi
|
|
127
|
+
|
|
128
|
+
# ---------------------------------------------------------------------------
|
|
129
|
+
# Summary
|
|
130
|
+
# ---------------------------------------------------------------------------
|
|
131
|
+
echo ""
|
|
132
|
+
if [ "$ERRORS" -eq 0 ]; then
|
|
133
|
+
echo -e "${GREEN}All naming checks passed.${NC}"
|
|
134
|
+
exit 0
|
|
135
|
+
else
|
|
136
|
+
echo -e "${RED}${ERRORS} naming violation(s) found.${NC}"
|
|
137
|
+
exit 1
|
|
138
|
+
fi
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# check-prompts.sh — Lint script for Raptor prompt templates.
|
|
3
|
+
#
|
|
4
|
+
# Validates that all prompt files in templates/commands/ follow the
|
|
5
|
+
# canonical structure (frontmatter, version marker, phases, hook check).
|
|
6
|
+
#
|
|
7
|
+
# Spec Kit ref: E05 — "Lint de prompts (CI script)"
|
|
8
|
+
#
|
|
9
|
+
# Usage: ./scripts/check-prompts.sh
|
|
10
|
+
# Exit code: 0 = all pass, 1 = lint errors found
|
|
11
|
+
|
|
12
|
+
set -euo pipefail
|
|
13
|
+
|
|
14
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
15
|
+
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
16
|
+
PROMPTS_DIR="$REPO_ROOT/templates/commands"
|
|
17
|
+
EXT_COMMANDS_DIR="$REPO_ROOT/extensions"
|
|
18
|
+
|
|
19
|
+
ERRORS=0
|
|
20
|
+
WARNINGS=0
|
|
21
|
+
CHECKED=0
|
|
22
|
+
|
|
23
|
+
# Colors
|
|
24
|
+
RED='\033[0;31m'
|
|
25
|
+
YELLOW='\033[1;33m'
|
|
26
|
+
GREEN='\033[0;32m'
|
|
27
|
+
NC='\033[0m'
|
|
28
|
+
|
|
29
|
+
error() {
|
|
30
|
+
echo -e " ${RED}✗${NC} $1: $2"
|
|
31
|
+
ERRORS=$((ERRORS + 1))
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
warn() {
|
|
35
|
+
echo -e " ${YELLOW}⚠${NC} $1: $2"
|
|
36
|
+
WARNINGS=$((WARNINGS + 1))
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
pass() {
|
|
40
|
+
echo -e " ${GREEN}✓${NC} $1"
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
lint_prompt() {
|
|
44
|
+
local file="$1"
|
|
45
|
+
local basename
|
|
46
|
+
basename="$(basename "$file")"
|
|
47
|
+
local had_error=false
|
|
48
|
+
|
|
49
|
+
# 1. Must start with YAML frontmatter
|
|
50
|
+
local first_line
|
|
51
|
+
first_line="$(head -1 "$file")"
|
|
52
|
+
if [[ "$first_line" != "---" ]]; then
|
|
53
|
+
error "$basename" "Missing YAML frontmatter (must start with ---)"
|
|
54
|
+
had_error=true
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# 2. Must have frontmatter end marker
|
|
58
|
+
local fm_end
|
|
59
|
+
fm_end="$(awk 'NR>1 && /^---$/{print NR; exit}' "$file")"
|
|
60
|
+
if [[ -z "$fm_end" ]]; then
|
|
61
|
+
error "$basename" "Missing frontmatter end marker (---)"
|
|
62
|
+
had_error=true
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
# 3. Must have description in frontmatter
|
|
66
|
+
if ! grep -q "^description:" "$file"; then
|
|
67
|
+
error "$basename" "Missing 'description:' in frontmatter"
|
|
68
|
+
had_error=true
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
# 4. Must have prompt-version marker
|
|
72
|
+
if ! grep -q "<!-- prompt-version:" "$file"; then
|
|
73
|
+
warn "$basename" "Missing <!-- prompt-version: X.X.X --> marker"
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
# 5. Must have ## Outline section
|
|
77
|
+
if ! grep -q "^## Outline" "$file"; then
|
|
78
|
+
warn "$basename" "Missing '## Outline' section"
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
# 6. Must have ## Phases section or at least ### Phase
|
|
82
|
+
if ! grep -q "^## Phases\|^### Phase" "$file"; then
|
|
83
|
+
warn "$basename" "Missing Phases section"
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
# 7. Check for hook blocks (pre/post execution checks)
|
|
87
|
+
if ! grep -q "Pre-Execution Check\|Final Hook Check" "$file"; then
|
|
88
|
+
warn "$basename" "Missing hook check blocks (Pre-Execution / Final Hook Check)"
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
# 8. Check for $ARGUMENTS placeholder
|
|
92
|
+
if ! grep -q '\$ARGUMENTS' "$file"; then
|
|
93
|
+
warn "$basename" "No \$ARGUMENTS placeholder found"
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
# 9. Check for rpt. prefix in heading
|
|
97
|
+
local heading
|
|
98
|
+
heading="$(grep "^# /rpt\." "$file" | head -1)"
|
|
99
|
+
if [[ -z "$heading" ]]; then
|
|
100
|
+
# Extension commands use rpt.*.* format
|
|
101
|
+
heading="$(grep "^# /rpt\." "$file" | head -1)"
|
|
102
|
+
if [[ -z "$heading" ]]; then
|
|
103
|
+
warn "$basename" "Missing canonical heading (# /rpt.<name>)"
|
|
104
|
+
fi
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
if [[ "$had_error" == false ]]; then
|
|
108
|
+
pass "$basename"
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
CHECKED=$((CHECKED + 1))
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
echo "=== Linting prompt templates ==="
|
|
115
|
+
echo ""
|
|
116
|
+
|
|
117
|
+
# Lint core prompts
|
|
118
|
+
echo "--- Core prompts (templates/commands/) ---"
|
|
119
|
+
if [[ -d "$PROMPTS_DIR" ]]; then
|
|
120
|
+
for f in "$PROMPTS_DIR"/*.md; do
|
|
121
|
+
[[ -f "$f" ]] || continue
|
|
122
|
+
lint_prompt "$f"
|
|
123
|
+
done
|
|
124
|
+
else
|
|
125
|
+
error "templates/commands/" "Directory not found"
|
|
126
|
+
fi
|
|
127
|
+
|
|
128
|
+
echo ""
|
|
129
|
+
|
|
130
|
+
# Lint extension prompts
|
|
131
|
+
echo "--- Extension prompts ---"
|
|
132
|
+
found_ext=false
|
|
133
|
+
for ext_dir in "$EXT_COMMANDS_DIR"/*/; do
|
|
134
|
+
[[ -d "$ext_dir" ]] || continue
|
|
135
|
+
cmd_dir="${ext_dir}commands/"
|
|
136
|
+
[[ -d "$cmd_dir" ]] || continue
|
|
137
|
+
for f in "$cmd_dir"*.md; do
|
|
138
|
+
[[ -f "$f" ]] || continue
|
|
139
|
+
lint_prompt "$f"
|
|
140
|
+
found_ext=true
|
|
141
|
+
done
|
|
142
|
+
done
|
|
143
|
+
|
|
144
|
+
if [[ "$found_ext" == false ]]; then
|
|
145
|
+
echo " (no extension prompts found)"
|
|
146
|
+
fi
|
|
147
|
+
|
|
148
|
+
echo ""
|
|
149
|
+
echo "=== Summary ==="
|
|
150
|
+
echo " Checked: $CHECKED"
|
|
151
|
+
echo " Errors: $ERRORS"
|
|
152
|
+
echo " Warnings: $WARNINGS"
|
|
153
|
+
echo ""
|
|
154
|
+
|
|
155
|
+
if [[ "$ERRORS" -gt 0 ]]; then
|
|
156
|
+
echo -e "${RED}Prompt lint FAILED${NC} — $ERRORS error(s) found."
|
|
157
|
+
exit 1
|
|
158
|
+
else
|
|
159
|
+
if [[ "$WARNINGS" -gt 0 ]]; then
|
|
160
|
+
echo -e "${YELLOW}Prompt lint PASSED with warnings${NC} — $WARNINGS warning(s)."
|
|
161
|
+
else
|
|
162
|
+
echo -e "${GREEN}Prompt lint PASSED${NC} — all checks clean."
|
|
163
|
+
fi
|
|
164
|
+
exit 0
|
|
165
|
+
fi
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# check-tasks.sh — Lint script for tasks.md files.
|
|
3
|
+
#
|
|
4
|
+
# Validates that tasks files follow the strict checklist format:
|
|
5
|
+
# - Sequential task IDs (T001, T002, ...)
|
|
6
|
+
# - Proper status markers: [ ], [/], [x], [!]
|
|
7
|
+
# - File(s) and Acceptance fields present
|
|
8
|
+
# - Summary table present
|
|
9
|
+
#
|
|
10
|
+
# Spec Kit ref: E10 — "Linter de tasks.md"
|
|
11
|
+
#
|
|
12
|
+
# Usage: ./scripts/check-tasks.sh [path/to/tasks.md]
|
|
13
|
+
# ./scripts/check-tasks.sh (scans all specs/*/tasks.md)
|
|
14
|
+
# Exit code: 0 = all pass, 1 = lint errors found
|
|
15
|
+
|
|
16
|
+
set -euo pipefail
|
|
17
|
+
|
|
18
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
19
|
+
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
20
|
+
|
|
21
|
+
ERRORS=0
|
|
22
|
+
WARNINGS=0
|
|
23
|
+
CHECKED=0
|
|
24
|
+
|
|
25
|
+
# Colors
|
|
26
|
+
RED='\033[0;31m'
|
|
27
|
+
YELLOW='\033[1;33m'
|
|
28
|
+
GREEN='\033[0;32m'
|
|
29
|
+
NC='\033[0m'
|
|
30
|
+
|
|
31
|
+
error() {
|
|
32
|
+
echo -e " ${RED}✗${NC} $1: $2"
|
|
33
|
+
ERRORS=$((ERRORS + 1))
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
warn() {
|
|
37
|
+
echo -e " ${YELLOW}⚠${NC} $1: $2"
|
|
38
|
+
WARNINGS=$((WARNINGS + 1))
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
pass() {
|
|
42
|
+
echo -e " ${GREEN}✓${NC} $1"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
lint_tasks() {
|
|
46
|
+
local file="$1"
|
|
47
|
+
local basename
|
|
48
|
+
basename="$(basename "$(dirname "$file")")/tasks.md"
|
|
49
|
+
local had_error=false
|
|
50
|
+
|
|
51
|
+
# 1. Check for heading
|
|
52
|
+
if ! grep -q "^# Tasks" "$file"; then
|
|
53
|
+
error "$basename" "Missing '# Tasks' heading"
|
|
54
|
+
had_error=true
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# 2. Check for task IDs (T001, T002, etc.)
|
|
58
|
+
local task_count=0
|
|
59
|
+
task_count=$(grep -cE '\*\*T[0-9]{3}\*\*' "$file" 2>/dev/null) || task_count=0
|
|
60
|
+
if [[ "$task_count" -eq 0 ]]; then
|
|
61
|
+
warn "$basename" "No task IDs found (expected **T001**, **T002**, ...)"
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# 3. Check for status markers
|
|
65
|
+
local status_count=0
|
|
66
|
+
status_count=$(grep -cE '^\s*- \[([ /x!])\]' "$file" 2>/dev/null) || status_count=0
|
|
67
|
+
if [[ "$status_count" -eq 0 ]]; then
|
|
68
|
+
warn "$basename" "No status markers found (expected - [ ], - [x], etc.)"
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
# 4. Check for sequential numbering
|
|
72
|
+
local prev_num=0
|
|
73
|
+
local sequential=true
|
|
74
|
+
while IFS= read -r line; do
|
|
75
|
+
local num
|
|
76
|
+
num=$(echo "$line" | grep -oE 'T([0-9]+)' | head -1 | sed 's/T//')
|
|
77
|
+
if [[ -n "$num" ]]; then
|
|
78
|
+
num=$((10#$num))
|
|
79
|
+
if [[ "$num" -ne $((prev_num + 1)) ]] && [[ "$prev_num" -gt 0 ]]; then
|
|
80
|
+
sequential=false
|
|
81
|
+
fi
|
|
82
|
+
prev_num=$num
|
|
83
|
+
fi
|
|
84
|
+
done < <(grep -E '\*\*T[0-9]+\*\*' "$file" 2>/dev/null || true)
|
|
85
|
+
|
|
86
|
+
if [[ "$sequential" == false ]]; then
|
|
87
|
+
warn "$basename" "Task IDs are not strictly sequential"
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
# 5. Check for File(s) field
|
|
91
|
+
local file_field_count=0
|
|
92
|
+
file_field_count=$(grep -cE '^\s+-\s+File\(s\):' "$file" 2>/dev/null) || file_field_count=0
|
|
93
|
+
if [[ "$file_field_count" -eq 0 ]] && [[ "$task_count" -gt 0 ]]; then
|
|
94
|
+
warn "$basename" "No 'File(s):' fields found in tasks"
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
# 6. Check for Acceptance field
|
|
98
|
+
local acceptance_count=0
|
|
99
|
+
acceptance_count=$(grep -cE '^\s+-\s+Acceptance:' "$file" 2>/dev/null) || acceptance_count=0
|
|
100
|
+
if [[ "$acceptance_count" -eq 0 ]] && [[ "$task_count" -gt 0 ]]; then
|
|
101
|
+
warn "$basename" "No 'Acceptance:' fields found in tasks"
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
# 7. Check for Summary table
|
|
105
|
+
if ! grep -q "^## Summary\|^| Status" "$file"; then
|
|
106
|
+
warn "$basename" "Missing Summary table"
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# 8. Check for Group headings
|
|
110
|
+
local group_count=0
|
|
111
|
+
group_count=$(grep -cE '^### Group' "$file" 2>/dev/null) || group_count=0
|
|
112
|
+
if [[ "$group_count" -eq 0 ]] && [[ "$task_count" -gt 3 ]]; then
|
|
113
|
+
warn "$basename" "No '### Group' headings (recommended for >3 tasks)"
|
|
114
|
+
fi
|
|
115
|
+
|
|
116
|
+
if [[ "$had_error" == false ]]; then
|
|
117
|
+
pass "$basename ($task_count tasks, $status_count markers)"
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
CHECKED=$((CHECKED + 1))
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
echo "=== Linting tasks.md files ==="
|
|
124
|
+
echo ""
|
|
125
|
+
|
|
126
|
+
if [[ $# -gt 0 ]]; then
|
|
127
|
+
# Lint specific file
|
|
128
|
+
for f in "$@"; do
|
|
129
|
+
if [[ -f "$f" ]]; then
|
|
130
|
+
lint_tasks "$f"
|
|
131
|
+
else
|
|
132
|
+
error "$f" "File not found"
|
|
133
|
+
fi
|
|
134
|
+
done
|
|
135
|
+
else
|
|
136
|
+
# Scan all specs/*/tasks.md
|
|
137
|
+
found=false
|
|
138
|
+
for f in "$REPO_ROOT"/specs/*/tasks.md; do
|
|
139
|
+
[[ -f "$f" ]] || continue
|
|
140
|
+
lint_tasks "$f"
|
|
141
|
+
found=true
|
|
142
|
+
done
|
|
143
|
+
|
|
144
|
+
if [[ "$found" == false ]]; then
|
|
145
|
+
echo " (no tasks.md files found in specs/)"
|
|
146
|
+
fi
|
|
147
|
+
fi
|
|
148
|
+
|
|
149
|
+
echo ""
|
|
150
|
+
echo "=== Summary ==="
|
|
151
|
+
echo " Checked: $CHECKED"
|
|
152
|
+
echo " Errors: $ERRORS"
|
|
153
|
+
echo " Warnings: $WARNINGS"
|
|
154
|
+
echo ""
|
|
155
|
+
|
|
156
|
+
if [[ "$ERRORS" -gt 0 ]]; then
|
|
157
|
+
echo -e "${RED}Tasks lint FAILED${NC} — $ERRORS error(s) found."
|
|
158
|
+
exit 1
|
|
159
|
+
else
|
|
160
|
+
if [[ "$WARNINGS" -gt 0 ]]; then
|
|
161
|
+
echo -e "${YELLOW}Tasks lint PASSED with warnings${NC} — $WARNINGS warning(s)."
|
|
162
|
+
else
|
|
163
|
+
echo -e "${GREEN}Tasks lint PASSED${NC} — all checks clean."
|
|
164
|
+
fi
|
|
165
|
+
exit 0
|
|
166
|
+
fi
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# check-prerequisites.ps1 — Validate feature artifacts exist (PowerShell parity port).
|
|
2
|
+
#
|
|
3
|
+
# Spec Kit ref: E04
|
|
4
|
+
#
|
|
5
|
+
# Args:
|
|
6
|
+
# -Json Output JSON to stdout
|
|
7
|
+
# -RequireTasks Fail if tasks.md is missing
|
|
8
|
+
# -IncludeTasks Include tasks.md content (reserved for downstream)
|
|
9
|
+
# -PathsOnly Only output file paths, not content
|
|
10
|
+
#
|
|
11
|
+
# Output JSON (-Json):
|
|
12
|
+
# { "FEATURE_DIR": "...", "AVAILABLE_DOCS": "...",
|
|
13
|
+
# "HAS_SPEC": "...", "HAS_PLAN": "...", "HAS_TASKS": "...",
|
|
14
|
+
# "HAS_RESEARCH": "...", "HAS_DATA_MODEL": "...",
|
|
15
|
+
# "HAS_CONTRACTS": "...", "HAS_QUICKSTART": "...",
|
|
16
|
+
# "HAS_CHECKLIST": "..." }
|
|
17
|
+
|
|
18
|
+
[CmdletBinding()]
|
|
19
|
+
param(
|
|
20
|
+
[switch]$Json,
|
|
21
|
+
[switch]$RequireTasks,
|
|
22
|
+
[switch]$IncludeTasks,
|
|
23
|
+
[switch]$PathsOnly
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
$ErrorActionPreference = 'Stop'
|
|
27
|
+
|
|
28
|
+
. (Join-Path $PSScriptRoot 'common.ps1')
|
|
29
|
+
|
|
30
|
+
# ---------------------------------------------------------------------------
|
|
31
|
+
# Resolve feature
|
|
32
|
+
# ---------------------------------------------------------------------------
|
|
33
|
+
try {
|
|
34
|
+
$paths = Get-FeaturePaths
|
|
35
|
+
} catch {
|
|
36
|
+
Stop-WithError -Message "Cannot resolve feature paths" -Code 1
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
$featureDir = $paths.FEATURE_DIR
|
|
40
|
+
$featureName = $paths.FEATURE_NAME
|
|
41
|
+
|
|
42
|
+
# ---------------------------------------------------------------------------
|
|
43
|
+
# Check each artifact
|
|
44
|
+
# ---------------------------------------------------------------------------
|
|
45
|
+
$availableDocs = @()
|
|
46
|
+
|
|
47
|
+
function Test-Doc {
|
|
48
|
+
param([string]$Name)
|
|
49
|
+
$path = Join-Path $featureDir $Name
|
|
50
|
+
if (Test-Path $path) {
|
|
51
|
+
$script:availableDocs += $Name
|
|
52
|
+
return "true"
|
|
53
|
+
}
|
|
54
|
+
return "false"
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
$hasSpec = Test-Doc 'spec.md'
|
|
58
|
+
$hasPlan = Test-Doc 'plan.md'
|
|
59
|
+
$hasTasks = Test-Doc 'tasks.md'
|
|
60
|
+
$hasResearch = Test-Doc 'research.md'
|
|
61
|
+
$hasDataModel = Test-Doc 'data-model.md'
|
|
62
|
+
$hasQuickstart= Test-Doc 'quickstart.md'
|
|
63
|
+
|
|
64
|
+
# Checklists directory
|
|
65
|
+
$hasChecklist = "false"
|
|
66
|
+
$checklistsDir = Join-Path $featureDir 'checklists'
|
|
67
|
+
if (Test-Path $checklistsDir) {
|
|
68
|
+
Get-ChildItem -Path $checklistsDir -Filter '*.md' -File -ErrorAction SilentlyContinue | ForEach-Object {
|
|
69
|
+
$hasChecklist = "true"
|
|
70
|
+
$availableDocs += "checklists/$($_.Name)"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
# Contracts directory
|
|
75
|
+
$hasContracts = "false"
|
|
76
|
+
$contractsDir = Join-Path $featureDir 'contracts'
|
|
77
|
+
if (Test-Path $contractsDir) {
|
|
78
|
+
Get-ChildItem -Path $contractsDir -File -ErrorAction SilentlyContinue | ForEach-Object {
|
|
79
|
+
$hasContracts = "true"
|
|
80
|
+
$availableDocs += "contracts/$($_.Name)"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
# ---------------------------------------------------------------------------
|
|
85
|
+
# Validate required
|
|
86
|
+
# ---------------------------------------------------------------------------
|
|
87
|
+
if ($hasSpec -eq 'false') {
|
|
88
|
+
Stop-WithError -Message "spec.md not found in $featureDir. Run /rpt.specify first." -Code 1
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if ($RequireTasks -and $hasTasks -eq 'false') {
|
|
92
|
+
Stop-WithError -Message "tasks.md not found in $featureDir. Run /rpt.tasks first." -Code 1
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
# ---------------------------------------------------------------------------
|
|
96
|
+
# Output
|
|
97
|
+
# ---------------------------------------------------------------------------
|
|
98
|
+
if ($Json) {
|
|
99
|
+
$payload = [ordered]@{
|
|
100
|
+
FEATURE_DIR = $featureDir
|
|
101
|
+
FEATURE_NAME = $featureName
|
|
102
|
+
AVAILABLE_DOCS = ($availableDocs -join ',')
|
|
103
|
+
HAS_SPEC = $hasSpec
|
|
104
|
+
HAS_PLAN = $hasPlan
|
|
105
|
+
HAS_TASKS = $hasTasks
|
|
106
|
+
HAS_RESEARCH = $hasResearch
|
|
107
|
+
HAS_DATA_MODEL = $hasDataModel
|
|
108
|
+
HAS_CONTRACTS = $hasContracts
|
|
109
|
+
HAS_QUICKSTART = $hasQuickstart
|
|
110
|
+
HAS_CHECKLIST = $hasChecklist
|
|
111
|
+
}
|
|
112
|
+
Write-Output (ConvertTo-RaptorJson -Data $payload)
|
|
113
|
+
} else {
|
|
114
|
+
Write-Output "Feature: $featureDir"
|
|
115
|
+
Write-Output "Available docs: $($availableDocs -join ',')"
|
|
116
|
+
Write-Output "Spec: $hasSpec | Plan: $hasPlan | Tasks: $hasTasks"
|
|
117
|
+
}
|