daedalion 0.1.0 → 0.3.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.
Files changed (38) hide show
  1. package/README.md +34 -44
  2. package/bin/daedalion.js +1 -1
  3. package/dist/commands/build.d.ts.map +1 -1
  4. package/dist/commands/build.js +44 -18
  5. package/dist/commands/build.js.map +1 -1
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +7 -2
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/generators/agent.d.ts.map +1 -1
  10. package/dist/generators/agent.js +10 -1
  11. package/dist/generators/agent.js.map +1 -1
  12. package/dist/generators/agents-index.d.ts +3 -0
  13. package/dist/generators/agents-index.d.ts.map +1 -0
  14. package/dist/generators/agents-index.js +29 -0
  15. package/dist/generators/agents-index.js.map +1 -0
  16. package/dist/generators/instructions.d.ts +2 -2
  17. package/dist/generators/instructions.d.ts.map +1 -1
  18. package/dist/generators/instructions.js +56 -39
  19. package/dist/generators/instructions.js.map +1 -1
  20. package/dist/generators/pattern-instructions.d.ts +3 -0
  21. package/dist/generators/pattern-instructions.d.ts.map +1 -0
  22. package/dist/generators/pattern-instructions.js +28 -0
  23. package/dist/generators/pattern-instructions.js.map +1 -0
  24. package/dist/generators/skill.d.ts +1 -1
  25. package/dist/generators/skill.d.ts.map +1 -1
  26. package/dist/generators/skill.js +45 -36
  27. package/dist/generators/skill.js.map +1 -1
  28. package/dist/parsers/proposal.js +9 -4
  29. package/dist/parsers/proposal.js.map +1 -1
  30. package/dist/parsers/spec.js +3 -3
  31. package/dist/parsers/spec.js.map +1 -1
  32. package/dist/parsers/tasks.js +1 -1
  33. package/dist/parsers/tasks.js.map +1 -1
  34. package/dist/types.d.ts +1 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/package.json +2 -2
  37. package/templates/init/.github/prompts/daedalion-compile.prompt.md +36 -0
  38. package/templates/init/daedalion.yaml +1 -11
package/README.md CHANGED
@@ -25,40 +25,21 @@ OpenSpec (what) ───▶ Daedalion ───▶ GitHub Copilot (how)
25
25
 
26
26
  **Daedalion's primary mission:** Ensure humans and AIs agree on **what to build** *before* any code is written.
27
27
 
28
- When you run `daedalion build`, it generates **`.github/prompts/daedalion-openspec-cycle.prompt.md`** a guided workflow that:
28
+ Write specs in `openspec/` using any format — hand-crafted or generated by [OpenSpec](https://github.com/fission-ai/openspec). Run `daedalion build` to compile them into GitHub Copilot artifacts:
29
29
 
30
- 1. Routes AI to draft **proposals** (why, goals, scope) + **spec deltas** (what needs to change)
31
- 2. Blocks coding until the **human explicitly approves specs**
32
- 3. Guides implementation via a clear **task checklist**
33
- 4. Archives completed changes and **merges specs into canonical truth**
30
+ - **Skills** tell Copilot what requirements and acceptance criteria apply in each domain
31
+ - **Agents** give Copilot domain-aware personas
32
+ - **Change prompts** surface active work items directly in the IDE
33
+ - **AGENTS.md** provides a root-level discovery index for agent coordination
34
34
 
35
- This prompt is your **AI code coordinator** it prevents costly rework by enforcing spec clarity and human review at every phase.
35
+ **The result:** Copilot always has the right context for the domain it is working in.
36
36
 
37
- **The result:** Predictable, spec-aligned development where both humans and AIs follow the same playbook.
37
+ ## Why Daedalion
38
38
 
39
- ## Why Daedalion + OpenSpec
40
-
41
- - Aligns humans and AIs on the “what” before any code.
42
- - Enforces approval gates with an AI coordinator prompt.
43
- - Generates native Copilot artifacts from `openspec/` automatically.
44
- - Prevents drift with `validate` and supports CI.
45
-
46
- ## The Core Idea
47
-
48
- `daedalion build` generates `.github/prompts/daedalion-openspec-cycle.prompt.md` — your AI code coordinator that:
49
- - Routes work: proposal → review → implementation → archive
50
- - Blocks coding until specs are explicitly approved
51
- - Keeps tasks and deltas in lockstep with human review
52
-
53
- ```mermaid
54
- flowchart LR
55
- D[Draft: proposal + spec deltas] --> E{Approved?}
56
- E -- no --> D
57
- E -- yes --> F[Implement: tasks]
58
- F --> G{All tasks complete?}
59
- G -- no --> F
60
- G -- yes --> H[Archive: merge into openspec/specs]
61
- ```
39
+ - Compiles any spec format into native Copilot artifacts
40
+ - Generates native Copilot surface: agents, skills, prompts, instructions, AGENTS.md
41
+ - Prevents drift: `validate` checks specs artifacts are in sync
42
+ - Safe cleanup: `clean` removes only Daedalion-generated files (via manifest)
62
43
 
63
44
  ## Quick Start
64
45
 
@@ -75,15 +56,25 @@ Use the coordinator by asking your AI: “Help me work through the OpenSpec cycl
75
56
 
76
57
  ## What It Generates
77
58
 
59
+ `daedalion init` installs:
60
+
61
+ ```
62
+ .github/
63
+ └── prompts/
64
+ └── daedalion-compile.prompt.md # Slash prompt to trigger compilation
65
+ ```
66
+
67
+ `daedalion build` generates:
68
+
78
69
  ```
79
70
  .github/
80
- ├── prompts/
81
- ├── daedalion-openspec-cycle.prompt.md # AI coordinator (spec-driven workflow)
82
- │ └── {change}.prompt.md # Slash prompts for active changes
71
+ ├── AGENTS.md # Agent discovery index
72
+ ├── instructions/{domain}.instructions.md # Pattern-specific domain context
73
+ ├── prompts/{change}.prompt.md # Slash prompts for active changes
83
74
  ├── agents/{domain}.agent.md # Domain personas
84
75
  ├── skills/{domain}/SKILL.md # Auto-loaded skills from specs
85
- ├── copilot-instructions.md # Project context from openspec/project.md
86
- └── workflows/daedalion.yml # Optional CI (validate / auto-regenerate)
76
+ ├── copilot-instructions.md # Project context (conventions, domain list)
77
+ └── workflows/daedalion.yml # CI workflow (validate / auto-regenerate)
87
78
  ```
88
79
 
89
80
  ## Commands
@@ -117,15 +108,14 @@ project/
117
108
 
118
109
  ```
119
110
  .github/
120
- ├── skills/
121
- │ └── {domain}/
122
- │ └── SKILL.md
123
- ├── agents/
124
- │ └── {domain}.agent.md
125
- ├── prompts/
126
- │ └── {change-name}.prompt.md
127
- ├── workflows/
128
- │ └── daedalion.yml
111
+ ├── AGENTS.md
112
+ ├── instructions/{domain}.instructions.md
113
+ ├── skills/{domain}/
114
+ ├── SKILL.md # hub: compact requirements + spoke links
115
+ │ └── {requirement-slug}.md # spoke: scenario details per requirement
116
+ ├── agents/{domain}.agent.md
117
+ ├── prompts/{change-name}.prompt.md
118
+ ├── workflows/daedalion.yml # only when ci.enabled: true
129
119
  └── copilot-instructions.md
130
120
  ```
131
121
 
package/bin/daedalion.js CHANGED
@@ -38,7 +38,7 @@ if (!process.argv.includes('--help') && !process.argv.includes('-h')) {
38
38
 
39
39
  program
40
40
  .name('daedalion')
41
- .description('OpenSpec-to-Agent compiler for GitHub Copilot')
41
+ .description('Spec-to-Agent compiler for GitHub Copilot')
42
42
  .version(VERSION)
43
43
  .helpOption('-h, --help', 'display help for command');
44
44
 
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAKd,MAAM,aAAa,CAAC;AAIrB,wBAAsB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAkG7F"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAKd,MAAM,aAAa,CAAC;AAIrB,wBAAsB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CA0G7F"}
@@ -9,10 +9,12 @@ import { parseProposal } from '../parsers/proposal.js';
9
9
  import { parseTasks } from '../parsers/tasks.js';
10
10
  import { generateSkill } from '../generators/skill.js';
11
11
  import { generateAgent } from '../generators/agent.js';
12
- import { generatePrompt, generateCyclePrompt } from '../generators/prompt.js';
12
+ import { generatePrompt } from '../generators/prompt.js';
13
13
  import { generateWorkflow } from '../generators/workflow.js';
14
14
  import { generateInstructions } from '../generators/instructions.js';
15
15
  import { generateTools } from '../generators/tools.js';
16
+ import { generateAgentsIndex } from '../generators/agents-index.js';
17
+ import { generatePatternInstructions } from '../generators/pattern-instructions.js';
16
18
  import { ensureDir } from '../utils.js';
17
19
  const MANIFEST_FILENAME = '.daedalion-manifest.json';
18
20
  export async function build(cwd, options = {}) {
@@ -47,12 +49,17 @@ export async function build(cwd, options = {}) {
47
49
  // Generate skills and agents from specs
48
50
  for (const spec of specs) {
49
51
  const tasks = allTasks[spec.domain] || null;
50
- const skillResult = generateSkill(spec, tasks, outputDir, options);
51
- generatedFiles.push(skillResult);
52
- logGenerated(skillResult.path, cwd, options);
52
+ const skillResults = generateSkill(spec, tasks, outputDir, options);
53
+ for (const skillResult of skillResults) {
54
+ generatedFiles.push(skillResult);
55
+ logGenerated(skillResult.path, cwd, options);
56
+ }
53
57
  const agentResult = generateAgent(spec, outputDir, options, config);
54
58
  generatedFiles.push(agentResult);
55
59
  logGenerated(agentResult.path, cwd, options);
60
+ const patternInstructionsResult = generatePatternInstructions(spec, outputDir, options);
61
+ generatedFiles.push(patternInstructionsResult);
62
+ logGenerated(patternInstructionsResult.path, cwd, options);
56
63
  }
57
64
  // Generate tool stubs if --with-tools flag is set
58
65
  if (options.withTools) {
@@ -65,6 +72,10 @@ export async function build(cwd, options = {}) {
65
72
  }
66
73
  }
67
74
  }
75
+ // Generate AGENTS.md index
76
+ const agentsIndexResult = generateAgentsIndex(specs, outputDir, options);
77
+ generatedFiles.push(agentsIndexResult);
78
+ logGenerated(agentsIndexResult.path, cwd, options);
68
79
  // Generate prompts from changes
69
80
  for (const change of changes) {
70
81
  const domain = findDomainForChange(change, specs);
@@ -72,16 +83,14 @@ export async function build(cwd, options = {}) {
72
83
  generatedFiles.push(promptResult);
73
84
  logGenerated(promptResult.path, cwd, options);
74
85
  }
75
- // Generate OpenSpec cycle prompt
76
- const cyclePromptResult = generateCyclePrompt(outputDir, options);
77
- generatedFiles.push(cyclePromptResult);
78
- logGenerated(cyclePromptResult.path, cwd, options);
79
- // Generate workflow
80
- const workflowResult = generateWorkflow(config, outputDir, options);
81
- generatedFiles.push(workflowResult);
82
- logGenerated(workflowResult.path, cwd, options);
86
+ // Generate CI workflow (opt-in: only when ci.enabled is explicitly true)
87
+ if (config.ci?.enabled === true) {
88
+ const workflowResult = generateWorkflow(config, outputDir, options);
89
+ generatedFiles.push(workflowResult);
90
+ logGenerated(workflowResult.path, cwd, options);
91
+ }
83
92
  // Generate copilot-instructions.md
84
- const instructionsResult = generateInstructions(openspecDir, outputDir, options);
93
+ const instructionsResult = generateInstructions(openspecDir, outputDir, options, specs);
85
94
  generatedFiles.push(instructionsResult);
86
95
  logGenerated(instructionsResult.path, cwd, options);
87
96
  // Write manifest of generated files (for clean command)
@@ -109,12 +118,29 @@ function writeManifest(outputDir, generatedFiles, cwd) {
109
118
  writeFileSync(manifestPath, JSON.stringify(manifest, null, 2));
110
119
  }
111
120
  async function findAndParseSpecs(openspecDir, _options) {
112
- const specsDir = join(openspecDir, 'specs');
113
- if (!existsSync(specsDir)) {
114
- return [];
121
+ const specsByDomain = new Map();
122
+ // 1. Canonical specs: openspec/specs/*/spec.md (always take priority)
123
+ const canonicalDir = join(openspecDir, 'specs');
124
+ if (existsSync(canonicalDir)) {
125
+ const files = await glob('*/spec.md', { cwd: canonicalDir });
126
+ for (const file of files) {
127
+ const spec = parseSpec(join(canonicalDir, file));
128
+ specsByDomain.set(spec.domain, spec);
129
+ }
130
+ }
131
+ // 2. Delta specs: openspec/changes/*/specs/*/spec.md
132
+ // Only used when no canonical spec exists for that domain
133
+ const changesDir = join(openspecDir, 'changes');
134
+ if (existsSync(changesDir)) {
135
+ const files = await glob('*/specs/*/spec.md', { cwd: changesDir });
136
+ for (const file of files) {
137
+ const spec = parseSpec(join(changesDir, file));
138
+ if (!specsByDomain.has(spec.domain)) {
139
+ specsByDomain.set(spec.domain, spec);
140
+ }
141
+ }
115
142
  }
116
- const specFiles = await glob('*/spec.md', { cwd: specsDir });
117
- return specFiles.map(file => parseSpec(join(specsDir, file)));
143
+ return Array.from(specsByDomain.values());
118
144
  }
119
145
  async function findAndParseChanges(openspecDir, _options) {
120
146
  const changesDir = join(openspecDir, 'changes');
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,wBAAsB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEhF"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C,wBAAsB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEhF"}
@@ -56,8 +56,13 @@ export async function init(cwd, options = {}) {
56
56
  }
57
57
  console.log();
58
58
  console.log(' Next steps:');
59
- console.log(' 1. Edit openspec/specs/example/spec.md with your specifications');
60
- console.log(' 2. Run `daedalion build` to generate GitHub Copilot artifacts');
59
+ if (withExample) {
60
+ console.log(' 1. Edit openspec/specs/example/spec.md with your specifications');
61
+ console.log(' 2. Run `daedalion build` to generate GitHub Copilot artifacts');
62
+ }
63
+ else {
64
+ console.log(' 1. Run `daedalion build` to generate GitHub Copilot artifacts');
65
+ }
61
66
  console.log();
62
67
  }
63
68
  function getAllFiles(dir, files = []) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC7G,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,MAAM,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,MAAM,SAAS,GAAW,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,UAAuB,EAAE;IAC/D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,YAAY,GAAW,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IACrE,MAAM,KAAK,GAAa,WAAW,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE7C,IAAI,OAAO,GAAW,CAAC,CAAC;IACxB,IAAI,OAAO,GAAW,CAAC,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAW,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAEnD,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,YAAY,2BAA2B,CAAC,CAAC,CAAC;YAC1E,OAAO,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAW,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACvD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAW,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,wBAAwB,CAAC,CAAC;YAClF,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,OAAO,iBAAiB,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,iCAAiC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,QAAkB,EAAE;IACpD,MAAM,OAAO,GAAa,WAAW,CAAC,GAAG,CAAC,CAAC;IAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAW,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,YAAoB;IACzC,OAAO,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACvC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACzC,YAAY,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACjD,YAAY,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/generators/agent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAW,MAAM,aAAa,CAAC;AAE/F,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB,EAC1B,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,aAAa,CAwCf"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/generators/agent.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAW,MAAM,aAAa,CAAC;AAE/F,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB,EAC1B,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,aAAa,CAgDf"}
@@ -14,7 +14,16 @@ export function generateAgent(spec, outputDir, options = {}, config = {}) {
14
14
  workflow = generateSDKWorkflow(spec, tools);
15
15
  }
16
16
  else {
17
- tools = ['edit', 'search', 'terminal'];
17
+ // IDE mode use valid GitHub Copilot tool aliases
18
+ // 'execute' is the correct alias for terminal/shell access (replaces invalid 'terminal')
19
+ // Spec frontmatter 'agent_tools' overrides the defaults for this domain
20
+ const frontmatterTools = spec.frontmatter?.agent_tools;
21
+ if (Array.isArray(frontmatterTools) && frontmatterTools.length > 0) {
22
+ tools = frontmatterTools.filter((t) => typeof t === 'string');
23
+ }
24
+ else {
25
+ tools = ['edit', 'search', 'execute'];
26
+ }
18
27
  workflow = generateIDEWorkflow(spec);
19
28
  }
20
29
  const toolsYaml = tools.length > 0
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/generators/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/generators/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GeneratedFile, BuildOptions, Spec } from '../types.js';
2
+ export declare function generateAgentsIndex(specs: Spec[], outputDir: string, options?: BuildOptions): GeneratedFile;
3
+ //# sourceMappingURL=agents-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-index.d.ts","sourceRoot":"","sources":["../../src/generators/agents-index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAErE,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,EAAE,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB,GACzB,aAAa,CA4Bf"}
@@ -0,0 +1,29 @@
1
+ import { ensureDir } from '../utils.js';
2
+ import { writeFileSync } from 'fs';
3
+ import { join } from 'path';
4
+ export function generateAgentsIndex(specs, outputDir, options = {}) {
5
+ const agentsPath = join(outputDir, 'AGENTS.md');
6
+ let content = `# Agents\n\n> Auto-generated by Daedalion. Edit the specs in \`openspec/\` and run \`daedalion build\`.\n\n`;
7
+ if (specs.length === 0) {
8
+ content += `No agents compiled yet.\n`;
9
+ }
10
+ else {
11
+ content += `| Domain | Description | Agent file |\n`;
12
+ content += `|--------|-------------|------------|\n`;
13
+ for (const spec of specs) {
14
+ const description = spec.requirements.length > 0
15
+ ? spec.requirements[0].name
16
+ : spec.title;
17
+ const agentFile = `.github/agents/${spec.domain}.agent.md`;
18
+ content += `| ${spec.domain} | ${description} | [${spec.domain}.agent.md](${agentFile}) |\n`;
19
+ }
20
+ }
21
+ content += '\n';
22
+ if (options.dryRun) {
23
+ return { path: agentsPath, content };
24
+ }
25
+ ensureDir(agentsPath);
26
+ writeFileSync(agentsPath, content);
27
+ return { path: agentsPath, content };
28
+ }
29
+ //# sourceMappingURL=agents-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-index.js","sourceRoot":"","sources":["../../src/generators/agents-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,SAAiB,EACjB,UAAwB,EAAE;IAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAEhD,IAAI,OAAO,GAAG,6GAA6G,CAAC;IAE5H,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,2BAA2B,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,yCAAyC,CAAC;QACrD,OAAO,IAAI,yCAAyC,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACf,MAAM,SAAS,GAAG,kBAAkB,IAAI,CAAC,MAAM,WAAW,CAAC;YAC3D,OAAO,IAAI,KAAK,IAAI,CAAC,MAAM,MAAM,WAAW,OAAO,IAAI,CAAC,MAAM,cAAc,SAAS,OAAO,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,OAAO,IAAI,IAAI,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,UAAU,CAAC,CAAC;IACtB,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { GeneratedFile, BuildOptions } from '../types.js';
2
- export declare function generateInstructions(openspecDir: string, outputDir: string, options?: BuildOptions): GeneratedFile;
1
+ import type { GeneratedFile, BuildOptions, Spec } from '../types.js';
2
+ export declare function generateInstructions(openspecDir: string, outputDir: string, options?: BuildOptions, specs?: Spec[]): GeneratedFile;
3
3
  //# sourceMappingURL=instructions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/generators/instructions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,aAAa,CAoBtH"}
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/generators/instructions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAErE,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB,EAC1B,KAAK,GAAE,IAAI,EAAO,GACjB,aAAa,CAcf"}
@@ -2,17 +2,11 @@ import { readFileSync, existsSync } from 'fs';
2
2
  import { writeFileSync } from 'fs';
3
3
  import { join } from 'path';
4
4
  import { ensureDir } from '../utils.js';
5
- export function generateInstructions(openspecDir, outputDir, options = {}) {
5
+ export function generateInstructions(openspecDir, outputDir, options = {}, specs = []) {
6
6
  const projectPath = join(openspecDir, 'project.md');
7
7
  const instructionsPath = join(outputDir, 'copilot-instructions.md');
8
- let content;
9
- if (existsSync(projectPath)) {
10
- const projectContent = readFileSync(projectPath, 'utf-8');
11
- content = transformProjectToInstructions(projectContent);
12
- }
13
- else {
14
- content = generateDefaultInstructions();
15
- }
8
+ const conventionsSection = extractConventionsSection(projectPath);
9
+ const content = buildInstructionsContent(specs, conventionsSection);
16
10
  if (options.dryRun) {
17
11
  return { path: instructionsPath, content };
18
12
  }
@@ -20,36 +14,59 @@ export function generateInstructions(openspecDir, outputDir, options = {}) {
20
14
  writeFileSync(instructionsPath, content);
21
15
  return { path: instructionsPath, content };
22
16
  }
23
- function transformProjectToInstructions(projectContent) {
24
- const header = `# Copilot Instructions
25
-
26
- > Auto-generated by Daedalion from openspec/project.md
27
- > Do not edit directly - changes will be overwritten.
28
-
29
- `;
30
- return header + projectContent;
17
+ function extractConventionsSection(projectPath) {
18
+ if (!existsSync(projectPath)) {
19
+ return null;
20
+ }
21
+ const projectContent = readFileSync(projectPath, 'utf-8');
22
+ const lines = projectContent.split('\n');
23
+ let inConventions = false;
24
+ const conventionLines = [];
25
+ for (const line of lines) {
26
+ if (/^## Conventions\s*$/.test(line)) {
27
+ inConventions = true;
28
+ continue;
29
+ }
30
+ if (inConventions) {
31
+ // Stop at the next ## heading
32
+ if (/^## /.test(line)) {
33
+ break;
34
+ }
35
+ conventionLines.push(line);
36
+ }
37
+ }
38
+ if (conventionLines.length === 0) {
39
+ return null;
40
+ }
41
+ // Trim leading/trailing blank lines from the captured block
42
+ const trimmed = conventionLines.join('\n').trim();
43
+ return trimmed.length > 0 ? trimmed : null;
31
44
  }
32
- function generateDefaultInstructions() {
33
- return `# Copilot Instructions
34
-
35
- > Auto-generated by Daedalion
36
- > Do not edit directly - changes will be overwritten.
37
-
38
- ## Project Overview
39
-
40
- This project uses OpenSpec for specification-driven development.
41
-
42
- ## Working with Specifications
43
-
44
- - Specs are in \`openspec/specs/\`
45
- - Active changes are in \`openspec/changes/\`
46
- - Use the available skills and agents for implementation guidance
47
-
48
- ## Available Resources
49
-
50
- Check the \`.github/skills/\` directory for implementation guides.
51
- Check the \`.github/agents/\` directory for specialized agents.
52
- Check the \`.github/prompts/\` directory for slash commands.
53
- `;
45
+ function buildInstructionsContent(specs, conventions) {
46
+ const lines = [];
47
+ lines.push('# Copilot Instructions');
48
+ lines.push('');
49
+ lines.push('> Auto-generated by Daedalion. Do not edit rebuild with `daedalion build`.');
50
+ if (specs.length > 0) {
51
+ lines.push('');
52
+ lines.push('## Project Domains');
53
+ lines.push('');
54
+ lines.push('This project has the following spec domains:');
55
+ for (const spec of specs) {
56
+ lines.push(`- **${spec.domain}** — use \`#${spec.domain}\` skill or \`.github/agents/${spec.domain}.agent.md\``);
57
+ }
58
+ }
59
+ if (conventions !== null) {
60
+ lines.push('');
61
+ lines.push('## Conventions');
62
+ lines.push('');
63
+ lines.push(conventions);
64
+ }
65
+ lines.push('');
66
+ lines.push('## Working with Specs');
67
+ lines.push('');
68
+ lines.push('Specifications are in `openspec/`. Use `.github/skills/` for implementation guidance and `.github/agents/` for domain agents.');
69
+ lines.push('');
70
+ return lines.join('\n');
54
71
  }
55
72
  //# sourceMappingURL=instructions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/generators/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,SAAiB,EAAE,UAAwB,EAAE;IACrG,MAAM,WAAW,GAAW,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAW,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IAE5E,IAAI,OAAe,CAAC;IAEpB,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAW,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,GAAG,8BAA8B,CAAC,cAAc,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5B,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,8BAA8B,CAAC,cAAsB;IAC5D,MAAM,MAAM,GAAW;;;;;CAKxB,CAAC;IAEA,OAAO,MAAM,GAAG,cAAc,CAAC;AACjC,CAAC;AAED,SAAS,2BAA2B;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;CAoBR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/generators/instructions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GeneratedFile, BuildOptions, Spec } from '../types.js';
2
+ export declare function generatePatternInstructions(spec: Spec, outputDir: string, options?: BuildOptions): GeneratedFile;
3
+ //# sourceMappingURL=pattern-instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-instructions.d.ts","sourceRoot":"","sources":["../../src/generators/pattern-instructions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAe,MAAM,aAAa,CAAC;AAElF,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB,GACzB,aAAa,CA2Bf"}
@@ -0,0 +1,28 @@
1
+ import { ensureDir } from '../utils.js';
2
+ import { writeFileSync } from 'fs';
3
+ import { join } from 'path';
4
+ export function generatePatternInstructions(spec, outputDir, options = {}) {
5
+ const instructionsPath = join(outputDir, 'instructions', `${spec.domain}.instructions.md`);
6
+ const requirementsSummary = spec.requirements
7
+ .slice(0, 5)
8
+ .map((r) => `- **${r.name}**: ${r.description}`)
9
+ .join('\n');
10
+ const content = `---
11
+ applyTo: "**"
12
+ ---
13
+ # ${spec.title}
14
+
15
+ Domain: \`${spec.domain}\` · Skill: \`#${spec.domain}\`
16
+
17
+ ## Requirements
18
+
19
+ ${requirementsSummary || `See \`.github/skills/${spec.domain}/SKILL.md\` for full requirements.`}
20
+ `;
21
+ if (options.dryRun) {
22
+ return { path: instructionsPath, content };
23
+ }
24
+ ensureDir(instructionsPath);
25
+ writeFileSync(instructionsPath, content);
26
+ return { path: instructionsPath, content };
27
+ }
28
+ //# sourceMappingURL=pattern-instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-instructions.js","sourceRoot":"","sources":["../../src/generators/pattern-instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,UAAU,2BAA2B,CACzC,IAAU,EACV,SAAiB,EACjB,UAAwB,EAAE;IAE1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAE3F,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY;SAC1C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,OAAO,GAAG;;;IAGd,IAAI,CAAC,KAAK;;YAEF,IAAI,CAAC,MAAM,kBAAkB,IAAI,CAAC,MAAM;;;;EAIlD,mBAAmB,IAAI,wBAAwB,IAAI,CAAC,MAAM,oCAAoC;CAC/F,CAAC;IAEA,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5B,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { GeneratedFile, BuildOptions, Spec, TasksSummary } from '../types.js';
2
- export declare function generateSkill(spec: Spec, tasks: TasksSummary | null, outputDir: string, options?: BuildOptions): GeneratedFile;
2
+ export declare function generateSkill(spec: Spec, tasks: TasksSummary | null, outputDir: string, options?: BuildOptions): GeneratedFile[];
3
3
  //# sourceMappingURL=skill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/generators/skill.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhG,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB,GACzB,aAAa,CAiEf"}
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/generators/skill.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAyB,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1G,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,GAAG,IAAI,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAiB,GACzB,aAAa,EAAE,CAyFjB"}
@@ -6,20 +6,20 @@ export function generateSkill(spec, tasks, outputDir, options = {}) {
6
6
  const skillDir = join(outputDir, 'skills', spec.domain);
7
7
  const skillPath = join(skillDir, 'SKILL.md');
8
8
  const description = generateDescription(spec);
9
- const keywords = extractKeywords(spec);
10
9
  const specFrontmatter = spec.frontmatter && typeof spec.frontmatter === 'object'
11
10
  ? spec.frontmatter
12
11
  : {};
13
12
  const frontmatter = {
14
13
  name: specFrontmatter.name || spec.domain,
15
- description: specFrontmatter.description ||
16
- `${description}. Use when working on ${keywords}.`,
14
+ description: specFrontmatter.description || description,
17
15
  ...specFrontmatter,
18
16
  };
19
17
  const agentInstructions = typeof specFrontmatter.agent_instructions === 'string'
20
18
  ? specFrontmatter.agent_instructions
21
19
  : null;
22
- const frontmatterYaml = YAML.stringify(frontmatter).trimEnd();
20
+ const frontmatterYaml = YAML.stringify(frontmatter, null, { lineWidth: 0 }).trimEnd();
21
+ // Determine which requirements get spoke files
22
+ const requirementsWithScenarios = spec.requirements.filter((r) => r.scenarios.length > 0);
23
23
  let content = `---
24
24
  ${frontmatterYaml}
25
25
  ---
@@ -37,7 +37,15 @@ ${agentInstructions.trimEnd()}
37
37
  ${spec.requirements.map((r) => `- **${r.name}**: ${r.description}`).join('\n')}
38
38
 
39
39
  ## Acceptance Criteria
40
- ${generateAcceptanceCriteria(spec.requirements)}`;
40
+ `;
41
+ if (requirementsWithScenarios.length > 0) {
42
+ content += requirementsWithScenarios
43
+ .map((r) => `- [${r.name}](./${toSlug(r.name)}.md)`)
44
+ .join('\n');
45
+ }
46
+ else {
47
+ content += '_No scenarios defined._';
48
+ }
41
49
  if (tasks && tasks.items.length > 0) {
42
50
  content += `
43
51
 
@@ -46,44 +54,45 @@ ${tasks.items.map((t) => `- ${t}`).join('\n')}
46
54
  ${tasks.hasMore ? `\n> Full task list: openspec/changes/*/tasks.md` : ''}`;
47
55
  }
48
56
  content += '\n';
49
- if (options.dryRun) {
50
- return { path: skillPath, content };
57
+ const results = [];
58
+ if (!options.dryRun) {
59
+ ensureDir(skillPath);
60
+ writeFileSync(skillPath, content);
61
+ }
62
+ results.push({ path: skillPath, content });
63
+ // Generate one spoke file per requirement that has scenarios
64
+ for (const req of requirementsWithScenarios) {
65
+ const spokePath = join(skillDir, `${toSlug(req.name)}.md`);
66
+ const spokeContent = generateSpoke(req);
67
+ if (!options.dryRun) {
68
+ ensureDir(spokePath);
69
+ writeFileSync(spokePath, spokeContent);
70
+ }
71
+ results.push({ path: spokePath, content: spokeContent });
51
72
  }
52
- ensureDir(skillPath);
53
- writeFileSync(skillPath, content);
54
- return { path: skillPath, content };
73
+ return results;
55
74
  }
56
75
  function generateDescription(spec) {
76
+ const domain = spec.domain;
57
77
  if (spec.requirements.length === 0) {
58
- return spec.title;
59
- }
60
- const firstReq = spec.requirements[0];
61
- const desc = firstReq.description || firstReq.name;
62
- return desc.slice(0, 100).replace(/\.$/, '');
63
- }
64
- function extractKeywords(spec) {
65
- const words = new Set();
66
- words.add(spec.domain);
67
- for (const req of spec.requirements) {
68
- const nameWords = req.name.toLowerCase().split(/\s+/);
69
- nameWords.forEach((w) => {
70
- if (w.length > 3)
71
- words.add(w);
72
- });
78
+ return `Use when working on ${domain}`.slice(0, 60);
73
79
  }
74
- return Array.from(words).slice(0, 5).join(', ');
80
+ const reqName = spec.requirements[0].name;
81
+ return `Use when working on ${domain} - ${reqName}`.slice(0, 60);
75
82
  }
76
- function generateAcceptanceCriteria(requirements) {
77
- const criteria = [];
78
- for (const req of requirements) {
79
- for (const scenario of req.scenarios) {
80
- criteria.push(`### ${scenario.name}`);
81
- for (const step of scenario.steps) {
82
- criteria.push(`- ${step}`);
83
- }
84
- criteria.push('');
83
+ function generateSpoke(req) {
84
+ const lines = [`# ${req.name}`, ''];
85
+ for (const scenario of req.scenarios) {
86
+ lines.push(`### ${scenario.name}`);
87
+ for (const step of scenario.steps) {
88
+ lines.push(`- ${step}`);
85
89
  }
90
+ lines.push('');
86
91
  }
87
- return criteria.join('\n').trim();
92
+ return lines.join('\n');
93
+ }
94
+ /** "User Greeting" → "user-greeting" */
95
+ function toSlug(name) {
96
+ return name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
88
97
  }
89
98
  //# sourceMappingURL=skill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/generators/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,UAAU,aAAa,CAC3B,IAAU,EACV,KAA0B,EAC1B,SAAiB,EACjB,UAAwB,EAAE;IAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,eAAe,GACnB,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QACtD,CAAC,CAAC,IAAI,CAAC,WAAW;QAClB,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,WAAW,GAA4B;QAC3C,IAAI,EAAG,eAAe,CAAC,IAAe,IAAI,IAAI,CAAC,MAAM;QACrD,WAAW,EACR,eAAe,CAAC,WAAsB;YACvC,GAAG,WAAW,yBAAyB,QAAQ,GAAG;QACpD,GAAG,eAAe;KACnB,CAAC;IAEF,MAAM,iBAAiB,GACrB,OAAO,eAAe,CAAC,kBAAkB,KAAK,QAAQ;QACpD,CAAC,CAAC,eAAe,CAAC,kBAAkB;QACpC,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;IAE9D,IAAI,OAAO,GAAG;EACd,eAAe;;CAEhB,CAAC;IAEA,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;QAClD,OAAO,IAAI;;EAEb,iBAAiB,CAAC,OAAO,EAAE;;CAE5B,CAAC;IACA,CAAC;IAED,OAAO,IAAI,KAAK,IAAI,CAAC,KAAK;;;EAG1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGzF,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;IAEhD,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI;;;EAGb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EACnD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzE,CAAC;IAED,OAAO,IAAI,IAAI,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,SAAS,CAAC,SAAS,CAAC,CAAC;IACrB,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAU;IACrC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,IAAU;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,0BAA0B,CAAC,YAA2B;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/generators/skill.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export function parseProposal(proposalPath) {
5
5
  const content = readFileSync(proposalPath, 'utf-8');
6
6
  const { data: frontmatter, content: body } = matter(content);
7
7
  const changeName = basename(dirname(proposalPath));
8
- const title = extractTitle(body);
8
+ const title = extractTitle(body) ?? toTitleCase(changeName);
9
9
  const why = extractSection(body, 'Why');
10
10
  const what = extractSection(body, 'What');
11
11
  return {
@@ -19,16 +19,21 @@ export function parseProposal(proposalPath) {
19
19
  }
20
20
  function extractTitle(content) {
21
21
  const match = content.match(/^#\s+(.+)$/m);
22
- return match ? match[1].trim() : 'Untitled Proposal';
22
+ return match ? match[1].trim() : null;
23
+ }
24
+ function toTitleCase(kebab) {
25
+ return kebab.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
23
26
  }
24
27
  function extractSection(content, sectionName) {
25
- const lines = content.split('\n');
28
+ const lines = content.split(/\r?\n/);
26
29
  let inSection = false;
27
30
  const sectionContent = [];
28
31
  for (const line of lines) {
29
32
  const sectionMatch = line.match(/^##\s+(.+)$/);
30
33
  if (sectionMatch) {
31
- if (sectionMatch[1].toLowerCase() === sectionName.toLowerCase()) {
34
+ const heading = sectionMatch[1].toLowerCase();
35
+ const name = sectionName.toLowerCase();
36
+ if (heading === name || heading.startsWith(name + ' ') || heading.startsWith(name + ':')) {
32
37
  inSection = true;
33
38
  continue;
34
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../src/parsers/proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,MAAM,UAAU,aAAa,CAAC,YAAoB;IAChD,MAAM,OAAO,GAAW,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAW,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAW,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,GAAG,GAAkB,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,IAAI,GAAkB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,UAAU;QACV,KAAK;QACL,WAAW,EAAE,WAAsC;QACnD,GAAG;QACH,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,KAAK,GAA4B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,WAAmB;IAC1D,MAAM,KAAK,GAAa,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAA4B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChE,SAAS,GAAG,IAAI,CAAC;gBACjB,SAAS;YACX,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../src/parsers/proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,MAAM,UAAU,aAAa,CAAC,YAAoB;IAChD,MAAM,OAAO,GAAW,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAW,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAW,YAAY,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,GAAG,GAAkB,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,IAAI,GAAkB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEzD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,UAAU;QACV,KAAK;QACL,WAAW,EAAE,WAAsC;QACnD,GAAG;QACH,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,KAAK,GAA4B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,WAAmB;IAC1D,MAAM,KAAK,GAAa,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAA4B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACzF,SAAS,GAAG,IAAI,CAAC;gBACjB,SAAS;YACX,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3C,CAAC"}
@@ -5,7 +5,7 @@ export function parseSpec(specPath) {
5
5
  const content = readFileSync(specPath, 'utf-8');
6
6
  const { data: frontmatter, content: body } = matter(content);
7
7
  const domain = basename(dirname(specPath));
8
- const title = extractTitle(body);
8
+ const title = extractTitle(body) ?? domain.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ');
9
9
  const requirements = extractRequirements(body);
10
10
  return {
11
11
  path: specPath,
@@ -17,11 +17,11 @@ export function parseSpec(specPath) {
17
17
  }
18
18
  function extractTitle(content) {
19
19
  const match = content.match(/^#\s+(.+)$/m);
20
- return match ? match[1].trim() : 'Untitled Specification';
20
+ return match ? match[1].trim() : null;
21
21
  }
22
22
  function extractRequirements(content) {
23
23
  const requirements = [];
24
- const lines = content.split('\n');
24
+ const lines = content.split(/\r?\n/);
25
25
  let currentRequirement = null;
26
26
  let currentScenario = null;
27
27
  let inRequirementDescription = false;
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/parsers/spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/parsers/spec.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export function parseTasks(tasksPath, maxItems = 10) {
7
7
  return summarizeTasks(content, maxItems);
8
8
  }
9
9
  export function summarizeTasks(content, maxItems = 10) {
10
- const lines = content.split('\n');
10
+ const lines = content.split(/\r?\n/);
11
11
  const groups = [];
12
12
  const items = [];
13
13
  let currentGroup = null;
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/parsers/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAG9C,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,WAAmB,EAAE;IACjE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,OAAO,GAAW,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,WAAmB,EAAE;IACnE,MAAM,KAAK,GAAa,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,UAAU,GAAW,CAAC,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAA4B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9E,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAA4B,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAClF,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,UAAU,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAW,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,KAAK;QACL,OAAO,EAAE,UAAU,GAAG,QAAQ;KAC/B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/parsers/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAG9C,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,WAAmB,EAAE;IACjE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IAED,MAAM,OAAO,GAAW,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,WAAmB,EAAE;IACnE,MAAM,KAAK,GAAa,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,UAAU,GAAW,CAAC,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAA4B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9E,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAA4B,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAClF,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,UAAU,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAW,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM;QACN,KAAK;QACL,OAAO,EAAE,UAAU,GAAG,QAAQ;KAC/B,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -72,6 +72,7 @@ export interface DaedalionConfig {
72
72
  openspec: string;
73
73
  output: string;
74
74
  ci: {
75
+ enabled?: boolean;
75
76
  auto_commit: boolean;
76
77
  commit_message: string;
77
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,2BAA2B;AAC3B,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uDAAuD;AACvD,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,iEAAiE;AACjE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE;QACF,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;QACtB,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "daedalion",
3
- "version": "0.1.0",
4
- "description": "OpenSpec-to-Agent compiler for GitHub Copilot",
3
+ "version": "0.3.1",
4
+ "description": "Spec-to-Agent compiler for GitHub Copilot",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: daedalion-compile
3
+ description: Compile specs into GitHub Copilot artifacts (agents, skills, prompts, AGENTS.md)
4
+ ---
5
+
6
+ # Compile Specs
7
+
8
+ Use this prompt when specs have changed and you need to regenerate GitHub Copilot artifacts.
9
+
10
+ ## When to Use
11
+
12
+ - Spec files have been added or updated
13
+ - A new change proposal has been added
14
+ - You want to regenerate all Copilot artifacts from the current spec state
15
+
16
+ ## Steps
17
+
18
+ 1. **Discover spec files** — look in:
19
+ - Canonical specs: `openspec/specs/*/spec.md`
20
+ - Delta specs: `openspec/changes/*/specs/*/spec.md`
21
+ - Proposals: `openspec/changes/*/proposal.md`
22
+
23
+ 2. **Run compilation**
24
+
25
+ ```
26
+ daedalion build
27
+ ```
28
+
29
+ 3. **Review generated artifacts** in `.github/`:
30
+ - `.github/AGENTS.md` — agent discovery index
31
+ - `.github/agents/{domain}.agent.md` — domain agents
32
+ - `.github/skills/{domain}/SKILL.md` — domain skills
33
+ - `.github/prompts/{change}.prompt.md` — change-specific prompts
34
+ - `.github/copilot-instructions.md` — project context
35
+
36
+ 4. **Verify** that all expected domains appear in `.github/AGENTS.md`
@@ -3,16 +3,6 @@ target: github
3
3
  openspec: ./openspec
4
4
  output: ./.github
5
5
 
6
- # Optional
7
- # project_name: my-project
8
- # constitution: ./CONSTITUTION.md
9
-
10
- # CI behavior
11
6
  ci:
7
+ enabled: false # set to true to generate .github/workflows/daedalion.yml
12
8
  auto_commit: false
13
- commit_message: 'chore: regenerate agents from specs'
14
-
15
- # Agent output configuration
16
- agents:
17
- target: ide # 'ide' or 'sdk'
18
- tools: null # null to use IDE defaults, or array of custom tool names