@jahanxu/trellis 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/LICENSE +235 -0
  2. package/README.md +212 -0
  3. package/bin/trellis.js +3 -0
  4. package/dist/cli/index.d.ts +3 -0
  5. package/dist/cli/index.d.ts.map +1 -0
  6. package/dist/cli/index.js +97 -0
  7. package/dist/cli/index.js.map +1 -0
  8. package/dist/commands/init.d.ts +21 -0
  9. package/dist/commands/init.d.ts.map +1 -0
  10. package/dist/commands/init.js +527 -0
  11. package/dist/commands/init.js.map +1 -0
  12. package/dist/commands/update.d.ts +27 -0
  13. package/dist/commands/update.d.ts.map +1 -0
  14. package/dist/commands/update.js +1289 -0
  15. package/dist/commands/update.js.map +1 -0
  16. package/dist/configurators/antigravity.d.ts +8 -0
  17. package/dist/configurators/antigravity.d.ts.map +1 -0
  18. package/dist/configurators/antigravity.js +18 -0
  19. package/dist/configurators/antigravity.js.map +1 -0
  20. package/dist/configurators/claude.d.ts +32 -0
  21. package/dist/configurators/claude.d.ts.map +1 -0
  22. package/dist/configurators/claude.js +98 -0
  23. package/dist/configurators/claude.js.map +1 -0
  24. package/dist/configurators/codex.d.ts +8 -0
  25. package/dist/configurators/codex.d.ts.map +1 -0
  26. package/dist/configurators/codex.js +20 -0
  27. package/dist/configurators/codex.js.map +1 -0
  28. package/dist/configurators/cursor.d.ts +5 -0
  29. package/dist/configurators/cursor.d.ts.map +1 -0
  30. package/dist/configurators/cursor.js +52 -0
  31. package/dist/configurators/cursor.js.map +1 -0
  32. package/dist/configurators/gemini.d.ts +8 -0
  33. package/dist/configurators/gemini.d.ts.map +1 -0
  34. package/dist/configurators/gemini.js +52 -0
  35. package/dist/configurators/gemini.js.map +1 -0
  36. package/dist/configurators/iflow.d.ts +33 -0
  37. package/dist/configurators/iflow.d.ts.map +1 -0
  38. package/dist/configurators/iflow.js +99 -0
  39. package/dist/configurators/iflow.js.map +1 -0
  40. package/dist/configurators/index.d.ts +55 -0
  41. package/dist/configurators/index.d.ts.map +1 -0
  42. package/dist/configurators/index.js +220 -0
  43. package/dist/configurators/index.js.map +1 -0
  44. package/dist/configurators/kilo.d.ts +8 -0
  45. package/dist/configurators/kilo.d.ts.map +1 -0
  46. package/dist/configurators/kilo.js +51 -0
  47. package/dist/configurators/kilo.js.map +1 -0
  48. package/dist/configurators/kiro.d.ts +8 -0
  49. package/dist/configurators/kiro.d.ts.map +1 -0
  50. package/dist/configurators/kiro.js +20 -0
  51. package/dist/configurators/kiro.js.map +1 -0
  52. package/dist/configurators/opencode.d.ts +32 -0
  53. package/dist/configurators/opencode.d.ts.map +1 -0
  54. package/dist/configurators/opencode.js +92 -0
  55. package/dist/configurators/opencode.js.map +1 -0
  56. package/dist/configurators/shared.d.ts +12 -0
  57. package/dist/configurators/shared.d.ts.map +1 -0
  58. package/dist/configurators/shared.js +21 -0
  59. package/dist/configurators/shared.js.map +1 -0
  60. package/dist/configurators/workflow.d.ts +28 -0
  61. package/dist/configurators/workflow.d.ts.map +1 -0
  62. package/dist/configurators/workflow.js +134 -0
  63. package/dist/configurators/workflow.js.map +1 -0
  64. package/dist/constants/paths.d.ts +68 -0
  65. package/dist/constants/paths.d.ts.map +1 -0
  66. package/dist/constants/paths.js +77 -0
  67. package/dist/constants/paths.js.map +1 -0
  68. package/dist/constants/version.d.ts +9 -0
  69. package/dist/constants/version.d.ts.map +1 -0
  70. package/dist/constants/version.js +15 -0
  71. package/dist/constants/version.js.map +1 -0
  72. package/dist/index.d.ts +9 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +9 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/migrations/index.d.ts +54 -0
  77. package/dist/migrations/index.d.ts.map +1 -0
  78. package/dist/migrations/index.js +160 -0
  79. package/dist/migrations/index.js.map +1 -0
  80. package/dist/migrations/manifests/0.1.9.json +30 -0
  81. package/dist/migrations/manifests/0.2.0.json +49 -0
  82. package/dist/migrations/manifests/0.2.12.json +9 -0
  83. package/dist/migrations/manifests/0.2.13.json +9 -0
  84. package/dist/migrations/manifests/0.2.14.json +175 -0
  85. package/dist/migrations/manifests/0.2.15.json +33 -0
  86. package/dist/migrations/manifests/0.3.0-beta.0.json +278 -0
  87. package/dist/migrations/manifests/0.3.0-beta.1.json +9 -0
  88. package/dist/migrations/manifests/0.3.0-beta.10.json +9 -0
  89. package/dist/migrations/manifests/0.3.0-beta.11.json +9 -0
  90. package/dist/migrations/manifests/0.3.0-beta.12.json +9 -0
  91. package/dist/migrations/manifests/0.3.0-beta.13.json +9 -0
  92. package/dist/migrations/manifests/0.3.0-beta.14.json +9 -0
  93. package/dist/migrations/manifests/0.3.0-beta.15.json +9 -0
  94. package/dist/migrations/manifests/0.3.0-beta.16.json +9 -0
  95. package/dist/migrations/manifests/0.3.0-beta.2.json +9 -0
  96. package/dist/migrations/manifests/0.3.0-beta.3.json +9 -0
  97. package/dist/migrations/manifests/0.3.0-beta.4.json +9 -0
  98. package/dist/migrations/manifests/0.3.0-beta.5.json +9 -0
  99. package/dist/migrations/manifests/0.3.0-beta.6.json +9 -0
  100. package/dist/migrations/manifests/0.3.0-beta.7.json +11 -0
  101. package/dist/migrations/manifests/0.3.0-beta.8.json +9 -0
  102. package/dist/migrations/manifests/0.3.0-beta.9.json +9 -0
  103. package/dist/migrations/manifests/0.3.0-rc.0.json +9 -0
  104. package/dist/migrations/manifests/0.3.0-rc.1.json +9 -0
  105. package/dist/migrations/manifests/0.3.0-rc.2.json +9 -0
  106. package/dist/migrations/manifests/0.3.0-rc.3.json +9 -0
  107. package/dist/migrations/manifests/0.3.0-rc.4.json +9 -0
  108. package/dist/migrations/manifests/0.3.0-rc.5.json +9 -0
  109. package/dist/migrations/manifests/0.3.0-rc.6.json +9 -0
  110. package/dist/migrations/manifests/0.3.0.json +11 -0
  111. package/dist/templates/antigravity/index.d.ts +12 -0
  112. package/dist/templates/antigravity/index.d.ts.map +1 -0
  113. package/dist/templates/antigravity/index.js +29 -0
  114. package/dist/templates/antigravity/index.js.map +1 -0
  115. package/dist/templates/claude/agents/check.md +122 -0
  116. package/dist/templates/claude/agents/debug.md +106 -0
  117. package/dist/templates/claude/agents/dispatch.md +214 -0
  118. package/dist/templates/claude/agents/implement.md +96 -0
  119. package/dist/templates/claude/agents/plan.md +396 -0
  120. package/dist/templates/claude/agents/research.md +120 -0
  121. package/dist/templates/claude/commands/trellis/before-backend-dev.md +13 -0
  122. package/dist/templates/claude/commands/trellis/before-frontend-dev.md +13 -0
  123. package/dist/templates/claude/commands/trellis/before-role-work.md +364 -0
  124. package/dist/templates/claude/commands/trellis/brainstorm.md +474 -0
  125. package/dist/templates/claude/commands/trellis/break-loop.md +125 -0
  126. package/dist/templates/claude/commands/trellis/check-backend.md +13 -0
  127. package/dist/templates/claude/commands/trellis/check-cross-layer.md +153 -0
  128. package/dist/templates/claude/commands/trellis/check-frontend.md +13 -0
  129. package/dist/templates/claude/commands/trellis/create-command.md +154 -0
  130. package/dist/templates/claude/commands/trellis/finish-work.md +153 -0
  131. package/dist/templates/claude/commands/trellis/handoff.md +445 -0
  132. package/dist/templates/claude/commands/trellis/integrate-skill.md +219 -0
  133. package/dist/templates/claude/commands/trellis/onboard.md +358 -0
  134. package/dist/templates/claude/commands/trellis/parallel.md +193 -0
  135. package/dist/templates/claude/commands/trellis/pick-task.md +515 -0
  136. package/dist/templates/claude/commands/trellis/record-session.md +62 -0
  137. package/dist/templates/claude/commands/trellis/start.md +373 -0
  138. package/dist/templates/claude/commands/trellis/update-spec.md +354 -0
  139. package/dist/templates/claude/hooks/inject-subagent-context.py +873 -0
  140. package/dist/templates/claude/hooks/ralph-loop.py +388 -0
  141. package/dist/templates/claude/hooks/session-start.py +200 -0
  142. package/dist/templates/claude/index.d.ts +54 -0
  143. package/dist/templates/claude/index.d.ts.map +1 -0
  144. package/dist/templates/claude/index.js +85 -0
  145. package/dist/templates/claude/index.js.map +1 -0
  146. package/dist/templates/claude/settings.json +41 -0
  147. package/dist/templates/codex/index.d.ts +18 -0
  148. package/dist/templates/codex/index.d.ts.map +1 -0
  149. package/dist/templates/codex/index.js +40 -0
  150. package/dist/templates/codex/index.js.map +1 -0
  151. package/dist/templates/codex/skills/before-backend-dev/SKILL.md +18 -0
  152. package/dist/templates/codex/skills/before-frontend-dev/SKILL.md +18 -0
  153. package/dist/templates/codex/skills/brainstorm/SKILL.md +479 -0
  154. package/dist/templates/codex/skills/break-loop/SKILL.md +130 -0
  155. package/dist/templates/codex/skills/check-backend/SKILL.md +18 -0
  156. package/dist/templates/codex/skills/check-cross-layer/SKILL.md +158 -0
  157. package/dist/templates/codex/skills/check-frontend/SKILL.md +18 -0
  158. package/dist/templates/codex/skills/create-command/SKILL.md +101 -0
  159. package/dist/templates/codex/skills/finish-work/SKILL.md +148 -0
  160. package/dist/templates/codex/skills/integrate-skill/SKILL.md +221 -0
  161. package/dist/templates/codex/skills/onboard/SKILL.md +363 -0
  162. package/dist/templates/codex/skills/record-session/SKILL.md +67 -0
  163. package/dist/templates/codex/skills/start/SKILL.md +330 -0
  164. package/dist/templates/codex/skills/update-spec/SKILL.md +335 -0
  165. package/dist/templates/cursor/commands/trellis-before-backend-dev.md +13 -0
  166. package/dist/templates/cursor/commands/trellis-before-frontend-dev.md +13 -0
  167. package/dist/templates/cursor/commands/trellis-brainstorm.md +474 -0
  168. package/dist/templates/cursor/commands/trellis-break-loop.md +107 -0
  169. package/dist/templates/cursor/commands/trellis-check-backend.md +13 -0
  170. package/dist/templates/cursor/commands/trellis-check-cross-layer.md +153 -0
  171. package/dist/templates/cursor/commands/trellis-check-frontend.md +13 -0
  172. package/dist/templates/cursor/commands/trellis-create-command.md +154 -0
  173. package/dist/templates/cursor/commands/trellis-finish-work.md +143 -0
  174. package/dist/templates/cursor/commands/trellis-integrate-skill.md +219 -0
  175. package/dist/templates/cursor/commands/trellis-onboard.md +358 -0
  176. package/dist/templates/cursor/commands/trellis-record-session.md +62 -0
  177. package/dist/templates/cursor/commands/trellis-start.md +366 -0
  178. package/dist/templates/cursor/commands/trellis-update-spec.md +354 -0
  179. package/dist/templates/cursor/index.d.ts +24 -0
  180. package/dist/templates/cursor/index.d.ts.map +1 -0
  181. package/dist/templates/cursor/index.js +44 -0
  182. package/dist/templates/cursor/index.js.map +1 -0
  183. package/dist/templates/extract.d.ts +166 -0
  184. package/dist/templates/extract.d.ts.map +1 -0
  185. package/dist/templates/extract.js +296 -0
  186. package/dist/templates/extract.js.map +1 -0
  187. package/dist/templates/gemini/commands/trellis/before-backend-dev.toml +17 -0
  188. package/dist/templates/gemini/commands/trellis/before-frontend-dev.toml +17 -0
  189. package/dist/templates/gemini/commands/trellis/brainstorm.toml +420 -0
  190. package/dist/templates/gemini/commands/trellis/break-loop.toml +129 -0
  191. package/dist/templates/gemini/commands/trellis/check-backend.toml +17 -0
  192. package/dist/templates/gemini/commands/trellis/check-cross-layer.toml +147 -0
  193. package/dist/templates/gemini/commands/trellis/check-frontend.toml +17 -0
  194. package/dist/templates/gemini/commands/trellis/create-command.toml +119 -0
  195. package/dist/templates/gemini/commands/trellis/finish-work.toml +133 -0
  196. package/dist/templates/gemini/commands/trellis/integrate-skill.toml +104 -0
  197. package/dist/templates/gemini/commands/trellis/onboard.toml +111 -0
  198. package/dist/templates/gemini/commands/trellis/record-session.toml +66 -0
  199. package/dist/templates/gemini/commands/trellis/start.toml +292 -0
  200. package/dist/templates/gemini/commands/trellis/update-spec.toml +132 -0
  201. package/dist/templates/gemini/index.d.ts +21 -0
  202. package/dist/templates/gemini/index.d.ts.map +1 -0
  203. package/dist/templates/gemini/index.js +44 -0
  204. package/dist/templates/gemini/index.js.map +1 -0
  205. package/dist/templates/iflow/agents/check.md +122 -0
  206. package/dist/templates/iflow/agents/debug.md +106 -0
  207. package/dist/templates/iflow/agents/dispatch.md +214 -0
  208. package/dist/templates/iflow/agents/implement.md +96 -0
  209. package/dist/templates/iflow/agents/plan.md +396 -0
  210. package/dist/templates/iflow/agents/research.md +120 -0
  211. package/dist/templates/iflow/commands/trellis/before-backend-dev.md +13 -0
  212. package/dist/templates/iflow/commands/trellis/before-frontend-dev.md +13 -0
  213. package/dist/templates/iflow/commands/trellis/brainstorm.md +474 -0
  214. package/dist/templates/iflow/commands/trellis/break-loop.md +125 -0
  215. package/dist/templates/iflow/commands/trellis/check-backend.md +13 -0
  216. package/dist/templates/iflow/commands/trellis/check-cross-layer.md +153 -0
  217. package/dist/templates/iflow/commands/trellis/check-frontend.md +13 -0
  218. package/dist/templates/iflow/commands/trellis/create-command.md +152 -0
  219. package/dist/templates/iflow/commands/trellis/finish-work.md +153 -0
  220. package/dist/templates/iflow/commands/trellis/integrate-skill.md +219 -0
  221. package/dist/templates/iflow/commands/trellis/onboard.md +358 -0
  222. package/dist/templates/iflow/commands/trellis/parallel.md +193 -0
  223. package/dist/templates/iflow/commands/trellis/record-session.md +62 -0
  224. package/dist/templates/iflow/commands/trellis/start.md +373 -0
  225. package/dist/templates/iflow/commands/trellis/update-spec.md +354 -0
  226. package/dist/templates/iflow/hooks/inject-subagent-context.py +788 -0
  227. package/dist/templates/iflow/hooks/ralph-loop.py +388 -0
  228. package/dist/templates/iflow/hooks/session-start.py +143 -0
  229. package/dist/templates/iflow/index.d.ts +54 -0
  230. package/dist/templates/iflow/index.d.ts.map +1 -0
  231. package/dist/templates/iflow/index.js +85 -0
  232. package/dist/templates/iflow/index.js.map +1 -0
  233. package/dist/templates/iflow/settings.json +40 -0
  234. package/dist/templates/kilo/commands/trellis/before-backend-dev.md +13 -0
  235. package/dist/templates/kilo/commands/trellis/before-frontend-dev.md +13 -0
  236. package/dist/templates/kilo/commands/trellis/brainstorm.md +474 -0
  237. package/dist/templates/kilo/commands/trellis/break-loop.md +125 -0
  238. package/dist/templates/kilo/commands/trellis/check-backend.md +13 -0
  239. package/dist/templates/kilo/commands/trellis/check-cross-layer.md +153 -0
  240. package/dist/templates/kilo/commands/trellis/check-frontend.md +13 -0
  241. package/dist/templates/kilo/commands/trellis/create-command.md +152 -0
  242. package/dist/templates/kilo/commands/trellis/finish-work.md +129 -0
  243. package/dist/templates/kilo/commands/trellis/integrate-skill.md +219 -0
  244. package/dist/templates/kilo/commands/trellis/onboard.md +358 -0
  245. package/dist/templates/kilo/commands/trellis/parallel.md +194 -0
  246. package/dist/templates/kilo/commands/trellis/record-session.md +62 -0
  247. package/dist/templates/kilo/commands/trellis/start.md +321 -0
  248. package/dist/templates/kilo/commands/trellis/update-spec.md +285 -0
  249. package/dist/templates/kilo/index.d.ts +16 -0
  250. package/dist/templates/kilo/index.d.ts.map +1 -0
  251. package/dist/templates/kilo/index.js +39 -0
  252. package/dist/templates/kilo/index.js.map +1 -0
  253. package/dist/templates/kiro/index.d.ts +18 -0
  254. package/dist/templates/kiro/index.d.ts.map +1 -0
  255. package/dist/templates/kiro/index.js +40 -0
  256. package/dist/templates/kiro/index.js.map +1 -0
  257. package/dist/templates/kiro/skills/before-backend-dev/SKILL.md +18 -0
  258. package/dist/templates/kiro/skills/before-frontend-dev/SKILL.md +18 -0
  259. package/dist/templates/kiro/skills/brainstorm/SKILL.md +479 -0
  260. package/dist/templates/kiro/skills/break-loop/SKILL.md +130 -0
  261. package/dist/templates/kiro/skills/check-backend/SKILL.md +18 -0
  262. package/dist/templates/kiro/skills/check-cross-layer/SKILL.md +158 -0
  263. package/dist/templates/kiro/skills/check-frontend/SKILL.md +18 -0
  264. package/dist/templates/kiro/skills/create-command/SKILL.md +101 -0
  265. package/dist/templates/kiro/skills/finish-work/SKILL.md +148 -0
  266. package/dist/templates/kiro/skills/integrate-skill/SKILL.md +221 -0
  267. package/dist/templates/kiro/skills/onboard/SKILL.md +363 -0
  268. package/dist/templates/kiro/skills/record-session/SKILL.md +67 -0
  269. package/dist/templates/kiro/skills/start/SKILL.md +330 -0
  270. package/dist/templates/kiro/skills/update-spec/SKILL.md +335 -0
  271. package/dist/templates/markdown/agents.md +18 -0
  272. package/dist/templates/markdown/gitignore.txt +12 -0
  273. package/dist/templates/markdown/index.d.ts +27 -0
  274. package/dist/templates/markdown/index.d.ts.map +1 -0
  275. package/dist/templates/markdown/index.js +52 -0
  276. package/dist/templates/markdown/index.js.map +1 -0
  277. package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -0
  278. package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -0
  279. package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -0
  280. package/dist/templates/markdown/spec/backend/index.md +40 -0
  281. package/dist/templates/markdown/spec/backend/index.md.txt +38 -0
  282. package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -0
  283. package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -0
  284. package/dist/templates/markdown/spec/backend/script-conventions.md +467 -0
  285. package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -0
  286. package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -0
  287. package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -0
  288. package/dist/templates/markdown/spec/frontend/index.md.txt +39 -0
  289. package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -0
  290. package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -0
  291. package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -0
  292. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +118 -0
  293. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +92 -0
  294. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +94 -0
  295. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +394 -0
  296. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +319 -0
  297. package/dist/templates/markdown/spec/guides/index.md.txt +79 -0
  298. package/dist/templates/markdown/workspace-index.md +123 -0
  299. package/dist/templates/markdown/worktree.yaml.txt +58 -0
  300. package/dist/templates/opencode/agents/check.md +146 -0
  301. package/dist/templates/opencode/agents/debug.md +129 -0
  302. package/dist/templates/opencode/agents/dispatch.md +223 -0
  303. package/dist/templates/opencode/agents/implement.md +120 -0
  304. package/dist/templates/opencode/agents/research.md +147 -0
  305. package/dist/templates/opencode/agents/trellis-plan.md +427 -0
  306. package/dist/templates/opencode/commands/trellis/before-backend-dev.md +13 -0
  307. package/dist/templates/opencode/commands/trellis/before-frontend-dev.md +13 -0
  308. package/dist/templates/opencode/commands/trellis/brainstorm.md +474 -0
  309. package/dist/templates/opencode/commands/trellis/break-loop.md +125 -0
  310. package/dist/templates/opencode/commands/trellis/check-backend.md +13 -0
  311. package/dist/templates/opencode/commands/trellis/check-cross-layer.md +153 -0
  312. package/dist/templates/opencode/commands/trellis/check-frontend.md +13 -0
  313. package/dist/templates/opencode/commands/trellis/create-command.md +154 -0
  314. package/dist/templates/opencode/commands/trellis/finish-work.md +144 -0
  315. package/dist/templates/opencode/commands/trellis/integrate-skill.md +219 -0
  316. package/dist/templates/opencode/commands/trellis/migrate-specs.md +0 -0
  317. package/dist/templates/opencode/commands/trellis/onboard.md +358 -0
  318. package/dist/templates/opencode/commands/trellis/parallel.md +194 -0
  319. package/dist/templates/opencode/commands/trellis/record-session.md +62 -0
  320. package/dist/templates/opencode/commands/trellis/start.md +338 -0
  321. package/dist/templates/opencode/commands/trellis/update-spec.md +354 -0
  322. package/dist/templates/opencode/lib/trellis-context.js +436 -0
  323. package/dist/templates/opencode/package.json +5 -0
  324. package/dist/templates/opencode/plugin/inject-subagent-context.js +538 -0
  325. package/dist/templates/opencode/plugin/session-start.js +192 -0
  326. package/dist/templates/trellis/VERSION +1 -0
  327. package/dist/templates/trellis/deliverables/README.md +51 -0
  328. package/dist/templates/trellis/gitignore.txt +29 -0
  329. package/dist/templates/trellis/index.d.ts +49 -0
  330. package/dist/templates/trellis/index.d.ts.map +1 -0
  331. package/dist/templates/trellis/index.js +92 -0
  332. package/dist/templates/trellis/index.js.map +1 -0
  333. package/dist/templates/trellis/paths.README.md +277 -0
  334. package/dist/templates/trellis/paths.yaml +41 -0
  335. package/dist/templates/trellis/pool/implementations.json +5 -0
  336. package/dist/templates/trellis/pool/prototypes.json +5 -0
  337. package/dist/templates/trellis/pool/requirements.json +5 -0
  338. package/dist/templates/trellis/scripts/__init__.py +5 -0
  339. package/dist/templates/trellis/scripts/add_session.py +391 -0
  340. package/dist/templates/trellis/scripts/common/__init__.py +80 -0
  341. package/dist/templates/trellis/scripts/common/cli_adapter.py +522 -0
  342. package/dist/templates/trellis/scripts/common/developer.py +189 -0
  343. package/dist/templates/trellis/scripts/common/git_context.py +383 -0
  344. package/dist/templates/trellis/scripts/common/paths.py +346 -0
  345. package/dist/templates/trellis/scripts/common/phase.py +253 -0
  346. package/dist/templates/trellis/scripts/common/project_paths.py +189 -0
  347. package/dist/templates/trellis/scripts/common/registry.py +365 -0
  348. package/dist/templates/trellis/scripts/common/task_queue.py +255 -0
  349. package/dist/templates/trellis/scripts/common/task_utils.py +177 -0
  350. package/dist/templates/trellis/scripts/common/worktree.py +218 -0
  351. package/dist/templates/trellis/scripts/create_bootstrap.py +290 -0
  352. package/dist/templates/trellis/scripts/get_context.py +16 -0
  353. package/dist/templates/trellis/scripts/get_developer.py +26 -0
  354. package/dist/templates/trellis/scripts/handoff_generator.py +380 -0
  355. package/dist/templates/trellis/scripts/init_developer.py +51 -0
  356. package/dist/templates/trellis/scripts/multi_agent/__init__.py +5 -0
  357. package/dist/templates/trellis/scripts/multi_agent/cleanup.py +403 -0
  358. package/dist/templates/trellis/scripts/multi_agent/create_pr.py +329 -0
  359. package/dist/templates/trellis/scripts/multi_agent/plan.py +233 -0
  360. package/dist/templates/trellis/scripts/multi_agent/start.py +461 -0
  361. package/dist/templates/trellis/scripts/multi_agent/status.py +817 -0
  362. package/dist/templates/trellis/scripts/pool.py +373 -0
  363. package/dist/templates/trellis/scripts/task.py +1162 -0
  364. package/dist/templates/trellis/scripts-shell-archive/add-session.sh +384 -0
  365. package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +129 -0
  366. package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +263 -0
  367. package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +208 -0
  368. package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +150 -0
  369. package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +247 -0
  370. package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +142 -0
  371. package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +151 -0
  372. package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +128 -0
  373. package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +299 -0
  374. package/dist/templates/trellis/scripts-shell-archive/get-context.sh +7 -0
  375. package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +15 -0
  376. package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +34 -0
  377. package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +396 -0
  378. package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +241 -0
  379. package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +207 -0
  380. package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +317 -0
  381. package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +828 -0
  382. package/dist/templates/trellis/scripts-shell-archive/task.sh +1204 -0
  383. package/dist/templates/trellis/spec/roles/designer/index.md +243 -0
  384. package/dist/templates/trellis/spec/roles/designer/mock-data-standards.md +481 -0
  385. package/dist/templates/trellis/spec/roles/designer/prototype-guidelines.md +429 -0
  386. package/dist/templates/trellis/spec/roles/frontend-impl/api-integration.md +565 -0
  387. package/dist/templates/trellis/spec/roles/frontend-impl/index.md +321 -0
  388. package/dist/templates/trellis/spec/roles/frontend-impl/state-management.md +599 -0
  389. package/dist/templates/trellis/spec/roles/pm/index.md +112 -0
  390. package/dist/templates/trellis/spec/roles/pm/prd-template.md +124 -0
  391. package/dist/templates/trellis/tasks/.gitkeep +0 -0
  392. package/dist/templates/trellis/workflow.md +416 -0
  393. package/dist/templates/trellis/worktree.yaml +47 -0
  394. package/dist/types/ai-tools.d.ts +56 -0
  395. package/dist/types/ai-tools.d.ts.map +1 -0
  396. package/dist/types/ai-tools.js +103 -0
  397. package/dist/types/ai-tools.js.map +1 -0
  398. package/dist/types/migration.d.ts +86 -0
  399. package/dist/types/migration.d.ts.map +1 -0
  400. package/dist/types/migration.js +8 -0
  401. package/dist/types/migration.js.map +1 -0
  402. package/dist/utils/compare-versions.d.ts +12 -0
  403. package/dist/utils/compare-versions.d.ts.map +1 -0
  404. package/dist/utils/compare-versions.js +76 -0
  405. package/dist/utils/compare-versions.js.map +1 -0
  406. package/dist/utils/file-writer.d.ts +23 -0
  407. package/dist/utils/file-writer.d.ts.map +1 -0
  408. package/dist/utils/file-writer.js +140 -0
  409. package/dist/utils/file-writer.js.map +1 -0
  410. package/dist/utils/project-detector.d.ts +16 -0
  411. package/dist/utils/project-detector.d.ts.map +1 -0
  412. package/dist/utils/project-detector.js +186 -0
  413. package/dist/utils/project-detector.js.map +1 -0
  414. package/dist/utils/template-fetcher.d.ts +51 -0
  415. package/dist/utils/template-fetcher.d.ts.map +1 -0
  416. package/dist/utils/template-fetcher.js +174 -0
  417. package/dist/utils/template-fetcher.js.map +1 -0
  418. package/dist/utils/template-hash.d.ts +78 -0
  419. package/dist/utils/template-hash.d.ts.map +1 -0
  420. package/dist/utils/template-hash.js +233 -0
  421. package/dist/utils/template-hash.js.map +1 -0
  422. package/package.json +87 -0
@@ -0,0 +1,384 @@
1
+ #!/bin/bash
2
+ # Add a new session to journal file and update index.md
3
+ #
4
+ # Usage:
5
+ # ./.trellis/scripts/add-session.sh --title "Title" --commit "hash" --summary "Summary"
6
+ # echo "content" | ./.trellis/scripts/add-session.sh --title "Title" --commit "hash"
7
+
8
+ set -e
9
+
10
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
+ source "$SCRIPT_DIR/common/paths.sh"
12
+ source "$SCRIPT_DIR/common/developer.sh"
13
+
14
+ MAX_LINES=2000
15
+ TODAY=$(date +%Y-%m-%d)
16
+
17
+ # Ensure developer is initialized
18
+ ensure_developer
19
+
20
+ DEVELOPER=$(get_developer)
21
+ REPO_ROOT=$(get_repo_root)
22
+ DEV_DIR="$REPO_ROOT/$DIR_WORKFLOW/$DIR_WORKSPACE/$DEVELOPER"
23
+ INDEX_FILE="$DEV_DIR/index.md"
24
+
25
+ # =============================================================================
26
+ # Helper Functions
27
+ # =============================================================================
28
+
29
+ get_latest_journal_info() {
30
+ local latest_file=""
31
+ local latest_num=-1 # Start at -1 so journal-0.md can be detected (0 > -1)
32
+
33
+ for f in "$DEV_DIR"/${FILE_JOURNAL_PREFIX}*.md; do
34
+ if [[ -f "$f" ]]; then
35
+ local num=$(basename "$f" | sed "s/${FILE_JOURNAL_PREFIX}\([0-9]*\)\.md/\1/")
36
+ if [[ "$num" -gt "$latest_num" ]]; then
37
+ latest_num=$num
38
+ latest_file="$f"
39
+ fi
40
+ fi
41
+ done
42
+
43
+ if [[ -n "$latest_file" ]]; then
44
+ local lines=$(wc -l < "$latest_file" | tr -d ' ')
45
+ echo "$latest_file:$latest_num:$lines"
46
+ else
47
+ echo ":0:0"
48
+ fi
49
+ }
50
+
51
+ get_current_session() {
52
+ local line=$(grep "Total Sessions" "$INDEX_FILE" 2>/dev/null | head -1)
53
+ echo "$line" | sed 's/.*: //' | tr -d ' '
54
+ }
55
+
56
+ count_journal_files() {
57
+ local result=""
58
+ local journal_info=$(get_latest_journal_info)
59
+ local active_num=$(echo "$journal_info" | cut -d: -f2)
60
+ local active_file="${FILE_JOURNAL_PREFIX}$active_num.md"
61
+
62
+ for f in $(ls -v "$DEV_DIR"/${FILE_JOURNAL_PREFIX}*.md 2>/dev/null | sort -t- -k2 -n -r); do
63
+ if [[ -f "$f" ]]; then
64
+ local filename=$(basename "$f")
65
+ local lines=$(wc -l < "$f" | tr -d ' ')
66
+
67
+ local status="Archived"
68
+ if [[ "$filename" == "$active_file" ]]; then
69
+ status="Active"
70
+ fi
71
+
72
+ result="${result}| \`$filename\` | ~$lines | $status |
73
+ "
74
+ fi
75
+ done
76
+ echo "$result" | sed '/^$/d'
77
+ }
78
+
79
+ create_new_journal_file() {
80
+ local num=$1
81
+ local prev_num=$((num - 1))
82
+ local new_file="$DEV_DIR/${FILE_JOURNAL_PREFIX}$num.md"
83
+
84
+ cat > "$new_file" << EOF
85
+ # Journal - $DEVELOPER (Part $num)
86
+
87
+ > Continuation from \`${FILE_JOURNAL_PREFIX}$prev_num.md\` (archived at ~$MAX_LINES lines)
88
+ > Started: $TODAY
89
+
90
+ ---
91
+
92
+ EOF
93
+ echo "$new_file"
94
+ }
95
+
96
+ generate_session_content() {
97
+ local session_num=$1
98
+ local title=$2
99
+ local commit=$3
100
+ local summary=$4
101
+ local extra_content=$5
102
+
103
+ local commit_table=""
104
+ if [[ -n "$commit" && "$commit" != "-" ]]; then
105
+ commit_table="| Hash | Message |
106
+ |------|---------|"
107
+ IFS=',' read -ra COMMITS <<< "$commit"
108
+ for c in "${COMMITS[@]}"; do
109
+ c=$(echo "$c" | tr -d ' ')
110
+ commit_table="$commit_table
111
+ | \`$c\` | (see git log) |"
112
+ done
113
+ else
114
+ commit_table="(No commits - planning session)"
115
+ fi
116
+
117
+ cat << EOF
118
+
119
+ ## Session $session_num: $title
120
+
121
+ **Date**: $TODAY
122
+ **Task**: $title
123
+
124
+ ### Summary
125
+
126
+ $summary
127
+
128
+ ### Main Changes
129
+
130
+ $extra_content
131
+
132
+ ### Git Commits
133
+
134
+ $commit_table
135
+
136
+ ### Testing
137
+
138
+ - [OK] (Add test results)
139
+
140
+ ### Status
141
+
142
+ [OK] **Completed**
143
+
144
+ ### Next Steps
145
+
146
+ - None - task complete
147
+ EOF
148
+ }
149
+
150
+ # =============================================================================
151
+ # Update Index.md
152
+ # =============================================================================
153
+
154
+ update_index() {
155
+ local title="$1"
156
+ local commit="$2"
157
+ local new_session="$3"
158
+ local active_file="$4"
159
+
160
+ # Format commit for display
161
+ local commit_display="-"
162
+ if [[ -n "$commit" && "$commit" != "-" ]]; then
163
+ commit_display=$(echo "$commit" | sed 's/,/, /g' | sed 's/\([a-f0-9]\{7,\}\)/`\1`/g')
164
+ fi
165
+
166
+ local files_table=$(count_journal_files)
167
+
168
+ echo "Updating index.md for session $new_session..."
169
+ echo " Title: $title"
170
+ echo " Commit: $commit_display"
171
+ echo " Active File: $active_file"
172
+ echo ""
173
+
174
+ if ! grep -q "@@@auto:current-status" "$INDEX_FILE"; then
175
+ echo "Error: Markers not found in index.md. Please ensure markers exist." >&2
176
+ exit 1
177
+ fi
178
+
179
+ local tmp_file=$(mktemp)
180
+
181
+ local in_current_status=false
182
+ local in_active_documents=false
183
+ local in_session_history=false
184
+ local header_written=false
185
+
186
+ while IFS= read -r line || [[ -n "$line" ]]; do
187
+ if [[ "$line" == *"@@@auto:current-status"* ]]; then
188
+ echo "$line" >> "$tmp_file"
189
+ in_current_status=true
190
+ echo "- **Active File**: \`$active_file\`" >> "$tmp_file"
191
+ echo "- **Total Sessions**: $new_session" >> "$tmp_file"
192
+ echo "- **Last Active**: $TODAY" >> "$tmp_file"
193
+ continue
194
+ fi
195
+
196
+ if [[ "$line" == *"@@@/auto:current-status"* ]]; then
197
+ in_current_status=false
198
+ echo "$line" >> "$tmp_file"
199
+ continue
200
+ fi
201
+
202
+ if [[ "$line" == *"@@@auto:active-documents"* ]]; then
203
+ echo "$line" >> "$tmp_file"
204
+ in_active_documents=true
205
+ echo "| File | Lines | Status |" >> "$tmp_file"
206
+ echo "|------|-------|--------|" >> "$tmp_file"
207
+ echo "$files_table" >> "$tmp_file"
208
+ continue
209
+ fi
210
+
211
+ if [[ "$line" == *"@@@/auto:active-documents"* ]]; then
212
+ in_active_documents=false
213
+ echo "$line" >> "$tmp_file"
214
+ continue
215
+ fi
216
+
217
+ if [[ "$line" == *"@@@auto:session-history"* ]]; then
218
+ echo "$line" >> "$tmp_file"
219
+ in_session_history=true
220
+ header_written=false
221
+ continue
222
+ fi
223
+
224
+ if [[ "$line" == *"@@@/auto:session-history"* ]]; then
225
+ in_session_history=false
226
+ echo "$line" >> "$tmp_file"
227
+ continue
228
+ fi
229
+
230
+ if $in_current_status; then
231
+ continue
232
+ fi
233
+
234
+ if $in_active_documents; then
235
+ continue
236
+ fi
237
+
238
+ if $in_session_history; then
239
+ echo "$line" >> "$tmp_file"
240
+ if [[ "$line" == "|---"* ]] && ! $header_written; then
241
+ echo "| $new_session | $TODAY | $title | $commit_display |" >> "$tmp_file"
242
+ header_written=true
243
+ fi
244
+ continue
245
+ fi
246
+
247
+ echo "$line" >> "$tmp_file"
248
+ done < "$INDEX_FILE"
249
+
250
+ mv "$tmp_file" "$INDEX_FILE"
251
+
252
+ echo "[OK] Updated index.md successfully!"
253
+ }
254
+
255
+ # =============================================================================
256
+ # Main Function
257
+ # =============================================================================
258
+
259
+ add_session() {
260
+ local title=""
261
+ local commit="-"
262
+ local summary="(Add summary)"
263
+ local content_file=""
264
+ local extra_content="(Add details)"
265
+
266
+ while [[ $# -gt 0 ]]; do
267
+ case $1 in
268
+ --title)
269
+ title="$2"
270
+ shift 2
271
+ ;;
272
+ --commit)
273
+ commit="$2"
274
+ shift 2
275
+ ;;
276
+ --summary)
277
+ summary="$2"
278
+ shift 2
279
+ ;;
280
+ --content-file)
281
+ content_file="$2"
282
+ shift 2
283
+ ;;
284
+ *)
285
+ shift
286
+ ;;
287
+ esac
288
+ done
289
+
290
+ if [[ -z "$title" ]]; then
291
+ echo "Error: --title is required" >&2
292
+ echo "Usage: $0 --title \"Session Title\" [--commit \"hash1,hash2\"] [--summary \"Brief summary\"]" >&2
293
+ exit 1
294
+ fi
295
+
296
+ if [[ -n "$content_file" && -f "$content_file" ]]; then
297
+ extra_content=$(cat "$content_file")
298
+ elif [[ ! -t 0 ]]; then
299
+ extra_content=$(cat)
300
+ fi
301
+
302
+ local journal_info=$(get_latest_journal_info)
303
+ local current_file=$(echo "$journal_info" | cut -d: -f1)
304
+ local current_num=$(echo "$journal_info" | cut -d: -f2)
305
+ local current_lines=$(echo "$journal_info" | cut -d: -f3)
306
+ local current_session=$(get_current_session)
307
+ local new_session=$((current_session + 1))
308
+
309
+ local session_content=$(generate_session_content "$new_session" "$title" "$commit" "$summary" "$extra_content")
310
+ local content_lines=$(echo "$session_content" | wc -l | tr -d ' ')
311
+
312
+ echo "========================================" >&2
313
+ echo "ADD SESSION" >&2
314
+ echo "========================================" >&2
315
+ echo "" >&2
316
+ echo "Session: $new_session" >&2
317
+ echo "Title: $title" >&2
318
+ echo "Commit: $commit" >&2
319
+ echo "" >&2
320
+ echo "Current journal file: ${FILE_JOURNAL_PREFIX}$current_num.md" >&2
321
+ echo "Current lines: $current_lines" >&2
322
+ echo "New content lines: $content_lines" >&2
323
+ echo "Total after append: $((current_lines + content_lines))" >&2
324
+ echo "" >&2
325
+
326
+ local target_file="$current_file"
327
+ local target_num=$current_num
328
+
329
+ if [[ $((current_lines + content_lines)) -gt $MAX_LINES ]]; then
330
+ target_num=$((current_num + 1))
331
+ echo "[!] Exceeds $MAX_LINES lines, creating ${FILE_JOURNAL_PREFIX}$target_num.md" >&2
332
+ target_file=$(create_new_journal_file "$target_num")
333
+ echo "Created: $target_file" >&2
334
+ fi
335
+
336
+ echo "$session_content" >> "$target_file"
337
+ echo "[OK] Appended session to $(basename "$target_file")" >&2
338
+
339
+ echo "" >&2
340
+
341
+ # Update index.md directly
342
+ local active_file="${FILE_JOURNAL_PREFIX}$target_num.md"
343
+ update_index "$title" "$commit" "$new_session" "$active_file"
344
+
345
+ echo "" >&2
346
+ echo "========================================" >&2
347
+ echo "[OK] Session $new_session added successfully!" >&2
348
+ echo "========================================" >&2
349
+ echo "" >&2
350
+ echo "Files updated:" >&2
351
+ echo " - $(basename "$target_file")" >&2
352
+ echo " - index.md" >&2
353
+ }
354
+
355
+ show_help() {
356
+ echo "Usage: $0 --title \"Title\" [options]"
357
+ echo ""
358
+ echo "Add a new session to journal file and update index.md automatically."
359
+ echo ""
360
+ echo "Options:"
361
+ echo " --title TEXT Session title (required)"
362
+ echo " --commit HASHES Comma-separated commit hashes (optional)"
363
+ echo " --summary TEXT Brief summary of the session (optional)"
364
+ echo " --content-file Path to file with detailed content (optional)"
365
+ echo ""
366
+ echo "You can also pipe content via stdin:"
367
+ echo " echo \"Details\" | $0 --title \"Title\" --commit \"abc123\""
368
+ echo ""
369
+ echo "Examples:"
370
+ echo " $0 --title \"Fix login bug\" --commit \"abc1234\" --summary \"Fixed auth issue\""
371
+ }
372
+
373
+ # =============================================================================
374
+ # Main Entry
375
+ # =============================================================================
376
+
377
+ case "${1:-}" in
378
+ --help|-h|help)
379
+ show_help
380
+ ;;
381
+ *)
382
+ add_session "$@"
383
+ ;;
384
+ esac
@@ -0,0 +1,129 @@
1
+ #!/bin/bash
2
+ # Developer management utilities
3
+ #
4
+ # Usage: source this file in other scripts
5
+ # source "$(dirname "$0")/common/developer.sh"
6
+ #
7
+ # Provides:
8
+ # init_developer - Initialize developer
9
+ # ensure_developer - Ensure developer is initialized (exit if not)
10
+ # show_developer_info - Show developer information
11
+
12
+ # Ensure paths.sh is loaded
13
+ if ! type get_repo_root &>/dev/null; then
14
+ source "$(dirname "${BASH_SOURCE[0]}")/paths.sh"
15
+ fi
16
+
17
+ # =============================================================================
18
+ # Developer Initialization
19
+ # =============================================================================
20
+
21
+ init_developer() {
22
+ local name="$1"
23
+ local repo_root="${2:-$(get_repo_root)}"
24
+
25
+ if [[ -z "$name" ]]; then
26
+ echo "Error: developer name is required" >&2
27
+ return 1
28
+ fi
29
+
30
+ local dev_file="$repo_root/$DIR_WORKFLOW/$FILE_DEVELOPER"
31
+ local workspace_dir="$repo_root/$DIR_WORKFLOW/$DIR_WORKSPACE/$name"
32
+
33
+ # Create .developer file
34
+ cat > "$dev_file" << EOF
35
+ name=$name
36
+ initialized_at=$(date -Iseconds)
37
+ EOF
38
+
39
+ # Create workspace directory structure
40
+ mkdir -p "$workspace_dir"
41
+
42
+ # Create initial journal file
43
+ local journal_file="$workspace_dir/${FILE_JOURNAL_PREFIX}1.md"
44
+ if [[ ! -f "$journal_file" ]]; then
45
+ cat > "$journal_file" << JOURNAL_EOF
46
+ # Journal - $name (Part 1)
47
+
48
+ > AI development session journal
49
+ > Started: $(date +%Y-%m-%d)
50
+
51
+ ---
52
+
53
+ JOURNAL_EOF
54
+ fi
55
+
56
+ # Create index.md with markers for auto-update
57
+ local index_file="$workspace_dir/index.md"
58
+ if [[ ! -f "$index_file" ]]; then
59
+ cat > "$index_file" << INDEX_EOF
60
+ # Workspace Index - $name
61
+
62
+ > Journal tracking for AI development sessions.
63
+
64
+ ---
65
+
66
+ ## Current Status
67
+
68
+ <!-- @@@auto:current-status -->
69
+ - **Active File**: \`journal-1.md\`
70
+ - **Total Sessions**: 0
71
+ - **Last Active**: -
72
+ <!-- @@@/auto:current-status -->
73
+
74
+ ---
75
+
76
+ ## Active Documents
77
+
78
+ <!-- @@@auto:active-documents -->
79
+ | File | Lines | Status |
80
+ |------|-------|--------|
81
+ | \`journal-1.md\` | ~0 | Active |
82
+ <!-- @@@/auto:active-documents -->
83
+
84
+ ---
85
+
86
+ ## Session History
87
+
88
+ <!-- @@@auto:session-history -->
89
+ | # | Date | Title | Commits |
90
+ |---|------|-------|---------|
91
+ <!-- @@@/auto:session-history -->
92
+
93
+ ---
94
+
95
+ ## Notes
96
+
97
+ - Sessions are appended to journal files
98
+ - New journal file created when current exceeds 2000 lines
99
+ - Use \`add-session.sh\` to record sessions
100
+ INDEX_EOF
101
+ fi
102
+
103
+ echo "Developer initialized: $name"
104
+ echo " .developer file: $dev_file"
105
+ echo " Workspace dir: $workspace_dir"
106
+ }
107
+
108
+ ensure_developer() {
109
+ local repo_root="${1:-$(get_repo_root)}"
110
+
111
+ if ! check_developer "$repo_root"; then
112
+ echo "Error: Developer not initialized." >&2
113
+ echo "Run: ./.trellis/scripts/init-developer.sh <your-name>" >&2
114
+ exit 1
115
+ fi
116
+ }
117
+
118
+ show_developer_info() {
119
+ local repo_root="${1:-$(get_repo_root)}"
120
+ local developer=$(get_developer "$repo_root")
121
+
122
+ if [[ -z "$developer" ]]; then
123
+ echo "Developer: (not initialized)"
124
+ else
125
+ echo "Developer: $developer"
126
+ echo "Workspace: $DIR_WORKFLOW/$DIR_WORKSPACE/$developer/"
127
+ echo "Tasks: $DIR_WORKFLOW/$DIR_TASKS/"
128
+ fi
129
+ }