@mindfoldhq/trellis 0.5.0-beta.1 → 0.5.0-beta.11

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 (108) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/init.d.ts +10 -0
  3. package/dist/commands/init.d.ts.map +1 -1
  4. package/dist/commands/init.js +384 -120
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/update.d.ts.map +1 -1
  7. package/dist/commands/update.js +97 -41
  8. package/dist/commands/update.js.map +1 -1
  9. package/dist/configurators/index.d.ts.map +1 -1
  10. package/dist/configurators/index.js +10 -8
  11. package/dist/configurators/index.js.map +1 -1
  12. package/dist/configurators/opencode.d.ts +10 -3
  13. package/dist/configurators/opencode.d.ts.map +1 -1
  14. package/dist/configurators/opencode.js +58 -32
  15. package/dist/configurators/opencode.js.map +1 -1
  16. package/dist/configurators/qoder.d.ts +7 -6
  17. package/dist/configurators/qoder.d.ts.map +1 -1
  18. package/dist/configurators/qoder.js +17 -9
  19. package/dist/configurators/qoder.js.map +1 -1
  20. package/dist/configurators/shared.d.ts +3 -1
  21. package/dist/configurators/shared.d.ts.map +1 -1
  22. package/dist/configurators/shared.js +26 -3
  23. package/dist/configurators/shared.js.map +1 -1
  24. package/dist/migrations/manifests/0.5.0-beta.0.json +2 -0
  25. package/dist/migrations/manifests/0.5.0-beta.1.json +9 -0
  26. package/dist/migrations/manifests/0.5.0-beta.11.json +9 -0
  27. package/dist/migrations/manifests/0.5.0-beta.2.json +9 -0
  28. package/dist/migrations/manifests/0.5.0-beta.3.json +9 -0
  29. package/dist/migrations/manifests/0.5.0-beta.4.json +9 -0
  30. package/dist/migrations/manifests/0.5.0-beta.5.json +222 -0
  31. package/dist/migrations/manifests/0.5.0-beta.6.json +9 -0
  32. package/dist/migrations/manifests/0.5.0-beta.7.json +9 -0
  33. package/dist/migrations/manifests/0.5.0-beta.8.json +9 -0
  34. package/dist/migrations/manifests/0.5.0-beta.9.json +48 -0
  35. package/dist/templates/claude/agents/{check.md → trellis-check.md} +1 -2
  36. package/dist/templates/{cursor/agents/implement.md → claude/agents/trellis-implement.md} +1 -2
  37. package/dist/templates/{cursor/agents/research.md → claude/agents/trellis-research.md} +1 -2
  38. package/dist/templates/claude/settings.json +3 -0
  39. package/dist/templates/{cursor/agents/check.md → codebuddy/agents/trellis-check.md} +1 -2
  40. package/dist/templates/{claude/agents/implement.md → codebuddy/agents/trellis-implement.md} +1 -2
  41. package/dist/templates/{droid/droids/research.md → codebuddy/agents/trellis-research.md} +1 -2
  42. package/dist/templates/codex/agents/trellis-check.toml +38 -0
  43. package/dist/templates/codex/agents/{implement.toml → trellis-implement.toml} +1 -1
  44. package/dist/templates/codex/agents/{research.toml → trellis-research.toml} +1 -1
  45. package/dist/templates/codex/skills/start/SKILL.md +1 -1
  46. package/dist/templates/common/skills/brainstorm.md +47 -4
  47. package/dist/templates/copilot/prompts/start.prompt.md +13 -16
  48. package/dist/templates/{droid/droids/check.md → cursor/agents/trellis-check.md} +1 -2
  49. package/dist/templates/{codebuddy/agents/implement.md → cursor/agents/trellis-implement.md} +1 -2
  50. package/dist/templates/{claude/agents/research.md → cursor/agents/trellis-research.md} +1 -2
  51. package/dist/templates/{codebuddy/agents/check.md → droid/droids/trellis-check.md} +1 -2
  52. package/dist/templates/droid/droids/{implement.md → trellis-implement.md} +1 -2
  53. package/dist/templates/{codebuddy/agents/research.md → droid/droids/trellis-research.md} +1 -2
  54. package/dist/templates/gemini/agents/trellis-check.md +94 -0
  55. package/dist/templates/gemini/agents/trellis-implement.md +94 -0
  56. package/dist/templates/gemini/agents/trellis-research.md +137 -0
  57. package/dist/templates/kiro/agents/{check.json → trellis-check.json} +1 -1
  58. package/dist/templates/kiro/agents/{implement.json → trellis-implement.json} +1 -1
  59. package/dist/templates/kiro/agents/{research.json → trellis-research.json} +1 -1
  60. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +24 -0
  61. package/dist/templates/opencode/plugins/inject-subagent-context.js +10 -8
  62. package/dist/templates/opencode/plugins/inject-workflow-state.js +27 -15
  63. package/dist/templates/opencode/plugins/session-start.js +5 -7
  64. package/dist/templates/qoder/agents/trellis-check.md +94 -0
  65. package/dist/templates/qoder/agents/trellis-implement.md +94 -0
  66. package/dist/templates/qoder/agents/trellis-research.md +137 -0
  67. package/dist/templates/shared-hooks/inject-subagent-context.py +4 -3
  68. package/dist/templates/shared-hooks/inject-workflow-state.py +21 -8
  69. package/dist/templates/shared-hooks/session-start.py +15 -4
  70. package/dist/templates/trellis/config.yaml +6 -0
  71. package/dist/templates/trellis/index.d.ts +0 -1
  72. package/dist/templates/trellis/index.d.ts.map +1 -1
  73. package/dist/templates/trellis/index.js +0 -2
  74. package/dist/templates/trellis/index.js.map +1 -1
  75. package/dist/templates/trellis/scripts/common/cli_adapter.py +29 -6
  76. package/dist/templates/trellis/scripts/common/task_context.py +20 -5
  77. package/dist/templates/trellis/scripts/common/types.py +0 -2
  78. package/dist/templates/trellis/scripts/task.py +7 -0
  79. package/dist/templates/trellis/workflow.md +15 -7
  80. package/dist/types/ai-tools.d.ts +9 -0
  81. package/dist/types/ai-tools.d.ts.map +1 -1
  82. package/dist/types/ai-tools.js +13 -0
  83. package/dist/types/ai-tools.js.map +1 -1
  84. package/dist/utils/project-detector.d.ts +2 -0
  85. package/dist/utils/project-detector.d.ts.map +1 -1
  86. package/dist/utils/project-detector.js +120 -11
  87. package/dist/utils/project-detector.js.map +1 -1
  88. package/dist/utils/task-json.d.ts +46 -0
  89. package/dist/utils/task-json.d.ts.map +1 -0
  90. package/dist/utils/task-json.js +49 -0
  91. package/dist/utils/task-json.js.map +1 -0
  92. package/package.json +4 -4
  93. package/dist/templates/codex/agents/check.toml +0 -23
  94. package/dist/templates/gemini/agents/check.md +0 -95
  95. package/dist/templates/gemini/agents/implement.md +0 -95
  96. package/dist/templates/gemini/agents/research.md +0 -138
  97. package/dist/templates/markdown/spec/backend/directory-structure.md +0 -292
  98. package/dist/templates/markdown/spec/backend/index.md +0 -40
  99. package/dist/templates/markdown/spec/backend/script-conventions.md +0 -742
  100. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +0 -118
  101. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +0 -394
  102. package/dist/templates/qoder/agents/check.md +0 -95
  103. package/dist/templates/qoder/agents/implement.md +0 -95
  104. package/dist/templates/qoder/agents/research.md +0 -138
  105. package/dist/templates/trellis/scripts/create_bootstrap.py +0 -298
  106. /package/dist/templates/opencode/agents/{check.md → trellis-check.md} +0 -0
  107. /package/dist/templates/opencode/agents/{implement.md → trellis-implement.md} +0 -0
  108. /package/dist/templates/opencode/agents/{research.md → trellis-research.md} +0 -0
@@ -129,19 +129,32 @@ _TAG_RE = re.compile(
129
129
  # the Next-Action reminder flowing per-turn even without an active task.
130
130
  _FALLBACK_BREADCRUMBS = {
131
131
  "no_task": (
132
- "No active task. If the user describes multi-step work, load "
133
- "trellis-brainstorm skill to clarify requirements and create a task "
134
- "via `python3 ./.trellis/scripts/task.py create`. Simple one-off "
135
- "questions or trivial edits don't need a task just answer directly."
132
+ "No active task.\n"
133
+ "Trigger words in the user message that REQUIRE creating a task "
134
+ "(non-negotiable, do NOT self-exempt): 重构 / 抽成 / 独立 / 分发 / "
135
+ "拆出来 / 搞一个 / 做成 / 接入 / 集成 / refactor / rewrite / extract / "
136
+ "productize / publish / build X / design Y.\n"
137
+ "Task is NOT required ONLY if ALL three hold: (a) zero file writes "
138
+ "this turn, (b) answer fits in one reply with no multi-round plan, "
139
+ "(c) no research beyond reading 1-2 repo files.\n"
140
+ "When in doubt: create task. Over-tasking is cheap; under-tasking "
141
+ "leaks plans and research into main context.\n"
142
+ "Flow: load `trellis-brainstorm` skill → it creates the task via "
143
+ "`python3 ./.trellis/scripts/task.py create` and drives requirements Q&A. "
144
+ "For research-heavy work (tool comparison, docs, cross-platform survey), "
145
+ "spawn `trellis-research` sub-agents via Task tool — NEVER do 3+ inline "
146
+ "WebFetch/WebSearch/`gh api` calls in the main conversation."
136
147
  ),
137
148
  "planning": (
138
- "Complete prd.md via trellis-brainstorm skill; "
139
- "then run task.py start."
149
+ "Complete prd.md via trellis-brainstorm skill; then run task.py start.\n"
150
+ "Research belongs in `{task_dir}/research/*.md`, written by "
151
+ "`trellis-research` sub-agents. Do NOT inline WebFetch/WebSearch in "
152
+ "main session — PRD only links to research files."
140
153
  ),
141
154
  "in_progress": (
142
- "Flow: implement → check → update-spec → finish\n"
155
+ "Flow: trellis-implement → trellis-check → trellis-update-spec → finish\n"
143
156
  "Check conversation history + git status to determine current step; "
144
- "do NOT skip check."
157
+ "do NOT skip trellis-check."
145
158
  ),
146
159
  "completed": (
147
160
  "User commits changes; then run task.py archive."
@@ -3,6 +3,7 @@
3
3
  """
4
4
  Session Start Hook - Inject structured context
5
5
  """
6
+ from __future__ import annotations
6
7
 
7
8
  # IMPORTANT: Suppress all warnings FIRST
8
9
  import warnings
@@ -118,7 +119,11 @@ def _get_task_status(trellis_dir: Path) -> str:
118
119
  return (
119
120
  "Status: NO ACTIVE TASK\n"
120
121
  "Next-Action: After the user describes their intent, load skill `trellis-brainstorm` "
121
- "to clarify requirements and create a task via `python3 ./.trellis/scripts/task.py create`."
122
+ "to clarify requirements and create a task via `python3 ./.trellis/scripts/task.py create`.\n"
123
+ "Research reminder: for research-heavy tasks (comparing tools, reading external docs, "
124
+ "cross-platform surveys), spawn `trellis-research` sub-agents via the Task tool — "
125
+ "they persist findings to `{TASK_DIR}/research/*.md` and keep main context clean. "
126
+ "Do NOT do 10+ inline WebFetch/WebSearch in the main conversation."
122
127
  )
123
128
 
124
129
  task_ref = _normalize_task_ref(current_task_file.read_text(encoding="utf-8").strip())
@@ -159,15 +164,21 @@ def _get_task_status(trellis_dir: Path) -> str:
159
164
  return (
160
165
  f"Status: PLANNING\nTask: {task_title}\n"
161
166
  "Next-Action: Load skill `trellis-brainstorm` to clarify requirements with the user "
162
- "and produce prd.md in the task directory."
167
+ "and produce prd.md in the task directory.\n"
168
+ "Research reminder: when the task needs external research (tool comparison, docs, "
169
+ "conventions survey), spawn `trellis-research` sub-agents — don't WebFetch/WebSearch "
170
+ "inline in the main session. Findings go to `{task_dir}/research/*.md`; PRD only links to them."
163
171
  )
164
172
 
165
173
  # Case 5: PRD ready — enter Execute phase
166
174
  return (
167
175
  f"Status: READY\nTask: {task_title}\n"
168
176
  "Next-Action: Load skill `trellis-before-dev` to read relevant specs, "
169
- "then spawn `implement` sub-agent via the Task tool. "
170
- "After implementation, spawn `check` sub-agent for quality verification."
177
+ "then spawn `trellis-implement` sub-agent via the Task tool. "
178
+ "After implementation, spawn `trellis-check` sub-agent for quality verification.\n"
179
+ "Sub-agent roster: `trellis-implement` (writes code), `trellis-check` (verifies + self-fixes), "
180
+ "`trellis-research` (persists findings to `research/*.md` — use when you'd otherwise do "
181
+ "multiple WebFetch/WebSearch inline)."
171
182
  )
172
183
 
173
184
 
@@ -48,6 +48,12 @@ max_journal_lines: 2000
48
48
  # docs:
49
49
  # path: docs-site
50
50
  # type: submodule
51
+ # # For polyrepo / meta-repo layouts (independent .git in each subdir),
52
+ # # mark the package with `git: true`. The runtime treats it as an
53
+ # # independent repository for things like git-context display.
54
+ # webapp:
55
+ # path: ./webapp
56
+ # git: true
51
57
 
52
58
  # Default package used when --package is not specified.
53
59
  # default_package: frontend
@@ -39,7 +39,6 @@ export declare const initDeveloperScript: string;
39
39
  export declare const taskScript: string;
40
40
  export declare const getContextScript: string;
41
41
  export declare const addSessionScript: string;
42
- export declare const createBootstrapScript: string;
43
42
  export declare const workflowMdTemplate: string;
44
43
  export declare const configYamlTemplate: string;
45
44
  export declare const gitignoreTemplate: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,eAAO,MAAM,WAAW,QAAsC,CAAC;AAG/D,eAAO,MAAM,UAAU,QAA6C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,eAAe,QAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,YAAY,QAA2C,CAAC;AACrE,eAAO,MAAM,QAAQ,QAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AACF,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA4C,CAAC;AAC7E,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,eAAO,MAAM,WAAW,QAAsC,CAAC;AAG/D,eAAO,MAAM,UAAU,QAA6C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,eAAe,QAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,YAAY,QAA2C,CAAC;AACrE,eAAO,MAAM,QAAQ,QAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AACF,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AAGF,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA4C,CAAC;AAC7E,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AAGvE,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkCnD"}
@@ -50,7 +50,6 @@ export const initDeveloperScript = readTemplate("scripts/init_developer.py");
50
50
  export const taskScript = readTemplate("scripts/task.py");
51
51
  export const getContextScript = readTemplate("scripts/get_context.py");
52
52
  export const addSessionScript = readTemplate("scripts/add_session.py");
53
- export const createBootstrapScript = readTemplate("scripts/create_bootstrap.py");
54
53
  // Configuration files
55
54
  export const workflowMdTemplate = readTemplate("workflow.md");
56
55
  export const configYamlTemplate = readTemplate("config.yaml");
@@ -87,7 +86,6 @@ export function getAllScripts() {
87
86
  scripts.set("task.py", taskScript);
88
87
  scripts.set("get_context.py", getContextScript);
89
88
  scripts.set("add_session.py", addSessionScript);
90
- scripts.set("create_bootstrap.py", createBootstrapScript);
91
89
  return scripts;
92
90
  }
93
91
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
@@ -222,8 +222,8 @@ class CLIAdapter:
222
222
 
223
223
  Note:
224
224
  Cursor: .cursor/commands/trellis-<name>.md
225
- Codex: .agents/skills/<name>/SKILL.md
226
- Kiro: .kiro/skills/<name>/SKILL.md
225
+ Codex: .agents/skills/trellis-<name>/SKILL.md
226
+ Kiro: .kiro/skills/trellis-<name>/SKILL.md
227
227
  Gemini: .gemini/commands/trellis/<name>.toml
228
228
  Antigravity: .agent/workflows/<name>.md
229
229
  Windsurf: .windsurf/workflows/trellis-<name>.md
@@ -232,9 +232,11 @@ class CLIAdapter:
232
232
  if self.platform == "cursor":
233
233
  return f".cursor/commands/trellis-{name}.md"
234
234
  elif self.platform == "codex":
235
- return f".agents/skills/{name}/SKILL.md"
235
+ # 0.5.0-beta.0 renamed all skill dirs to add the `trellis-` prefix
236
+ # (see that release's manifest for the 60+ rename entries).
237
+ return f".agents/skills/trellis-{name}/SKILL.md"
236
238
  elif self.platform == "kiro":
237
- return f".kiro/skills/{name}/SKILL.md"
239
+ return f".kiro/skills/trellis-{name}/SKILL.md"
238
240
  elif self.platform == "gemini":
239
241
  return f".gemini/commands/trellis/{name}.toml"
240
242
  elif self.platform == "antigravity":
@@ -601,7 +603,6 @@ _ALL_PLATFORM_CONFIG_DIRS = (
601
603
  ".cursor",
602
604
  ".iflow",
603
605
  ".opencode",
604
- ".agents",
605
606
  ".codex",
606
607
  ".kilocode",
607
608
  ".kiro",
@@ -613,7 +614,11 @@ _ALL_PLATFORM_CONFIG_DIRS = (
613
614
  ".github/copilot",
614
615
  ".factory",
615
616
  )
616
- """All platform config directory names (used by detect_platform exclusion checks)."""
617
+ """Platform-specific config directory names used by detect_platform exclusion
618
+ checks. `.agents/skills/` is NOT listed here: it is a shared cross-platform
619
+ layer (written by Codex, also consumed by Amp/Cline/Warp/etc. via the
620
+ agentskills.io standard), not a single-platform signal. Its presence must not
621
+ block detection of Kiro, Antigravity, Windsurf, or other platforms."""
617
622
 
618
623
 
619
624
  def _has_other_platform_dir(project_root: Path, exclude: set[str]) -> bool:
@@ -737,6 +742,24 @@ def detect_platform(project_root: Path) -> Platform:
737
742
  if (project_root / ".factory").is_dir():
738
743
  return "droid"
739
744
 
745
+ # Fallback: checkout only has the Codex shared-skills layer
746
+ # (.agents/skills/trellis-* dirs) and no explicit platform config dir.
747
+ # Happens on fresh clones where .codex/ is gitignored/absent but the
748
+ # shared skills were committed to git. Must guard against the case
749
+ # where .claude/ or any other platform dir also exists — .agents/skills/
750
+ # can legitimately coexist with any platform as a shared consumption
751
+ # layer for Amp/Cline/Warp/etc.
752
+ agents_skills = project_root / ".agents" / "skills"
753
+ if agents_skills.is_dir() and not _has_other_platform_dir(
754
+ project_root, set()
755
+ ):
756
+ try:
757
+ for entry in agents_skills.iterdir():
758
+ if entry.is_dir() and entry.name.startswith("trellis-"):
759
+ return "codex"
760
+ except OSError:
761
+ pass
762
+
740
763
  return "claude"
741
764
 
742
765
 
@@ -16,7 +16,7 @@ import json
16
16
  import sys
17
17
  from pathlib import Path
18
18
 
19
- from .cli_adapter import get_cli_adapter_auto
19
+ from .cli_adapter import get_cli_adapter, get_cli_adapter_auto
20
20
  from .config import (
21
21
  get_packages,
22
22
  is_monorepo,
@@ -61,9 +61,23 @@ def get_implement_frontend(package: str | None = None) -> list[dict]:
61
61
  ]
62
62
 
63
63
 
64
- def get_check_context(repo_root: Path) -> list[dict]:
65
- """Get check context entries."""
66
- adapter = get_cli_adapter_auto(repo_root)
64
+ def get_check_context(repo_root: Path, platform: str | None = None) -> list[dict]:
65
+ """Get check context entries.
66
+
67
+ Args:
68
+ repo_root: Project root directory.
69
+ platform: Explicit platform override (e.g. "codex", "kiro"). When
70
+ provided, skip filesystem auto-detection and use this platform
71
+ directly. Caller (e.g. `cmd_init_context`) passes the
72
+ `--platform` CLI argument, which itself is substituted from
73
+ `{{CLI_FLAG}}` in skill/command templates rendered per platform.
74
+ Falls back to `get_cli_adapter_auto` when omitted (CLI-direct
75
+ users).
76
+ """
77
+ if platform:
78
+ adapter = get_cli_adapter(platform)
79
+ else:
80
+ adapter = get_cli_adapter_auto(repo_root)
67
81
 
68
82
  return [
69
83
  {"file": adapter.get_trellis_command_path("finish-work"), "reason": "Finish work checklist"},
@@ -156,8 +170,9 @@ def cmd_init_context(args: argparse.Namespace) -> int:
156
170
  print(f" {colored('✓', Colors.GREEN)} {len(implement_entries)} entries")
157
171
 
158
172
  # check.jsonl
173
+ platform: str | None = getattr(args, "platform", None)
159
174
  print(colored("Creating check.jsonl...", Colors.CYAN))
160
- check_entries = get_check_context(repo_root)
175
+ check_entries = get_check_context(repo_root, platform=platform)
161
176
  check_file = target_dir / "check.jsonl"
162
177
  _write_jsonl(check_file, check_entries)
163
178
  print(f" {colored('✓', Colors.GREEN)} {len(check_entries)} entries")
@@ -41,8 +41,6 @@ class TaskData(TypedDict, total=False):
41
41
  branch: str | None
42
42
  base_branch: str | None
43
43
  worktree_path: str | None
44
- current_phase: int
45
- next_action: list[dict]
46
44
  commit: str | None
47
45
  pr_url: str | None
48
46
  subtasks: list[str]
@@ -319,6 +319,13 @@ def main() -> int:
319
319
  p_init.add_argument("dir", help="Task directory")
320
320
  p_init.add_argument("type", help="Dev type: backend|frontend|fullstack|test|docs")
321
321
  p_init.add_argument("--package", help="Package name for monorepo projects")
322
+ p_init.add_argument(
323
+ "--platform",
324
+ help="Explicit platform (claude|codex|kiro|cursor|...). "
325
+ "Overrides auto-detection. Skills/commands pass this via "
326
+ "{{CLI_FLAG}} substitution so jsonl paths match the invoking "
327
+ "platform instead of filesystem guesswork.",
328
+ )
322
329
 
323
330
  # add-context
324
331
  p_add = subparsers.add_parser("add-context", help="Add context entry")
@@ -194,7 +194,7 @@ Research can happen at any time during requirement exploration. It isn't limited
194
194
 
195
195
  Spawn the research sub-agent:
196
196
 
197
- - **Agent type**: `research`
197
+ - **Agent type**: `trellis-research`
198
198
  - **Task description**: Research <specific question>
199
199
  - **Key requirement**: Research output MUST be persisted to `{TASK_DIR}/research/`
200
200
 
@@ -222,10 +222,13 @@ Brainstorm and research can interleave freely — pause to research a technical
222
222
  Once research output is solid, initialize the agent context files:
223
223
 
224
224
  ```bash
225
- python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type>
225
+ python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type> --platform <platform>
226
226
  # type: backend | frontend | fullstack
227
+ # platform: claude | codex | cursor | kiro | gemini | opencode | qoder | codebuddy | copilot | droid
227
228
  ```
228
229
 
230
+ `--platform` is auto-filled by per-platform skills/commands (via `{{CLI_FLAG}}` substitution). Specify it explicitly only for CLI-direct invocations; otherwise the script falls back to filesystem auto-detection, which can misfire on multi-platform setups.
231
+
229
232
  Skip when: `implement.jsonl` already exists.
230
233
 
231
234
  Append any extra spec files or code patterns you find `[optional · repeatable]`:
@@ -272,7 +275,7 @@ Goal: turn the prd into code that passes quality checks.
272
275
 
273
276
  Spawn the implement sub-agent:
274
277
 
275
- - **Agent type**: `implement`
278
+ - **Agent type**: `trellis-implement`
276
279
  - **Task description**: Implement the requirements per prd.md, consulting materials under `{TASK_DIR}/research/`; finish by running project lint and type-check
277
280
 
278
281
  The platform hook auto-handles:
@@ -297,7 +300,7 @@ The platform hook auto-handles:
297
300
 
298
301
  Spawn the check sub-agent:
299
302
 
300
- - **Agent type**: `check`
303
+ - **Agent type**: `trellis-check`
301
304
  - **Task description**: Review all code changes against spec and prd; fix any findings directly; ensure lint and type-check pass
302
305
 
303
306
  The check agent's job:
@@ -376,16 +379,21 @@ After the above, remind the user they can run `/finish-work` to wrap up (archive
376
379
  a status has no tag block. -->
377
380
 
378
381
  [workflow-state:no_task]
379
- No active task. If the user describes multi-step work, load trellis-brainstorm skill to clarify requirements and create a task via `python3 ./.trellis/scripts/task.py create`. Simple one-off questions or trivial edits don't need a task — just answer directly.
382
+ No active task.
383
+ Trigger words in the user message that REQUIRE creating a task (non-negotiable, do NOT self-exempt): 重构 / 抽成 / 独立 / 分发 / 拆出来 / 搞一个 / 做成 / 接入 / 集成 / refactor / rewrite / extract / productize / publish / build X / design Y.
384
+ Task is NOT required ONLY if ALL three hold: (a) zero file writes this turn, (b) answer fits in one reply with no multi-round plan, (c) no research beyond reading 1-2 repo files.
385
+ When in doubt: create task. Over-tasking is cheap; under-tasking leaks plans and research into main context.
386
+ Flow: load `trellis-brainstorm` skill → it creates the task via `python3 ./.trellis/scripts/task.py create` and drives requirements Q&A. For research-heavy work (tool comparison, docs, cross-platform survey), spawn `trellis-research` sub-agents via Task tool — NEVER do 3+ inline WebFetch/WebSearch/`gh api` calls in the main conversation.
380
387
  [/workflow-state:no_task]
381
388
 
382
389
  [workflow-state:planning]
383
390
  Complete prd.md via trellis-brainstorm skill; then run task.py start.
391
+ Research belongs in `{task_dir}/research/*.md`, written by `trellis-research` sub-agents. Do NOT inline WebFetch/WebSearch in main session — PRD only links to research files.
384
392
  [/workflow-state:planning]
385
393
 
386
394
  [workflow-state:in_progress]
387
- Flow: implement → check → update-spec → finish
388
- Check conversation history + git status to determine current step; do NOT skip check.
395
+ Flow: trellis-implement → trellis-check → trellis-update-spec → finish
396
+ Check conversation history + git status to determine current step; do NOT skip trellis-check.
389
397
  [/workflow-state:in_progress]
390
398
 
391
399
  [workflow-state:completed]
@@ -31,6 +31,15 @@ export interface TemplateContext {
31
31
  agentCapable: boolean;
32
32
  /** Platform has hook system (SessionStart, PreToolUse) */
33
33
  hasHooks: boolean;
34
+ /**
35
+ * CLI flag value for this platform (e.g. "claude", "codex", "kiro").
36
+ * Substituted into template commands via {{CLI_FLAG}} so rendered skill /
37
+ * command files pass `--platform <flag>` to scripts like
38
+ * `task.py init-context`, removing the need to re-detect at runtime.
39
+ * Duplicates the top-level `AIToolConfig.cliFlag` for convenience — the
40
+ * invariant is maintained in `AI_TOOLS` config blocks.
41
+ */
42
+ cliFlag: CliFlag;
34
43
  }
35
44
  /**
36
45
  * Configuration for an AI tool
@@ -1 +1 @@
1
- {"version":3,"file":"ai-tools.d.ts","sourceRoot":"","sources":["../../src/types/ai-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,aAAa,GACb,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,UAAU,GACV,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,UAAU,GACV,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,UAAU,GACV,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,YAAY,EAAE,WAAW,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;IACpD,8DAA8D;IAC9D,UAAU,EACN,4BAA4B,GAC5B,4BAA4B,GAC5B,4BAA4B,CAAC;IACjC,uCAAuC;IACvC,eAAe,EAAE,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IACvE,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,cAAc,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,eAAe,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA8MjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAExD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAUtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAE3D"}
1
+ {"version":3,"file":"ai-tools.d.ts","sourceRoot":"","sources":["../../src/types/ai-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,aAAa,GACb,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,UAAU,GACV,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,UAAU,GACV,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,UAAU,GACV,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,YAAY,EAAE,WAAW,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;IACpD,8DAA8D;IAC9D,UAAU,EACN,4BAA4B,GAC5B,4BAA4B,GAC5B,4BAA4B,CAAC;IACjC,uCAAuC;IACvC,eAAe,EAAE,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IACvE,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,cAAc,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,cAAc,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,eAAe,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA2NjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAExD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAUtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAE3D"}
@@ -28,6 +28,7 @@ export const AI_TOOLS = {
28
28
  userActionLabel: "Slash commands",
29
29
  agentCapable: true,
30
30
  hasHooks: true,
31
+ cliFlag: "claude",
31
32
  },
32
33
  },
33
34
  cursor: {
@@ -43,6 +44,7 @@ export const AI_TOOLS = {
43
44
  userActionLabel: "Slash commands",
44
45
  agentCapable: true,
45
46
  hasHooks: true,
47
+ cliFlag: "cursor",
46
48
  },
47
49
  },
48
50
  opencode: {
@@ -58,6 +60,7 @@ export const AI_TOOLS = {
58
60
  userActionLabel: "Slash commands",
59
61
  agentCapable: true,
60
62
  hasHooks: false,
63
+ cliFlag: "opencode",
61
64
  },
62
65
  },
63
66
  codex: {
@@ -74,6 +77,7 @@ export const AI_TOOLS = {
74
77
  userActionLabel: "Skills",
75
78
  agentCapable: true,
76
79
  hasHooks: false,
80
+ cliFlag: "codex",
77
81
  },
78
82
  },
79
83
  kilo: {
@@ -89,6 +93,7 @@ export const AI_TOOLS = {
89
93
  userActionLabel: "Workflows",
90
94
  agentCapable: false,
91
95
  hasHooks: false,
96
+ cliFlag: "kilo",
92
97
  },
93
98
  },
94
99
  kiro: {
@@ -105,6 +110,7 @@ export const AI_TOOLS = {
105
110
  userActionLabel: "Skills",
106
111
  agentCapable: true,
107
112
  hasHooks: true,
113
+ cliFlag: "kiro",
108
114
  },
109
115
  },
110
116
  gemini: {
@@ -120,6 +126,7 @@ export const AI_TOOLS = {
120
126
  userActionLabel: "Slash commands",
121
127
  agentCapable: true,
122
128
  hasHooks: true,
129
+ cliFlag: "gemini",
123
130
  },
124
131
  },
125
132
  antigravity: {
@@ -136,6 +143,7 @@ export const AI_TOOLS = {
136
143
  userActionLabel: "Workflows",
137
144
  agentCapable: false,
138
145
  hasHooks: false,
146
+ cliFlag: "antigravity",
139
147
  },
140
148
  },
141
149
  windsurf: {
@@ -152,6 +160,7 @@ export const AI_TOOLS = {
152
160
  userActionLabel: "Workflows",
153
161
  agentCapable: false,
154
162
  hasHooks: false,
163
+ cliFlag: "windsurf",
155
164
  },
156
165
  },
157
166
  qoder: {
@@ -167,6 +176,7 @@ export const AI_TOOLS = {
167
176
  userActionLabel: "Skills",
168
177
  agentCapable: true,
169
178
  hasHooks: true,
179
+ cliFlag: "qoder",
170
180
  },
171
181
  },
172
182
  codebuddy: {
@@ -182,6 +192,7 @@ export const AI_TOOLS = {
182
192
  userActionLabel: "Slash commands",
183
193
  agentCapable: true,
184
194
  hasHooks: true,
195
+ cliFlag: "codebuddy",
185
196
  },
186
197
  },
187
198
  copilot: {
@@ -203,6 +214,7 @@ export const AI_TOOLS = {
203
214
  userActionLabel: "Prompts",
204
215
  agentCapable: true,
205
216
  hasHooks: true,
217
+ cliFlag: "copilot",
206
218
  },
207
219
  },
208
220
  droid: {
@@ -218,6 +230,7 @@ export const AI_TOOLS = {
218
230
  userActionLabel: "Slash commands",
219
231
  agentCapable: true,
220
232
  hasHooks: true,
233
+ cliFlag: "droid",
221
234
  },
222
235
  },
223
236
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ai-tools.js","sourceRoot":"","sources":["../../src/types/ai-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-tools.js","sourceRoot":"","sources":["../../src/types/ai-tools.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,8 @@ export interface DetectedPackage {
25
25
  type: ProjectType;
26
26
  /** Whether this package is a git submodule */
27
27
  isSubmodule: boolean;
28
+ /** Whether this package has its own .git (independent repo, e.g. polyrepo sibling) */
29
+ isGitRepo: boolean;
28
30
  }
29
31
  /**
30
32
  * Sanitize a package name for use as a directory name.
@@ -1 +1 @@
1
- {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAiK3E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAqB1D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAWnE;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,WAAW,CAAC;IAClB,8CAA8C;IAC9C,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAqTD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI,CAkFpE"}
1
+ {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAiK3E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAqB1D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAWnE;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,EAAE,WAAW,CAAC;IAClB,8CAA8C;IAC9C,WAAW,EAAE,OAAO,CAAC;IACrB,sFAAsF;IACtF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAsYD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI,CAyHpE"}