@mindfoldhq/trellis 0.3.0-rc.5 → 0.3.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.
Files changed (121) hide show
  1. package/README.md +16 -4
  2. package/dist/cli/index.js +4 -0
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/init.d.ts +4 -0
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +29 -15
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/update.d.ts.map +1 -1
  9. package/dist/commands/update.js +19 -11
  10. package/dist/commands/update.js.map +1 -1
  11. package/dist/configurators/antigravity.d.ts +8 -0
  12. package/dist/configurators/antigravity.d.ts.map +1 -0
  13. package/dist/configurators/antigravity.js +18 -0
  14. package/dist/configurators/antigravity.js.map +1 -0
  15. package/dist/configurators/gemini.d.ts +8 -0
  16. package/dist/configurators/gemini.d.ts.map +1 -0
  17. package/dist/configurators/gemini.js +52 -0
  18. package/dist/configurators/gemini.js.map +1 -0
  19. package/dist/configurators/index.d.ts.map +1 -1
  20. package/dist/configurators/index.js +49 -1
  21. package/dist/configurators/index.js.map +1 -1
  22. package/dist/configurators/kilo.d.ts +8 -0
  23. package/dist/configurators/kilo.d.ts.map +1 -0
  24. package/dist/configurators/kilo.js +51 -0
  25. package/dist/configurators/kilo.js.map +1 -0
  26. package/dist/configurators/kiro.d.ts +8 -0
  27. package/dist/configurators/kiro.d.ts.map +1 -0
  28. package/dist/configurators/kiro.js +20 -0
  29. package/dist/configurators/kiro.js.map +1 -0
  30. package/dist/migrations/manifests/0.3.0-rc.6.json +9 -0
  31. package/dist/migrations/manifests/0.3.0.json +11 -0
  32. package/dist/templates/antigravity/index.d.ts +12 -0
  33. package/dist/templates/antigravity/index.d.ts.map +1 -0
  34. package/dist/templates/antigravity/index.js +29 -0
  35. package/dist/templates/antigravity/index.js.map +1 -0
  36. package/dist/templates/claude/agents/implement.md +1 -1
  37. package/dist/templates/claude/commands/trellis/brainstorm.md +16 -18
  38. package/dist/templates/claude/commands/trellis/start.md +73 -48
  39. package/dist/templates/codex/skills/brainstorm/SKILL.md +16 -18
  40. package/dist/templates/codex/skills/start/SKILL.md +80 -46
  41. package/dist/templates/cursor/commands/trellis-brainstorm.md +16 -18
  42. package/dist/templates/cursor/commands/trellis-start.md +191 -23
  43. package/dist/templates/extract.d.ts +52 -0
  44. package/dist/templates/extract.d.ts.map +1 -1
  45. package/dist/templates/extract.js +90 -0
  46. package/dist/templates/extract.js.map +1 -1
  47. package/dist/templates/gemini/commands/trellis/before-backend-dev.toml +17 -0
  48. package/dist/templates/gemini/commands/trellis/before-frontend-dev.toml +17 -0
  49. package/dist/templates/gemini/commands/trellis/brainstorm.toml +420 -0
  50. package/dist/templates/gemini/commands/trellis/break-loop.toml +129 -0
  51. package/dist/templates/gemini/commands/trellis/check-backend.toml +17 -0
  52. package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +147 -0
  53. package/dist/templates/gemini/commands/trellis/check-frontend.toml +17 -0
  54. package/dist/templates/gemini/commands/trellis/create-command.toml +119 -0
  55. package/dist/templates/gemini/commands/trellis/finish-work.toml +133 -0
  56. package/dist/templates/gemini/commands/trellis/integrate-skill.toml +104 -0
  57. package/dist/templates/gemini/commands/trellis/onboard.toml +111 -0
  58. package/dist/templates/gemini/commands/trellis/record-session.toml +66 -0
  59. package/dist/templates/gemini/commands/trellis/start.toml +292 -0
  60. package/dist/templates/gemini/commands/trellis/update-spec.toml +132 -0
  61. package/dist/templates/gemini/index.d.ts +21 -0
  62. package/dist/templates/gemini/index.d.ts.map +1 -0
  63. package/dist/templates/gemini/index.js +44 -0
  64. package/dist/templates/gemini/index.js.map +1 -0
  65. package/dist/templates/iflow/agents/implement.md +1 -1
  66. package/dist/templates/iflow/commands/trellis/brainstorm.md +16 -18
  67. package/dist/templates/iflow/commands/trellis/finish-work.md +9 -0
  68. package/dist/templates/iflow/commands/trellis/start.md +108 -50
  69. package/dist/templates/iflow/index.d.ts +3 -2
  70. package/dist/templates/iflow/index.d.ts.map +1 -1
  71. package/dist/templates/iflow/index.js +7 -9
  72. package/dist/templates/iflow/index.js.map +1 -1
  73. package/dist/templates/kilo/commands/trellis/before-backend-dev.md +13 -0
  74. package/dist/templates/kilo/commands/trellis/before-frontend-dev.md +13 -0
  75. package/dist/templates/kilo/commands/trellis/brainstorm.md +474 -0
  76. package/dist/templates/kilo/commands/trellis/break-loop.md +125 -0
  77. package/dist/templates/kilo/commands/trellis/check-backend.md +13 -0
  78. package/dist/templates/kilo/commands/trellis/check-cross-layer.md +153 -0
  79. package/dist/templates/kilo/commands/trellis/check-frontend.md +13 -0
  80. package/dist/templates/kilo/commands/trellis/create-command.md +152 -0
  81. package/dist/templates/kilo/commands/trellis/finish-work.md +129 -0
  82. package/dist/templates/kilo/commands/trellis/integrate-skill.md +219 -0
  83. package/dist/templates/kilo/commands/trellis/onboard.md +358 -0
  84. package/dist/templates/kilo/commands/trellis/parallel.md +194 -0
  85. package/dist/templates/kilo/commands/trellis/record-session.md +62 -0
  86. package/dist/templates/kilo/commands/trellis/start.md +321 -0
  87. package/dist/templates/kilo/commands/trellis/update-spec.md +285 -0
  88. package/dist/templates/kilo/index.d.ts +16 -0
  89. package/dist/templates/kilo/index.d.ts.map +1 -0
  90. package/dist/templates/kilo/index.js +39 -0
  91. package/dist/templates/kilo/index.js.map +1 -0
  92. package/dist/templates/kiro/index.d.ts +18 -0
  93. package/dist/templates/kiro/index.d.ts.map +1 -0
  94. package/dist/templates/kiro/index.js +40 -0
  95. package/dist/templates/kiro/index.js.map +1 -0
  96. package/dist/templates/kiro/skills/before-backend-dev/SKILL.md +18 -0
  97. package/dist/templates/kiro/skills/before-frontend-dev/SKILL.md +18 -0
  98. package/dist/templates/kiro/skills/brainstorm/SKILL.md +479 -0
  99. package/dist/templates/kiro/skills/break-loop/SKILL.md +130 -0
  100. package/dist/templates/kiro/skills/check-backend/SKILL.md +18 -0
  101. package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +158 -0
  102. package/dist/templates/kiro/skills/check-frontend/SKILL.md +18 -0
  103. package/dist/templates/kiro/skills/create-command/SKILL.md +101 -0
  104. package/dist/templates/kiro/skills/finish-work/SKILL.md +148 -0
  105. package/dist/templates/kiro/skills/integrate-skill/SKILL.md +221 -0
  106. package/dist/templates/kiro/skills/onboard/SKILL.md +363 -0
  107. package/dist/templates/kiro/skills/record-session/SKILL.md +67 -0
  108. package/dist/templates/kiro/skills/start/SKILL.md +330 -0
  109. package/dist/templates/kiro/skills/update-spec/SKILL.md +335 -0
  110. package/dist/templates/opencode/agents/implement.md +1 -1
  111. package/dist/templates/opencode/agents/research.md +1 -2
  112. package/dist/templates/opencode/commands/trellis/brainstorm.md +16 -18
  113. package/dist/templates/opencode/commands/trellis/start.md +71 -48
  114. package/dist/templates/trellis/scripts/common/cli_adapter.py +100 -12
  115. package/dist/templates/trellis/scripts/common/registry.py +1 -1
  116. package/dist/templates/trellis/scripts/task.py +1 -8
  117. package/dist/types/ai-tools.d.ts +4 -4
  118. package/dist/types/ai-tools.d.ts.map +1 -1
  119. package/dist/types/ai-tools.js +32 -0
  120. package/dist/types/ai-tools.js.map +1 -1
  121. package/package.json +3 -2
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Gemini CLI configurator
3
+ *
4
+ * Configures Gemini CLI by copying templates from src/templates/gemini/.
5
+ * Gemini CLI uses TOML commands, no hooks/agents/settings.
6
+ */
7
+ import { readFileSync, readdirSync, statSync } from "node:fs";
8
+ import path from "node:path";
9
+ import { getGeminiTemplatePath } from "../templates/extract.js";
10
+ import { ensureDir, writeFile } from "../utils/file-writer.js";
11
+ const EXCLUDE_PATTERNS = [
12
+ ".d.ts",
13
+ ".d.ts.map",
14
+ ".js",
15
+ ".js.map",
16
+ "__pycache__",
17
+ "node_modules",
18
+ "bun.lock",
19
+ ".gitignore",
20
+ ];
21
+ function shouldExclude(filename) {
22
+ for (const pattern of EXCLUDE_PATTERNS) {
23
+ if (filename.endsWith(pattern) || filename === pattern) {
24
+ return true;
25
+ }
26
+ }
27
+ return false;
28
+ }
29
+ async function copyDirFiltered(src, dest) {
30
+ ensureDir(dest);
31
+ for (const entry of readdirSync(src)) {
32
+ if (shouldExclude(entry)) {
33
+ continue;
34
+ }
35
+ const srcPath = path.join(src, entry);
36
+ const destPath = path.join(dest, entry);
37
+ const stat = statSync(srcPath);
38
+ if (stat.isDirectory()) {
39
+ await copyDirFiltered(srcPath, destPath);
40
+ }
41
+ else {
42
+ const content = readFileSync(srcPath, "utf-8");
43
+ await writeFile(destPath, content);
44
+ }
45
+ }
46
+ }
47
+ export async function configureGemini(cwd) {
48
+ const sourcePath = getGeminiTemplatePath();
49
+ const destPath = path.join(cwd, ".gemini");
50
+ await copyDirFiltered(sourcePath, destPath);
51
+ }
52
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/configurators/gemini.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,gBAAgB,GAAG;IACvB,OAAO;IACP,WAAW;IACX,KAAK;IACL,SAAS;IACT,aAAa;IACb,cAAc;IACd,UAAU;IACV,YAAY;CACb,CAAC;AAEF,SAAS,aAAa,CAAC,QAAgB;IACrC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAY;IACtD,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE3C,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configurators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AA+H3E,uBAAuB;AACvB,eAAO,MAAM,YAAY,EAA4B,MAAM,EAAE,CAAC;AAE9D,gGAAgG;AAChG,eAAO,MAAM,WAAW,UAAmD,CAAC;AAE5E,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,UAA+B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQ/D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,EAAE,CAOF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configurators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAY,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AA6K3E,uBAAuB;AACvB,eAAO,MAAM,YAAY,EAA4B,MAAM,EAAE,CAAC;AAE9D,gGAAgG;AAChG,eAAO,MAAM,WAAW,UAAmD,CAAC;AAE5E,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,UAA+B,CAAC;AAE7D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQ/D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAEjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,EAAE,CAOF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
@@ -16,13 +16,21 @@ import { configureCursor } from "./cursor.js";
16
16
  import { configureIflow } from "./iflow.js";
17
17
  import { configureOpenCode } from "./opencode.js";
18
18
  import { configureCodex } from "./codex.js";
19
+ import { configureKilo } from "./kilo.js";
20
+ import { configureKiro } from "./kiro.js";
21
+ import { configureGemini } from "./gemini.js";
22
+ import { configureAntigravity } from "./antigravity.js";
19
23
  // Shared utilities
20
24
  import { resolvePlaceholders } from "./shared.js";
21
25
  // Template content for update tracking
22
26
  import { getAllAgents as getClaudeAgents, getAllCommands as getClaudeCommands, getAllHooks as getClaudeHooks, getSettingsTemplate as getClaudeSettings, } from "../templates/claude/index.js";
23
- import { getAllCommands as getCursorCommands, } from "../templates/cursor/index.js";
27
+ import { getAllCommands as getCursorCommands } from "../templates/cursor/index.js";
24
28
  import { getAllAgents as getIflowAgents, getAllCommands as getIflowCommands, getAllHooks as getIflowHooks, getSettingsTemplate as getIflowSettings, } from "../templates/iflow/index.js";
25
29
  import { getAllSkills as getCodexSkills } from "../templates/codex/index.js";
30
+ import { getAllCommands as getKiloCommands } from "../templates/kilo/index.js";
31
+ import { getAllSkills as getKiroSkills } from "../templates/kiro/index.js";
32
+ import { getAllCommands as getGeminiCommands } from "../templates/gemini/index.js";
33
+ import { getAllWorkflows as getAntigravityWorkflows } from "../templates/antigravity/index.js";
26
34
  /**
27
35
  * Platform functions registry — maps each AITool to its behavior.
28
36
  * When adding a new platform, add an entry here.
@@ -97,6 +105,46 @@ const PLATFORM_FUNCTIONS = {
97
105
  return files;
98
106
  },
99
107
  },
108
+ kilo: {
109
+ configure: configureKilo,
110
+ collectTemplates: () => {
111
+ const files = new Map();
112
+ for (const cmd of getKiloCommands()) {
113
+ files.set(`.kilocode/commands/trellis/${cmd.name}.md`, cmd.content);
114
+ }
115
+ return files;
116
+ },
117
+ },
118
+ kiro: {
119
+ configure: configureKiro,
120
+ collectTemplates: () => {
121
+ const files = new Map();
122
+ for (const skill of getKiroSkills()) {
123
+ files.set(`.kiro/skills/${skill.name}/SKILL.md`, skill.content);
124
+ }
125
+ return files;
126
+ },
127
+ },
128
+ gemini: {
129
+ configure: configureGemini,
130
+ collectTemplates: () => {
131
+ const files = new Map();
132
+ for (const cmd of getGeminiCommands()) {
133
+ files.set(`.gemini/commands/trellis/${cmd.name}.toml`, cmd.content);
134
+ }
135
+ return files;
136
+ },
137
+ },
138
+ antigravity: {
139
+ configure: configureAntigravity,
140
+ collectTemplates: () => {
141
+ const files = new Map();
142
+ for (const workflow of getAntigravityWorkflows()) {
143
+ files.set(`.agent/workflows/${workflow.name}.md`, workflow.content);
144
+ }
145
+ return files;
146
+ },
147
+ },
100
148
  };
101
149
  // =============================================================================
102
150
  // Derived Helpers — all derived from AI_TOOLS registry
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configurators/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configurators/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Kilo CLI configurator
3
+ *
4
+ * Configures Kilo CLI by copying templates from src/templates/kilo/.
5
+ * Kilo CLI does not support hooks, so only commands are copied.
6
+ */
7
+ export declare function configureKilo(cwd: string): Promise<void>;
8
+ //# sourceMappingURL=kilo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kilo.d.ts","sourceRoot":"","sources":["../../src/configurators/kilo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+CH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9D"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Kilo CLI configurator
3
+ *
4
+ * Configures Kilo CLI by copying templates from src/templates/kilo/.
5
+ * Kilo CLI does not support hooks, so only commands are copied.
6
+ */
7
+ import { readFileSync, readdirSync, statSync } from "node:fs";
8
+ import path from "node:path";
9
+ import { getKiloTemplatePath } from "../templates/extract.js";
10
+ import { ensureDir, writeFile } from "../utils/file-writer.js";
11
+ const EXCLUDE_PATTERNS = [
12
+ ".d.ts",
13
+ ".d.ts.map",
14
+ ".js.map",
15
+ "__pycache__",
16
+ "node_modules",
17
+ "bun.lock",
18
+ ".gitignore",
19
+ ];
20
+ function shouldExclude(filename) {
21
+ for (const pattern of EXCLUDE_PATTERNS) {
22
+ if (filename.endsWith(pattern) || filename === pattern) {
23
+ return true;
24
+ }
25
+ }
26
+ return false;
27
+ }
28
+ async function copyDirFiltered(src, dest) {
29
+ ensureDir(dest);
30
+ for (const entry of readdirSync(src)) {
31
+ if (shouldExclude(entry)) {
32
+ continue;
33
+ }
34
+ const srcPath = path.join(src, entry);
35
+ const destPath = path.join(dest, entry);
36
+ const stat = statSync(srcPath);
37
+ if (stat.isDirectory()) {
38
+ await copyDirFiltered(srcPath, destPath);
39
+ }
40
+ else {
41
+ const content = readFileSync(srcPath, "utf-8");
42
+ await writeFile(destPath, content);
43
+ }
44
+ }
45
+ }
46
+ export async function configureKilo(cwd) {
47
+ const sourcePath = getKiloTemplatePath();
48
+ const destPath = path.join(cwd, ".kilocode");
49
+ await copyDirFiltered(sourcePath, destPath);
50
+ }
51
+ //# sourceMappingURL=kilo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kilo.js","sourceRoot":"","sources":["../../src/configurators/kilo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,gBAAgB,GAAG;IACvB,OAAO;IACP,WAAW;IACX,SAAS;IACT,aAAa;IACb,cAAc;IACd,UAAU;IACV,YAAY;CACb,CAAC;AAEF,SAAS,aAAa,CAAC,QAAgB;IACrC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAY;IACtD,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE7C,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Configure Kiro Code by writing skill templates.
3
+ *
4
+ * Output:
5
+ * - .kiro/skills/<skill-name>/SKILL.md
6
+ */
7
+ export declare function configureKiro(cwd: string): Promise<void>;
8
+ //# sourceMappingURL=kiro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro.d.ts","sourceRoot":"","sources":["../../src/configurators/kiro.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9D"}
@@ -0,0 +1,20 @@
1
+ import path from "node:path";
2
+ import { getAllSkills } from "../templates/kiro/index.js";
3
+ import { ensureDir, writeFile } from "../utils/file-writer.js";
4
+ /**
5
+ * Configure Kiro Code by writing skill templates.
6
+ *
7
+ * Output:
8
+ * - .kiro/skills/<skill-name>/SKILL.md
9
+ */
10
+ export async function configureKiro(cwd) {
11
+ const skillsRoot = path.join(cwd, ".kiro", "skills");
12
+ ensureDir(skillsRoot);
13
+ for (const skill of getAllSkills()) {
14
+ const skillDir = path.join(skillsRoot, skill.name);
15
+ ensureDir(skillDir);
16
+ const targetPath = path.join(skillDir, "SKILL.md");
17
+ await writeFile(targetPath, skill.content);
18
+ }
19
+ }
20
+ //# sourceMappingURL=kiro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro.js","sourceRoot":"","sources":["../../src/configurators/kiro.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,SAAS,CAAC,UAAU,CAAC,CAAC;IAEtB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.3.0-rc.6",
3
+ "description": "4 new platforms: Kilo, Kiro, Gemini CLI, Antigravity",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**New Platforms:**\n- feat(kilo): add Kilo CLI as commands-only platform (.kilocode/commands/trellis/)\n- feat(kiro): add Kiro Code as skills-based platform (.kiro/skills/)\n- feat(gemini): add Gemini CLI as first TOML-format command platform (.gemini/commands/trellis/*.toml)\n- feat(antigravity): add Antigravity as workflow-based platform (.agent/workflows/)\n\n**Bug Fixes:**\n- fix(scripts): remove non-existent spec/shared/ references from init-context defaults\n- fix(templates): correct iflow start/finish-work template content\n- fix(docs): correct license badge from FSL to AGPL-3.0\n- fix(init): fix start process flow (#48)\n\n**Tests:**\n- Added 50+ new tests covering all 4 new platforms (templates, configurators, init integration, regression)",
7
+ "migrations": [],
8
+ "notes": "No migration required. New platform templates only — existing projects unaffected. Run `trellis init --kilo`, `--kiro`, `--gemini`, or `--antigravity` to add new platform support."
9
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": "0.3.0",
3
+ "description": "Stable release: Shell→Python migration, 9 AI platforms, centralized registry",
4
+ "breaking": true,
5
+ "recommendMigrate": true,
6
+ "changelog": "**BREAKING: Shell to Python Migration**\n- All `.trellis/scripts/*.sh` replaced by Python equivalents (requires Python 3.10+)\n- Directory rename: `multi-agent/` → `multi_agent/` (underscore)\n- Command namespace migration: Claude uses `.claude/commands/trellis/` subdirectory, Cursor uses `trellis-` prefix\n\n**New Platforms (9 total):**\n- Codex (`.agents/skills/`) — OpenAI's CLI agent\n- Kilo (`.kilocode/commands/trellis/`) — commands-only platform\n- Kiro (`.kiro/skills/`) — skills-based platform\n- Gemini CLI (`.gemini/commands/trellis/*.toml`) — TOML-format commands\n- Antigravity (`.agent/workflows/`) — workflow-based platform\n- Plus existing: Claude Code, Cursor, iFlow, OpenCode\n\n**Architecture:**\n- Centralized platform registry replacing scattered init/update logic\n- Extracted `resolvePlaceholders()` to shared module\n- Deduplicated `compareVersions()` to `utils/compare-versions.ts`\n- Remote spec templates from docs repo\n\n**Key Fixes:**\n- Windows encoding: `_configure_stream` with reconfigure/detach fallback for stdout/stderr\n- Windows subprocess: `CREATE_NEW_PROCESS_GROUP` on win32, `start_new_session` on Unix\n- Template placeholder roundtrip (`{{PYTHON_CMD}}` resolution)\n- CLI version comparison for prerelease versions\n- add_session.py table separator tolerance for formatted markdown\n\n**Quality:**\n- 312+ tests across 17+ files (unit, integration, regression)\n- @vitest/coverage-v8 support\n- Executable spec enforcement (7-section structure)",
7
+ "migrations": [],
8
+ "migrationGuide": "# Migration Guide: v0.2.x → v0.3.0\n\n## Overview\n\nAll shell scripts (.sh) have been replaced by Python scripts (.py). This affects any custom workflows, slash commands, or documentation that references the old scripts.\n\n## Requirements\n\n- Python 3.10 or higher\n\n## What Changed\n\n### Script Extensions\n\n| Old Path | New Path |\n|----------|----------|\n| `.trellis/scripts/*.sh` | `.trellis/scripts/*.py` |\n| `.trellis/scripts/common/*.sh` | `.trellis/scripts/common/*.py` |\n| `.trellis/scripts/multi-agent/*.sh` | `.trellis/scripts/multi_agent/*.py` |\n\n### Directory Rename\n\n| Old | New |\n|-----|-----|\n| `multi-agent/` (hyphen) | `multi_agent/` (underscore) |\n\n### Invocation Change\n\n| Old | New |\n|-----|-----|\n| `./script.sh` | `python3 ./script.py` |\n| `./.trellis/scripts/task.sh` | `python3 ./.trellis/scripts/task.py` |\n\n## After Migration\n\nRun `trellis update --migrate` to remove the old shell scripts from your project.",
9
+ "aiInstructions": "When assisting users upgrading from 0.2.x to 0.3.0:\n1. Search for files containing `.trellis/scripts/*.sh` references and update to `.py`\n2. Replace `multi-agent/` directory references with `multi_agent/` (underscore)\n3. Always use `python3` explicitly, not just `python` (Windows compatibility)\n4. Check ALL locations: docstrings, help text, error messages, markdown docs\n5. Run `trellis update --migrate` to remove legacy shell scripts\n\nNote: Users upgrading from any 0.3.0 prerelease (beta/rc) need no file changes — only the version stamp is updated.",
10
+ "notes": "Aggregated release covering beta.0 through rc.6. All file migrations were applied in beta.0. Users upgrading from any 0.3.0 prerelease will see no file changes — only the .version stamp is updated. New projects get all 9 platform options via `trellis init`."
11
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Antigravity workflow templates
3
+ *
4
+ * Antigravity uses workspace workflows under .agent/workflows/.
5
+ * We reuse Codex skill content as workflow content.
6
+ */
7
+ export interface WorkflowTemplate {
8
+ name: string;
9
+ content: string;
10
+ }
11
+ export declare function getAllWorkflows(): WorkflowTemplate[];
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/antigravity/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AA6BD,wBAAgB,eAAe,IAAI,gBAAgB,EAAE,CAOpD"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Antigravity workflow templates
3
+ *
4
+ * Antigravity uses workspace workflows under .agent/workflows/.
5
+ * We reuse Codex skill content as workflow content.
6
+ */
7
+ import { getAllSkills as getAllCodexSkills, } from "../codex/index.js";
8
+ function adaptSkillContentToWorkflow(content, workflowNames) {
9
+ const base = content
10
+ .replaceAll("Codex skills", "Antigravity workflows")
11
+ .replaceAll("Codex skill", "Antigravity workflow")
12
+ .replaceAll("Create New Skill", "Create New Workflow")
13
+ .replaceAll(".agents/skills/<skill-name>/SKILL.md", ".agent/workflows/<workflow-name>.md")
14
+ .replace(/\.agents\/skills\/([^/\s`]+)\/SKILL\.md/g, ".agent/workflows/$1.md")
15
+ .replaceAll(".agents/skills/", ".agent/workflows/")
16
+ .replaceAll("$<skill-name>", "/<workflow-name>")
17
+ .replaceAll("Or open /skills and select it", "Or type / and select it");
18
+ // Antigravity workflows are triggered with slash commands (/start), not "$skill".
19
+ return workflowNames.reduce((adapted, name) => adapted.replaceAll(`$${name}`, `/${name}`), base);
20
+ }
21
+ export function getAllWorkflows() {
22
+ const skills = getAllCodexSkills();
23
+ const workflowNames = skills.map((skill) => skill.name);
24
+ return skills.map((skill) => ({
25
+ name: skill.name,
26
+ content: adaptSkillContentToWorkflow(skill.content, workflowNames),
27
+ }));
28
+ }
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/antigravity/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,YAAY,IAAI,iBAAiB,GAElC,MAAM,mBAAmB,CAAC;AAO3B,SAAS,2BAA2B,CAClC,OAAe,EACf,aAAuB;IAEvB,MAAM,IAAI,GAAG,OAAO;SACjB,UAAU,CAAC,cAAc,EAAE,uBAAuB,CAAC;SACnD,UAAU,CAAC,aAAa,EAAE,sBAAsB,CAAC;SACjD,UAAU,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;SACrD,UAAU,CACT,sCAAsC,EACtC,qCAAqC,CACtC;SACA,OAAO,CACN,0CAA0C,EAC1C,wBAAwB,CACzB;SACA,UAAU,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;SAClD,UAAU,CAAC,eAAe,EAAE,kBAAkB,CAAC;SAC/C,UAAU,CAAC,+BAA+B,EAAE,yBAAyB,CAAC,CAAC;IAE1E,kFAAkF;IAClF,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,EAC7D,IAAI,CACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAyB,iBAAiB,EAAE,CAAC;IACzD,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,2BAA2B,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC;KACnE,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -43,7 +43,7 @@ Read relevant specs based on task type:
43
43
 
44
44
  - Backend: `.trellis/spec/backend/`
45
45
  - Frontend: `.trellis/spec/frontend/`
46
- - Shared: `.trellis/spec/shared/`
46
+ - Guides: `.trellis/spec/guides/`
47
47
 
48
48
  ### 2. Understand Requirements
49
49
 
@@ -443,28 +443,26 @@ Context / Decision / Consequences
443
443
 
444
444
  ## Integration with Start Workflow
445
445
 
446
- High-level flow:
446
+ After brainstorm completes (Step 8 confirmation approved), the flow continues to the Task Workflow's **Phase 2: Prepare for Implementation**:
447
447
 
448
448
  ```text
449
- User describes task
450
-
451
- Step 0: Ensure task exists (create if missing)
452
-
453
- Step 1: Auto-context (inspect repo/docs, research if needed)
454
-
455
- Step 2: Classify complexity
456
-
457
- Step 4 (if triggered): Research-first propose options
458
-
459
- Step 5: Expansion sweep (diverge)
460
-
461
- Step 6: Q&A loop (converge; update PRD each turn)
462
-
463
- Step 8: Final confirmation + small-PR plan
464
-
465
- Implement
449
+ Brainstorm
450
+ Step 0: Create task directory + seed PRD
451
+ Step 1–7: Discover requirements, research, converge
452
+ Step 8: Final confirmation → user approves
453
+
454
+ Task Workflow Phase 2 (Prepare for Implementation)
455
+ Code-Spec Depth Check (if applicable)
456
+ → Research codebase (based on confirmed PRD)
457
+ Configure code-spec context (jsonl files)
458
+ → Activate task
459
+
460
+ Task Workflow Phase 3 (Execute)
461
+ Implement Check Complete
466
462
  ```
467
463
 
464
+ The task directory and PRD already exist from brainstorm, so Phase 1 of the Task Workflow is skipped entirely.
465
+
468
466
  ---
469
467
 
470
468
  ## Related Commands
@@ -101,7 +101,7 @@ For questions or trivial fixes, work directly:
101
101
  For simple, well-defined tasks:
102
102
 
103
103
  1. Quick confirm: "I understand you want to [goal]. Ready to proceed?"
104
- 2. If yes, skip to **Task Workflow Step 2** (Research)
104
+ 2. If yes, proceed to **Task Workflow Phase 1 Path B** (create task, write PRD, then research)
105
105
  3. If no, clarify and confirm again
106
106
 
107
107
  ---
@@ -139,16 +139,70 @@ See `/trellis:brainstorm` for the full process. Summary:
139
139
  - Check Agent verifies against code-spec requirements
140
140
  - Result: Code that follows project conventions automatically
141
141
 
142
- ### Step 1: Understand the Task `[AI]`
142
+ ### Overview: Two Entry Points
143
143
 
144
- **If coming from Brainstorm:** Skip this step - requirements are already in PRD.
144
+ ```
145
+ From Brainstorm (Complex Task):
146
+ PRD confirmed → Research → Configure Context → Activate → Implement → Check → Complete
147
+
148
+ From Simple Task:
149
+ Confirm → Create Task → Write PRD → Research → Configure Context → Activate → Implement → Check → Complete
150
+ ```
151
+
152
+ **Key principle: Research happens AFTER requirements are clear (PRD exists).**
153
+
154
+ ---
155
+
156
+ ### Phase 1: Establish Requirements
157
+
158
+ #### Path A: From Brainstorm (skip to Phase 2)
159
+
160
+ PRD and task directory already exist from brainstorm. Skip directly to Phase 2.
145
161
 
146
- **If Simple Task:** Quick confirm understanding:
162
+ #### Path B: From Simple Task
163
+
164
+ **Step 1: Confirm Understanding** `[AI]`
165
+
166
+ Quick confirm:
147
167
  - What is the goal?
148
168
  - What type of development? (frontend / backend / fullstack)
149
169
  - Any specific requirements or constraints?
150
170
 
151
- ### Step 1.5: Code-Spec Depth Requirement (CRITICAL) `[AI]`
171
+ **Step 2: Create Task Directory** `[AI]`
172
+
173
+ ```bash
174
+ TASK_DIR=$(python3 ./.trellis/scripts/task.py create "<title>" --slug <name>)
175
+ ```
176
+
177
+ **Step 3: Write PRD** `[AI]`
178
+
179
+ Create `prd.md` in the task directory with:
180
+
181
+ ```markdown
182
+ # <Task Title>
183
+
184
+ ## Goal
185
+ <What we're trying to achieve>
186
+
187
+ ## Requirements
188
+ - <Requirement 1>
189
+ - <Requirement 2>
190
+
191
+ ## Acceptance Criteria
192
+ - [ ] <Criterion 1>
193
+ - [ ] <Criterion 2>
194
+
195
+ ## Technical Notes
196
+ <Any technical decisions or constraints>
197
+ ```
198
+
199
+ ---
200
+
201
+ ### Phase 2: Prepare for Implementation (shared)
202
+
203
+ > Both paths converge here. PRD and task directory must exist before proceeding.
204
+
205
+ **Step 4: Code-Spec Depth Check** `[AI]`
152
206
 
153
207
  If the task touches infra or cross-layer contracts, do not start implementation until code-spec depth is defined.
154
208
 
@@ -158,22 +212,22 @@ Trigger this requirement when the change includes any of:
158
212
  - Infra integrations (storage, queue, cache, secrets, env contracts)
159
213
  - Cross-layer payload transformations
160
214
 
161
- Must-have before implementation:
215
+ Must-have before proceeding:
162
216
  - [ ] Target code-spec files to update are identified
163
217
  - [ ] Concrete contract is defined (signature, fields, env keys)
164
218
  - [ ] Validation and error matrix is defined
165
219
  - [ ] At least one Good/Base/Bad case is defined
166
220
 
167
- ### Step 2: Research the Codebase `[AI]`
221
+ **Step 5: Research the Codebase** `[AI]`
168
222
 
169
- Call Research Agent to analyze:
223
+ Based on the confirmed PRD, call Research Agent to find relevant specs and patterns:
170
224
 
171
225
  ```
172
226
  Task(
173
227
  subagent_type: "research",
174
228
  prompt: "Analyze the codebase for this task:
175
229
 
176
- Task: <user's task description>
230
+ Task: <goal from PRD>
177
231
  Type: <frontend/backend/fullstack>
178
232
 
179
233
  Please find:
@@ -189,23 +243,12 @@ Task(
189
243
  - <pattern>: <example file path>
190
244
 
191
245
  ## Files to Modify
192
- - <path>: <what change>
193
-
194
- ## Suggested Task Name
195
- - <short-slug-name>",
246
+ - <path>: <what change>",
196
247
  model: "opus"
197
248
  )
198
249
  ```
199
250
 
200
- ### Step 3: Create Task Directory `[AI]`
201
-
202
- Based on research results:
203
-
204
- ```bash
205
- TASK_DIR=$(python3 ./.trellis/scripts/task.py create "<title from research>" --slug <suggested-slug>)
206
- ```
207
-
208
- ### Step 4: Configure Context `[AI]`
251
+ **Step 6: Configure Context** `[AI]`
209
252
 
210
253
  Initialize default context:
211
254
 
@@ -222,29 +265,7 @@ python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" implement "<path>" "<
222
265
  python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" check "<path>" "<reason>"
223
266
  ```
224
267
 
225
- ### Step 5: Write Requirements `[AI]`
226
-
227
- Create `prd.md` in the task directory with:
228
-
229
- ```markdown
230
- # <Task Title>
231
-
232
- ## Goal
233
- <What we're trying to achieve>
234
-
235
- ## Requirements
236
- - <Requirement 1>
237
- - <Requirement 2>
238
-
239
- ## Acceptance Criteria
240
- - [ ] <Criterion 1>
241
- - [ ] <Criterion 2>
242
-
243
- ## Technical Notes
244
- <Any technical decisions or constraints>
245
- ```
246
-
247
- ### Step 6: Activate Task `[AI]`
268
+ **Step 7: Activate Task** `[AI]`
248
269
 
249
270
  ```bash
250
271
  python3 ./.trellis/scripts/task.py start "$TASK_DIR"
@@ -252,7 +273,11 @@ python3 ./.trellis/scripts/task.py start "$TASK_DIR"
252
273
 
253
274
  This sets `.current-task` so hooks can inject context.
254
275
 
255
- ### Step 7: Implement `[AI]`
276
+ ---
277
+
278
+ ### Phase 3: Execute (shared)
279
+
280
+ **Step 8: Implement** `[AI]`
256
281
 
257
282
  Call Implement Agent (code-spec context is auto-injected by hook):
258
283
 
@@ -267,7 +292,7 @@ Task(
267
292
  )
268
293
  ```
269
294
 
270
- ### Step 8: Check Quality `[AI]`
295
+ **Step 9: Check Quality** `[AI]`
271
296
 
272
297
  Call Check Agent (code-spec context is auto-injected by hook):
273
298
 
@@ -282,7 +307,7 @@ Task(
282
307
  )
283
308
  ```
284
309
 
285
- ### Step 9: Complete `[AI]`
310
+ **Step 10: Complete** `[AI]`
286
311
 
287
312
  1. Verify lint and typecheck pass
288
313
  2. Report what was implemented