| 27 | } |
| 28 | |
| 29 | function writeFixture(root) { |
| 30 | fs.mkdirSync(path.join(root, 'commands'), { recursive: true }); |
| 31 | fs.mkdirSync(path.join(root, 'agents'), { recursive: true }); |
| 32 | fs.mkdirSync(path.join(root, 'skills', 'tdd-workflow'), { recursive: true }); |
| 33 | fs.mkdirSync(path.join(root, 'skills', 'security-review'), { recursive: true }); |
| 34 | |
| 35 | fs.writeFileSync(path.join(root, 'agents', 'code-reviewer.md'), '---\nmodel: sonnet\ntools: Read\n---\n'); |
| 36 | fs.writeFileSync(path.join(root, 'agents', 'test-writer.md'), '---\nmodel: sonnet\ntools: Read\n---\n'); |
| 37 | fs.writeFileSync(path.join(root, 'skills', 'tdd-workflow', 'SKILL.md'), '# TDD workflow\n'); |
| 38 | fs.writeFileSync(path.join(root, 'skills', 'security-review', 'SKILL.md'), '# Security review\n'); |
| 39 | |
| 40 | fs.writeFileSync(path.join(root, 'commands', 'review.md'), `--- |
| 41 | description: Review changes |
| 42 | --- |
| 43 | # Review |
| 44 | |
| 45 | Use @code-reviewer and skill: security-review. |
| 46 | `); |
| 47 | |
| 48 | fs.writeFileSync(path.join(root, 'commands', 'tdd.md'), `--- |
| 49 | description: "Write tests first" |
| 50 | --- |
| 51 | # TDD |
| 52 | |
| 53 | Call subagent_type: test-writer and skills/tdd-workflow/SKILL.md. |
| 54 | `); |
| 55 | } |
| 56 | |
| 57 | function test(name, fn) { |
| 58 | try { |