@blxzer/cursor-trellis 0.2.8 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +37 -12
  3. package/README.zh-CN.md +41 -16
  4. package/bin/{trellis.js → cstl.js} +1 -1
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +30 -4
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/commands/capability-smoke.d.ts +24 -0
  9. package/dist/commands/capability-smoke.d.ts.map +1 -0
  10. package/dist/commands/capability-smoke.js +83 -0
  11. package/dist/commands/capability-smoke.js.map +1 -0
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +94 -34
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/uninstall.d.ts +1 -1
  16. package/dist/commands/uninstall.js +2 -2
  17. package/dist/commands/uninstall.js.map +1 -1
  18. package/dist/commands/update.d.ts +1 -1
  19. package/dist/commands/update.d.ts.map +1 -1
  20. package/dist/commands/update.js +79 -34
  21. package/dist/commands/update.js.map +1 -1
  22. package/dist/commands/upgrade.js +2 -2
  23. package/dist/commands/upgrade.js.map +1 -1
  24. package/dist/configurators/cursor.d.ts +2 -2
  25. package/dist/configurators/cursor.js +4 -4
  26. package/dist/configurators/cursor.js.map +1 -1
  27. package/dist/configurators/index.js +3 -3
  28. package/dist/configurators/index.js.map +1 -1
  29. package/dist/configurators/shared.d.ts +10 -10
  30. package/dist/configurators/shared.d.ts.map +1 -1
  31. package/dist/configurators/shared.js +26 -26
  32. package/dist/configurators/shared.js.map +1 -1
  33. package/dist/configurators/workflow.d.ts +2 -2
  34. package/dist/migrations/manifests/0.2.10.json +374 -0
  35. package/dist/migrations/manifests/0.2.9.json +9 -0
  36. package/dist/migrations/manifests/0.3.0.json +89 -0
  37. package/dist/templates/common/bundled-skills/{trellis-cursor2plus-setup → cstl-cursor2plus-setup}/SKILL.md +5 -4
  38. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/SKILL.md +75 -75
  39. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/add-project-local-conventions.md +8 -8
  40. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-agents.md +6 -6
  41. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-context-loading.md +7 -7
  42. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-skills-or-commands.md +1 -1
  43. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-spec-structure.md +2 -2
  44. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-task-lifecycle.md +31 -31
  45. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-workflow.md +12 -12
  46. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/overview.md +55 -55
  47. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/context-injection.md +13 -13
  48. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/generated-files.md +83 -83
  49. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/overview.md +2 -2
  50. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/spec-system.md +1 -1
  51. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/task-system.md +22 -22
  52. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/workflow.md +5 -5
  53. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/local-architecture/workspace-memory.md +3 -3
  54. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/agents.md +11 -11
  55. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/hooks-and-settings.md +1 -1
  56. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/overview.md +4 -4
  57. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/platform-map.md +5 -5
  58. package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/platform-files/skills-and-commands.md +15 -15
  59. package/dist/templates/common/bundled-skills/{trellis-micro-grill → cstl-micro-grill}/SKILL.md +62 -47
  60. package/dist/templates/common/bundled-skills/{trellis-skill-creator → cstl-skill-creator}/SKILL.md +44 -44
  61. package/dist/templates/common/bundled-skills/{trellis-skill-creator → cstl-skill-creator}/references/authoring-rules.md +97 -97
  62. package/dist/templates/common/bundled-skills/{trellis-skill-creator/references/trellis-skill-locations.md → cstl-skill-creator/references/cstl-skill-locations.md} +52 -52
  63. package/dist/templates/common/bundled-skills/{trellis-skill-creator → cstl-skill-creator}/references/review-checklist.md +47 -47
  64. package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/SKILL.md +1 -1
  65. package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +7 -8
  66. package/dist/templates/common/bundled-skills/smart-search-cli/references/cli-contract.md +46 -46
  67. package/dist/templates/common/commands/continue.md +20 -20
  68. package/dist/templates/common/commands/start.md +11 -11
  69. package/dist/templates/common/index.d.ts +1 -1
  70. package/dist/templates/common/index.d.ts.map +1 -1
  71. package/dist/templates/common/skills/brainstorm.md +188 -164
  72. package/dist/templates/common/skills/check.md +1 -1
  73. package/dist/templates/cursor/agents/{trellis-check.md → cstl-check.md} +8 -8
  74. package/dist/templates/cursor/agents/{trellis-implement.md → cstl-implement.md} +8 -8
  75. package/dist/templates/cursor/agents/{trellis-research.md → cstl-research.md} +2 -2
  76. package/dist/templates/cursor/commands/cursor2plus-setup.md +5 -5
  77. package/dist/templates/cursor/fixtures/expected-rules.d.ts +1 -1
  78. package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +1 -1
  79. package/dist/templates/cursor/fixtures/expected-rules.js +2 -2
  80. package/dist/templates/cursor/fixtures/expected-rules.js.map +1 -1
  81. package/dist/templates/cursor/rules/{trellis-subagent-dispatch.mdc → cstl-subagent-dispatch.mdc} +2 -2
  82. package/dist/templates/cursor/rules/{trellis-triage.mdc → cstl-triage.mdc} +1 -1
  83. package/dist/templates/markdown/agents.md +4 -4
  84. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +634 -634
  85. package/dist/templates/markdown/spec/guides/cursor-context-injection-guide.md.txt +4 -4
  86. package/dist/templates/markdown/spec/guides/cursor-semantic-compliance.md.txt +6 -0
  87. package/dist/templates/markdown/spec/guides/cursor-subagent-policy.md.txt +393 -391
  88. package/dist/templates/markdown/spec/guides/durable-learning-decision-guide.md.txt +6 -6
  89. package/dist/templates/markdown/spec/guides/execution-strategy.md.txt +2 -2
  90. package/dist/templates/markdown/spec/guides/index.md.txt +3 -2
  91. package/dist/templates/markdown/spec/guides/retrieval-daily-guide.md.txt +12 -0
  92. package/dist/templates/shared-hooks/index.d.ts +1 -1
  93. package/dist/templates/shared-hooks/index.js +1 -1
  94. package/dist/templates/shared-hooks/inject-subagent-context.py +3 -3
  95. package/dist/templates/shared-hooks/inject-workflow-state.py +27 -27
  96. package/dist/templates/shared-hooks/research-end-retrieval-pack.py +1 -1
  97. package/dist/templates/shared-hooks/session-start.py +3 -3
  98. package/dist/templates/trellis/config/execution-strategy-rules.json +1 -1
  99. package/dist/templates/trellis/config.yaml +4 -4
  100. package/dist/templates/trellis/local/README.md +12 -10
  101. package/dist/templates/trellis/local/patch_wpelc8.py +3 -3
  102. package/dist/templates/trellis/local/subagent-models.json.example +1 -1
  103. package/dist/templates/trellis/local/trellis-task-models.json.example +3 -3
  104. package/dist/templates/trellis/local/trellis-task-models.json5.example +5 -5
  105. package/dist/templates/trellis/local/trellis_task_models_config.py +6 -6
  106. package/dist/templates/trellis/scripts/common/cli_adapter.py +3 -3
  107. package/dist/templates/trellis/scripts/common/execution_strategy.py +1 -1
  108. package/dist/templates/trellis/scripts/common/parent_orchestration.py +702 -702
  109. package/dist/templates/trellis/scripts/common/session_context.py +1159 -1159
  110. package/dist/templates/trellis/scripts/common/smart_search_evidence.py +33 -1
  111. package/dist/templates/trellis/scripts/common/subagent_dispatch.py +5 -5
  112. package/dist/templates/trellis/scripts/common/task_gates.py +2056 -2034
  113. package/dist/templates/trellis/scripts/common/task_store.py +1594 -1594
  114. package/dist/templates/trellis/workflow.md +805 -805
  115. package/dist/types/ai-tools.d.ts +1 -1
  116. package/dist/types/ai-tools.d.ts.map +1 -1
  117. package/dist/types/ai-tools.js +1 -1
  118. package/dist/types/ai-tools.js.map +1 -1
  119. package/dist/utils/project-capabilities.d.ts +14 -3
  120. package/dist/utils/project-capabilities.d.ts.map +1 -1
  121. package/dist/utils/project-capabilities.js +122 -12
  122. package/dist/utils/project-capabilities.js.map +1 -1
  123. package/dist/utils/readiness.d.ts +10 -0
  124. package/dist/utils/readiness.d.ts.map +1 -1
  125. package/dist/utils/readiness.js +6 -3
  126. package/dist/utils/readiness.js.map +1 -1
  127. package/package.json +4 -5
  128. /package/dist/templates/common/bundled-skills/{trellis-meta → cstl-meta}/references/customize-local/change-hooks.md +0 -0
  129. /package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/references/mcp-setup.md +0 -0
  130. /package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/references/repository-analysis.md +0 -0
  131. /package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/references/spec-task-planning.md +0 -0
  132. /package/dist/templates/common/bundled-skills/{trellis-spec-bootstrap → cstl-spec-bootstrap}/references/spec-writing.md +0 -0
@@ -1,165 +1,189 @@
1
- # Trellis Brainstorm
2
-
3
- ## Non-Negotiable Interview Contract
4
-
5
- Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
6
-
7
- Ask the questions one at a time.
8
-
9
- ## Non-Negotiable Evidence Rule
10
-
11
- If a question can be answered by exploring the codebase, explore the codebase instead.
12
-
13
- This is mandatory. Before asking the user a question, first check whether the answer is already available in code, tests, configs, docs, existing specs, or task history.
14
-
15
- Do not ask the user to confirm facts that the repository can answer. Ask only for product intent, preference, scope, risk tolerance, or decisions that remain ambiguous after inspection.
16
-
17
- ---
18
-
19
- Use this skill during Phase 1 planning to turn the user's request into clear requirements and planning artifacts.
20
-
21
- **Agent-capable platforms:** Do **not** use legacy Claude-only grill subagents as a hard gate. Complete **PRD Grill** (below) and **`trellis-micro-grill`** for blocking open questions before treating planning as ready for `design.md` / `implement.md` / `start-execution --check`.
22
-
23
- ## Preconditions
24
-
25
- Use this skill only after task-creation consent has been given and the user is ready to enter Trellis planning.
26
-
27
- If no task exists yet, create one:
28
-
29
- ```bash
30
- TASK_DIR=$(python ./.trellis/scripts/task.py create "<short task title>" --slug <slug>)
31
- ```
32
-
33
- Use a concise title from the user's request. Use a slug without a date prefix. `task.py create` adds the `MM-DD-` directory prefix automatically.
34
-
35
- `task.py create` creates the default `prd.md`. Update that file with the current understanding before asking follow-up questions.
36
-
37
- ## Two-phase planning overview
38
-
39
- | Phase | Name | User questions |
40
- | --- | --- | --- |
41
- | **A** | Discovery Before Questions + PRD draft | None until repo evidence is exhausted |
42
- | **B** | PRD Grill pass + Micro-grill unresolved | Only blocking business / risk / preference |
43
-
44
- External facts during Discovery or Research: load `smart-search-cli`; on CLI/doctor failure use Cursor WebSearch/WebFetch and persist under `{TASK}/research/` with `source: cursor-web-fallback`.
45
-
46
- ---
47
-
48
- ## Phase A — Discovery Before Questions
49
-
50
- Run **before** any user interview questions.
51
-
52
- Inspect and record in `prd.md` (sections: **Confirmed facts**, initial **Out of scope**, draft **Goal**):
53
-
54
- 1. **Code & tests** — relevant modules, fixtures, configs, error paths.
55
- 2. **Specs** `.trellis/spec/` indexes and layer guides for touched packages.
56
- 3. **History** — archived tasks, active task research, developer journal when useful.
57
- 4. **Platform** — project platform hooks, agents, and skills (see `.trellis/spec/guides/cursor-subagent-policy.md` when using Cursor); shared `.agents/skills/` when behavior spans platforms.
58
- 5. **Parent/Child** — if multiple independent deliverables, note child split early in `prd.md`.
59
-
60
- Use retrieval per `.trellis/spec/guides/retrieval-daily-guide.md` (rg for literals, codegraph for structure, fast-context for semantic sweep).
61
-
62
- Dispatch **`trellis-research`** (writable Agent) when a topic needs a dedicated `{TASK}/research/<topic>.md` file; do **not** use a subagent for PRD Grill itself.
63
-
64
- ## Phase A PRD draft
65
-
66
- After Discovery, flesh out `prd.md`:
67
-
68
- - goal and user value
69
- - confirmed facts (not restated as unverified requirements)
70
- - requirements
71
- - draft acceptance criteria
72
- - out of scope
73
- - open questions (tag **blocking** vs **nice-to-have**)
74
-
75
- For complex tasks, start `design.md` / `implement.md` skeletons only when boundaries are already clear from Discovery; otherwise wait until Phase B.
76
-
77
- ## Phase B PRD Grill pass
78
-
79
- Treat `prd.md` (+ existing `design.md` fragments) as the **only document surface**. Run this checklist; fix the PRD in place (no new subagent):
80
-
81
- | # | Check |
82
- | --- | --- |
83
- | 1 | **Goal & user value** — single clear statement |
84
- | 2 | **Confirmed facts vs assumptions** repo facts not listed as assumptions |
85
- | 3 | **Testable acceptance criteria** |
86
- | 4 | **Out of scope** explicit |
87
- | 5 | **Dependencies & sequencing** |
88
- | 6 | **Parent/Child & deliverables** when applicable |
89
- | 7 | **Research & external facts** smart-search or documented fallback |
90
- | 8 | **Execution gate & artifacts** — `design.md` / `implement.md` / `verify.md` expectations |
91
- | 9 | **Durable Learning** — Phase 3.3 will need `update-spec` \| `no-update` \| `unsure` |
92
- | 10 | **Platform** — Cursor-first; PRD Grill in-session (no legacy grill-me / grill-with-docs subagent gate) |
93
- | 11 | **Risk & rollback** for complex tasks |
94
- | 12 | **Open questions** — only **blocking** strategic/preference items remain |
95
-
96
- ## Phase B — Micro-grill unresolved
97
-
98
- For each **blocking** open question after the checklist, embed the **`trellis-micro-grill` contract**:
99
-
100
- - exactly **one** question per message
101
- - **Simplified Chinese** for user-facing text
102
- - recommended answer + trade-off
103
- - **update `prd.md` after every answer** before the next question
104
-
105
- Stop micro-grill when no blocking open questions remain.
106
-
107
- Do not ask process questions ("should I search?"). Do not re-ask facts Discovery already confirmed.
108
-
109
- ## Question Rules (Phase B only)
110
-
111
- Each question must include:
112
-
113
- - the decision needed
114
- - why the answer matters
115
- - your recommended answer
116
- - the trade-off if the user chooses differently
117
-
118
- ## Artifact Rules
119
-
120
- `prd.md` records requirements and acceptance:
121
-
122
- - goal and user value
123
- - confirmed facts
124
- - requirements
125
- - acceptance criteria
126
- - out of scope
127
- - open questions that still block planning
128
-
129
- `design.md` records technical design for complex tasks:
130
-
131
- - architecture and boundaries
132
- - data flow and contracts
133
- - compatibility and migration notes
134
- - important trade-offs
135
- - operational or rollback considerations
136
-
137
- `implement.md` records execution planning for complex tasks:
138
-
139
- - ordered implementation checklist
140
- - validation commands
141
- - risky files or rollback points
142
- - **Development Strategy Contract** (`execution_mode`, `isolation`, …): before finalizing, run `python3 ./.trellis/scripts/task.py suggest-execution-strategy <task-dir>` (or `--json`); reconcile suggestion with scope, then paste the approved YAML block into `implement.md`
143
- - follow-up checks before `task.py start-execution --check`
144
-
145
- Lightweight tasks may have only `prd.md`. Complex tasks must have `prd.md`, `design.md`, and `implement.md` before `task.py start-execution --check`.
146
-
147
- `implement.md` is not a replacement for `implement.jsonl`. Use JSONL files only for manifest-style spec and research references when the task needs them.
148
-
149
- ## Completion criteria — PRD Grill done
150
-
151
- Planning is ready for execution gate when **all** hold:
152
-
153
- - PRD Grill checklist (12 items) satisfied or explicitly N/A with rationale in `prd.md`
154
- - **No blocking** open questions in `prd.md`
155
- - Acceptance criteria are testable; out of scope is explicit
156
- - Complex tasks: `design.md` and `implement.md` present
157
- - User reviewed artifacts or explicitly approved proceeding
158
-
159
- Then proceed to Phase 1.2 Research (if needed), Phase 1.4 `task.py start-execution --check`, and implementation only after user approval.
160
-
161
- Do not start implementation until the user approves or asks for implementation.
162
-
163
- ## Legacy planning flow (summary)
164
-
1
+ # Trellis Brainstorm
2
+
3
+ ## Non-Negotiable Interview Contract
4
+
5
+ Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
6
+
7
+ Ask the questions one at a time.
8
+
9
+ ## Non-Negotiable Evidence Rule
10
+
11
+ If a question can be answered by exploring the codebase, explore the codebase instead.
12
+
13
+ This is mandatory. Before asking the user a question, first check whether the answer is already available in code, tests, configs, docs, existing specs, or task history.
14
+
15
+ Do not ask the user to confirm facts that the repository can answer. Ask only for product intent, preference, scope, risk tolerance, or decisions that remain ambiguous after inspection.
16
+
17
+ ## Thinking Principles
18
+
19
+ These two principles shape *how* you grill, not just *what* you ask. Apply them throughout Phase A and B.
20
+
21
+ ### First Principles
22
+
23
+ Reason from irreducible facts and user value, not from analogy to existing solutions or "how it's always been done".
24
+
25
+ - When you encounter a requirement phrased as "we need X like Y has", separate the **root need** (the user value behind X) from the **inherited assumption** (Y's specific shape).
26
+ - For every "because that's the convention" justification, ask: what problem did that convention solve, and does that problem actually exist here?
27
+ - Trace each requirement back to a user-facing outcome. If no outcome survives, the requirement is inherited, not fundamental — flag it as a candidate for Out of Scope.
28
+
29
+ ### Occam's Razor
30
+
31
+ Among competing designs that satisfy the acceptance criteria, prefer the one with the fewest additional assumptions.
32
+
33
+ - Default recommendation = the **minimal sufficient** design. Complexity must be justified by evidence (a contract, an edge case, a verified constraint), not added speculatively "for later".
34
+ - Actively strip scope that exists only to satisfy an assumption you cannot verify from repo evidence.
35
+ - When two paths are equally sufficient, the simpler one wins; the burden of proof is on the more complex path.
36
+
37
+ ---
38
+
39
+ Use this skill during Phase 1 planning to turn the user's request into clear requirements and planning artifacts.
40
+
41
+ **Agent-capable platforms:** Do **not** use legacy Claude-only grill subagents as a hard gate. Complete **PRD Grill** (below) and **`cstl-micro-grill`** for blocking open questions before treating planning as ready for `design.md` / `implement.md` / `start-execution --check`.
42
+
43
+ ## Preconditions
44
+
45
+ Use this skill only after task-creation consent has been given and the user is ready to enter Trellis planning.
46
+
47
+ If no task exists yet, create one:
48
+
49
+ ```bash
50
+ TASK_DIR=$(python ./.trellis/scripts/task.py create "<short task title>" --slug <slug>)
51
+ ```
52
+
53
+ Use a concise title from the user's request. Use a slug without a date prefix. `task.py create` adds the `MM-DD-` directory prefix automatically.
54
+
55
+ `task.py create` creates the default `prd.md`. Update that file with the current understanding before asking follow-up questions.
56
+
57
+ ## Two-phase planning overview
58
+
59
+ | Phase | Name | User questions |
60
+ | --- | --- | --- |
61
+ | **A** | Discovery Before Questions + PRD draft | None until repo evidence is exhausted |
62
+ | **B** | PRD Grill pass + Micro-grill unresolved | Only blocking business / risk / preference |
63
+
64
+ External facts during Discovery or Research: load `smart-search-cli`; on CLI/doctor failure use Cursor WebSearch/WebFetch and persist under `{TASK}/research/` with `source: cursor-web-fallback`.
65
+
66
+ ---
67
+
68
+ ## Phase A Discovery Before Questions
69
+
70
+ Run **before** any user interview questions.
71
+
72
+ Inspect and record in `prd.md` (sections: **Confirmed facts**, initial **Out of scope**, draft **Goal**):
73
+
74
+ 1. **Code & tests** — relevant modules, fixtures, configs, error paths.
75
+ 2. **Specs** `.trellis/spec/` indexes and layer guides for touched packages.
76
+ 3. **History** — archived tasks, active task research, developer journal when useful.
77
+ 4. **Platform**project platform hooks, agents, and skills (see `.trellis/spec/guides/cursor-subagent-policy.md` when using Cursor); shared `.agents/skills/` when behavior spans platforms.
78
+ 5. **Parent/Child** — if multiple independent deliverables, note child split early in `prd.md`.
79
+
80
+ Use retrieval per `.trellis/spec/guides/retrieval-daily-guide.md` (rg for literals, codegraph for structure, fast-context for semantic sweep).
81
+
82
+ Dispatch **`cstl-research`** (writable Agent) when a topic needs a dedicated `{TASK}/research/<topic>.md` file; do **not** use a subagent for PRD Grill itself.
83
+
84
+ ## Phase APRD draft
85
+
86
+ After Discovery, flesh out `prd.md`:
87
+
88
+ - goal and user value
89
+ - confirmed facts (not restated as unverified requirements)
90
+ - requirements
91
+ - draft acceptance criteria
92
+ - out of scope
93
+ - open questions (tag **blocking** vs **nice-to-have**)
94
+
95
+ For complex tasks, start `design.md` / `implement.md` skeletons only when boundaries are already clear from Discovery; otherwise wait until Phase B.
96
+
97
+ ## Phase B — PRD Grill pass
98
+
99
+ Treat `prd.md` (+ existing `design.md` fragments) as the **only document surface**. Run this checklist; fix the PRD in place (no new subagent):
100
+
101
+ | # | Check |
102
+ | --- | --- |
103
+ | 1 | **Goal & user value** single clear statement |
104
+ | 2 | **Confirmed facts vs assumptions** — repo facts not listed as assumptions |
105
+ | 3 | **Testable acceptance criteria** |
106
+ | 4 | **Out of scope** explicit |
107
+ | 5 | **Dependencies & sequencing** |
108
+ | 6 | **Parent/Child & deliverables** when applicable |
109
+ | 7 | **Research & external facts** — smart-search or documented fallback |
110
+ | 8 | **Execution gate & artifacts** — `design.md` / `implement.md` / `verify.md` expectations |
111
+ | 9 | **Durable Learning** — Phase 3.3 will need `update-spec` \| `no-update` \| `unsure` |
112
+ | 10 | **Platform** — Cursor-first; PRD Grill in-session (no legacy grill-me / grill-with-docs subagent gate) |
113
+ | 11 | **Risk & rollback** for complex tasks |
114
+ | 12 | **Open questions** — only **blocking** strategic/preference items remain |
115
+ | 13 | **Root vs inherited assumptions** — every requirement traces to a user-facing root need; inherited assumptions (convention, analogy, "we've always done it") are flagged or removed (First Principles) |
116
+ | 14 | **Minimal sufficient design** — no scope, layer, or mechanism exists to satisfy an unverified assumption; the simplest design that meets acceptance wins (Occam's Razor) |
117
+
118
+ ## Phase B — Micro-grill unresolved
119
+
120
+ For each **blocking** open question after the checklist, embed the **`cstl-micro-grill` contract**:
121
+
122
+ - exactly **one** question per message
123
+ - **Simplified Chinese** for user-facing text
124
+ - recommended answer + trade-off
125
+ - **update `prd.md` after every answer** before the next question
126
+
127
+ Stop micro-grill when no blocking open questions remain.
128
+
129
+ Do not ask process questions ("should I search?"). Do not re-ask facts Discovery already confirmed.
130
+
131
+ ## Question Rules (Phase B only)
132
+
133
+ Each question must include:
134
+
135
+ - the decision needed
136
+ - why the answer matters
137
+ - your recommended answer
138
+ - the trade-off if the user chooses differently
139
+
140
+ Your recommended answer defaults to Occam's Razor: the **minimal sufficient** option that still satisfies the acceptance criteria. Only recommend a more complex option when you can cite evidence (a contract, a verified edge case, a repo constraint) that the simpler option violates.
141
+
142
+ ## Artifact Rules
143
+
144
+ `prd.md` records requirements and acceptance:
145
+
146
+ - goal and user value
147
+ - confirmed facts
148
+ - requirements
149
+ - acceptance criteria
150
+ - out of scope
151
+ - open questions that still block planning
152
+
153
+ `design.md` records technical design for complex tasks:
154
+
155
+ - architecture and boundaries
156
+ - data flow and contracts
157
+ - compatibility and migration notes
158
+ - important trade-offs
159
+ - operational or rollback considerations
160
+
161
+ `implement.md` records execution planning for complex tasks:
162
+
163
+ - ordered implementation checklist
164
+ - validation commands
165
+ - risky files or rollback points
166
+ - **Development Strategy Contract** (`execution_mode`, `isolation`, …): before finalizing, run `python3 ./.trellis/scripts/task.py suggest-execution-strategy <task-dir>` (or `--json`); reconcile suggestion with scope, then paste the approved YAML block into `implement.md`
167
+ - follow-up checks before `task.py start-execution --check`
168
+
169
+ Lightweight tasks may have only `prd.md`. Complex tasks must have `prd.md`, `design.md`, and `implement.md` before `task.py start-execution --check`.
170
+
171
+ `implement.md` is not a replacement for `implement.jsonl`. Use JSONL files only for manifest-style spec and research references when the task needs them.
172
+
173
+ ## Completion criteria — PRD Grill done
174
+
175
+ Planning is ready for execution gate when **all** hold:
176
+
177
+ - PRD Grill checklist (14 items) satisfied or explicitly N/A with rationale in `prd.md`
178
+ - **No blocking** open questions in `prd.md`
179
+ - Acceptance criteria are testable; out of scope is explicit
180
+ - Complex tasks: `design.md` and `implement.md` present
181
+ - User reviewed artifacts or explicitly approved proceeding
182
+
183
+ Then proceed to Phase 1.2 Research (if needed), Phase 1.4 `task.py start-execution --check`, and implementation only after user approval.
184
+
185
+ Do not start implementation until the user approves or asks for implementation.
186
+
187
+ ## Legacy planning flow (summary)
188
+
165
189
  The former single "Planning Flow" is now Phase A + B above. Steps 4–6 map to Phase B micro-grill and artifact updates.
@@ -61,7 +61,7 @@ Run the project's lint, type-check, and test commands. Fix any failures before p
61
61
 
62
62
  ### Spec Sync
63
63
 
64
- - [ ] Does `.trellis/spec/` need updates? (route through semi-automatic flow: proposal → confirm → `trellis-update-spec`)
64
+ - [ ] Does `.trellis/spec/` need updates? (route through semi-automatic flow: proposal → confirm → `cstl-update-spec`)
65
65
 
66
66
  > "If I fixed a bug or discovered something non-obvious, should I document it so future me won't hit the same issue?" → If YES, update the relevant spec doc.
67
67
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: trellis-check
2
+ name: cstl-check
3
3
  description: Trellis quality check agent. Use this exact agent for Trellis task verification, check.jsonl context injection, and self-fixing code review. Do not use generic/default/generalPurpose agents for Trellis checks.
4
4
  tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
5
5
  ---
@@ -11,7 +11,7 @@ tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__
11
11
 
12
12
  ## Context source
13
13
 
14
- - **Layer 2 prompt = PRIMARY (guaranteed)** — always generate via CLI before `Task(trellis-check)`.
14
+ - **Layer 2 prompt = PRIMARY (guaranteed)** — always generate via CLI before `Task(cstl-check)`.
15
15
  - **Hook `additional_context` = best-effort only** — Cursor #158452: not guaranteed to reach the model; optimization / fallback only.
16
16
 
17
17
  # Check Agent
@@ -25,15 +25,15 @@ You are the Check Agent in the Trellis workflow.
25
25
 
26
26
  ## Recursion Guard
27
27
 
28
- You are already the `trellis-check` sub-agent that the main session dispatched. Do the review and fixes directly.
28
+ You are already the `cstl-check` sub-agent that the main session dispatched. Do the review and fixes directly.
29
29
 
30
- - Do NOT spawn another `trellis-check` or `trellis-implement` sub-agent.
31
- - If SessionStart context, workflow-state breadcrumbs, or workflow.md say to dispatch `trellis-implement` / `trellis-check`, treat that as a main-session instruction that is already satisfied by your current role.
30
+ - Do NOT spawn another `cstl-check` or `cstl-implement` sub-agent.
31
+ - If SessionStart context, workflow-state breadcrumbs, or workflow.md say to dispatch `cstl-implement` / `cstl-check`, treat that as a main-session instruction that is already satisfied by your current role.
32
32
  - Only the main session may dispatch Trellis implement/check agents. If more implementation work is needed, report that recommendation instead of spawning.
33
33
 
34
34
  ## Trellis Context Loading Protocol
35
35
 
36
- Look for the `<!-- trellis-hook-injected -->` marker in your input above.
36
+ Look for the `<!-- cstl-hook-injected -->` marker in your input above.
37
37
 
38
38
  - **If the marker is present**: task artifacts, spec, and research files have already been auto-loaded for you above. Proceed with the check work directly.
39
39
  - **If the marker is absent**: hook injection didn't fire (Windows + Claude Code, `--continue` resume, fork distribution, hooks disabled, etc.). Find the selected task path from your dispatch prompt's first line `Selected task: <path>`, then Read `<task-path>/check.jsonl`, each listed file, `<task-path>/prd.md`, `<task-path>/design.md` if present, and `<task-path>/implement.md` if present before doing the work.
@@ -41,8 +41,8 @@ Look for the `<!-- trellis-hook-injected -->` marker in your input above.
41
41
  ## Dispatch contract (Parent / inline)
42
42
 
43
43
  - Only the **main session or Parent** dispatches this agent; Child workers must not re-spawn Trellis sub-agents.
44
- - **Inline** (`in_progress-inline`): main session uses the `trellis-check` **skill** instead of spawning this agent unless a dedicated review pass is needed.
45
- - Align with the `trellis-check` skill: `get_context.py --mode packages`, spec indexes, cross-layer checks; you may fix issues and record gates — do not redefine Parent `task-map` or gate semantics.
44
+ - **Inline** (`in_progress-inline`): main session uses the `cstl-check` **skill** instead of spawning this agent unless a dedicated review pass is needed.
45
+ - Align with the `cstl-check` skill: `get_context.py --mode packages`, spec indexes, cross-layer checks; you may fix issues and record gates — do not redefine Parent `task-map` or gate semantics.
46
46
 
47
47
  ## Context
48
48
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: trellis-implement
2
+ name: cstl-implement
3
3
  description: Trellis implementation agent. Use this exact agent for Trellis task implementation, implement.jsonl context injection, and hook-injection tests. Do not use generic/default/generalPurpose agents for Trellis implementation. No git commit allowed.
4
4
  tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa
5
5
  ---
@@ -11,7 +11,7 @@ tools: Read, Write, Edit, Bash, Glob, Grep, mcp__exa__web_search_exa, mcp__exa__
11
11
 
12
12
  ## Context source
13
13
 
14
- - **Layer 2 prompt = PRIMARY (guaranteed)** — always generate via CLI before `Task(trellis-implement)`.
14
+ - **Layer 2 prompt = PRIMARY (guaranteed)** — always generate via CLI before `Task(cstl-implement)`.
15
15
  - **Hook `additional_context` = best-effort only** — Cursor #158452: not guaranteed to reach the model; optimization / fallback only.
16
16
 
17
17
  # Implement Agent
@@ -21,19 +21,19 @@ You are the Implement Agent in the Trellis workflow.
21
21
  ## Model policy
22
22
 
23
23
  - **Default:** no `model:` → **inherit** parent session.
24
- - **Per dispatch / Child worker:** main session asks user → one-shot `model:` overlay on this file → `Task` → restore. Child session uses the same overlay pattern on `trellis-implement`. See `.trellis/spec/guides/cursor-subagent-policy.md`.
24
+ - **Per dispatch / Child worker:** main session asks user → one-shot `model:` overlay on this file → `Task` → restore. Child session uses the same overlay pattern on `cstl-implement`. See `.trellis/spec/guides/cursor-subagent-policy.md`.
25
25
 
26
26
  ## Recursion Guard
27
27
 
28
- You are already the `trellis-implement` sub-agent that the main session dispatched. Do the implementation work directly.
28
+ You are already the `cstl-implement` sub-agent that the main session dispatched. Do the implementation work directly.
29
29
 
30
- - Do NOT spawn another `trellis-implement` or `trellis-check` sub-agent.
31
- - If SessionStart context, workflow-state breadcrumbs, or workflow.md say to dispatch `trellis-implement` / `trellis-check`, treat that as a main-session instruction that is already satisfied by your current role.
30
+ - Do NOT spawn another `cstl-implement` or `cstl-check` sub-agent.
31
+ - If SessionStart context, workflow-state breadcrumbs, or workflow.md say to dispatch `cstl-implement` / `cstl-check`, treat that as a main-session instruction that is already satisfied by your current role.
32
32
  - Only the main session may dispatch Trellis implement/check agents. If more parallel work is needed, report that recommendation instead of spawning.
33
33
 
34
34
  ## Trellis Context Loading Protocol
35
35
 
36
- Look for the `<!-- trellis-hook-injected -->` marker in your input above.
36
+ Look for the `<!-- cstl-hook-injected -->` marker in your input above.
37
37
 
38
38
  - **If the marker is present**: prd / spec / research files have already been auto-loaded for you above. Proceed with the implementation work directly.
39
39
  - **If the marker is absent**: hook injection didn't fire (Windows + Claude Code, `--continue` resume, fork distribution, hooks disabled, `/multitask` parallel dispatch, etc.). Find the selected task path from your dispatch prompt's first line `Selected task: <path>`, then Read `<task-path>/implement.jsonl`, each listed file, `<task-path>/prd.md`, `<task-path>/design.md` if present, and `<task-path>/implement.md` if present before doing the work.
@@ -41,7 +41,7 @@ Look for the `<!-- trellis-hook-injected -->` marker in your input above.
41
41
  ## Dispatch contract (Parent / Child)
42
42
 
43
43
  - Parent or main session dispatches implement work; **Child tasks** deliver `verify.md` + `handoff.md` and must not change shared gate contracts.
44
- - Do not spawn nested `trellis-implement` / `trellis-check`; recommend a Parent review when check is needed.
44
+ - Do not spawn nested `cstl-implement` / `cstl-check`; recommend a Parent review when check is needed.
45
45
 
46
46
  ## Context
47
47
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: trellis-research
2
+ name: cstl-research
3
3
  description: Trellis research agent. Use this exact agent for Trellis task research and research/ persistence. Do not use generic/default/generalPurpose agents for Trellis research.
4
4
  tools: Read, Write, Glob, Grep, Bash, WebSearch, WebFetch, mcp__exa__web_search_exa, mcp__exa__get_code_context_exa, Skill, mcp__chrome-devtools__*
5
5
  ---
@@ -11,7 +11,7 @@ tools: Read, Write, Glob, Grep, Bash, WebSearch, WebFetch, mcp__exa__web_search_
11
11
 
12
12
  ## Context source
13
13
 
14
- - **Layer 2 prompt = PRIMARY (guaranteed)** — always generate via CLI before `Task(trellis-research)`.
14
+ - **Layer 2 prompt = PRIMARY (guaranteed)** — always generate via CLI before `Task(cstl-research)`.
15
15
  - **Hook `additional_context` = best-effort only** — Cursor #158452: not guaranteed to reach the model; optimization / fallback only.
16
16
 
17
17
  # Research Agent
@@ -1,6 +1,6 @@
1
1
  # Trellis Cursor++ Subagent Model Setup
2
2
 
3
- Configure per-subagent-type model routing for Cursor++ BYOK. Run this after `trellis init` (when Cursor++ is selected), when providers change, or whenever you want to re-map which model each Trellis Task subagent uses.
3
+ Configure per-subagent-type model routing for Cursor++ BYOK. Run this after `cstl init` (when Cursor++ is selected), when providers change, or whenever you want to re-map which model each Trellis Task subagent uses.
4
4
 
5
5
  Native Cursor API (no Cursor++): stop — this does not apply; agent frontmatter `model:` works natively.
6
6
 
@@ -24,7 +24,7 @@ python ./.trellis/local/cursor2plus/patch_wpelc8.py --explain
24
24
  `--list-models` shows the model catalog (apiModel / displayName / slug / provider) from `providers.json`.
25
25
  `--explain` lists the subagent types you can route:
26
26
 
27
- - `trellis-research`, `trellis-implement`, `trellis-check` (core Trellis roles)
27
+ - `cstl-research`, `cstl-implement`, `cstl-check` (core Trellis roles)
28
28
  - `generalPurpose`, `shell`, `best-of-n-runner` (built-in Cursor Task types, optional)
29
29
 
30
30
  ## Step 3: Ask the user which model per role
@@ -42,9 +42,9 @@ Write `~/.ccursor/trellis-task-models.json5` (or `~/.ccursor/` on Unix) using th
42
42
  {
43
43
  "models": {
44
44
  // <role comment>
45
- "trellis-research": { "primary": "<model>", "fallback": "<model>" },
46
- "trellis-implement": { "primary": "<model>", "fallback": "<model>" },
47
- "trellis-check": { "primary": "<model>", "fallback": "<model>" }
45
+ "cstl-research": { "primary": "<model>", "fallback": "<model>" },
46
+ "cstl-implement": { "primary": "<model>", "fallback": "<model>" },
47
+ "cstl-check": { "primary": "<model>", "fallback": "<model>" }
48
48
  }
49
49
  }
50
50
  ```
@@ -3,7 +3,7 @@
3
3
  * Update alongside rule content changes in templates/cursor/rules/.
4
4
  */
5
5
  export interface ExpectedRule {
6
- /** Filename including .mdc extension, e.g. "trellis-triage.mdc" */
6
+ /** Filename including .mdc extension, e.g. "cstl-triage.mdc" */
7
7
  filename: string;
8
8
  /** Substrings that must appear in rule body (case-sensitive) */
9
9
  requiredSections: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"expected-rules.d.ts","sourceRoot":"","sources":["../../../../src/templates/cursor/fixtures/expected-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,YAAY,EAoBvC,CAAC"}
1
+ {"version":3,"file":"expected-rules.d.ts","sourceRoot":"","sources":["../../../../src/templates/cursor/fixtures/expected-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,YAAY,EAoBvC,CAAC"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export const expectedRules = [
6
6
  {
7
- filename: "trellis-triage.mdc",
7
+ filename: "cstl-triage.mdc",
8
8
  requiredSections: [
9
9
  "Decision tree",
10
10
  "Classification mark",
@@ -13,7 +13,7 @@ export const expectedRules = [
13
13
  minBytes: 500,
14
14
  },
15
15
  {
16
- filename: "trellis-subagent-dispatch.mdc",
16
+ filename: "cstl-subagent-dispatch.mdc",
17
17
  requiredSections: ["Layer 2", "generate_dispatch_prompt", "CLI"],
18
18
  minBytes: 400,
19
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"expected-rules.js","sourceRoot":"","sources":["../../../../src/templates/cursor/fixtures/expected-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C;QACE,QAAQ,EAAE,oBAAoB;QAC9B,gBAAgB,EAAE;YAChB,eAAe;YACf,qBAAqB;YACrB,cAAc;SACf;QACD,QAAQ,EAAE,GAAG;KACd;IACD;QACE,QAAQ,EAAE,+BAA+B;QACzC,gBAAgB,EAAE,CAAC,SAAS,EAAE,0BAA0B,EAAE,KAAK,CAAC;QAChE,QAAQ,EAAE,GAAG;KACd;IACD;QACE,QAAQ,EAAE,uBAAuB;QACjC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC;QACjE,QAAQ,EAAE,GAAG;KACd;CACF,CAAC"}
1
+ {"version":3,"file":"expected-rules.js","sourceRoot":"","sources":["../../../../src/templates/cursor/fixtures/expected-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C;QACE,QAAQ,EAAE,iBAAiB;QAC3B,gBAAgB,EAAE;YAChB,eAAe;YACf,qBAAqB;YACrB,cAAc;SACf;QACD,QAAQ,EAAE,GAAG;KACd;IACD;QACE,QAAQ,EAAE,4BAA4B;QACtC,gBAAgB,EAAE,CAAC,SAAS,EAAE,0BAA0B,EAAE,KAAK,CAAC;QAChE,QAAQ,EAAE,GAAG;KACd;IACD;QACE,QAAQ,EAAE,uBAAuB;QACjC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC;QACjE,QAAQ,EAAE,GAAG;KACd;CACF,CAAC"}
@@ -9,7 +9,7 @@ alwaysApply: true
9
9
 
10
10
  ## Rule
11
11
 
12
- Before calling `Task(subagent_type="trellis-research|trellis-implement|trellis-check", ...)` you MUST:
12
+ Before calling `Task(subagent_type="cstl-research|cstl-implement|cstl-check", ...)` you MUST:
13
13
 
14
14
  1. Generate a complete dispatch prompt via CLI:
15
15
 
@@ -31,4 +31,4 @@ If `--task` is omitted, the script resolves the currently selected task. If `--r
31
31
 
32
32
  ## Exception
33
33
 
34
- This rule does NOT apply to `generalPurpose`, `explore`, `shell`, or other non-Trellis subagent types. Only `trellis-research`, `trellis-implement`, `trellis-check` require CLI-generated prompts.
34
+ This rule does NOT apply to `generalPurpose`, `explore`, `shell`, or other non-Trellis subagent types. Only `cstl-research`, `cstl-implement`, `cstl-check` require CLI-generated prompts.
@@ -10,7 +10,7 @@ You MUST classify every work-capable user request BEFORE acting. This is not a s
10
10
  ## Decision tree (first match wins)
11
11
 
12
12
  1. **No durable project change** (explanation, status, read-only lookup, one-liner Q&A) → `No Task`
13
- 2. **Underspecified small request, no task yet** (needs clarification before work exists) → `Micro-Grill` (load `trellis-micro-grill`)
13
+ 2. **Underspecified small request, no task yet** (needs clarification before work exists) → `Micro-Grill` (load `cstl-micro-grill`)
14
14
  3. **Low-risk durable work, single file, local validation, no contract change** → `Lite Task`
15
15
  4. **Durable code/template/runtime/workflow change, cross-file behavior, or framework semantics** → `Full Task`
16
16
  5. **Multiple independent deliverables, staged/parallel execution, or integration authority** → `Parent Task`
@@ -10,19 +10,19 @@ This project is managed by Trellis. The working knowledge you need lives under `
10
10
  - `.trellis/workspace/` — per-developer journals and session traces
11
11
  - `.trellis/tasks/` — active and archived tasks (PRDs, research, jsonl context)
12
12
 
13
- If a Trellis command is available on Cursor (e.g. `/trellis:finish-work`, `/trellis:continue`), prefer it over manual steps.
13
+ If a Trellis command is available on Cursor (e.g. `cstl-finish-work`, `cstl-continue`), prefer it over manual steps.
14
14
 
15
15
  ## Command surface (what is user-invocable vs internal)
16
16
 
17
17
  Only a handful of Trellis entry points are meant for **manual `/` invocation**. Everything else is an **internal auto-triggered skill** — the agent loads it via the skill matcher or workflow routing, not by being called directly. Do **not** manually invoke internal skills through the slash palette.
18
18
 
19
- - **User-invocable (manual)**: `/trellis-continue`, `/trellis-finish-work` (and `/trellis-start` when needed).
20
- - **Internal auto-triggered (do NOT call manually)**: `trellis-brainstorm`, `trellis-before-dev`, `trellis-check`, `trellis-break-loop`, `trellis-update-spec`, `trellis-micro-grill`, `trellis-meta`, `trellis-spec-bootstrap`, `trellis-skill-creator`, `smart-search-cli`. These activate on their own when the workflow/skill matcher decides they fit.
19
+ - **User-invocable (manual)**: `cstl-continue`, `cstl-finish-work` (and `cstl-start` when needed).
20
+ - **Internal auto-triggered (do NOT call manually)**: `cstl-brainstorm`, `cstl-before-dev`, `cstl-check`, `cstl-break-loop`, `cstl-update-spec`, `cstl-micro-grill`, `cstl-meta`, `cstl-spec-bootstrap`, `cstl-skill-creator`, `smart-search-cli`. These activate on their own when the workflow/skill matcher decides they fit.
21
21
 
22
22
  ## Web research routing (smart-search first)
23
23
 
24
24
  For **any external / current / web fact**, run **`python ./.trellis/scripts/run_smart_search.py "<question>" --intent deep-research --json`** first. That script is the **only** Trellis web-research evidence entrypoint (it shells out to the `smart-search` CLI). Do not guess paths under package source trees or sibling repos. Platform built-in web tools (Cursor `WebSearch` / `WebFetch`, or native web tools elsewhere) are **downgrade-only fallbacks**, used solely when smart-search is unavailable (`doctor` not ok, status `not_configured` / `failed`, or search timeout). Do not reach for built-in web search while smart-search is healthy. On Cursor, `smart-search-cli` is an **internal workflow skill name** only (not shipped under `.cursor/skills/`); follow `.trellis/spec/guides/retrieval-daily-guide.md` and `.cursor/rules/retrieval-routing.mdc` for the executable contract.
25
25
 
26
- Managed by Trellis. Edits outside this block are preserved; edits inside may be overwritten by a future `trellis update`.
26
+ Managed by Trellis. Edits outside this block are preserved; edits inside may be overwritten by a future `cstl update`.
27
27
 
28
28
  <!-- TRELLIS:END -->