@mindfoldhq/trellis 0.4.0 → 0.5.0-beta.10

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 (427) hide show
  1. package/dist/cli/index.js +0 -1
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/commands/init.d.ts +10 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +382 -120
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/update.d.ts +5 -0
  8. package/dist/commands/update.d.ts.map +1 -1
  9. package/dist/commands/update.js +178 -61
  10. package/dist/commands/update.js.map +1 -1
  11. package/dist/configurators/antigravity.d.ts +3 -4
  12. package/dist/configurators/antigravity.d.ts.map +1 -1
  13. package/dist/configurators/antigravity.js +17 -10
  14. package/dist/configurators/antigravity.js.map +1 -1
  15. package/dist/configurators/claude.d.ts +5 -28
  16. package/dist/configurators/claude.d.ts.map +1 -1
  17. package/dist/configurators/claude.js +30 -51
  18. package/dist/configurators/claude.js.map +1 -1
  19. package/dist/configurators/codebuddy.d.ts +6 -7
  20. package/dist/configurators/codebuddy.d.ts.map +1 -1
  21. package/dist/configurators/codebuddy.js +23 -51
  22. package/dist/configurators/codebuddy.js.map +1 -1
  23. package/dist/configurators/codex.d.ts +3 -6
  24. package/dist/configurators/codex.d.ts.map +1 -1
  25. package/dist/configurators/codex.js +29 -12
  26. package/dist/configurators/codex.js.map +1 -1
  27. package/dist/configurators/copilot.d.ts +6 -5
  28. package/dist/configurators/copilot.d.ts.map +1 -1
  29. package/dist/configurators/copilot.js +42 -13
  30. package/dist/configurators/copilot.js.map +1 -1
  31. package/dist/configurators/cursor.d.ts +6 -1
  32. package/dist/configurators/cursor.d.ts.map +1 -1
  33. package/dist/configurators/cursor.js +22 -45
  34. package/dist/configurators/cursor.js.map +1 -1
  35. package/dist/configurators/droid.d.ts +6 -1
  36. package/dist/configurators/droid.d.ts.map +1 -1
  37. package/dist/configurators/droid.js +23 -41
  38. package/dist/configurators/droid.js.map +1 -1
  39. package/dist/configurators/gemini.d.ts +8 -4
  40. package/dist/configurators/gemini.d.ts.map +1 -1
  41. package/dist/configurators/gemini.js +28 -47
  42. package/dist/configurators/gemini.js.map +1 -1
  43. package/dist/configurators/index.d.ts +1 -1
  44. package/dist/configurators/index.d.ts.map +1 -1
  45. package/dist/configurators/index.js +146 -100
  46. package/dist/configurators/index.js.map +1 -1
  47. package/dist/configurators/kilo.d.ts +3 -4
  48. package/dist/configurators/kilo.d.ts.map +1 -1
  49. package/dist/configurators/kilo.js +19 -46
  50. package/dist/configurators/kilo.js.map +1 -1
  51. package/dist/configurators/kiro.d.ts +4 -4
  52. package/dist/configurators/kiro.d.ts.map +1 -1
  53. package/dist/configurators/kiro.js +18 -14
  54. package/dist/configurators/kiro.js.map +1 -1
  55. package/dist/configurators/opencode.d.ts +7 -25
  56. package/dist/configurators/opencode.d.ts.map +1 -1
  57. package/dist/configurators/opencode.js +57 -56
  58. package/dist/configurators/opencode.js.map +1 -1
  59. package/dist/configurators/qoder.d.ts +6 -3
  60. package/dist/configurators/qoder.d.ts.map +1 -1
  61. package/dist/configurators/qoder.js +27 -46
  62. package/dist/configurators/qoder.js.map +1 -1
  63. package/dist/configurators/shared.d.ts +68 -3
  64. package/dist/configurators/shared.d.ts.map +1 -1
  65. package/dist/configurators/shared.js +274 -3
  66. package/dist/configurators/shared.js.map +1 -1
  67. package/dist/configurators/windsurf.d.ts +3 -4
  68. package/dist/configurators/windsurf.d.ts.map +1 -1
  69. package/dist/configurators/windsurf.js +17 -10
  70. package/dist/configurators/windsurf.js.map +1 -1
  71. package/dist/configurators/workflow.d.ts +0 -3
  72. package/dist/configurators/workflow.d.ts.map +1 -1
  73. package/dist/configurators/workflow.js +1 -7
  74. package/dist/configurators/workflow.js.map +1 -1
  75. package/dist/migrations/manifests/0.4.0.json +1 -1
  76. package/dist/migrations/manifests/0.5.0-beta.0.json +1646 -0
  77. package/dist/migrations/manifests/0.5.0-beta.1.json +9 -0
  78. package/dist/migrations/manifests/0.5.0-beta.2.json +9 -0
  79. package/dist/migrations/manifests/0.5.0-beta.3.json +9 -0
  80. package/dist/migrations/manifests/0.5.0-beta.4.json +9 -0
  81. package/dist/migrations/manifests/0.5.0-beta.5.json +222 -0
  82. package/dist/migrations/manifests/0.5.0-beta.6.json +9 -0
  83. package/dist/migrations/manifests/0.5.0-beta.7.json +9 -0
  84. package/dist/migrations/manifests/0.5.0-beta.8.json +9 -0
  85. package/dist/migrations/manifests/0.5.0-beta.9.json +48 -0
  86. package/dist/templates/claude/agents/{check.md → trellis-check.md} +3 -31
  87. package/dist/templates/claude/agents/{implement.md → trellis-implement.md} +1 -2
  88. package/dist/templates/claude/agents/trellis-research.md +137 -0
  89. package/dist/templates/claude/index.d.ts +5 -37
  90. package/dist/templates/claude/index.d.ts.map +1 -1
  91. package/dist/templates/claude/index.js +3 -42
  92. package/dist/templates/claude/index.js.map +1 -1
  93. package/dist/templates/claude/settings.json +6 -4
  94. package/dist/templates/{iflow/agents/check.md → codebuddy/agents/trellis-check.md} +3 -31
  95. package/dist/templates/{iflow/agents/implement.md → codebuddy/agents/trellis-implement.md} +1 -2
  96. package/dist/templates/codebuddy/agents/trellis-research.md +137 -0
  97. package/dist/templates/codebuddy/index.d.ts +6 -16
  98. package/dist/templates/codebuddy/index.d.ts.map +1 -1
  99. package/dist/templates/codebuddy/index.js +6 -36
  100. package/dist/templates/codebuddy/index.js.map +1 -1
  101. package/dist/templates/codebuddy/settings.json +59 -0
  102. package/dist/templates/codex/agents/trellis-check.toml +38 -0
  103. package/dist/templates/codex/agents/{implement.toml → trellis-implement.toml} +1 -1
  104. package/dist/templates/codex/agents/trellis-research.toml +60 -0
  105. package/dist/templates/codex/config.toml +10 -0
  106. package/dist/templates/codex/hooks/session-start.py +65 -29
  107. package/dist/templates/codex/hooks.json +11 -0
  108. package/dist/templates/codex/index.d.ts +0 -1
  109. package/dist/templates/codex/index.d.ts.map +1 -1
  110. package/dist/templates/codex/index.js +1 -8
  111. package/dist/templates/codex/index.js.map +1 -1
  112. package/dist/templates/codex/skills/start/SKILL.md +1 -1
  113. package/dist/templates/common/commands/continue.md +51 -0
  114. package/dist/templates/common/commands/finish-work.md +32 -0
  115. package/dist/templates/common/commands/start.md +56 -0
  116. package/dist/templates/common/index.d.ts +28 -0
  117. package/dist/templates/common/index.d.ts.map +1 -0
  118. package/dist/templates/common/index.js +55 -0
  119. package/dist/templates/common/index.js.map +1 -0
  120. package/dist/templates/{droid/commands/trellis → common/skills}/brainstorm.md +51 -12
  121. package/dist/templates/{iflow/commands/trellis → common/skills}/break-loop.md +4 -4
  122. package/dist/templates/common/skills/check.md +87 -0
  123. package/dist/templates/{codebuddy/commands/trellis → common/skills}/update-spec.md +18 -21
  124. package/dist/templates/copilot/hooks/session-start.py +65 -29
  125. package/dist/templates/copilot/hooks.json +8 -0
  126. package/dist/templates/copilot/prompts/start.prompt.md +13 -16
  127. package/dist/templates/cursor/agents/trellis-check.md +94 -0
  128. package/dist/templates/cursor/agents/trellis-implement.md +94 -0
  129. package/dist/templates/cursor/agents/trellis-research.md +137 -0
  130. package/dist/templates/cursor/hooks.json +24 -0
  131. package/dist/templates/cursor/index.d.ts +6 -17
  132. package/dist/templates/cursor/index.d.ts.map +1 -1
  133. package/dist/templates/cursor/index.js +6 -37
  134. package/dist/templates/cursor/index.js.map +1 -1
  135. package/dist/templates/droid/droids/trellis-check.md +94 -0
  136. package/dist/templates/droid/droids/trellis-implement.md +94 -0
  137. package/dist/templates/droid/droids/trellis-research.md +137 -0
  138. package/dist/templates/droid/index.d.ts +7 -19
  139. package/dist/templates/droid/index.d.ts.map +1 -1
  140. package/dist/templates/droid/index.js +7 -39
  141. package/dist/templates/droid/index.js.map +1 -1
  142. package/dist/templates/droid/settings.json +59 -0
  143. package/dist/templates/extract.d.ts +7 -193
  144. package/dist/templates/extract.d.ts.map +1 -1
  145. package/dist/templates/extract.js +7 -310
  146. package/dist/templates/extract.js.map +1 -1
  147. package/dist/templates/gemini/agents/trellis-check.md +94 -0
  148. package/dist/templates/gemini/agents/trellis-implement.md +94 -0
  149. package/dist/templates/gemini/agents/trellis-research.md +137 -0
  150. package/dist/templates/gemini/index.d.ts +6 -14
  151. package/dist/templates/gemini/index.d.ts.map +1 -1
  152. package/dist/templates/gemini/index.js +6 -37
  153. package/dist/templates/gemini/index.js.map +1 -1
  154. package/dist/templates/gemini/settings.json +28 -0
  155. package/dist/templates/kiro/agents/trellis-check.json +13 -0
  156. package/dist/templates/kiro/agents/trellis-implement.json +13 -0
  157. package/dist/templates/kiro/agents/trellis-research.json +21 -0
  158. package/dist/templates/kiro/index.d.ts +11 -11
  159. package/dist/templates/kiro/index.d.ts.map +1 -1
  160. package/dist/templates/kiro/index.js +11 -33
  161. package/dist/templates/kiro/index.js.map +1 -1
  162. package/dist/templates/opencode/agents/{check.md → trellis-check.md} +3 -30
  163. package/dist/templates/opencode/agents/{implement.md → trellis-implement.md} +1 -1
  164. package/dist/templates/opencode/agents/{research.md → trellis-research.md} +1 -2
  165. package/dist/templates/opencode/plugins/inject-subagent-context.js +18 -190
  166. package/dist/templates/opencode/plugins/inject-workflow-state.js +172 -0
  167. package/dist/templates/opencode/plugins/session-start.js +76 -39
  168. package/dist/templates/qoder/agents/trellis-check.md +94 -0
  169. package/dist/templates/qoder/agents/trellis-implement.md +94 -0
  170. package/dist/templates/qoder/agents/trellis-research.md +137 -0
  171. package/dist/templates/qoder/index.d.ts +7 -10
  172. package/dist/templates/qoder/index.d.ts.map +1 -1
  173. package/dist/templates/qoder/index.js +7 -32
  174. package/dist/templates/qoder/index.js.map +1 -1
  175. package/dist/templates/qoder/settings.json +47 -0
  176. package/dist/templates/shared-hooks/index.d.ts +19 -0
  177. package/dist/templates/shared-hooks/index.d.ts.map +1 -0
  178. package/dist/templates/shared-hooks/index.js +30 -0
  179. package/dist/templates/shared-hooks/index.js.map +1 -0
  180. package/dist/templates/{iflow/hooks → shared-hooks}/inject-subagent-context.py +77 -266
  181. package/dist/templates/shared-hooks/inject-workflow-state.py +244 -0
  182. package/dist/templates/{claude/hooks → shared-hooks}/session-start.py +172 -55
  183. package/dist/templates/template-utils.d.ts +26 -0
  184. package/dist/templates/template-utils.d.ts.map +1 -0
  185. package/dist/templates/template-utils.js +60 -0
  186. package/dist/templates/template-utils.js.map +1 -0
  187. package/dist/templates/trellis/config.yaml +6 -0
  188. package/dist/templates/trellis/index.d.ts +1 -15
  189. package/dist/templates/trellis/index.d.ts.map +1 -1
  190. package/dist/templates/trellis/index.js +2 -29
  191. package/dist/templates/trellis/index.js.map +1 -1
  192. package/dist/templates/trellis/scripts/common/cli_adapter.py +31 -8
  193. package/dist/templates/trellis/scripts/common/config.py +126 -1
  194. package/dist/templates/trellis/scripts/common/git_context.py +25 -2
  195. package/dist/templates/trellis/scripts/common/task_context.py +23 -28
  196. package/dist/templates/trellis/scripts/common/task_store.py +0 -12
  197. package/dist/templates/trellis/scripts/common/types.py +0 -2
  198. package/dist/templates/trellis/scripts/common/workflow_phase.py +176 -0
  199. package/dist/templates/trellis/scripts/task.py +13 -35
  200. package/dist/templates/trellis/workflow.md +283 -298
  201. package/dist/types/ai-tools.d.ts +30 -3
  202. package/dist/types/ai-tools.d.ts.map +1 -1
  203. package/dist/types/ai-tools.js +119 -15
  204. package/dist/types/ai-tools.js.map +1 -1
  205. package/dist/types/migration.d.ts +8 -1
  206. package/dist/types/migration.d.ts.map +1 -1
  207. package/dist/utils/project-detector.d.ts +2 -0
  208. package/dist/utils/project-detector.d.ts.map +1 -1
  209. package/dist/utils/project-detector.js +120 -11
  210. package/dist/utils/project-detector.js.map +1 -1
  211. package/dist/utils/task-json.d.ts +46 -0
  212. package/dist/utils/task-json.d.ts.map +1 -0
  213. package/dist/utils/task-json.js +49 -0
  214. package/dist/utils/task-json.js.map +1 -0
  215. package/package.json +3 -2
  216. package/dist/configurators/iflow.d.ts +0 -33
  217. package/dist/configurators/iflow.d.ts.map +0 -1
  218. package/dist/configurators/iflow.js +0 -99
  219. package/dist/configurators/iflow.js.map +0 -1
  220. package/dist/templates/antigravity/index.d.ts +0 -12
  221. package/dist/templates/antigravity/index.d.ts.map +0 -1
  222. package/dist/templates/antigravity/index.js +0 -29
  223. package/dist/templates/antigravity/index.js.map +0 -1
  224. package/dist/templates/claude/agents/debug.md +0 -106
  225. package/dist/templates/claude/agents/dispatch.md +0 -213
  226. package/dist/templates/claude/agents/plan.md +0 -396
  227. package/dist/templates/claude/agents/research.md +0 -120
  228. package/dist/templates/claude/commands/trellis/brainstorm.md +0 -487
  229. package/dist/templates/claude/commands/trellis/break-loop.md +0 -125
  230. package/dist/templates/claude/commands/trellis/check-cross-layer.md +0 -153
  231. package/dist/templates/claude/commands/trellis/check.md +0 -25
  232. package/dist/templates/claude/commands/trellis/create-command.md +0 -154
  233. package/dist/templates/claude/commands/trellis/finish-work.md +0 -153
  234. package/dist/templates/claude/commands/trellis/integrate-skill.md +0 -219
  235. package/dist/templates/claude/commands/trellis/onboard.md +0 -358
  236. package/dist/templates/claude/commands/trellis/parallel.md +0 -192
  237. package/dist/templates/claude/commands/trellis/record-session.md +0 -62
  238. package/dist/templates/claude/commands/trellis/start.md +0 -393
  239. package/dist/templates/claude/commands/trellis/update-spec.md +0 -354
  240. package/dist/templates/claude/hooks/inject-subagent-context.py +0 -803
  241. package/dist/templates/claude/hooks/ralph-loop.py +0 -396
  242. package/dist/templates/codebuddy/commands/trellis/before-dev.md +0 -29
  243. package/dist/templates/codebuddy/commands/trellis/brainstorm.md +0 -487
  244. package/dist/templates/codebuddy/commands/trellis/break-loop.md +0 -107
  245. package/dist/templates/codebuddy/commands/trellis/check-cross-layer.md +0 -153
  246. package/dist/templates/codebuddy/commands/trellis/check.md +0 -25
  247. package/dist/templates/codebuddy/commands/trellis/create-command.md +0 -154
  248. package/dist/templates/codebuddy/commands/trellis/finish-work.md +0 -143
  249. package/dist/templates/codebuddy/commands/trellis/integrate-skill.md +0 -219
  250. package/dist/templates/codebuddy/commands/trellis/onboard.md +0 -358
  251. package/dist/templates/codebuddy/commands/trellis/record-session.md +0 -61
  252. package/dist/templates/codebuddy/commands/trellis/start.md +0 -373
  253. package/dist/templates/codex/agents/check.toml +0 -23
  254. package/dist/templates/codex/agents/research.toml +0 -26
  255. package/dist/templates/codex/codex-skills/parallel/SKILL.md +0 -194
  256. package/dist/templates/cursor/commands/trellis-before-dev.md +0 -29
  257. package/dist/templates/cursor/commands/trellis-brainstorm.md +0 -487
  258. package/dist/templates/cursor/commands/trellis-break-loop.md +0 -107
  259. package/dist/templates/cursor/commands/trellis-check-cross-layer.md +0 -153
  260. package/dist/templates/cursor/commands/trellis-check.md +0 -25
  261. package/dist/templates/cursor/commands/trellis-create-command.md +0 -154
  262. package/dist/templates/cursor/commands/trellis-finish-work.md +0 -143
  263. package/dist/templates/cursor/commands/trellis-integrate-skill.md +0 -219
  264. package/dist/templates/cursor/commands/trellis-onboard.md +0 -358
  265. package/dist/templates/cursor/commands/trellis-record-session.md +0 -62
  266. package/dist/templates/cursor/commands/trellis-start.md +0 -373
  267. package/dist/templates/cursor/commands/trellis-update-spec.md +0 -354
  268. package/dist/templates/droid/commands/trellis/before-dev.md +0 -33
  269. package/dist/templates/droid/commands/trellis/break-loop.md +0 -111
  270. package/dist/templates/droid/commands/trellis/check-cross-layer.md +0 -157
  271. package/dist/templates/droid/commands/trellis/check.md +0 -29
  272. package/dist/templates/droid/commands/trellis/create-command.md +0 -158
  273. package/dist/templates/droid/commands/trellis/finish-work.md +0 -147
  274. package/dist/templates/droid/commands/trellis/integrate-skill.md +0 -223
  275. package/dist/templates/droid/commands/trellis/onboard.md +0 -362
  276. package/dist/templates/droid/commands/trellis/record-session.md +0 -66
  277. package/dist/templates/droid/commands/trellis/start.md +0 -377
  278. package/dist/templates/droid/commands/trellis/update-spec.md +0 -358
  279. package/dist/templates/gemini/commands/trellis/before-dev.toml +0 -33
  280. package/dist/templates/gemini/commands/trellis/brainstorm.toml +0 -435
  281. package/dist/templates/gemini/commands/trellis/break-loop.toml +0 -129
  282. package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +0 -147
  283. package/dist/templates/gemini/commands/trellis/check.toml +0 -29
  284. package/dist/templates/gemini/commands/trellis/create-command.toml +0 -119
  285. package/dist/templates/gemini/commands/trellis/finish-work.toml +0 -133
  286. package/dist/templates/gemini/commands/trellis/integrate-skill.toml +0 -104
  287. package/dist/templates/gemini/commands/trellis/onboard.toml +0 -111
  288. package/dist/templates/gemini/commands/trellis/record-session.toml +0 -66
  289. package/dist/templates/gemini/commands/trellis/start.toml +0 -354
  290. package/dist/templates/gemini/commands/trellis/update-spec.toml +0 -132
  291. package/dist/templates/iflow/agents/debug.md +0 -106
  292. package/dist/templates/iflow/agents/dispatch.md +0 -213
  293. package/dist/templates/iflow/agents/plan.md +0 -396
  294. package/dist/templates/iflow/agents/research.md +0 -120
  295. package/dist/templates/iflow/commands/trellis/before-dev.md +0 -29
  296. package/dist/templates/iflow/commands/trellis/brainstorm.md +0 -487
  297. package/dist/templates/iflow/commands/trellis/check-cross-layer.md +0 -153
  298. package/dist/templates/iflow/commands/trellis/check.md +0 -25
  299. package/dist/templates/iflow/commands/trellis/create-command.md +0 -152
  300. package/dist/templates/iflow/commands/trellis/finish-work.md +0 -153
  301. package/dist/templates/iflow/commands/trellis/integrate-skill.md +0 -219
  302. package/dist/templates/iflow/commands/trellis/onboard.md +0 -358
  303. package/dist/templates/iflow/commands/trellis/parallel.md +0 -192
  304. package/dist/templates/iflow/commands/trellis/record-session.md +0 -62
  305. package/dist/templates/iflow/commands/trellis/start.md +0 -393
  306. package/dist/templates/iflow/commands/trellis/update-spec.md +0 -354
  307. package/dist/templates/iflow/hooks/ralph-loop.py +0 -395
  308. package/dist/templates/iflow/hooks/session-start.py +0 -403
  309. package/dist/templates/iflow/index.d.ts +0 -54
  310. package/dist/templates/iflow/index.d.ts.map +0 -1
  311. package/dist/templates/iflow/index.js +0 -85
  312. package/dist/templates/iflow/index.js.map +0 -1
  313. package/dist/templates/iflow/settings.json +0 -60
  314. package/dist/templates/kilo/index.d.ts +0 -16
  315. package/dist/templates/kilo/index.d.ts.map +0 -1
  316. package/dist/templates/kilo/index.js +0 -39
  317. package/dist/templates/kilo/index.js.map +0 -1
  318. package/dist/templates/kilo/workflows/before-dev.md +0 -29
  319. package/dist/templates/kilo/workflows/brainstorm.md +0 -487
  320. package/dist/templates/kilo/workflows/break-loop.md +0 -125
  321. package/dist/templates/kilo/workflows/check-cross-layer.md +0 -153
  322. package/dist/templates/kilo/workflows/check.md +0 -25
  323. package/dist/templates/kilo/workflows/create-command.md +0 -152
  324. package/dist/templates/kilo/workflows/finish-work.md +0 -129
  325. package/dist/templates/kilo/workflows/integrate-skill.md +0 -219
  326. package/dist/templates/kilo/workflows/onboard.md +0 -358
  327. package/dist/templates/kilo/workflows/parallel.md +0 -193
  328. package/dist/templates/kilo/workflows/record-session.md +0 -62
  329. package/dist/templates/kilo/workflows/start.md +0 -387
  330. package/dist/templates/kilo/workflows/update-spec.md +0 -285
  331. package/dist/templates/kiro/skills/before-dev/SKILL.md +0 -34
  332. package/dist/templates/kiro/skills/brainstorm/SKILL.md +0 -492
  333. package/dist/templates/kiro/skills/break-loop/SKILL.md +0 -130
  334. package/dist/templates/kiro/skills/check/SKILL.md +0 -30
  335. package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +0 -158
  336. package/dist/templates/kiro/skills/create-command/SKILL.md +0 -101
  337. package/dist/templates/kiro/skills/finish-work/SKILL.md +0 -148
  338. package/dist/templates/kiro/skills/integrate-skill/SKILL.md +0 -221
  339. package/dist/templates/kiro/skills/onboard/SKILL.md +0 -363
  340. package/dist/templates/kiro/skills/record-session/SKILL.md +0 -67
  341. package/dist/templates/kiro/skills/start/SKILL.md +0 -351
  342. package/dist/templates/kiro/skills/update-spec/SKILL.md +0 -335
  343. package/dist/templates/markdown/spec/backend/directory-structure.md +0 -292
  344. package/dist/templates/markdown/spec/backend/index.md +0 -40
  345. package/dist/templates/markdown/spec/backend/script-conventions.md +0 -742
  346. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +0 -118
  347. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +0 -394
  348. package/dist/templates/opencode/agents/debug.md +0 -129
  349. package/dist/templates/opencode/agents/dispatch.md +0 -223
  350. package/dist/templates/opencode/agents/trellis-plan.md +0 -427
  351. package/dist/templates/opencode/commands/trellis/before-dev.md +0 -29
  352. package/dist/templates/opencode/commands/trellis/brainstorm.md +0 -487
  353. package/dist/templates/opencode/commands/trellis/break-loop.md +0 -125
  354. package/dist/templates/opencode/commands/trellis/check-cross-layer.md +0 -153
  355. package/dist/templates/opencode/commands/trellis/check.md +0 -25
  356. package/dist/templates/opencode/commands/trellis/create-command.md +0 -154
  357. package/dist/templates/opencode/commands/trellis/finish-work.md +0 -144
  358. package/dist/templates/opencode/commands/trellis/integrate-skill.md +0 -219
  359. package/dist/templates/opencode/commands/trellis/migrate-specs.md +0 -0
  360. package/dist/templates/opencode/commands/trellis/onboard.md +0 -358
  361. package/dist/templates/opencode/commands/trellis/parallel.md +0 -193
  362. package/dist/templates/opencode/commands/trellis/record-session.md +0 -62
  363. package/dist/templates/opencode/commands/trellis/start.md +0 -351
  364. package/dist/templates/opencode/commands/trellis/update-spec.md +0 -354
  365. package/dist/templates/qoder/skills/before-dev/SKILL.md +0 -34
  366. package/dist/templates/qoder/skills/brainstorm/SKILL.md +0 -492
  367. package/dist/templates/qoder/skills/break-loop/SKILL.md +0 -130
  368. package/dist/templates/qoder/skills/check/SKILL.md +0 -30
  369. package/dist/templates/qoder/skills/check-cross-layer/SKILL.md +0 -158
  370. package/dist/templates/qoder/skills/create-command/SKILL.md +0 -101
  371. package/dist/templates/qoder/skills/finish-work/SKILL.md +0 -134
  372. package/dist/templates/qoder/skills/integrate-skill/SKILL.md +0 -221
  373. package/dist/templates/qoder/skills/onboard/SKILL.md +0 -363
  374. package/dist/templates/qoder/skills/record-session/SKILL.md +0 -67
  375. package/dist/templates/qoder/skills/start/SKILL.md +0 -388
  376. package/dist/templates/qoder/skills/update-spec/SKILL.md +0 -290
  377. package/dist/templates/trellis/scripts/common/phase.py +0 -254
  378. package/dist/templates/trellis/scripts/common/registry.py +0 -335
  379. package/dist/templates/trellis/scripts/common/worktree.py +0 -305
  380. package/dist/templates/trellis/scripts/create_bootstrap.py +0 -298
  381. package/dist/templates/trellis/scripts/multi_agent/__init__.py +0 -5
  382. package/dist/templates/trellis/scripts/multi_agent/_bootstrap.py +0 -17
  383. package/dist/templates/trellis/scripts/multi_agent/cleanup.py +0 -398
  384. package/dist/templates/trellis/scripts/multi_agent/create_pr.py +0 -620
  385. package/dist/templates/trellis/scripts/multi_agent/plan.py +0 -213
  386. package/dist/templates/trellis/scripts/multi_agent/start.py +0 -539
  387. package/dist/templates/trellis/scripts/multi_agent/status.py +0 -76
  388. package/dist/templates/trellis/scripts/multi_agent/status_display.py +0 -542
  389. package/dist/templates/trellis/scripts/multi_agent/status_monitor.py +0 -225
  390. package/dist/templates/trellis/scripts-shell-archive/add-session.sh +0 -384
  391. package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +0 -129
  392. package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +0 -263
  393. package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +0 -208
  394. package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +0 -150
  395. package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +0 -247
  396. package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +0 -142
  397. package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +0 -151
  398. package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +0 -128
  399. package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +0 -299
  400. package/dist/templates/trellis/scripts-shell-archive/get-context.sh +0 -7
  401. package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +0 -15
  402. package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +0 -34
  403. package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +0 -396
  404. package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +0 -241
  405. package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +0 -207
  406. package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +0 -317
  407. package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +0 -828
  408. package/dist/templates/trellis/scripts-shell-archive/task.sh +0 -1204
  409. package/dist/templates/trellis/worktree.yaml +0 -47
  410. package/dist/templates/windsurf/index.d.ts +0 -21
  411. package/dist/templates/windsurf/index.d.ts.map +0 -1
  412. package/dist/templates/windsurf/index.js +0 -44
  413. package/dist/templates/windsurf/index.js.map +0 -1
  414. package/dist/templates/windsurf/workflows/trellis-before-dev.md +0 -31
  415. package/dist/templates/windsurf/workflows/trellis-brainstorm.md +0 -491
  416. package/dist/templates/windsurf/workflows/trellis-break-loop.md +0 -111
  417. package/dist/templates/windsurf/workflows/trellis-check-cross-layer.md +0 -157
  418. package/dist/templates/windsurf/workflows/trellis-check.md +0 -27
  419. package/dist/templates/windsurf/workflows/trellis-create-command.md +0 -154
  420. package/dist/templates/windsurf/workflows/trellis-finish-work.md +0 -147
  421. package/dist/templates/windsurf/workflows/trellis-integrate-skill.md +0 -220
  422. package/dist/templates/windsurf/workflows/trellis-onboard.md +0 -362
  423. package/dist/templates/windsurf/workflows/trellis-record-session.md +0 -66
  424. package/dist/templates/windsurf/workflows/trellis-start.md +0 -373
  425. package/dist/templates/windsurf/workflows/trellis-update-spec.md +0 -358
  426. /package/dist/templates/{claude/commands/trellis → common/skills}/before-dev.md +0 -0
  427. /package/dist/templates/{claude/hooks → shared-hooks}/statusline.py +0 -0
@@ -1,6 +1,6 @@
1
1
  # Update Code-Spec - Capture Executable Contracts
2
2
 
3
- When you learn something valuable (from debugging, implementing, or discussion), use this command to update the relevant code-spec documents.
3
+ When you learn something valuable (from debugging, implementing, or discussion), use this to update the relevant code-spec documents.
4
4
 
5
5
  **Timing**: After completing a task, fixing a bug, or discovering a new pattern
6
6
 
@@ -40,13 +40,13 @@ For triggered tasks, include all sections below:
40
40
 
41
41
  | Trigger | Example | Target Spec |
42
42
  |---------|---------|-------------|
43
- | **Implemented a feature** | Added template download with giget | Relevant `backend/` or `frontend/` file |
44
- | **Made a design decision** | Used type field + mapping table for extensibility | Relevant code-spec + "Design Decisions" section |
45
- | **Fixed a bug** | Found a subtle issue with error handling | `backend/error-handling.md` |
46
- | **Discovered a pattern** | Found a better way to structure code | Relevant `backend/` or `frontend/` file |
47
- | **Hit a gotcha** | Learned that X must be done before Y | Relevant code-spec + "Common Mistakes" section |
48
- | **Established a convention** | Team agreed on naming pattern | `quality-guidelines.md` |
49
- | **New thinking trigger** | "Don't forget to check X before doing Y" | `guides/*.md` (as a checklist item, not detailed rules) |
43
+ | **Implemented a feature** | Added a new integration or module | Relevant spec file |
44
+ | **Made a design decision** | Chose extensibility pattern over simplicity | Relevant spec + "Design Decisions" section |
45
+ | **Fixed a bug** | Found a subtle issue with error handling | Relevant spec (e.g., error-handling docs) |
46
+ | **Discovered a pattern** | Found a better way to structure code | Relevant spec file |
47
+ | **Hit a gotcha** | Learned that X must be done before Y | Relevant spec + "Common Mistakes" section |
48
+ | **Established a convention** | Team agreed on naming pattern | Quality guidelines |
49
+ | **New thinking trigger** | "Don't forget to check X before doing Y" | `guides/*.md` (as a checklist item) |
50
50
 
51
51
  **Key Insight**: Code-spec updates are NOT just for problems. Every feature implementation contains design decisions and contracts that future AI/developers need to execute safely.
52
52
 
@@ -56,10 +56,7 @@ For triggered tasks, include all sections below:
56
56
 
57
57
  ```
58
58
  .trellis/spec/
59
- ├── backend/ # Backend coding standards
60
- │ ├── index.md # Overview and links
61
- │ └── *.md # Topic-specific guidelines
62
- ├── frontend/ # Frontend coding standards
59
+ ├── <layer>/ # Per-layer coding standards (e.g., backend/, frontend/, api/)
63
60
  │ ├── index.md # Overview and links
64
61
  │ └── *.md # Topic-specific guidelines
65
62
  └── guides/ # Thinking checklists (NOT coding specs!)
@@ -71,20 +68,20 @@ For triggered tasks, include all sections below:
71
68
 
72
69
  | Type | Location | Purpose | Content Style |
73
70
  |------|----------|---------|---------------|
74
- | **Code-Spec** | `backend/*.md`, `frontend/*.md` | Tell AI "how to implement safely" | Signatures, contracts, matrices, cases, test points |
71
+ | **Code-Spec** | `<layer>/*.md` | Tell AI "how to implement safely" | Signatures, contracts, matrices, cases, test points |
75
72
  | **Guide** | `guides/*.md` | Help AI "what to think about" | Checklists, questions, pointers to specs |
76
73
 
77
74
  **Decision Rule**: Ask yourself:
78
75
 
79
- - "This is **how to write** the code" → Put in `backend/` or `frontend/`
76
+ - "This is **how to write** the code" → Put in a spec layer directory
80
77
  - "This is **what to consider** before writing" → Put in `guides/`
81
78
 
82
79
  **Example**:
83
80
 
84
81
  | Learning | Wrong Location | Correct Location |
85
82
  |----------|----------------|------------------|
86
- | "Use `reconfigure()` not `TextIOWrapper` for Windows stdout" | ❌ `guides/cross-platform-thinking-guide.md` | ✅ `backend/script-conventions.md` |
87
- | "Remember to check encoding when writing cross-platform code" | ❌ `backend/script-conventions.md` | ✅ `guides/cross-platform-thinking-guide.md` |
83
+ | "Use API X not API Y for this task" | ❌ `guides/` (too specific for a thinking guide) | ✅ Relevant spec file (concrete convention) |
84
+ | "Remember to check X when doing Y" | ❌ Spec file (too abstract for a spec) | ✅ `guides/` (thinking checklist) |
88
85
 
89
86
  **Guides should be short checklists that point to specs**, not duplicate the detailed rules.
90
87
 
@@ -332,15 +329,15 @@ Before finishing your code-spec update:
332
329
 
333
330
  ```
334
331
  Development Flow:
335
- Learn something → /trellis:update-spec → Knowledge captured
332
+ Learn something → {{CMD_REF:update-spec}} → Knowledge captured
336
333
  ↑ ↓
337
- /trellis:break-loop ←──────────────────── Future sessions benefit
334
+ {{CMD_REF:break-loop}} ←──────────────────── Future sessions benefit
338
335
  (deep bug analysis)
339
336
  ```
340
337
 
341
- - `/trellis:break-loop` - Analyzes bugs deeply, often reveals spec updates needed
342
- - `/trellis:update-spec` - Actually makes the updates (this command)
343
- - `/trellis:finish-work` - Reminds you to check if specs need updates
338
+ - `{{CMD_REF:break-loop}}` - Analyzes bugs deeply, often reveals spec updates needed
339
+ - `{{CMD_REF:update-spec}}` - Actually makes the updates
340
+ - `{{CMD_REF:finish-work}}` - Reminds you to check if specs need updates
344
341
 
345
342
  ---
346
343
 
@@ -125,30 +125,48 @@ def _get_task_status(trellis_dir: Path) -> str:
125
125
  return f"Status: READY\nTask: {task_title}\nNext: Continue with implement or check"
126
126
 
127
127
 
128
- def _build_workflow_toc(workflow_path: Path) -> str:
129
- """Build a compact section index for workflow.md (lazy-load the full file on demand).
128
+ def _extract_range(content: str, start_header: str, end_header: str) -> str:
129
+ """Extract lines starting at `## start_header` up to (but excluding) `## end_header`."""
130
+ lines = content.splitlines()
131
+ start: "int | None" = None
132
+ end: int = len(lines)
133
+ start_match = f"## {start_header}"
134
+ end_match = f"## {end_header}"
135
+ for i, line in enumerate(lines):
136
+ stripped = line.strip()
137
+ if start is None and stripped == start_match:
138
+ start = i
139
+ continue
140
+ if start is not None and stripped == end_match:
141
+ end = i
142
+ break
143
+ if start is None:
144
+ return ""
145
+ return "\n".join(lines[start:end]).rstrip()
130
146
 
131
- Replaces full-file injection to keep additionalContext payload small.
132
- The full file is accessible via: Read tool on .trellis/workflow.md
133
- """
147
+
148
+ def _build_workflow_toc(workflow_path: Path) -> str:
149
+ """Inject workflow guide: TOC + Phase Index + Phase 1/2/3 step details."""
134
150
  content = read_file(workflow_path)
135
151
  if not content:
136
152
  return "No workflow.md found"
137
153
 
138
- toc_lines = [
154
+ out_lines = [
139
155
  "# Development Workflow — Section Index",
140
156
  "Full guide: .trellis/workflow.md (read on demand)",
141
157
  "",
158
+ "## Table of Contents",
142
159
  ]
143
160
  for line in content.splitlines():
144
161
  if line.startswith("## "):
145
- toc_lines.append(line)
162
+ out_lines.append(line)
163
+ out_lines += ["", "---", ""]
146
164
 
147
- toc_lines += [
148
- "",
149
- "To read a section: use the Read tool on .trellis/workflow.md",
150
- ]
151
- return "\n".join(toc_lines)
165
+ phases = _extract_range(content, "Phase Index", "Workflow State Breadcrumbs")
166
+ if phases:
167
+ out_lines.append(phases)
168
+
169
+ return "\n".join(out_lines).rstrip()
152
170
 
153
171
 
154
172
  def main() -> None:
@@ -183,38 +201,56 @@ Read and follow all instructions below carefully.
183
201
  output.write("\n</workflow>\n\n")
184
202
 
185
203
  output.write("<guidelines>\n")
186
- output.write("**Note**: The guidelines below are index files — they list available guideline documents and their locations.\n")
187
- output.write("During actual development, you MUST read the specific guideline files listed in each index's Pre-Development Checklist.\n\n")
188
-
204
+ output.write(
205
+ "Project spec indexes are listed by path below. Each index contains a "
206
+ "**Pre-Development Checklist** listing the specific guideline files to "
207
+ "read before coding.\n\n"
208
+ "- If you're spawning an implement/check sub-agent, context is injected "
209
+ "automatically via `{task}/implement.jsonl` / `check.jsonl`. You do NOT "
210
+ "need to read these indexes yourself.\n"
211
+ "- If you're editing code directly in the main session, Read the relevant "
212
+ "index(es) on-demand and follow their Pre-Dev Checklist.\n\n"
213
+ )
214
+
215
+ # guides/ inlined (cross-package thinking, broadly useful)
216
+ guides_index = trellis_dir / "spec" / "guides" / "index.md"
217
+ if guides_index.is_file():
218
+ output.write("## guides (inlined — cross-package thinking guides)\n")
219
+ output.write(read_file(guides_index))
220
+ output.write("\n\n")
221
+
222
+ # Other indexes — paths only
223
+ paths: list[str] = []
189
224
  spec_dir = trellis_dir / "spec"
190
225
  if spec_dir.is_dir():
191
226
  for sub in sorted(spec_dir.iterdir()):
192
227
  if not sub.is_dir() or sub.name.startswith("."):
193
228
  continue
194
-
195
229
  if sub.name == "guides":
196
- index_file = sub / "index.md"
197
- if index_file.is_file():
198
- output.write(f"## {sub.name}\n")
199
- output.write(read_file(index_file))
200
- output.write("\n\n")
201
230
  continue
202
-
203
231
  index_file = sub / "index.md"
204
232
  if index_file.is_file():
205
- output.write(f"## {sub.name}\n")
206
- output.write(read_file(index_file))
207
- output.write("\n\n")
233
+ paths.append(f".trellis/spec/{sub.name}/index.md")
208
234
  else:
209
235
  for nested in sorted(sub.iterdir()):
210
236
  if not nested.is_dir():
211
237
  continue
212
238
  nested_index = nested / "index.md"
213
239
  if nested_index.is_file():
214
- output.write(f"## {sub.name}/{nested.name}\n")
215
- output.write(read_file(nested_index))
216
- output.write("\n\n")
217
-
240
+ paths.append(
241
+ f".trellis/spec/{sub.name}/{nested.name}/index.md"
242
+ )
243
+
244
+ if paths:
245
+ output.write("## Available spec indexes (read on demand)\n")
246
+ for p in paths:
247
+ output.write(f"- {p}\n")
248
+ output.write("\n")
249
+
250
+ output.write(
251
+ "Discover more via: "
252
+ "`python3 ./.trellis/scripts/get_context.py --mode packages`\n"
253
+ )
218
254
  output.write("</guidelines>\n\n")
219
255
 
220
256
  task_status = _get_task_status(trellis_dir)
@@ -6,6 +6,14 @@
6
6
  "command": "{{PYTHON_CMD}} .github/copilot/hooks/session-start.py",
7
7
  "timeout": 10
8
8
  }
9
+ ],
10
+ "userPromptSubmitted": [
11
+ {
12
+ "type": "command",
13
+ "bash": "{{PYTHON_CMD}} .github/copilot/hooks/inject-workflow-state.py",
14
+ "powershell": "{{PYTHON_CMD}} .github/copilot/hooks/inject-workflow-state.py",
15
+ "timeoutSec": 5
16
+ }
9
17
  ]
10
18
  }
11
19
  }
@@ -54,7 +54,7 @@ cat .trellis/spec/<package>/<layer>/index.md # Package-specific guidelines
54
54
  cat .trellis/spec/guides/index.md # Thinking guides (always read)
55
55
  ```
56
56
 
57
- > **Important**: The index files are navigation �?they list the actual guideline files (e.g., `error-handling.md`, `conventions.md`, `mock-strategies.md`).
57
+ > **Important**: The index files are navigation �?they list the actual guideline files (e.g., `error-handling.md`, `conventions.md`, `mock-strategies.md`).
58
58
  > At this step, just read the indexes to understand what's available.
59
59
  > When you start actual development, you MUST go back and read the specific guideline files relevant to your task, as listed in the index's Pre-Development Checklist.
60
60
 
@@ -72,8 +72,8 @@ When user describes a task, classify it:
72
72
  |------|----------|----------|
73
73
  | **Question** | User asks about code, architecture, or how something works | Answer directly |
74
74
  | **Trivial Fix** | Typo fix, comment update, single-line change | Direct Edit |
75
- | **Simple Task** | Clear goal, 1-2 files, well-defined scope | Quick confirm �?Implement |
76
- | **Complex Task** | Vague goal, multiple files, architectural decisions | **Brainstorm �?Task Workflow** |
75
+ | **Simple Task** | Clear goal, 1-2 files, well-defined scope | Quick confirm �?Implement |
76
+ | **Complex Task** | Vague goal, multiple files, architectural decisions | **Brainstorm �?Task Workflow** |
77
77
 
78
78
  ### Classification Signals
79
79
 
@@ -128,7 +128,7 @@ For simple, well-defined tasks:
128
128
 
129
129
  ## Complex Task - Brainstorm First
130
130
 
131
- For complex or vague tasks, **automatically start the brainstorm process** �?do NOT skip directly to implementation.
131
+ For complex or vague tasks, **automatically start the brainstorm process** �?do NOT skip directly to implementation.
132
132
 
133
133
  See `/` for the full process. Summary:
134
134
 
@@ -167,10 +167,10 @@ See `/` for the full process. Summary:
167
167
 
168
168
  ```
169
169
  From Brainstorm (Complex Task):
170
- PRD confirmed �?Research �?Configure Context �?Activate �?Implement �?Check �?Complete
170
+ PRD confirmed �?Research �?Configure Context �?Activate �?Implement �?Check �?Complete
171
171
 
172
172
  From Simple Task:
173
- Confirm �?Create Task �?Write PRD �?Research �?Configure Context �?Activate �?Implement �?Check �?Complete
173
+ Confirm �?Create Task �?Write PRD �?Research �?Configure Context �?Activate �?Implement �?Check �?Complete
174
174
  ```
175
175
 
176
176
  **Key principle: Research happens AFTER requirements are clear (PRD exists).**
@@ -248,7 +248,7 @@ Based on the confirmed PRD, call Research Agent to find relevant specs and patte
248
248
 
249
249
  ```
250
250
  Task(
251
- subagent_type: "research",
251
+ subagent_type: "trellis-research",
252
252
  prompt: "Analyze the codebase for this task:
253
253
 
254
254
  Task: <goal from PRD>
@@ -267,8 +267,7 @@ Task(
267
267
  - <pattern>: <example file path>
268
268
 
269
269
  ## Files to Modify
270
- - <path>: <what change>",
271
- model: "opus"
270
+ - <path>: <what change>"
272
271
  )
273
272
  ```
274
273
 
@@ -277,7 +276,7 @@ Task(
277
276
  Initialize default context:
278
277
 
279
278
  ```bash
280
- python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type>
279
+ python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type> --platform {{CLI_FLAG}}
281
280
  # type: backend | frontend | fullstack
282
281
  ```
283
282
 
@@ -307,12 +306,11 @@ Call Implement Agent (code-spec context is auto-injected by hook):
307
306
 
308
307
  ```
309
308
  Task(
310
- subagent_type: "implement",
309
+ subagent_type: "trellis-implement",
311
310
  prompt: "Implement the task described in prd.md.
312
311
 
313
312
  Follow all code-spec files that have been injected into your context.
314
- Run lint and typecheck before finishing.",
315
- model: "opus"
313
+ Run lint and typecheck before finishing."
316
314
  )
317
315
  ```
318
316
 
@@ -322,12 +320,11 @@ Call Check Agent (code-spec context is auto-injected by hook):
322
320
 
323
321
  ```
324
322
  Task(
325
- subagent_type: "check",
323
+ subagent_type: "trellis-check",
326
324
  prompt: "Review all code changes against the code-spec requirements.
327
325
 
328
326
  Fix any issues you find directly.
329
- Ensure lint and typecheck pass.",
330
- model: "opus"
327
+ Ensure lint and typecheck pass."
331
328
  )
332
329
  ```
333
330
 
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: trellis-check
3
+ description: |
4
+ Code quality check expert. Reviews code changes against specs and self-fixes issues.
5
+ tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
6
+ ---
7
+ # Check Agent
8
+
9
+ You are the Check Agent in the Trellis workflow.
10
+
11
+ ## Context
12
+
13
+ Before checking, read:
14
+ - `.trellis/spec/` - Development guidelines
15
+ - Pre-commit checklist for quality standards
16
+
17
+ ## Core Responsibilities
18
+
19
+ 1. **Get code changes** - Use git diff to get uncommitted code
20
+ 2. **Check against specs** - Verify code follows guidelines
21
+ 3. **Self-fix** - Fix issues yourself, not just report them
22
+ 4. **Run verification** - typecheck and lint
23
+
24
+ ## Important
25
+
26
+ **Fix issues yourself**, don't just report them.
27
+
28
+ You have write and edit tools, you can modify code directly.
29
+
30
+ ---
31
+
32
+ ## Workflow
33
+
34
+ ### Step 1: Get Changes
35
+
36
+ ```bash
37
+ git diff --name-only # List changed files
38
+ git diff # View specific changes
39
+ ```
40
+
41
+ ### Step 2: Check Against Specs
42
+
43
+ Read relevant specs in `.trellis/spec/` to check code:
44
+
45
+ - Does it follow directory structure conventions
46
+ - Does it follow naming conventions
47
+ - Does it follow code patterns
48
+ - Are there missing types
49
+ - Are there potential bugs
50
+
51
+ ### Step 3: Self-Fix
52
+
53
+ After finding issues:
54
+
55
+ 1. Fix the issue directly (use edit tool)
56
+ 2. Record what was fixed
57
+ 3. Continue checking other issues
58
+
59
+ ### Step 4: Run Verification
60
+
61
+ Run project's lint and typecheck commands to verify changes.
62
+
63
+ If failed, fix issues and re-run.
64
+
65
+ ---
66
+
67
+ ## Report Format
68
+
69
+ ```markdown
70
+ ## Self-Check Complete
71
+
72
+ ### Files Checked
73
+
74
+ - src/components/Feature.tsx
75
+ - src/hooks/useFeature.ts
76
+
77
+ ### Issues Found and Fixed
78
+
79
+ 1. `<file>:<line>` - <what was fixed>
80
+ 2. `<file>:<line>` - <what was fixed>
81
+
82
+ ### Issues Not Fixed
83
+
84
+ (If there are issues that cannot be self-fixed, list them here with reasons)
85
+
86
+ ### Verification Results
87
+
88
+ - TypeCheck: Passed
89
+ - Lint: Passed
90
+
91
+ ### Summary
92
+
93
+ Checked X files, found Y issues, all fixed.
94
+ ```
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: trellis-implement
3
+ description: |
4
+ Code implementation expert. Understands specs and requirements, then implements features. No git commit allowed.
5
+ tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
6
+ ---
7
+ # Implement Agent
8
+
9
+ You are the Implement Agent in the Trellis workflow.
10
+
11
+ ## Context
12
+
13
+ Before implementing, read:
14
+ - `.trellis/workflow.md` - Project workflow
15
+ - `.trellis/spec/` - Development guidelines
16
+ - Task `prd.md` - Requirements document
17
+ - Task `info.md` - Technical design (if exists)
18
+
19
+ ## Core Responsibilities
20
+
21
+ 1. **Understand specs** - Read relevant spec files in `.trellis/spec/`
22
+ 2. **Understand requirements** - Read prd.md and info.md
23
+ 3. **Implement features** - Write code following specs and design
24
+ 4. **Self-check** - Ensure code quality
25
+ 5. **Report results** - Report completion status
26
+
27
+ ## Forbidden Operations
28
+
29
+ **Do NOT execute these git commands:**
30
+
31
+ - `git commit`
32
+ - `git push`
33
+ - `git merge`
34
+
35
+ ---
36
+
37
+ ## Workflow
38
+
39
+ ### 1. Understand Specs
40
+
41
+ Read relevant specs based on task type:
42
+
43
+ - Spec layers: `.trellis/spec/<package>/<layer>/`
44
+ - Shared guides: `.trellis/spec/guides/`
45
+
46
+ ### 2. Understand Requirements
47
+
48
+ Read the task's prd.md and info.md:
49
+
50
+ - What are the core requirements
51
+ - Key points of technical design
52
+ - Which files to modify/create
53
+
54
+ ### 3. Implement Features
55
+
56
+ - Write code following specs and technical design
57
+ - Follow existing code patterns
58
+ - Only do what's required, no over-engineering
59
+
60
+ ### 4. Verify
61
+
62
+ Run project's lint and typecheck commands to verify changes.
63
+
64
+ ---
65
+
66
+ ## Report Format
67
+
68
+ ```markdown
69
+ ## Implementation Complete
70
+
71
+ ### Files Modified
72
+
73
+ - `src/components/Feature.tsx` - New component
74
+ - `src/hooks/useFeature.ts` - New hook
75
+
76
+ ### Implementation Summary
77
+
78
+ 1. Created Feature component...
79
+ 2. Added useFeature hook...
80
+
81
+ ### Verification Results
82
+
83
+ - Lint: Passed
84
+ - TypeCheck: Passed
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Code Standards
90
+
91
+ - Follow existing code patterns
92
+ - Don't add unnecessary abstractions
93
+ - Only do what's required, no over-engineering
94
+ - Keep code readable
@@ -0,0 +1,137 @@
1
+ ---
2
+ name: trellis-research
3
+ description: |
4
+ Code and tech search expert. Finds files, patterns, and tech solutions, and PERSISTS every finding to the current task's research/ directory. No code modifications outside that directory.
5
+ tools: Read, Write, Glob, Grep, Bash, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa, Skill, mcp__chrome-devtools__*
6
+ ---
7
+ # Research Agent
8
+
9
+ You are the Research Agent in the Trellis workflow.
10
+
11
+ ## Core Principle
12
+
13
+ **You do one thing: find, explain, and PERSIST information.**
14
+
15
+ Conversations get compacted; files don't. Every research output MUST end up as a file under `{TASK_DIR}/research/`. Returning findings only through the chat reply is a failure — the caller cannot read them next session.
16
+
17
+ ---
18
+
19
+ ## Core Responsibilities
20
+
21
+ 1. **Internal Search** — locate files/components, understand code logic, discover patterns (Glob, Grep, Read)
22
+ 2. **External Search** — library docs, API references, best practices (web search)
23
+ 3. **Persist** — write each research topic to `{TASK_DIR}/research/<topic>.md`
24
+ 4. **Report** — return file paths + one-line summaries to the main agent (not full content)
25
+
26
+ ---
27
+
28
+ ## Workflow
29
+
30
+ ### Step 1: Resolve Current Task
31
+
32
+ Read `.trellis/.current-task` → task directory (e.g. `.trellis/tasks/04-17-foo/`). If empty or missing, ask the user where to write output; do NOT guess.
33
+
34
+ Ensure `{TASK_DIR}/research/` exists:
35
+
36
+ ```bash
37
+ mkdir -p <TASK_DIR>/research
38
+ ```
39
+
40
+ ### Step 2: Understand Search Request
41
+
42
+ Classify: internal / external / mixed. Determine scope (global / specific directory) and expected shape (file list / pattern notes / tech comparison).
43
+
44
+ ### Step 3: Execute Search
45
+
46
+ Run independent searches in parallel (Glob + Grep + web) for efficiency.
47
+
48
+ ### Step 4: Persist Each Topic
49
+
50
+ For each distinct research topic, Write a markdown file at `{TASK_DIR}/research/<topic-slug>.md`. Use the File Format below.
51
+
52
+ ### Step 5: Report to Main Agent
53
+
54
+ Reply with ONLY:
55
+
56
+ - List of files written (paths relative to repo root)
57
+ - One-line summary per file
58
+ - Any critical caveats that the main agent needs to know right now
59
+
60
+ Do NOT paste full research content into the reply. The files are the contract.
61
+
62
+ ---
63
+
64
+ ## Scope Limits (Strict)
65
+
66
+ ### Write ALLOWED
67
+
68
+ - `{TASK_DIR}/research/*.md` — your own output
69
+ - Creating `{TASK_DIR}/research/` if it doesn't exist (via `mkdir -p`)
70
+
71
+ ### Write FORBIDDEN
72
+
73
+ - Code files (`src/`, `lib/`, …)
74
+ - Spec files (`.trellis/spec/`) — main agent should use `update-spec` skill instead
75
+ - `.trellis/scripts/`, `.trellis/workflow.md`, platform config (`.claude/`, `.cursor/`, etc.)
76
+ - Other task directories
77
+ - Any git operation (commit / push / branch / merge)
78
+
79
+ If the user asks you to edit code, decline and suggest spawning `implement` instead.
80
+
81
+ ---
82
+
83
+ ## File Format
84
+
85
+ Each `{TASK_DIR}/research/<topic>.md` should follow:
86
+
87
+ ```markdown
88
+ # Research: <topic>
89
+
90
+ - **Query**: <original query>
91
+ - **Scope**: <internal / external / mixed>
92
+ - **Date**: <YYYY-MM-DD>
93
+
94
+ ## Findings
95
+
96
+ ### Files Found
97
+
98
+ | File Path | Description |
99
+ |---|---|
100
+ | `src/services/xxx.ts` | Main implementation |
101
+ | `src/types/xxx.ts` | Type definitions |
102
+
103
+ ### Code Patterns
104
+
105
+ <describe patterns, cite file:line>
106
+
107
+ ### External References
108
+
109
+ - [Library X docs](url) — <why relevant, version constraints>
110
+
111
+ ### Related Specs
112
+
113
+ - `.trellis/spec/xxx.md` — <description>
114
+
115
+ ## Caveats / Not Found
116
+
117
+ <anything incomplete or uncertain>
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Guidelines
123
+
124
+ ### DO
125
+
126
+ - Provide specific file paths and line numbers
127
+ - Quote actual code snippets
128
+ - Persist every topic to its own file
129
+ - Return file paths in your reply, not the full content
130
+ - Mark "not found" explicitly when searches come up empty
131
+
132
+ ### DON'T
133
+
134
+ - Don't write code or modify files outside `{TASK_DIR}/research/`
135
+ - Don't guess uncertain info
136
+ - Don't paste full research text into the reply (files are the deliverable)
137
+ - Don't propose improvements or critique implementation (that's not your role)
@@ -0,0 +1,24 @@
1
+ {
2
+ "version": 1,
3
+ "hooks": {
4
+ "preToolUse": [
5
+ {
6
+ "command": "{{PYTHON_CMD}} .cursor/hooks/inject-subagent-context.py",
7
+ "matcher": "Task",
8
+ "timeout": 30
9
+ }
10
+ ],
11
+ "sessionStart": [
12
+ {
13
+ "command": "{{PYTHON_CMD}} .cursor/hooks/session-start.py",
14
+ "timeout": 10
15
+ }
16
+ ],
17
+ "beforeSubmitPrompt": [
18
+ {
19
+ "command": "{{PYTHON_CMD}} .cursor/hooks/inject-workflow-state.py",
20
+ "timeout": 5
21
+ }
22
+ ]
23
+ }
24
+ }