@mindfoldhq/trellis 0.6.8 → 0.6.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 (91) hide show
  1. package/dist/cli/index.js +1 -0
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/commands/channel/agent-loader.d.ts +2 -2
  4. package/dist/commands/channel/agent-loader.d.ts.map +1 -1
  5. package/dist/commands/channel/agent-loader.js +9 -5
  6. package/dist/commands/channel/agent-loader.js.map +1 -1
  7. package/dist/commands/channel/context-loader.d.ts +1 -1
  8. package/dist/commands/channel/context-loader.d.ts.map +1 -1
  9. package/dist/commands/channel/context-loader.js +36 -15
  10. package/dist/commands/channel/context-loader.js.map +1 -1
  11. package/dist/commands/channel/context-trust.d.ts +31 -0
  12. package/dist/commands/channel/context-trust.d.ts.map +1 -0
  13. package/dist/commands/channel/context-trust.js +139 -0
  14. package/dist/commands/channel/context-trust.js.map +1 -0
  15. package/dist/commands/channel/spawn.d.ts.map +1 -1
  16. package/dist/commands/channel/spawn.js +4 -2
  17. package/dist/commands/channel/spawn.js.map +1 -1
  18. package/dist/commands/init.d.ts +1 -0
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/update.d.ts.map +1 -1
  22. package/dist/commands/update.js +17 -0
  23. package/dist/commands/update.js.map +1 -1
  24. package/dist/configurators/codex.d.ts +36 -0
  25. package/dist/configurators/codex.d.ts.map +1 -1
  26. package/dist/configurators/codex.js +100 -1
  27. package/dist/configurators/codex.js.map +1 -1
  28. package/dist/configurators/index.d.ts.map +1 -1
  29. package/dist/configurators/index.js +5 -0
  30. package/dist/configurators/index.js.map +1 -1
  31. package/dist/configurators/shared.d.ts.map +1 -1
  32. package/dist/configurators/shared.js +1 -0
  33. package/dist/configurators/shared.js.map +1 -1
  34. package/dist/configurators/snow.d.ts +31 -0
  35. package/dist/configurators/snow.d.ts.map +1 -0
  36. package/dist/configurators/snow.js +95 -0
  37. package/dist/configurators/snow.js.map +1 -0
  38. package/dist/configurators/workflow.d.ts +14 -0
  39. package/dist/configurators/workflow.d.ts.map +1 -1
  40. package/dist/configurators/workflow.js +37 -1
  41. package/dist/configurators/workflow.js.map +1 -1
  42. package/dist/migrations/manifests/0.6.10.json +9 -0
  43. package/dist/migrations/manifests/0.6.9.json +9 -0
  44. package/dist/templates/codex/agents/trellis-check.toml +7 -3
  45. package/dist/templates/codex/agents/trellis-implement.toml +7 -3
  46. package/dist/templates/codex/agents/trellis-research.toml +13 -6
  47. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/agents.md +1 -1
  48. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/overview.md +1 -1
  49. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/platform-map.md +4 -2
  50. package/dist/templates/kimi/agents/trellis-research.md +7 -3
  51. package/dist/templates/omp/extensions/trellis/index.ts.txt +114 -4
  52. package/dist/templates/opencode/lib/trellis-context.js +263 -43
  53. package/dist/templates/opencode/plugins/inject-subagent-context.js +89 -35
  54. package/dist/templates/opencode/plugins/inject-workflow-state.js +90 -5
  55. package/dist/templates/pi/extensions/trellis/index.ts.txt +270 -22
  56. package/dist/templates/shared-hooks/inject-subagent-context.py +311 -83
  57. package/dist/templates/shared-hooks/inject-workflow-state.py +36 -1
  58. package/dist/templates/snow/SNOW.md +86 -0
  59. package/dist/templates/snow/agents/trellis-check.md +135 -0
  60. package/dist/templates/snow/agents/trellis-implement.md +153 -0
  61. package/dist/templates/snow/agents/trellis-research.md +114 -0
  62. package/dist/templates/snow/hooks/beforeSubAgentStart.json +15 -0
  63. package/dist/templates/snow/hooks/onSessionStart.json +15 -0
  64. package/dist/templates/snow/hooks/onUserMessage.json +15 -0
  65. package/dist/templates/snow/hooks/write-trellis-context.py +644 -0
  66. package/dist/templates/snow/index.d.ts +26 -0
  67. package/dist/templates/snow/index.d.ts.map +1 -0
  68. package/dist/templates/snow/index.js +36 -0
  69. package/dist/templates/snow/index.js.map +1 -0
  70. package/dist/templates/template-utils.d.ts.map +1 -1
  71. package/dist/templates/template-utils.js +5 -1
  72. package/dist/templates/template-utils.js.map +1 -1
  73. package/dist/templates/trellis/config.yaml +46 -0
  74. package/dist/templates/trellis/gitattributes.txt +9 -0
  75. package/dist/templates/trellis/index.d.ts +3 -1
  76. package/dist/templates/trellis/index.d.ts.map +1 -1
  77. package/dist/templates/trellis/index.js +3 -1
  78. package/dist/templates/trellis/index.js.map +1 -1
  79. package/dist/templates/trellis/scripts/add_session.py +94 -28
  80. package/dist/templates/trellis/scripts/common/active_task.py +9 -2
  81. package/dist/templates/trellis/scripts/common/config.py +89 -2
  82. package/dist/templates/trellis/scripts/common/task_context.py +84 -6
  83. package/dist/templates/trellis/scripts/common/task_store.py +63 -1
  84. package/dist/templates/trellis/scripts/common/trellis_config.py +2 -1
  85. package/dist/templates/trellis/scripts/task.py +21 -2
  86. package/dist/templates/trellis/workflow.md +14 -14
  87. package/dist/types/ai-tools.d.ts +3 -3
  88. package/dist/types/ai-tools.d.ts.map +1 -1
  89. package/dist/types/ai-tools.js +38 -0
  90. package/dist/types/ai-tools.js.map +1 -1
  91. package/package.json +2 -2
@@ -21,12 +21,36 @@ import argparse
21
21
  import json
22
22
  from pathlib import Path
23
23
 
24
+ from .config import get_context_injection_limits
24
25
  from .git import branch_exists_locally
25
26
  from .io import read_json
26
27
  from .log import Colors, colored
27
28
  from .paths import FILE_TASK_JSON, get_repo_root
28
29
  from .task_utils import resolve_task_dir
29
30
 
31
+ # Extensions that look like code rather than spec/research docs. Entries with
32
+ # one of these extensions outside .trellis/spec/, docs/docs-site, or the
33
+ # task's own directory get a hygiene warning in `task.py validate` — the
34
+ # reader is a sub-agent, not a human, so code paths belong in the diff the
35
+ # agent reads itself, not in implement.jsonl / check.jsonl.
36
+ _CODE_FILE_EXTENSIONS = {
37
+ ".ts",
38
+ ".tsx",
39
+ ".js",
40
+ ".jsx",
41
+ ".mjs",
42
+ ".cjs",
43
+ ".py",
44
+ ".go",
45
+ ".rs",
46
+ ".java",
47
+ ".rb",
48
+ ".c",
49
+ ".cc",
50
+ ".cpp",
51
+ ".h",
52
+ }
53
+
30
54
 
31
55
  # =============================================================================
32
56
  # Command: add-context
@@ -118,7 +142,7 @@ def cmd_validate(args: argparse.Namespace) -> int:
118
142
  total_errors = 0
119
143
  for jsonl_name in ["implement.jsonl", "check.jsonl"]:
120
144
  jsonl_file = target_dir / jsonl_name
121
- errors = _validate_jsonl(jsonl_file, repo_root)
145
+ errors = _validate_jsonl(jsonl_file, repo_root, target_dir)
122
146
  total_errors += errors
123
147
 
124
148
  print()
@@ -130,11 +154,33 @@ def cmd_validate(args: argparse.Namespace) -> int:
130
154
  return 1
131
155
 
132
156
 
133
- def _validate_jsonl(jsonl_file: Path, repo_root: Path) -> int:
157
+ def _is_exempt_from_code_file_warning(file_path: str, task_rel: str) -> bool:
158
+ """Whether a jsonl entry path is exempt from the code-file hygiene warning.
159
+
160
+ Exempt: spec docs (``.trellis/spec/``), documentation (``docs``,
161
+ ``docs-site``), and the task's own directory (execution plans, generated
162
+ artifacts, etc. legitimately live there).
163
+ """
164
+ posix_path = file_path.replace("\\", "/").lstrip("/")
165
+ exempt_prefixes = (".trellis/spec/", "docs/", "docs-site/")
166
+ if posix_path.startswith(exempt_prefixes):
167
+ return True
168
+ if task_rel and (posix_path == task_rel or posix_path.startswith(f"{task_rel}/")):
169
+ return True
170
+ return False
171
+
172
+
173
+ def _validate_jsonl(jsonl_file: Path, repo_root: Path, task_dir: Path | None = None) -> int:
134
174
  """Validate a single JSONL file.
135
175
 
136
176
  Seed rows (no ``file`` field — typically ``{"_example": "..."}``) are
137
177
  skipped silently; they are self-describing comments, not real entries.
178
+
179
+ Beyond hard errors (missing file/dir, invalid JSON), this also prints
180
+ non-blocking hygiene warnings (never counted in ``errors``, never change
181
+ the exit code): entries that look like code files rather than
182
+ spec/research docs, and entries whose file size exceeds the configured
183
+ sub-agent context injection cap (``context_injection.max_file_bytes``).
138
184
  """
139
185
  file_name = jsonl_file.name
140
186
  errors = 0
@@ -143,6 +189,15 @@ def _validate_jsonl(jsonl_file: Path, repo_root: Path) -> int:
143
189
  print(f" {colored(f'{file_name}: not found (skipped)', Colors.YELLOW)}")
144
190
  return 0
145
191
 
192
+ task_rel = ""
193
+ if task_dir is not None:
194
+ try:
195
+ task_rel = task_dir.resolve().relative_to(repo_root.resolve()).as_posix()
196
+ except ValueError:
197
+ task_rel = ""
198
+
199
+ max_file_bytes = get_context_injection_limits(repo_root).get("max_file_bytes", 0)
200
+
146
201
  line_num = 0
147
202
  real_entries = 0
148
203
  for line in jsonl_file.read_text(encoding="utf-8").splitlines():
@@ -170,10 +225,33 @@ def _validate_jsonl(jsonl_file: Path, repo_root: Path) -> int:
170
225
  if not full_path.is_dir():
171
226
  print(f" {colored(f'{file_name}:{line_num}: Directory not found: {file_path}', Colors.RED)}")
172
227
  errors += 1
173
- else:
174
- if not full_path.is_file():
175
- print(f" {colored(f'{file_name}:{line_num}: File not found: {file_path}', Colors.RED)}")
176
- errors += 1
228
+ continue
229
+
230
+ if not full_path.is_file():
231
+ print(f" {colored(f'{file_name}:{line_num}: File not found: {file_path}', Colors.RED)}")
232
+ errors += 1
233
+ continue
234
+
235
+ extension = Path(file_path).suffix.lower()
236
+ if extension in _CODE_FILE_EXTENSIONS and not _is_exempt_from_code_file_warning(
237
+ file_path, task_rel
238
+ ):
239
+ warning_message = (
240
+ f"{file_name}:{line_num}: Warning: {file_path} looks like a code file — "
241
+ "implement/check.jsonl should reference spec/research docs; "
242
+ "agents read code themselves"
243
+ )
244
+ print(f" {colored(warning_message, Colors.YELLOW)}")
245
+
246
+ if max_file_bytes:
247
+ size = full_path.stat().st_size
248
+ if size > max_file_bytes:
249
+ warning_message = (
250
+ f"{file_name}:{line_num}: Warning: {file_path} is {size} bytes, "
251
+ f"exceeds context_injection.max_file_bytes ({max_file_bytes}); "
252
+ "injection will truncate it"
253
+ )
254
+ print(f" {colored(warning_message, Colors.YELLOW)}")
177
255
 
178
256
  if errors == 0:
179
257
  print(f" {colored(f'{file_name}: ✓ ({real_entries} entries)', Colors.GREEN)}")
@@ -9,6 +9,7 @@ Provides:
9
9
  cmd_set_branch - Set git branch for task
10
10
  cmd_set_base_branch - Set PR target branch
11
11
  cmd_set_scope - Set scope for PR title
12
+ cmd_set_meta - Set/overwrite a task metadata key
12
13
  cmd_add_subtask - Link child task to parent
13
14
  cmd_remove_subtask - Unlink child task from parent
14
15
  """
@@ -173,6 +174,26 @@ def _write_seed_jsonl(path: Path) -> None:
173
174
  path.write_text(json.dumps(seed, ensure_ascii=False) + "\n", encoding="utf-8")
174
175
 
175
176
 
177
+ def _parse_meta_pairs(pairs: list[str] | None) -> dict[str, str] | None:
178
+ """Parse repeatable ``--meta key=value`` pairs into a dict.
179
+
180
+ Returns ``None`` (after printing an error naming the bad value) on the
181
+ first malformed pair: missing ``=`` or an empty key. Values are stored
182
+ as-is (strings, no nesting, no type coercion).
183
+ """
184
+ meta: dict[str, str] = {}
185
+ for pair in pairs or []:
186
+ key, sep, value = pair.partition("=")
187
+ if not sep or not key:
188
+ print(
189
+ colored(f"Error: malformed --meta value '{pair}' (expected key=value)", Colors.RED),
190
+ file=sys.stderr,
191
+ )
192
+ return None
193
+ meta[key] = value
194
+ return meta
195
+
196
+
176
197
  def _default_prd_content(title: str, description: str | None = None) -> str:
177
198
  """Return the default PRD skeleton created with every task."""
178
199
  goal = (description or "").strip() or "TBD."
@@ -211,6 +232,11 @@ def cmd_create(args: argparse.Namespace) -> int:
211
232
  print(colored("Error: title is required", Colors.RED), file=sys.stderr)
212
233
  return 1
213
234
 
235
+ # Validate --meta (CLI source: fail-fast, before any directory is created)
236
+ meta = _parse_meta_pairs(getattr(args, "meta", None))
237
+ if meta is None:
238
+ return 1
239
+
214
240
  # Validate --package (CLI source: fail-fast)
215
241
  package: str | None = getattr(args, "package", None)
216
242
  if not is_monorepo(repo_root):
@@ -357,7 +383,7 @@ def cmd_create(args: argparse.Namespace) -> int:
357
383
  "parent": None,
358
384
  "relatedFiles": [],
359
385
  "notes": "",
360
- "meta": {},
386
+ "meta": meta,
361
387
  }
362
388
 
363
389
  write_json(task_json_path, task_data)
@@ -881,3 +907,39 @@ def cmd_set_scope(args: argparse.Namespace) -> int:
881
907
 
882
908
  print(colored(f"✓ Scope set to: {scope}", Colors.GREEN))
883
909
  return 0
910
+
911
+
912
+ # =============================================================================
913
+ # Command: set-meta
914
+ # =============================================================================
915
+
916
+ def cmd_set_meta(args: argparse.Namespace) -> int:
917
+ """Set/overwrite one metadata key on an existing task."""
918
+ repo_root = get_repo_root()
919
+ target_dir = resolve_task_dir(args.dir, repo_root)
920
+ key = args.key
921
+ value = args.value
922
+
923
+ if not key:
924
+ print(colored("Error: Missing arguments", Colors.RED))
925
+ print("Usage: python3 task.py set-meta <task-dir> <key> <value>")
926
+ return 1
927
+
928
+ task_json = target_dir / FILE_TASK_JSON
929
+ if not task_json.is_file():
930
+ print(colored(f"Error: task.json not found at {target_dir}", Colors.RED))
931
+ return 1
932
+
933
+ data = read_json(task_json)
934
+ if not data:
935
+ return 1
936
+
937
+ meta = data.get("meta")
938
+ if not isinstance(meta, dict):
939
+ meta = {}
940
+ meta[key] = value
941
+ data["meta"] = meta
942
+ write_json(task_json, data)
943
+
944
+ print(colored(f"✓ Meta set: {key} = {value}", Colors.GREEN))
945
+ return 0
@@ -78,10 +78,11 @@ def _parse_yaml_block(
78
78
  key, _, value = stripped.partition(":")
79
79
  key = key.strip()
80
80
  value = _strip_inline_comment(value).strip()
81
+ was_quoted = len(value) >= 2 and value[0] == value[-1] and value[0] in ('"', "'")
81
82
  value = _unquote(value)
82
83
  current_list = None
83
84
 
84
- if value:
85
+ if value or was_quoted:
85
86
  target[key] = value
86
87
  i += 1
87
88
  else:
@@ -14,6 +14,7 @@ Usage:
14
14
  python3 task.py set-branch <dir> <branch> # Set git branch
15
15
  python3 task.py set-base-branch <dir> <branch> # Set PR target branch
16
16
  python3 task.py set-scope <dir> <scope> # Set scope for PR title
17
+ python3 task.py set-meta <dir> <key> <value> # Set a task metadata key
17
18
  python3 task.py archive <task-dir> # Archive completed task
18
19
  python3 task.py list # List active tasks
19
20
  python3 task.py list-archive [month] # List archived tasks
@@ -54,6 +55,7 @@ from common.task_store import (
54
55
  cmd_set_branch,
55
56
  cmd_set_base_branch,
56
57
  cmd_set_scope,
58
+ cmd_set_meta,
57
59
  cmd_add_subtask,
58
60
  cmd_remove_subtask,
59
61
  )
@@ -314,9 +316,12 @@ def cmd_list(args: argparse.Namespace) -> int:
314
316
  if child_name in all_tasks:
315
317
  _print_task(child_name, indent + 1)
316
318
 
317
- # Display only top-level tasks (those without a parent)
319
+ # Display only top-level tasks: those without a parent, plus orphans
320
+ # whose recorded parent is not (or no longer) in the active set — a
321
+ # dangling parent ref must still render flat instead of disappearing.
318
322
  for dir_name in sorted(all_tasks.keys()):
319
- if not all_tasks[dir_name].parent:
323
+ parent = all_tasks[dir_name].parent
324
+ if not parent or parent not in all_tasks:
320
325
  _print_task(dir_name)
321
326
 
322
327
  if count == 0:
@@ -386,6 +391,7 @@ Usage:
386
391
  python3 task.py set-branch <dir> <branch> Set git branch
387
392
  python3 task.py set-base-branch <dir> <branch> Set PR target branch
388
393
  python3 task.py set-scope <dir> <scope> Set scope for PR title
394
+ python3 task.py set-meta <dir> <key> <value> Set/overwrite a task metadata key
389
395
  python3 task.py archive <task-dir> Archive completed task
390
396
  python3 task.py add-subtask <parent> <child> Link child task to parent
391
397
  python3 task.py remove-subtask <parent> <child> Unlink child from parent
@@ -403,6 +409,7 @@ List options:
403
409
  Examples:
404
410
  python3 task.py create "Add login feature" --slug add-login
405
411
  python3 task.py create "Add login feature" --slug add-login --package cli
412
+ python3 task.py create "Add login feature" --meta linear=ENG-123 --meta epic=auth
406
413
  python3 task.py create "Child task" --slug child --parent .trellis/tasks/01-21-parent
407
414
  python3 task.py add-context <dir> implement .trellis/spec/cli/backend/auth.md "Auth guidelines"
408
415
  python3 task.py set-branch <dir> task/add-login
@@ -473,6 +480,11 @@ def main() -> int:
473
480
  "--base-branch",
474
481
  help="PR target branch (overrides origin/HEAD detection and the checked-out-branch fallback)",
475
482
  )
483
+ p_create.add_argument(
484
+ "--meta",
485
+ action="append",
486
+ help="Task metadata key=value (repeatable)",
487
+ )
476
488
  p_create.add_argument(
477
489
  "--no-start",
478
490
  action="store_true",
@@ -523,6 +535,12 @@ def main() -> int:
523
535
  p_scope.add_argument("dir", help="Task directory")
524
536
  p_scope.add_argument("scope", help="Scope name")
525
537
 
538
+ # set-meta
539
+ p_setmeta = subparsers.add_parser("set-meta", help="Set/overwrite a task metadata key")
540
+ p_setmeta.add_argument("dir", help="Task directory")
541
+ p_setmeta.add_argument("key", help="Metadata key")
542
+ p_setmeta.add_argument("value", help="Metadata value")
543
+
526
544
  # archive
527
545
  p_archive = subparsers.add_parser("archive", help="Archive task")
528
546
  p_archive.add_argument("name", help="Task directory or name")
@@ -565,6 +583,7 @@ def main() -> int:
565
583
  "set-branch": cmd_set_branch,
566
584
  "set-base-branch": cmd_set_base_branch,
567
585
  "set-scope": cmd_set_scope,
586
+ "set-meta": cmd_set_meta,
568
587
  "archive": cmd_archive,
569
588
  "add-subtask": cmd_add_subtask,
570
589
  "remove-subtask": cmd_remove_subtask,
@@ -183,7 +183,7 @@ Complex task: ask the user if you can create a Trellis task and enter the planni
183
183
  - 1.0 Create task `[required · once]` (only after task-creation consent)
184
184
  - 1.1 Requirement exploration `[required · repeatable]` (`prd.md`; complex tasks also need `design.md` + `implement.md`)
185
185
  - 1.2 Research `[optional · repeatable]`
186
- - 1.3 Configure context `[required · once]` — Claude Code, Cursor, OpenCode, Codex, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Grok, Kimi Code (sub-agent-dispatch platforms only; inline platforms skip)
186
+ - 1.3 Configure context `[required · once]` — Claude Code, Cursor, OpenCode, Codex, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Grok, Kimi Code (sub-agent-dispatch platforms only; inline platforms skip)
187
187
  - 1.4 Activate task `[required · once]` (review gate, then `task.py start`; status → in_progress)
188
188
  - 1.5 Completion criteria
189
189
 
@@ -220,7 +220,7 @@ Inline mode: skip jsonl curation; Phase 2 reads artifacts/specs via `trellis-bef
220
220
  therefore must cover every required step from implementation through
221
221
  commit, including Phase 3.3 spec update and Phase 3.4 commit. -->
222
222
 
223
- Sub-agent dispatch protocol applies to all platforms and all sub-agents, including native Codex `SubagentStart` context injection with child-side pull fallback, class-2 Gemini/Qoder/Copilot/Reasonix/Trae/Grok/Kimi Code, hook-backed ZCode, and `trellis-research`: every dispatch prompt starts with `Active task: <task path from task.py current>` before role-specific instructions. On Grok Build, use `spawn_subagent` with `subagent_type` set to the Trellis agent name (e.g. `trellis-implement`). On Kimi Code, dispatch the built-in `coder` / `explore` sub-agent with the matching `.kimi-code/skills/trellis-<role>/SKILL.md` instructions.
223
+ Sub-agent dispatch protocol applies to all platforms and all sub-agents, including native Codex `SubagentStart` context injection with child-side pull fallback, class-2 Gemini/Qoder/Copilot/Reasonix/Trae/Grok/Kimi Code, hook-backed ZCode/Snow, and `trellis-research`: every dispatch prompt starts with `Active task: <task path from task.py current>` before role-specific instructions. On Grok Build, use `spawn_subagent` with `subagent_type` set to the Trellis agent name (e.g. `trellis-implement`). On Kimi Code, dispatch the built-in `coder` / `explore` sub-agent with the matching `.kimi-code/skills/trellis-<role>/SKILL.md` instructions.
224
224
 
225
225
  [workflow-state:in_progress]
226
226
  Tools: `trellis-implement` / `trellis-research` are sub-agent types only (Task/Agent tool, NOT Skill; there is no skill by these names). `trellis-update-spec` is a skill. `trellis-check` exists as both; prefer the Agent form when verifying after code changes.
@@ -272,13 +272,13 @@ Code committed. Run `/trellis:finish-work`; if dirty, return to Phase 3.4 first.
272
272
 
273
273
  When a user request matches one of these intents inside an active task, route first, then load the detailed phase step if needed.
274
274
 
275
- [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
275
+ [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
276
276
 
277
277
  - Planning or unclear requirements -> `trellis-brainstorm`.
278
278
  - `in_progress` implementation/check -> dispatch `trellis-implement` / `trellis-check`.
279
279
  - Repeated debugging -> `trellis-break-loop`; spec updates -> `trellis-update-spec`.
280
280
 
281
- [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
281
+ [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
282
282
 
283
283
  [codex-inline, Kilo, Antigravity, Devin]
284
284
 
@@ -353,7 +353,7 @@ Return to this step whenever requirements change and revise the relevant artifac
353
353
 
354
354
  Research can happen at any time during requirement exploration. It isn't limited to local code — you can use any available tool (MCP servers, skills, web search, etc.) to look up external information, including third-party library docs, industry practices, API references, etc.
355
355
 
356
- [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
356
+ [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
357
357
 
358
358
  Spawn the research sub-agent:
359
359
 
@@ -361,7 +361,7 @@ Spawn the research sub-agent:
361
361
  - **Task description**: Research <specific question>
362
362
  - **Key requirement**: Research output MUST be persisted to `{TASK_DIR}/research/`
363
363
 
364
- [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
364
+ [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
365
365
 
366
366
  [codex-inline, Kilo, Antigravity, Devin]
367
367
 
@@ -380,7 +380,7 @@ Brainstorm and research can interleave freely — pause to research a technical
380
380
 
381
381
  #### 1.3 Configure context `[required · once]`
382
382
 
383
- [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
383
+ [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
384
384
 
385
385
  Curate `implement.jsonl` and `check.jsonl` so the Phase 2 sub-agents get the right spec/research context. These files were seeded on `task create` with a single self-describing `_example` line; your job here is to fill in real entries.
386
386
 
@@ -425,7 +425,7 @@ Ready gate: both `implement.jsonl` and `check.jsonl` must contain at least one r
425
425
 
426
426
  Skip this step only when both files already have real curated entries.
427
427
 
428
- [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
428
+ [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
429
429
 
430
430
  [codex-inline, Kilo, Antigravity, Devin]
431
431
 
@@ -458,11 +458,11 @@ If `task.py start` errors with a session-identity message (no context key from h
458
458
  | `design.md` exists (complex tasks) | ✅ |
459
459
  | `implement.md` exists (complex tasks) | ✅ |
460
460
 
461
- [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
461
+ [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
462
462
 
463
463
  | `implement.jsonl` and `check.jsonl` each contain at least one real curated entry (seed row does not count) | ✅ |
464
464
 
465
- [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
465
+ [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
466
466
 
467
467
  ---
468
468
 
@@ -472,7 +472,7 @@ Goal: turn reviewed planning artifacts into code that passes quality checks.
472
472
 
473
473
  #### 2.1 Implement `[required · repeatable]`
474
474
 
475
- [Claude Code, Cursor, OpenCode, codex-sub-agent, CodeBuddy, Droid, Pi, ZCode, Oh My Pi]
475
+ [Claude Code, Cursor, OpenCode, codex-sub-agent, CodeBuddy, Droid, Pi, ZCode, Snow, Oh My Pi]
476
476
 
477
477
  Spawn the implement sub-agent:
478
478
 
@@ -485,7 +485,7 @@ The platform hook/plugin auto-handles:
485
485
  - Injects `prd.md`, `design.md` if present, and `implement.md` if present
486
486
  - For Codex, `SubagentStart` supplies native context injection; the agent profile keeps child-side loading as the fallback
487
487
 
488
- [/Claude Code, Cursor, OpenCode, codex-sub-agent, CodeBuddy, Droid, Pi, ZCode, Oh My Pi]
488
+ [/Claude Code, Cursor, OpenCode, codex-sub-agent, CodeBuddy, Droid, Pi, ZCode, Snow, Oh My Pi]
489
489
 
490
490
  [Gemini, Qoder, Copilot, Reasonix, Trae, Grok, Kimi Code]
491
491
 
@@ -527,7 +527,7 @@ The platform prelude auto-handles the context load requirement:
527
527
 
528
528
  #### 2.2 Quality check `[required · repeatable]`
529
529
 
530
- [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
530
+ [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
531
531
 
532
532
  Spawn the check sub-agent:
533
533
 
@@ -541,7 +541,7 @@ The check agent's job:
541
541
  - Auto-fix issues it finds
542
542
  - Run lint and typecheck to verify
543
543
 
544
- [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Reasonix, Trae, Grok, Kimi Code]
544
+ [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
545
545
 
546
546
  [codex-inline, Kilo, Antigravity, Devin]
547
547
 
@@ -6,16 +6,16 @@
6
6
  /**
7
7
  * Supported AI coding tools
8
8
  */
9
- export type AITool = "claude-code" | "cursor" | "opencode" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "devin" | "qoder" | "codebuddy" | "copilot" | "droid" | "pi" | "reasonix" | "zcode" | "trae" | "omp" | "grok" | "kimi";
9
+ export type AITool = "claude-code" | "cursor" | "opencode" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "devin" | "qoder" | "codebuddy" | "copilot" | "droid" | "pi" | "reasonix" | "zcode" | "trae" | "omp" | "grok" | "kimi" | "snow";
10
10
  /**
11
11
  * Template directory categories
12
12
  */
13
- export type TemplateDir = "common" | "claude" | "cursor" | "opencode" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "devin" | "qoder" | "codebuddy" | "copilot" | "droid" | "pi" | "reasonix" | "zcode" | "trae" | "omp" | "grok" | "kimi";
13
+ export type TemplateDir = "common" | "claude" | "cursor" | "opencode" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "devin" | "qoder" | "codebuddy" | "copilot" | "droid" | "pi" | "reasonix" | "zcode" | "trae" | "omp" | "grok" | "kimi" | "snow";
14
14
  /**
15
15
  * CLI flag names for platform selection (e.g., --claude, --cursor, --kilo, --kiro, --gemini, --antigravity)
16
16
  * Must match keys in InitOptions (src/commands/init.ts)
17
17
  */
18
- export type CliFlag = "claude" | "cursor" | "opencode" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "devin" | "qoder" | "codebuddy" | "copilot" | "droid" | "pi" | "reasonix" | "zcode" | "trae" | "omp" | "grok" | "kimi";
18
+ export type CliFlag = "claude" | "cursor" | "opencode" | "codex" | "kilo" | "kiro" | "gemini" | "antigravity" | "devin" | "qoder" | "codebuddy" | "copilot" | "droid" | "pi" | "reasonix" | "zcode" | "trae" | "omp" | "grok" | "kimi" | "snow";
19
19
  /**
20
20
  * Template context for placeholder resolution.
21
21
  * Controls how common templates are rendered per platform.
@@ -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,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,GACP,IAAI,GACJ,UAAU,GACV,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,GACP,IAAI,GACJ,UAAU,GACV,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,MAAM,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,GACP,IAAI,GACJ,UAAU,GACV,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,MAAM,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,YAAY,EACR,WAAW,GACX,WAAW,GACX,GAAG,GACH,GAAG,GACH,iBAAiB,GACjB,iBAAiB,CAAC;IACtB,8DAA8D;IAC9D,UAAU,EACN,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,4BAA4B,CAAC;IACjC,uCAAuC;IACvC,eAAe,EACX,gBAAgB,GAChB,QAAQ,GACR,WAAW,GACX,SAAS,GACT,UAAU,CAAC;IACf,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,CAmYjD,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,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,GACP,IAAI,GACJ,UAAU,GACV,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,GACP,IAAI,GACJ,UAAU,GACV,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,OAAO,GACP,OAAO,GACP,WAAW,GACX,SAAS,GACT,OAAO,GACP,IAAI,GACJ,UAAU,GACV,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,YAAY,EACR,WAAW,GACX,WAAW,GACX,GAAG,GACH,GAAG,GACH,iBAAiB,GACjB,iBAAiB,CAAC;IACtB,8DAA8D;IAC9D,UAAU,EACN,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,4BAA4B,CAAC;IACjC,uCAAuC;IACvC,eAAe,EACX,gBAAgB,GAChB,QAAQ,GACR,WAAW,GACX,SAAS,GACT,UAAU,CAAC;IACf,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,CAyajD,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"}
@@ -401,6 +401,44 @@ export const AI_TOOLS = {
401
401
  cliFlag: "kimi",
402
402
  },
403
403
  },
404
+ /**
405
+ * Snow CLI - class-1 platform.
406
+ *
407
+ * Skills: `.snow/skills/` (Claude Code Skills compatible)
408
+ * Commands: `.snow/commands/trellis-*.json` (type: prompt)
409
+ * Agents: `.snow/agents/` (project discovery; no class-2 pull prelude)
410
+ * Hooks: `.snow/hooks/` emit additionalContext JSON (session/user/sub-agent)
411
+ *
412
+ * hasHooks=true: SessionStart injects context -> trellis-start is filtered out.
413
+ * hasPythonHooks=true: ships write-trellis-context.py under .snow/hooks/.
414
+ * Primary agent path is `.snow/agents/*.md` only (no legacy JSON fragment).
415
+ *
416
+ * CLI flag: `--snow`.
417
+ * Detection uses configDir `.snow/skills` so bare `.snow/settings.json` is not
418
+ * a false-positive "configured" project.
419
+ */
420
+ snow: {
421
+ name: "Snow CLI",
422
+ templateDirs: ["common", "snow"],
423
+ configDir: ".snow/skills",
424
+ extraManagedPaths: [
425
+ ".snow/commands",
426
+ ".snow/agents",
427
+ ".snow/hooks",
428
+ ".snow/SNOW.md",
429
+ ],
430
+ cliFlag: "snow",
431
+ defaultChecked: false,
432
+ hasPythonHooks: true,
433
+ templateContext: {
434
+ cmdRefPrefix: "/trellis-",
435
+ executorAI: "Bash scripts or Agent calls",
436
+ userActionLabel: "Skills",
437
+ agentCapable: true,
438
+ hasHooks: true,
439
+ cliFlag: "snow",
440
+ },
441
+ },
404
442
  };
405
443
  /**
406
444
  * Get the configuration for a specific AI tool
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindfoldhq/trellis",
3
- "version": "0.6.8",
3
+ "version": "0.6.10",
4
4
  "description": "AI capabilities grow like ivy — Trellis provides the structure to guide them along a disciplined path",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,7 +34,7 @@
34
34
  "inquirer": "^9.3.7",
35
35
  "undici": "^6.21.0",
36
36
  "zod": "^4.4.2",
37
- "@mindfoldhq/trellis-core": "0.6.8"
37
+ "@mindfoldhq/trellis-core": "0.6.10"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@eslint/js": "^9.18.0",