@mindfoldhq/trellis 0.6.7 → 0.6.9

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 (174) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +38 -0
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/commands/channel/adapters/codex.d.ts +7 -1
  6. package/dist/commands/channel/adapters/codex.d.ts.map +1 -1
  7. package/dist/commands/channel/adapters/codex.js +19 -2
  8. package/dist/commands/channel/adapters/codex.js.map +1 -1
  9. package/dist/commands/channel/adapters/index.d.ts +3 -1
  10. package/dist/commands/channel/adapters/index.d.ts.map +1 -1
  11. package/dist/commands/channel/adapters/index.js +1 -1
  12. package/dist/commands/channel/adapters/index.js.map +1 -1
  13. package/dist/commands/channel/agent-loader.d.ts +2 -2
  14. package/dist/commands/channel/agent-loader.d.ts.map +1 -1
  15. package/dist/commands/channel/agent-loader.js +9 -5
  16. package/dist/commands/channel/agent-loader.js.map +1 -1
  17. package/dist/commands/channel/context-loader.d.ts +1 -1
  18. package/dist/commands/channel/context-loader.d.ts.map +1 -1
  19. package/dist/commands/channel/context-loader.js +36 -15
  20. package/dist/commands/channel/context-loader.js.map +1 -1
  21. package/dist/commands/channel/context-trust.d.ts +31 -0
  22. package/dist/commands/channel/context-trust.d.ts.map +1 -0
  23. package/dist/commands/channel/context-trust.js +139 -0
  24. package/dist/commands/channel/context-trust.js.map +1 -0
  25. package/dist/commands/channel/index.d.ts.map +1 -1
  26. package/dist/commands/channel/index.js +4 -0
  27. package/dist/commands/channel/index.js.map +1 -1
  28. package/dist/commands/channel/spawn.d.ts +3 -0
  29. package/dist/commands/channel/spawn.d.ts.map +1 -1
  30. package/dist/commands/channel/spawn.js +5 -2
  31. package/dist/commands/channel/spawn.js.map +1 -1
  32. package/dist/commands/channel/supervisor.d.ts +3 -0
  33. package/dist/commands/channel/supervisor.d.ts.map +1 -1
  34. package/dist/commands/channel/supervisor.js +1 -0
  35. package/dist/commands/channel/supervisor.js.map +1 -1
  36. package/dist/commands/init.d.ts +3 -0
  37. package/dist/commands/init.d.ts.map +1 -1
  38. package/dist/commands/init.js.map +1 -1
  39. package/dist/commands/mem.d.ts.map +1 -1
  40. package/dist/commands/mem.js +30 -9
  41. package/dist/commands/mem.js.map +1 -1
  42. package/dist/commands/update.d.ts +12 -1
  43. package/dist/commands/update.d.ts.map +1 -1
  44. package/dist/commands/update.js +75 -7
  45. package/dist/commands/update.js.map +1 -1
  46. package/dist/configurators/codex.d.ts +36 -0
  47. package/dist/configurators/codex.d.ts.map +1 -1
  48. package/dist/configurators/codex.js +111 -13
  49. package/dist/configurators/codex.js.map +1 -1
  50. package/dist/configurators/grok.d.ts +22 -0
  51. package/dist/configurators/grok.d.ts.map +1 -0
  52. package/dist/configurators/grok.js +58 -0
  53. package/dist/configurators/grok.js.map +1 -0
  54. package/dist/configurators/index.d.ts.map +1 -1
  55. package/dist/configurators/index.js +17 -2
  56. package/dist/configurators/index.js.map +1 -1
  57. package/dist/configurators/kimi.d.ts +29 -0
  58. package/dist/configurators/kimi.d.ts.map +1 -0
  59. package/dist/configurators/kimi.js +81 -0
  60. package/dist/configurators/kimi.js.map +1 -0
  61. package/dist/configurators/pi.js +9 -9
  62. package/dist/configurators/pi.js.map +1 -1
  63. package/dist/configurators/shared.d.ts.map +1 -1
  64. package/dist/configurators/shared.js +12 -4
  65. package/dist/configurators/shared.js.map +1 -1
  66. package/dist/configurators/snow.d.ts +31 -0
  67. package/dist/configurators/snow.d.ts.map +1 -0
  68. package/dist/configurators/snow.js +95 -0
  69. package/dist/configurators/snow.js.map +1 -0
  70. package/dist/configurators/workflow.d.ts +14 -0
  71. package/dist/configurators/workflow.d.ts.map +1 -1
  72. package/dist/configurators/workflow.js +37 -1
  73. package/dist/configurators/workflow.js.map +1 -1
  74. package/dist/configurators/zcode.d.ts +9 -4
  75. package/dist/configurators/zcode.d.ts.map +1 -1
  76. package/dist/configurators/zcode.js +41 -12
  77. package/dist/configurators/zcode.js.map +1 -1
  78. package/dist/migrations/manifests/0.5.0-beta.0.json +1 -1
  79. package/dist/migrations/manifests/0.6.8.json +17 -0
  80. package/dist/migrations/manifests/0.6.9.json +9 -0
  81. package/dist/templates/codex/agents/trellis-check.toml +7 -12
  82. package/dist/templates/codex/agents/trellis-implement.toml +7 -12
  83. package/dist/templates/codex/agents/trellis-research.toml +15 -15
  84. package/dist/templates/codex/config.toml +11 -0
  85. package/dist/templates/codex/hooks/session-start.py +9 -3
  86. package/dist/templates/codex/hooks.json +12 -0
  87. package/dist/templates/codex/skills/brainstorm/SKILL.md +40 -13
  88. package/dist/templates/common/bundled-skills/trellis-meta/SKILL.md +2 -2
  89. package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +1 -1
  90. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/agents.md +1 -0
  91. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/hooks-and-settings.md +1 -1
  92. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/overview.md +1 -1
  93. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/platform-map.md +10 -4
  94. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/skills-and-commands.md +2 -1
  95. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +1 -1
  96. package/dist/templates/common/skills/brainstorm.md +40 -13
  97. package/dist/templates/copilot/prompts/brainstorm.prompt.md +40 -13
  98. package/dist/templates/grok/agents/trellis-check.md +105 -0
  99. package/dist/templates/grok/agents/trellis-implement.md +116 -0
  100. package/dist/templates/grok/agents/trellis-research.md +146 -0
  101. package/dist/templates/grok/index.d.ts +16 -0
  102. package/dist/templates/grok/index.d.ts.map +1 -0
  103. package/dist/templates/grok/index.js +19 -0
  104. package/dist/templates/grok/index.js.map +1 -0
  105. package/dist/templates/kimi/agents/trellis-check.md +103 -0
  106. package/dist/templates/kimi/agents/trellis-implement.md +114 -0
  107. package/dist/templates/kimi/agents/trellis-research.md +144 -0
  108. package/dist/templates/kimi/index.d.ts +19 -0
  109. package/dist/templates/kimi/index.d.ts.map +1 -0
  110. package/dist/templates/kimi/index.js +22 -0
  111. package/dist/templates/kimi/index.js.map +1 -0
  112. package/dist/templates/omp/extensions/trellis/index.ts.txt +133 -9
  113. package/dist/templates/opencode/lib/session-utils.js +8 -2
  114. package/dist/templates/opencode/lib/trellis-context.js +263 -43
  115. package/dist/templates/opencode/plugins/inject-subagent-context.js +89 -35
  116. package/dist/templates/opencode/plugins/inject-workflow-state.js +90 -5
  117. package/dist/templates/pi/extensions/trellis/index.ts.txt +278 -24
  118. package/dist/templates/pi/settings.json +0 -3
  119. package/dist/templates/shared-hooks/index.d.ts +11 -5
  120. package/dist/templates/shared-hooks/index.d.ts.map +1 -1
  121. package/dist/templates/shared-hooks/index.js +16 -5
  122. package/dist/templates/shared-hooks/index.js.map +1 -1
  123. package/dist/templates/shared-hooks/inject-subagent-context.py +466 -104
  124. package/dist/templates/shared-hooks/inject-workflow-state.py +86 -29
  125. package/dist/templates/shared-hooks/session-start.py +26 -6
  126. package/dist/templates/snow/SNOW.md +86 -0
  127. package/dist/templates/snow/agents/trellis-check.md +135 -0
  128. package/dist/templates/snow/agents/trellis-implement.md +153 -0
  129. package/dist/templates/snow/agents/trellis-research.md +114 -0
  130. package/dist/templates/snow/hooks/beforeSubAgentStart.json +15 -0
  131. package/dist/templates/snow/hooks/onSessionStart.json +15 -0
  132. package/dist/templates/snow/hooks/onUserMessage.json +15 -0
  133. package/dist/templates/snow/hooks/write-trellis-context.py +644 -0
  134. package/dist/templates/snow/index.d.ts +26 -0
  135. package/dist/templates/snow/index.d.ts.map +1 -0
  136. package/dist/templates/snow/index.js +36 -0
  137. package/dist/templates/snow/index.js.map +1 -0
  138. package/dist/templates/template-utils.d.ts.map +1 -1
  139. package/dist/templates/template-utils.js +5 -1
  140. package/dist/templates/template-utils.js.map +1 -1
  141. package/dist/templates/trellis/config.yaml +55 -7
  142. package/dist/templates/trellis/gitattributes.txt +9 -0
  143. package/dist/templates/trellis/index.d.ts +3 -1
  144. package/dist/templates/trellis/index.d.ts.map +1 -1
  145. package/dist/templates/trellis/index.js +3 -1
  146. package/dist/templates/trellis/index.js.map +1 -1
  147. package/dist/templates/trellis/scripts/add_session.py +94 -28
  148. package/dist/templates/trellis/scripts/common/active_task.py +44 -13
  149. package/dist/templates/trellis/scripts/common/cli_adapter.py +69 -5
  150. package/dist/templates/trellis/scripts/common/config.py +105 -10
  151. package/dist/templates/trellis/scripts/common/git.py +36 -0
  152. package/dist/templates/trellis/scripts/common/io.py +16 -9
  153. package/dist/templates/trellis/scripts/common/task_context.py +101 -7
  154. package/dist/templates/trellis/scripts/common/task_store.py +149 -22
  155. package/dist/templates/trellis/scripts/common/task_utils.py +3 -1
  156. package/dist/templates/trellis/scripts/common/trellis_config.py +2 -1
  157. package/dist/templates/trellis/scripts/common/workflow_phase.py +19 -12
  158. package/dist/templates/trellis/scripts/task.py +106 -10
  159. package/dist/templates/trellis/workflow.md +20 -19
  160. package/dist/templates/zcode/agents/trellis-check.md +7 -0
  161. package/dist/templates/zcode/agents/trellis-implement.md +13 -4
  162. package/dist/templates/zcode/config.json +42 -0
  163. package/dist/templates/zcode/index.d.ts +10 -1
  164. package/dist/templates/zcode/index.d.ts.map +1 -1
  165. package/dist/templates/zcode/index.js +12 -2
  166. package/dist/templates/zcode/index.js.map +1 -1
  167. package/dist/types/ai-tools.d.ts +4 -4
  168. package/dist/types/ai-tools.d.ts.map +1 -1
  169. package/dist/types/ai-tools.js +114 -2
  170. package/dist/types/ai-tools.js.map +1 -1
  171. package/dist/utils/template-fetcher.d.ts.map +1 -1
  172. package/dist/utils/template-fetcher.js +0 -3
  173. package/dist/utils/template-fetcher.js.map +1 -1
  174. package/package.json +2 -2
@@ -5,11 +5,13 @@ description: "Guide requirements discovery for a Trellis task after task-creatio
5
5
 
6
6
  # Trellis Brainstorm
7
7
 
8
- ## Non-Negotiable Interview Contract
8
+ ## Non-Negotiable Planning Contract
9
9
 
10
- 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.
10
+ A request to build, implement, fix, refactor, or "go ahead" is not approval to leave planning. Task-creation consent is also not implementation approval.
11
11
 
12
- Ask the questions one at a time.
12
+ For every non-trivial task, the user must respond at least once after the initial request before implementation begins. If no clarification is needed, that response must approve the final planning summary described below.
13
+
14
+ While any user-owned product, scope, UX, compatibility, risk, or acceptance decision remains unresolved, end the turn with exactly one highest-value question. Do not edit product code, dispatch implementation, or run `task.py start`.
13
15
 
14
16
  ## Non-Negotiable Evidence Rule
15
17
 
@@ -17,7 +19,9 @@ If a question can be answered by exploring the codebase, explore the codebase in
17
19
 
18
20
  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.
19
21
 
20
- 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.
22
+ Do not ask the user to confirm facts that the repository can answer. Ask only for product intent, preference, scope, risk tolerance, acceptance behavior, or decisions that remain ambiguous after inspection.
23
+
24
+ Repository evidence establishes current behavior and technical constraints. The user's intended behavior, feature scope boundaries, and UX preferences are never answerable by repository evidence alone, even when an existing pattern exists; existing patterns are options and recommendation evidence, not decisions.
21
25
 
22
26
  ---
23
27
 
@@ -49,11 +53,12 @@ Use a concise title from the user's request. Use a slug without a date prefix. `
49
53
  - product intent still needed from the user
50
54
  - scope or risk decisions still needed from the user
51
55
  - likely out-of-scope items
52
- 4. Ask the single highest-value remaining question.
53
- 5. Include your recommended answer with the question.
54
- 6. After each user answer, update `prd.md` before continuing.
55
- 7. For complex tasks, create or update `design.md` and `implement.md` before implementation starts.
56
- 8. Before final review or `task.py start`, run the PRD convergence pass below.
56
+ 4. If a user-owned decision remains, ask the single highest-value question, include your recommendation and trade-off, then stop. Do not perform implementation work in the same turn.
57
+ 5. After each user answer, update `prd.md`, recompute the decision inventory, and repeat from step 2.
58
+ 6. When no user-owned decision remains, create or update `design.md` and `implement.md` for complex tasks.
59
+ 7. Run the requirement convergence gate, then the PRD convergence pass.
60
+ 8. Present the final planning summary and stop. Do not run `task.py start` or edit product code in the same turn.
61
+ 9. Only a subsequent user message that explicitly approves the latest planning summary authorizes `task.py start` and implementation. If the artifacts change materially after approval, repeat the final review.
57
62
 
58
63
  Do not invent a project-specific product/spec hierarchy. If the repository already has product, domain, or spec docs, use them. If it does not, proceed with the evidence that exists.
59
64
 
@@ -70,6 +75,27 @@ Each question must include:
70
75
 
71
76
  Do not ask process questions such as whether to search, inspect files, or continue brainstorming. Do the evidence work directly. Ask the user only when the remaining issue is a product decision, preference, scope boundary, or risk tolerance choice.
72
77
 
78
+ Recommendations are not default selections. Never choose a recommended product decision on the user's behalf merely because the user asked for implementation.
79
+
80
+ Do not manufacture clarification questions when the request and repository evidence already resolve every decision. In that case, proceed directly to the final planning summary, which still requires a subsequent explicit approval.
81
+
82
+ The final review is a required phase-transition gate, not a prohibited process question. Task-creation consent, the initial implementation request, and approval given before the latest final summary do not satisfy this gate.
83
+
84
+ ## Requirement Convergence Gate
85
+
86
+ Before final review, verify all of the following:
87
+
88
+ - the user outcome and product value are explicit
89
+ - in-scope and out-of-scope behavior are explicit
90
+ - acceptance criteria describe observable outcomes
91
+ - user-owned product, scope, UX, compatibility, and risk decisions are resolved
92
+ - blocking open questions are empty
93
+ - technical unknowns are researched or explicitly deferred without changing MVP behavior
94
+
95
+ Lightweight tasks may omit `design.md` and `implement.md`; they may not skip evidence inspection, requirement convergence, final review, or fresh implementation approval.
96
+
97
+ The final planning summary must show Goal, In Scope, Out of Scope, Acceptance Criteria, Key Decisions, relevant Risks or Deferred Items, and artifact status.
98
+
73
99
  ## Artifact Rules
74
100
 
75
101
  `prd.md` records requirements and acceptance:
@@ -111,7 +137,7 @@ The pass must be lossless:
111
137
  - Remove resolved open questions instead of leaving empty or already-answered sections.
112
138
  - Merge parallel bug and requirement lists when they describe the same work; keep each defect's severity, evidence, and file:line anchors on the owning requirement.
113
139
  - Preserve every file:line anchor, decision, constraint, requirement ID, and acceptance-criteria mapping.
114
- - Keep only genuinely blocking open questions.
140
+ - Do not proceed to final review while any blocking open question remains.
115
141
 
116
142
  After the pass, read `prd.md` top to bottom and verify that no fact is repeated across sections unless the repetition adds new information.
117
143
 
@@ -122,9 +148,10 @@ Before declaring planning ready:
122
148
  - `prd.md` contains testable acceptance criteria.
123
149
  - `prd.md` has passed the PRD convergence pass: no unresolved temporary brainstorm sections, no duplicate facts across sections, and no lost anchors, decisions, or acceptance mappings.
124
150
  - Repository-answerable questions have already been answered through inspection.
125
- - Remaining open questions are genuinely about user intent or scope.
151
+ - Blocking open questions are empty.
126
152
  - Complex tasks have `design.md` and `implement.md`.
127
153
  - Sub-agent-dispatch tasks have real curated entries in both `implement.jsonl` and `check.jsonl`; seed-only manifests are not ready.
128
- - The user has reviewed the final planning artifacts or explicitly approved proceeding.
154
+ - The latest final planning summary has been presented to the user.
155
+ - In a subsequent message, the user explicitly approved that summary for implementation.
129
156
 
130
- Do not start implementation until the user approves or asks for implementation.
157
+ Do not start implementation merely because the user originally asked for implementation.
@@ -12,7 +12,7 @@ Trellis v0.6 adds three architectural surfaces on top of the pre-v0.6 workflow /
12
12
  The default operating scope is local files in the user project:
13
13
 
14
14
  - `.trellis/`: workflow, config, tasks, spec, workspace, scripts, bundled runtime agents, and runtime state.
15
- - Platform directories: `.claude/`, `.codex/`, `.cursor/`, `.opencode/`, `.kiro/`, `.gemini/`, `.qoder/`, `.codebuddy/`, `.github/`, `.factory/`, `.pi/`, `.reasonix/`, `.kilocode/`, `.agent/`, `.devin/`, and similar directories. Pi additionally exposes a native `trellis_subagent` tool with `single` / `parallel` / `chain` dispatch modes, throttled progress cards, and `isTrellisAgent()` validation on top of the file layout. Reasonix stores both workflow skills and subagent skills as `.reasonix/skills/<name>/SKILL.md`; subagent skills carry `runAs: subagent` frontmatter.
15
+ - Platform directories: `.claude/`, `.codex/`, `.cursor/`, `.opencode/`, `.kiro/`, `.gemini/`, `.qoder/`, `.codebuddy/`, `.github/`, `.factory/`, `.pi/`, `.reasonix/`, `.kilocode/`, `.agent/`, `.devin/`, `.kimi-code/`, and similar directories. Pi additionally exposes a native `trellis_subagent` tool with `single` / `parallel` / `chain` dispatch modes, throttled progress cards, and `isTrellisAgent()` validation on top of the file layout. Reasonix stores both workflow skills and subagent skills as `.reasonix/skills/<name>/SKILL.md`; subagent skills carry `runAs: subagent` frontmatter. Kimi Code keeps workflow skills in the shared `.agents/skills/` layer and delivers commands plus agent prompts as `.kimi-code/skills/<name>/SKILL.md`.
16
16
  - Shared skill layer: `.agents/skills/`.
17
17
  - User-owned channel store outside the project tree: `~/.trellis/channels/<project>/<channel>/events.jsonl`.
18
18
  - Raw platform conversation logs queryable via `trellis mem`: `~/.claude/projects/`, `~/.codex/sessions/`, and `~/.pi/agent/sessions/` (OpenCode adapter degraded for the v0.6 line).
@@ -44,7 +44,7 @@ Do not assume the user has the Trellis source repository. Do not default to modi
44
44
  ### Platform Files
45
45
 
46
46
  - `references/platform-files/overview.md`: How shared `.trellis/` files relate to platform directories and the four platform integration modes (hook-driven, agent prelude, main-session workflow, channel runtime).
47
- - `references/platform-files/platform-map.md`: Platform directories and paths for skills, agents, hooks, and extensions across all 15 supported platforms including Reasonix and Pi's native `trellis_subagent` extension.
47
+ - `references/platform-files/platform-map.md`: Platform directories and paths for skills, agents, hooks, and extensions across all supported platforms including Reasonix and Pi's native `trellis_subagent` extension.
48
48
  - `references/platform-files/hooks-and-settings.md`: How settings/config files, hooks, plugins, and extensions connect to Trellis; covers `channel.worker_guard.*` and `codex.dispatch_mode`.
49
49
  - `references/platform-files/agents.md`: Per-platform `trellis-research` / `trellis-implement` / `trellis-check` sub-agent files plus bundled `.trellis/agents/{check,implement}.md` for the channel runtime.
50
50
  - `references/platform-files/skills-and-commands.md`: Differences between skills, commands, prompts, and workflows, plus how to change them.
@@ -87,7 +87,7 @@ If a command only repeats workflow rules, prefer making it reference/read `.trel
87
87
  | CodeBuddy | `.codebuddy/skills/`, `.codebuddy/commands/` |
88
88
  | GitHub Copilot | `.github/skills/`, `.github/prompts/` |
89
89
  | Factory Droid | `.factory/skills/`, `.factory/commands/` |
90
- | Pi Agent | `.pi/skills/` |
90
+ | Pi Agent | `.agents/skills/` |
91
91
  | Reasonix | `.reasonix/skills/` (no separate commands dir; slash commands built into the platform) |
92
92
  | ZCode | `.zcode/skills/`, `.zcode/commands/` |
93
93
  | Kilo / Antigravity / Devin | workflows + skills |
@@ -34,6 +34,7 @@ Agent files should not become generic chat prompts. They should define input sou
34
34
  | Pi Agent | `.pi/agents/trellis-*.md` |
35
35
  | Reasonix | `.reasonix/skills/trellis-*/SKILL.md` (subagent frontmatter) |
36
36
  | ZCode | `.zcode/agents/trellis-*.md` |
37
+ | Kimi Code | `.kimi-code/skills/trellis-*/SKILL.md` (agent prompts as skills, dispatched to the built-in `coder`; research needs its file-editing tools to persist findings) |
37
38
 
38
39
  GitHub Copilot agent/prompt support is provided by a combination of directories such as `.github/agents/`, `.github/prompts/`, and `.github/skills/`; inspect the files actually generated in the user project.
39
40
 
@@ -29,7 +29,7 @@ Common files:
29
29
  | Pi Agent | `.pi/settings.json`, `.pi/extensions/trellis/` |
30
30
  | Trae IDE | `.trae/hooks.json` |
31
31
 
32
- Reasonix and ZCode are pull-based platforms that do not use hooks or settings files; their agent files contain prelude instructions to read context after startup.
32
+ Reasonix is a pull-based platform whose agent files contain prelude instructions to read context after startup. ZCode uses `.zcode/config.json` with shared hooks, including PreToolUse for sub-agent prompt injection. Kimi Code is likewise pull-based and has no project-level settings/hooks file Trellis writes (hooks live only in the user-level `~/.kimi-code/config.toml`), so its agent prompts ship as skills with the same prelude.
33
33
 
34
34
  Whether these files exist in a project depends on which `trellis init --<platform>` flags the user ran.
35
35
 
@@ -5,7 +5,7 @@ Trellis connects the same local architecture to different AI tools. `.trellis/`
5
5
  When a local AI modifies Trellis, it should distinguish two file categories first:
6
6
 
7
7
  - **Shared files**: `.trellis/workflow.md`, `.trellis/tasks/`, `.trellis/spec/`, `.trellis/scripts/`.
8
- - **Platform files**: `.claude/`, `.codex/`, `.cursor/`, `.opencode/`, `.kiro/`, `.gemini/`, `.qoder/`, `.codebuddy/`, `.github/`, `.factory/`, `.pi/`, `.trae/`, `.kilocode/`, `.agent/`, `.devin/`, `.reasonix/`, `.zcode/`, and similar directories.
8
+ - **Platform files**: `.claude/`, `.snow/`, `.codex/`, `.cursor/`, `.opencode/`, `.kiro/`, `.gemini/`, `.qoder/`, `.codebuddy/`, `.github/`, `.factory/`, `.pi/`, `.trae/`, `.kilocode/`, `.agent/`, `.devin/`, `.reasonix/`, `.zcode/`, `.kimi-code/`, and similar directories.
9
9
 
10
10
  Platform files do not store business state. They let the corresponding AI tool read Trellis state, call Trellis scripts, and load Trellis skills/agents/hooks.
11
11
 
@@ -19,10 +19,13 @@ This page lists common Trellis file locations in a user project by platform. Whe
19
19
  | CodeBuddy | `--codebuddy` | `.codebuddy/` | `.codebuddy/skills/` | `.codebuddy/agents/` | `.codebuddy/hooks/` + `.codebuddy/settings.json` |
20
20
  | GitHub Copilot | `--copilot` | `.github/` | `.github/skills/` | `.github/agents/` | `.github/copilot/hooks/` + prompts |
21
21
  | Factory Droid | `--droid` | `.factory/` | `.factory/skills/` | `.factory/droids/` | `.factory/hooks/` + settings |
22
- | Pi Agent | `--pi` | `.pi/` | `.pi/skills/` | `.pi/agents/` | `.pi/extensions/trellis/` (native `trellis_subagent` tool) + `.pi/settings.json` |
22
+ | Pi Agent | `--pi` | `.pi/` | `.agents/skills/` | `.pi/agents/` | `.pi/extensions/trellis/` (native `trellis_subagent` tool) + `.pi/settings.json` |
23
23
  | Trae IDE | `--trae` | `.trae/` | `.trae/skills/` | `.trae/agents/` | `.trae/hooks/` + `.trae/hooks.json` |
24
24
  | Reasonix | `--reasonix` | `.reasonix/` | `.reasonix/skills/` | None — sub-agents are skills with `runAs: subagent` frontmatter | None |
25
- | ZCode | `--zcode` | `.zcode/` | `.zcode/skills/` | `.zcode/agents/` | pull-based prelude (no hooks) |
25
+ | ZCode | `--zcode` | `.zcode/` | `.zcode/skills/` | `.zcode/agents/` | `.zcode/hooks/` + `.zcode/config.json` (SessionStart + UserPromptSubmit + PreToolUse Agent/Task); sub-agents use hook-injected context |
26
+ | Grok Build | `--grok` | `.grok/` | `.grok/skills/` | `.grok/agents/` | pull-based prelude (no hooks; flat `.grok/commands/trellis-*.md`) |
27
+ | Kimi Code | `--kimi` | `.kimi-code/` | `.agents/skills/` (shared) + `.kimi-code/skills/` | None — agent prompts are skills under `.kimi-code/skills/` and dispatch to the built-in `coder` | None (pull-based prelude; no project hooks/settings) |
28
+ | Snow CLI | `--snow` | `.snow/` | `.snow/skills/` | `.snow/agents/` (auto-discovered; primary path) | class-1: auto inject + project agents + `beforeSubAgentStart` (`.snow/hooks/` `session`/`user`/`subagent` modes -> `additionalContext` JSON); no legacy sub-agent JSON; commands `.snow/commands/trellis-*.json` |
26
29
 
27
30
  ## Capability Groups
28
31
 
@@ -44,6 +47,9 @@ These platforms usually have `trellis-research`, `trellis-implement`, and `trell
44
47
  - Trae IDE
45
48
  - Reasonix (delivered as skills with `runAs: subagent` under `.reasonix/skills/`, not as a separate `agents/` directory)
46
49
  - ZCode
50
+ - Grok Build (`.grok/agents/`; dispatch via `spawn_subagent` with `subagent_type`)
51
+ - Kimi Code (delivered as skills under `.kimi-code/skills/`; dispatched to the built-in `coder`, including research because it must persist files)
52
+ - Snow CLI (`.snow/agents/`; auto-discovered project agents + class-1 hooks)
47
53
 
48
54
  When changing implementation/check/research behavior, look for the corresponding platform agent files first.
49
55
 
@@ -67,7 +73,7 @@ When changing behavior, inspect workflows and skills first. Do not assume Trelli
67
73
 
68
74
  ### Shared `.agents/skills/`
69
75
 
70
- Codex and Gemini CLI write the shared `.agents/skills/` layer. Some tools that support agentskills.io can also read this directory. If the user wants multiple compatible tools to share one skill, consider `.agents/skills/` first, but do not assume every platform reads it. ZCode keeps Trellis-managed skills under `.zcode/skills/`.
76
+ Codex, Gemini CLI, Pi Agent, and Kimi Code write the shared `.agents/skills/` layer. Some tools that support agentskills.io can also read this directory. If the user wants multiple compatible tools to share one skill, consider `.agents/skills/` first, but do not assume every platform reads it. ZCode keeps Trellis-managed skills under `.zcode/skills/`.
71
77
 
72
78
  ## Decision Rules When Modifying Platform Files
73
79
 
@@ -91,7 +97,7 @@ Do not delete a custom file just because it is not listed in this path table.
91
97
 
92
98
  Extension-backed platform. OMP native provider auto-discovers all subdirectories.
93
99
 
94
- ```
100
+ ```text
95
101
  .omp/
96
102
  ├── commands/ # Slash commands (flat .md)
97
103
  ├── skills/ # Auto-triggered skills (SKILL.md per dir)
@@ -30,9 +30,10 @@ Trellis workflow skills usually share one semantic set: brainstorm, before-dev,
30
30
  | CodeBuddy | `.codebuddy/skills/`, `.codebuddy/commands/` |
31
31
  | GitHub Copilot | `.github/skills/`, `.github/prompts/` |
32
32
  | Factory Droid | `.factory/skills/`, `.factory/commands/` |
33
- | Pi Agent | `.pi/skills/` |
33
+ | Pi Agent | `.agents/skills/` |
34
34
  | Reasonix | `.reasonix/skills/` |
35
35
  | ZCode | `.zcode/skills/`, `.zcode/commands/` |
36
+ | Kimi Code | `.agents/skills/`, `.kimi-code/skills/` (commands delivered as `/skill:trellis-*` skills) |
36
37
 
37
38
  In a user project, use the files actually generated by init as authoritative.
38
39
 
@@ -11,7 +11,7 @@ It is intentionally a **capability skill, not a workflow**. There is no fixed ou
11
11
 
12
12
  ## What `trellis mem` is
13
13
 
14
- A local CLI that indexes the user's past Claude Code, Codex, and Pi Agent conversation logs and lets you list, search, slice by Trellis task boundaries, and dump cleaned dialogue from them. Claude and Codex use `~/.claude/projects/` and `~/.codex/sessions/`. Pi uses its default or environment-configured session root, global `~/.pi/agent/settings.json`, and the scoped project's `.pi/settings.json`; relative `sessionDir` values resolve from the settings file directory. Project-local Pi settings require project-scoped lookup through the current cwd or `--cwd`. OpenCode logs are not yet indexable (provider adapter pending) — when an OpenCode session is the obvious target, surface that limitation rather than guessing.
14
+ A local CLI that indexes the user's past Claude Code, Codex, Pi Agent, and ZCode conversation logs and lets you list, search, slice by Trellis task boundaries, and dump cleaned dialogue from them. Claude and Codex use `~/.claude/projects/` and `~/.codex/sessions/`. Pi uses its default or environment-configured session root, global `~/.pi/agent/settings.json`, and the scoped project's `.pi/settings.json`; relative `sessionDir` values resolve from the settings file directory. Project-local Pi settings require project-scoped lookup through the current cwd or `--cwd`. ZCode uses `~/.zcode/cli/db/db.sqlite`. OpenCode logs are not yet indexable (provider adapter pending) — when an OpenCode session is the obvious target, surface that limitation rather than guessing.
15
15
 
16
16
  Nothing in `mem` is uploaded. All reads are local.
17
17
 
@@ -1,10 +1,12 @@
1
1
  # Trellis Brainstorm
2
2
 
3
- ## Non-Negotiable Interview Contract
3
+ ## Non-Negotiable Planning Contract
4
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.
5
+ A request to build, implement, fix, refactor, or "go ahead" is not approval to leave planning. Task-creation consent is also not implementation approval.
6
6
 
7
- Ask the questions one at a time.
7
+ For every non-trivial task, the user must respond at least once after the initial request before implementation begins. If no clarification is needed, that response must approve the final planning summary described below.
8
+
9
+ While any user-owned product, scope, UX, compatibility, risk, or acceptance decision remains unresolved, end the turn with exactly one highest-value question. Do not edit product code, dispatch implementation, or run `task.py start`.
8
10
 
9
11
  ## Non-Negotiable Evidence Rule
10
12
 
@@ -12,7 +14,9 @@ If a question can be answered by exploring the codebase, explore the codebase in
12
14
 
13
15
  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
16
 
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.
17
+ Do not ask the user to confirm facts that the repository can answer. Ask only for product intent, preference, scope, risk tolerance, acceptance behavior, or decisions that remain ambiguous after inspection.
18
+
19
+ Repository evidence establishes current behavior and technical constraints. The user's intended behavior, feature scope boundaries, and UX preferences are never answerable by repository evidence alone, even when an existing pattern exists; existing patterns are options and recommendation evidence, not decisions.
16
20
 
17
21
  ---
18
22
 
@@ -44,11 +48,12 @@ Use a concise title from the user's request. Use a slug without a date prefix. `
44
48
  - product intent still needed from the user
45
49
  - scope or risk decisions still needed from the user
46
50
  - likely out-of-scope items
47
- 4. Ask the single highest-value remaining question.
48
- 5. Include your recommended answer with the question.
49
- 6. After each user answer, update `prd.md` before continuing.
50
- 7. For complex tasks, create or update `design.md` and `implement.md` before implementation starts.
51
- 8. Before final review or `task.py start`, run the PRD convergence pass below.
51
+ 4. If a user-owned decision remains, ask the single highest-value question, include your recommendation and trade-off, then stop. Do not perform implementation work in the same turn.
52
+ 5. After each user answer, update `prd.md`, recompute the decision inventory, and repeat from step 2.
53
+ 6. When no user-owned decision remains, create or update `design.md` and `implement.md` for complex tasks.
54
+ 7. Run the requirement convergence gate, then the PRD convergence pass.
55
+ 8. Present the final planning summary and stop. Do not run `task.py start` or edit product code in the same turn.
56
+ 9. Only a subsequent user message that explicitly approves the latest planning summary authorizes `task.py start` and implementation. If the artifacts change materially after approval, repeat the final review.
52
57
 
53
58
  Do not invent a project-specific product/spec hierarchy. If the repository already has product, domain, or spec docs, use them. If it does not, proceed with the evidence that exists.
54
59
 
@@ -65,6 +70,12 @@ Each question must include:
65
70
 
66
71
  Do not ask process questions such as whether to search, inspect files, or continue brainstorming. Do the evidence work directly. Ask the user only when the remaining issue is a product decision, preference, scope boundary, or risk tolerance choice.
67
72
 
73
+ Recommendations are not default selections. Never choose a recommended product decision on the user's behalf merely because the user asked for implementation.
74
+
75
+ Do not manufacture clarification questions when the request and repository evidence already resolve every decision. In that case, proceed directly to the final planning summary, which still requires a subsequent explicit approval.
76
+
77
+ The final review is a required phase-transition gate, not a prohibited process question. Task-creation consent, the initial implementation request, and approval given before the latest final summary do not satisfy this gate.
78
+
68
79
  ## Thinking Framework: First Principles Analysis
69
80
 
70
81
  When requirements are vague, solutions feel over-engineered, or you're about to add complexity "because everyone does" — decompose to fundamental truths before reasoning upward.
@@ -108,6 +119,21 @@ For each component of the current plan:
108
119
  - What assumptions need verification?
109
120
  - What's the simplest experiment to test this?
110
121
 
122
+ ## Requirement Convergence Gate
123
+
124
+ Before final review, verify all of the following:
125
+
126
+ - the user outcome and product value are explicit
127
+ - in-scope and out-of-scope behavior are explicit
128
+ - acceptance criteria describe observable outcomes
129
+ - user-owned product, scope, UX, compatibility, and risk decisions are resolved
130
+ - blocking open questions are empty
131
+ - technical unknowns are researched or explicitly deferred without changing MVP behavior
132
+
133
+ Lightweight tasks may omit `design.md` and `implement.md`; they may not skip evidence inspection, requirement convergence, final review, or fresh implementation approval.
134
+
135
+ The final planning summary must show Goal, In Scope, Out of Scope, Acceptance Criteria, Key Decisions, relevant Risks or Deferred Items, and artifact status.
136
+
111
137
  ## Artifact Rules
112
138
 
113
139
  `prd.md` records requirements and acceptance:
@@ -149,7 +175,7 @@ The pass must be lossless:
149
175
  - Remove resolved open questions instead of leaving empty or already-answered sections.
150
176
  - Merge parallel bug and requirement lists when they describe the same work; keep each defect's severity, evidence, and file:line anchors on the owning requirement.
151
177
  - Preserve every file:line anchor, decision, constraint, requirement ID, and acceptance-criteria mapping.
152
- - Keep only genuinely blocking open questions.
178
+ - Do not proceed to final review while any blocking open question remains.
153
179
 
154
180
  After the pass, read `prd.md` top to bottom and verify that no fact is repeated across sections unless the repetition adds new information.
155
181
 
@@ -160,9 +186,10 @@ Before declaring planning ready:
160
186
  - `prd.md` contains testable acceptance criteria.
161
187
  - `prd.md` has passed the PRD convergence pass: no unresolved temporary brainstorm sections, no duplicate facts across sections, and no lost anchors, decisions, or acceptance mappings.
162
188
  - Repository-answerable questions have already been answered through inspection.
163
- - Remaining open questions are genuinely about user intent or scope.
189
+ - Blocking open questions are empty.
164
190
  - Complex tasks have `design.md` and `implement.md`.
165
191
  - Sub-agent-dispatch tasks have real curated entries in both `implement.jsonl` and `check.jsonl`; seed-only manifests are not ready.
166
- - The user has reviewed the final planning artifacts or explicitly approved proceeding.
192
+ - The latest final planning summary has been presented to the user.
193
+ - In a subsequent message, the user explicitly approved that summary for implementation.
167
194
 
168
- Do not start implementation until the user approves or asks for implementation.
195
+ Do not start implementation merely because the user originally asked for implementation.
@@ -4,11 +4,13 @@ description: "Guide requirements discovery for a Trellis task after task-creatio
4
4
 
5
5
  # Trellis Brainstorm
6
6
 
7
- ## Non-Negotiable Interview Contract
7
+ ## Non-Negotiable Planning Contract
8
8
 
9
- 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.
9
+ A request to build, implement, fix, refactor, or "go ahead" is not approval to leave planning. Task-creation consent is also not implementation approval.
10
10
 
11
- Ask the questions one at a time.
11
+ For every non-trivial task, the user must respond at least once after the initial request before implementation begins. If no clarification is needed, that response must approve the final planning summary described below.
12
+
13
+ While any user-owned product, scope, UX, compatibility, risk, or acceptance decision remains unresolved, end the turn with exactly one highest-value question. Do not edit product code, dispatch implementation, or run `task.py start`.
12
14
 
13
15
  ## Non-Negotiable Evidence Rule
14
16
 
@@ -16,7 +18,9 @@ If a question can be answered by exploring the codebase, explore the codebase in
16
18
 
17
19
  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.
18
20
 
19
- 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.
21
+ Do not ask the user to confirm facts that the repository can answer. Ask only for product intent, preference, scope, risk tolerance, acceptance behavior, or decisions that remain ambiguous after inspection.
22
+
23
+ Repository evidence establishes current behavior and technical constraints. The user's intended behavior, feature scope boundaries, and UX preferences are never answerable by repository evidence alone, even when an existing pattern exists; existing patterns are options and recommendation evidence, not decisions.
20
24
 
21
25
  ---
22
26
 
@@ -48,11 +52,12 @@ Use a concise title from the user's request. Use a slug without a date prefix. `
48
52
  - product intent still needed from the user
49
53
  - scope or risk decisions still needed from the user
50
54
  - likely out-of-scope items
51
- 4. Ask the single highest-value remaining question.
52
- 5. Include your recommended answer with the question.
53
- 6. After each user answer, update `prd.md` before continuing.
54
- 7. For complex tasks, create or update `design.md` and `implement.md` before implementation starts.
55
- 8. Before final review or `task.py start`, run the PRD convergence pass below.
55
+ 4. If a user-owned decision remains, ask the single highest-value question, include your recommendation and trade-off, then stop. Do not perform implementation work in the same turn.
56
+ 5. After each user answer, update `prd.md`, recompute the decision inventory, and repeat from step 2.
57
+ 6. When no user-owned decision remains, create or update `design.md` and `implement.md` for complex tasks.
58
+ 7. Run the requirement convergence gate, then the PRD convergence pass.
59
+ 8. Present the final planning summary and stop. Do not run `task.py start` or edit product code in the same turn.
60
+ 9. Only a subsequent user message that explicitly approves the latest planning summary authorizes `task.py start` and implementation. If the artifacts change materially after approval, repeat the final review.
56
61
 
57
62
  Do not invent a project-specific product/spec hierarchy. If the repository already has product, domain, or spec docs, use them. If it does not, proceed with the evidence that exists.
58
63
 
@@ -69,6 +74,27 @@ Each question must include:
69
74
 
70
75
  Do not ask process questions such as whether to search, inspect files, or continue brainstorming. Do the evidence work directly. Ask the user only when the remaining issue is a product decision, preference, scope boundary, or risk tolerance choice.
71
76
 
77
+ Recommendations are not default selections. Never choose a recommended product decision on the user's behalf merely because the user asked for implementation.
78
+
79
+ Do not manufacture clarification questions when the request and repository evidence already resolve every decision. In that case, proceed directly to the final planning summary, which still requires a subsequent explicit approval.
80
+
81
+ The final review is a required phase-transition gate, not a prohibited process question. Task-creation consent, the initial implementation request, and approval given before the latest final summary do not satisfy this gate.
82
+
83
+ ## Requirement Convergence Gate
84
+
85
+ Before final review, verify all of the following:
86
+
87
+ - the user outcome and product value are explicit
88
+ - in-scope and out-of-scope behavior are explicit
89
+ - acceptance criteria describe observable outcomes
90
+ - user-owned product, scope, UX, compatibility, and risk decisions are resolved
91
+ - blocking open questions are empty
92
+ - technical unknowns are researched or explicitly deferred without changing MVP behavior
93
+
94
+ Lightweight tasks may omit `design.md` and `implement.md`; they may not skip evidence inspection, requirement convergence, final review, or fresh implementation approval.
95
+
96
+ The final planning summary must show Goal, In Scope, Out of Scope, Acceptance Criteria, Key Decisions, relevant Risks or Deferred Items, and artifact status.
97
+
72
98
  ## Artifact Rules
73
99
 
74
100
  `prd.md` records requirements and acceptance:
@@ -110,7 +136,7 @@ The pass must be lossless:
110
136
  - Remove resolved open questions instead of leaving empty or already-answered sections.
111
137
  - Merge parallel bug and requirement lists when they describe the same work; keep each defect's severity, evidence, and file:line anchors on the owning requirement.
112
138
  - Preserve every file:line anchor, decision, constraint, requirement ID, and acceptance-criteria mapping.
113
- - Keep only genuinely blocking open questions.
139
+ - Do not proceed to final review while any blocking open question remains.
114
140
 
115
141
  After the pass, read `prd.md` top to bottom and verify that no fact is repeated across sections unless the repetition adds new information.
116
142
 
@@ -121,9 +147,10 @@ Before declaring planning ready:
121
147
  - `prd.md` contains testable acceptance criteria.
122
148
  - `prd.md` has passed the PRD convergence pass: no unresolved temporary brainstorm sections, no duplicate facts across sections, and no lost anchors, decisions, or acceptance mappings.
123
149
  - Repository-answerable questions have already been answered through inspection.
124
- - Remaining open questions are genuinely about user intent or scope.
150
+ - Blocking open questions are empty.
125
151
  - Complex tasks have `design.md` and `implement.md`.
126
152
  - Sub-agent-dispatch tasks have real curated entries in both `implement.jsonl` and `check.jsonl`; seed-only manifests are not ready.
127
- - The user has reviewed the final planning artifacts or explicitly approved proceeding.
153
+ - The latest final planning summary has been presented to the user.
154
+ - In a subsequent message, the user explicitly approved that summary for implementation.
128
155
 
129
- Do not start implementation until the user approves or asks for implementation.
156
+ Do not start implementation merely because the user originally asked for implementation.
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: trellis-check
3
+ description: |
4
+ Code quality check expert for Trellis. Reviews code changes against specs
5
+ and self-fixes issues. Dispatch via spawn_subagent with subagent_type
6
+ trellis-check; first prompt line must be Active task: <path>.
7
+ ---
8
+ # Check Agent
9
+
10
+ You are the Check Agent in the Trellis workflow.
11
+
12
+ ## Recursion Guard
13
+
14
+ You are already the `trellis-check` sub-agent that the main session dispatched. Do the review and fixes directly.
15
+
16
+ - Do NOT call `spawn_subagent` for another `trellis-check` or `trellis-implement`.
17
+ - If workflow.md, skills, or the parent prompt say to dispatch `trellis-implement` / `trellis-check`, treat that as a main-session instruction that is already satisfied by your current role.
18
+ - Only the main session may dispatch Trellis implement/check agents. If more implementation work is needed, report that recommendation instead of spawning.
19
+
20
+ ## Dispatch note (main session)
21
+
22
+ On Grok Build, the main session launches this agent with:
23
+
24
+ ```python
25
+ spawn_subagent(
26
+ subagent_type="trellis-check",
27
+ prompt="Active task: <path from task.py current>\n..."
28
+ )
29
+ ```
30
+
31
+ Grok does not auto-inject SessionStart task context. Always pull context as required below.
32
+
33
+ ## Context
34
+
35
+ Before checking, read:
36
+ - `.trellis/spec/` - Development guidelines
37
+ - Pre-commit checklist for quality standards
38
+
39
+ ## Core Responsibilities
40
+
41
+ 1. **Get code changes** - Use git diff to get uncommitted code
42
+ 2. **Check against specs** - Verify code follows guidelines
43
+ 3. **Self-fix** - Fix issues yourself, not just report them
44
+ 4. **Run verification** - typecheck and lint
45
+
46
+ ## Important
47
+
48
+ **Fix issues yourself**, don't just report them.
49
+
50
+ You have write and edit tools, you can modify code directly.
51
+
52
+ ---
53
+
54
+ ## Workflow
55
+
56
+ ### Step 1: Get Changes
57
+
58
+ ```bash
59
+ git diff --name-only # List changed files
60
+ git diff # View specific changes
61
+ ```
62
+
63
+ ### Step 2: Check Against Specs
64
+
65
+ Read relevant specs in `.trellis/spec/` to check code:
66
+
67
+ - Does it follow directory structure conventions
68
+ - Does it follow naming conventions
69
+ - Does it follow code patterns
70
+ - Are there missing types
71
+ - Are there potential bugs
72
+
73
+ ### Step 3: Self-Fix
74
+
75
+ After finding issues:
76
+
77
+ 1. Fix the issue directly (use edit tool)
78
+ 2. Record what was fixed
79
+ 3. Continue checking other issues
80
+
81
+ ### Step 4: Run Verification
82
+
83
+ Run project's lint and typecheck commands to verify changes.
84
+
85
+ If failed, fix issues and re-run.
86
+
87
+ ---
88
+
89
+ ## Report Format
90
+
91
+ ```markdown
92
+ ## Self-Check Complete
93
+
94
+ ### Files Checked
95
+
96
+ - list changed files
97
+
98
+ ### Issues Fixed
99
+
100
+ - what you fixed
101
+
102
+ ### Verification
103
+
104
+ - Lint / typecheck results
105
+ ```