@techierathore/techieflow 1.0.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 (151) hide show
  1. package/.claude/commands/TechieFlow/agents/analyst.md +97 -0
  2. package/.claude/commands/TechieFlow/agents/architect.md +84 -0
  3. package/.claude/commands/TechieFlow/agents/flow-master.md +217 -0
  4. package/.claude/commands/TechieFlow/agents/verifier.md +72 -0
  5. package/.claude/commands/TechieFlow/tasks/_metrics-emit-gate.md +138 -0
  6. package/.claude/commands/TechieFlow/tasks/_smoke-test-policy.md +98 -0
  7. package/.claude/commands/TechieFlow/tasks/_status-update-gate.md +78 -0
  8. package/.claude/commands/TechieFlow/tasks/_yolo-mode.md +77 -0
  9. package/.claude/commands/TechieFlow/tasks/advanced-elicitation.md +117 -0
  10. package/.claude/commands/TechieFlow/tasks/amend-docs.md +149 -0
  11. package/.claude/commands/TechieFlow/tasks/author-brd.md +79 -0
  12. package/.claude/commands/TechieFlow/tasks/build-phase.md +231 -0
  13. package/.claude/commands/TechieFlow/tasks/create-deep-research-prompt.md +278 -0
  14. package/.claude/commands/TechieFlow/tasks/create-doc.md +101 -0
  15. package/.claude/commands/TechieFlow/tasks/day1-brownfield.md +507 -0
  16. package/.claude/commands/TechieFlow/tasks/day1-greenfield.md +224 -0
  17. package/.claude/commands/TechieFlow/tasks/devguide.md +224 -0
  18. package/.claude/commands/TechieFlow/tasks/document-project.md +343 -0
  19. package/.claude/commands/TechieFlow/tasks/execute-checklist.md +86 -0
  20. package/.claude/commands/TechieFlow/tasks/facilitate-brainstorming-session.md +136 -0
  21. package/.claude/commands/TechieFlow/tasks/fix-issues.md +134 -0
  22. package/.claude/commands/TechieFlow/tasks/generate-html.md +115 -0
  23. package/.claude/commands/TechieFlow/tasks/handoff-phase.md +126 -0
  24. package/.claude/commands/TechieFlow/tasks/index-docs.md +173 -0
  25. package/.claude/commands/TechieFlow/tasks/kb-mode-interaction.md +75 -0
  26. package/.claude/commands/TechieFlow/tasks/log-miss.md +160 -0
  27. package/.claude/commands/TechieFlow/tasks/metrics-report.md +143 -0
  28. package/.claude/commands/TechieFlow/tasks/mockups.md +122 -0
  29. package/.claude/commands/TechieFlow/tasks/productguide.md +105 -0
  30. package/.claude/commands/TechieFlow/tasks/refresh-status.md +135 -0
  31. package/.claude/commands/TechieFlow/tasks/render-workflow-docs.md +117 -0
  32. package/.claude/commands/TechieFlow/tasks/shard-doc.md +185 -0
  33. package/.claude/commands/TechieFlow/tasks/split-brd.md +131 -0
  34. package/.claude/commands/TechieFlow/tasks/triage-issues.md +157 -0
  35. package/.claude/commands/TechieFlow/tasks/verify-phase.md +579 -0
  36. package/.claude/commands/generate-html.md +124 -0
  37. package/.codex/config.toml +46 -0
  38. package/.codex/hooks.json +63 -0
  39. package/.codex/rules/techieflow.rules +8 -0
  40. package/.opencode/command/generate-html.md +129 -0
  41. package/.opencode/plugin/techieflow.js +350 -0
  42. package/.tfcore/TOKEN-GUIDE.md +59 -0
  43. package/.tfcore/agents/analyst.md +97 -0
  44. package/.tfcore/agents/architect.md +84 -0
  45. package/.tfcore/agents/flow-master.md +217 -0
  46. package/.tfcore/agents/verifier.md +72 -0
  47. package/.tfcore/checklists/architect-checklist.md +438 -0
  48. package/.tfcore/core-config.yaml +47 -0
  49. package/.tfcore/data/brainstorming-techniques.md +36 -0
  50. package/.tfcore/data/elicitation-methods.md +154 -0
  51. package/.tfcore/data/techieflow-kb.md +807 -0
  52. package/.tfcore/data/technical-preferences.md +3 -0
  53. package/.tfcore/enhanced-ide-development-workflow.md +248 -0
  54. package/.tfcore/hooks/block-git.sh +301 -0
  55. package/.tfcore/hooks/codex-adapter.py +248 -0
  56. package/.tfcore/hooks/guard-artifacts.sh +101 -0
  57. package/.tfcore/hooks/guard-status-html.sh +102 -0
  58. package/.tfcore/hooks/guard-status.sh +124 -0
  59. package/.tfcore/hooks/guard-verify.sh +108 -0
  60. package/.tfcore/hooks/metrics-session.sh +129 -0
  61. package/.tfcore/hooks/session-pointer.sh +52 -0
  62. package/.tfcore/hooks/sweep-artifacts.sh +198 -0
  63. package/.tfcore/install-manifest.yaml +231 -0
  64. package/.tfcore/routing.yaml +105 -0
  65. package/.tfcore/tasks/_metrics-emit-gate.md +138 -0
  66. package/.tfcore/tasks/_smoke-test-policy.md +98 -0
  67. package/.tfcore/tasks/_status-update-gate.md +78 -0
  68. package/.tfcore/tasks/_yolo-mode.md +77 -0
  69. package/.tfcore/tasks/advanced-elicitation.md +117 -0
  70. package/.tfcore/tasks/amend-docs.md +149 -0
  71. package/.tfcore/tasks/author-brd.md +79 -0
  72. package/.tfcore/tasks/build-phase.md +231 -0
  73. package/.tfcore/tasks/create-deep-research-prompt.md +278 -0
  74. package/.tfcore/tasks/create-doc.md +101 -0
  75. package/.tfcore/tasks/day1-brownfield.md +507 -0
  76. package/.tfcore/tasks/day1-greenfield.md +224 -0
  77. package/.tfcore/tasks/devguide.md +224 -0
  78. package/.tfcore/tasks/document-project.md +343 -0
  79. package/.tfcore/tasks/execute-checklist.md +86 -0
  80. package/.tfcore/tasks/facilitate-brainstorming-session.md +136 -0
  81. package/.tfcore/tasks/fix-issues.md +134 -0
  82. package/.tfcore/tasks/generate-html.md +115 -0
  83. package/.tfcore/tasks/handoff-phase.md +126 -0
  84. package/.tfcore/tasks/index-docs.md +173 -0
  85. package/.tfcore/tasks/kb-mode-interaction.md +75 -0
  86. package/.tfcore/tasks/log-miss.md +160 -0
  87. package/.tfcore/tasks/metrics-report.md +143 -0
  88. package/.tfcore/tasks/mockups.md +122 -0
  89. package/.tfcore/tasks/productguide.md +105 -0
  90. package/.tfcore/tasks/refresh-status.md +135 -0
  91. package/.tfcore/tasks/render-workflow-docs.md +117 -0
  92. package/.tfcore/tasks/shard-doc.md +185 -0
  93. package/.tfcore/tasks/split-brd.md +131 -0
  94. package/.tfcore/tasks/triage-issues.md +157 -0
  95. package/.tfcore/tasks/verify-phase.md +579 -0
  96. package/.tfcore/telemetry/SCHEMA.md +678 -0
  97. package/.tfcore/telemetry/install-metrics.sh +390 -0
  98. package/.tfcore/telemetry/pre-commit +94 -0
  99. package/.tfcore/telemetry/tf-metrics.sh +1415 -0
  100. package/.tfcore/templates/architecture-tmpl.yaml +650 -0
  101. package/.tfcore/templates/brainstorming-output-tmpl.yaml +156 -0
  102. package/.tfcore/templates/brownfield-architecture-tmpl.yaml +476 -0
  103. package/.tfcore/templates/competitor-analysis-tmpl.yaml +306 -0
  104. package/.tfcore/templates/front-end-architecture-tmpl.yaml +218 -0
  105. package/.tfcore/templates/fullstack-architecture-tmpl.yaml +823 -0
  106. package/.tfcore/templates/market-research-tmpl.yaml +252 -0
  107. package/.tfcore/templates/project-brief-tmpl.yaml +221 -0
  108. package/.tfcore/templates/v4custom/app-agents-md-tmpl.md +61 -0
  109. package/.tfcore/templates/v4custom/app-architecture-tmpl.md +127 -0
  110. package/.tfcore/templates/v4custom/app-brd-tmpl.md +204 -0
  111. package/.tfcore/templates/v4custom/app-checklist-tmpl.md +90 -0
  112. package/.tfcore/templates/v4custom/app-claude-md-tmpl.md +33 -0
  113. package/.tfcore/templates/v4custom/app-devguide-tmpl.md +167 -0
  114. package/.tfcore/templates/v4custom/app-editorconfig-tmpl.editorconfig +44 -0
  115. package/.tfcore/templates/v4custom/app-library-feedback-tmpl.md +31 -0
  116. package/.tfcore/templates/v4custom/app-productguide-tmpl.md +54 -0
  117. package/.tfcore/templates/v4custom/app-project-status-tmpl.md +98 -0
  118. package/.tfcore/templates/v4custom/app-uidesign-tmpl.md +48 -0
  119. package/.tfcore/templates/v4custom/app-usageguide-tmpl.md +67 -0
  120. package/.tfcore/templates/v4custom/build-invocation-ladder.md +190 -0
  121. package/.tfcore/templates/v4custom/html-render-shell.md +502 -0
  122. package/.tfcore/templates/v4custom/metrics-report-template.md +273 -0
  123. package/.tfcore/templates/v4custom/opencode-operating-contract.md +56 -0
  124. package/.tfcore/user-guide.md +633 -0
  125. package/.tfcore/utils/techieflow-doc-template.md +325 -0
  126. package/.tfcore/utils/tf-assets.sh +310 -0
  127. package/.tfcore/utils/tf-codex-bind.py +196 -0
  128. package/.tfcore/utils/tf-codex-telemetry.py +60 -0
  129. package/.tfcore/utils/tf-emit.sh +1075 -0
  130. package/.tfcore/utils/tf-gitignore-audit.sh +281 -0
  131. package/.tfcore/utils/tf-goal.sh +421 -0
  132. package/.tfcore/utils/tf-harness.sh +160 -0
  133. package/.tfcore/utils/tf-mockup-parity.mjs +555 -0
  134. package/.tfcore/utils/tf-mockup-parity.sh +65 -0
  135. package/.tfcore/utils/tf-opencode-audit.py +126 -0
  136. package/.tfcore/utils/tf-perf.sh +241 -0
  137. package/.tfcore/utils/tf-render-html.py +715 -0
  138. package/.tfcore/utils/tf-render-html.sh +28 -0
  139. package/.tfcore/utils/tf-routing-bind.sh +216 -0
  140. package/.tfcore/utils/tf-routing.sh +247 -0
  141. package/.tfcore/utils/tf-yolo.sh +119 -0
  142. package/.tfcore/working-in-the-brownfield.md +606 -0
  143. package/LICENSE +201 -0
  144. package/README.md +1212 -0
  145. package/WORKFLOW.html +1986 -0
  146. package/docs/TechieFlow-Installation.md +299 -0
  147. package/opencode.jsonc +929 -0
  148. package/package.json +60 -0
  149. package/scripts/install.mjs +992 -0
  150. package/scripts/test-install.mjs +505 -0
  151. package/scripts/validate.mjs +155 -0
@@ -0,0 +1,299 @@
1
+ # TechieFlow — Installation
2
+
3
+ | | |
4
+ |---|---|
5
+ | Purpose | Get TechieFlow into a project with one command, on a machine that has never seen it. |
6
+ | Audience | A developer on a fresh machine. No knowledge of npm or of this repository is assumed. |
7
+ | Package | [`@techierathore/techieflow`](https://www.npmjs.com/package/@techierathore/techieflow) on npm |
8
+ | Time | Under ten minutes to a working `*day1-greenfield`. |
9
+
10
+ ---
11
+
12
+ ## Before you start
13
+
14
+ You need four things on the machine.
15
+
16
+ | Tool | Why | Check |
17
+ |---|---|---|
18
+ | Node.js 20 or newer | Runs the installer. Nothing is added to your project. | `node --version` |
19
+ | bash | The framework's guard hooks and helper scripts run under bash. macOS and Linux have it. On Windows, work inside WSL or Git Bash. | `bash --version` |
20
+ | Python 3.10 or newer | Powers the HTML renderer, the telemetry writer and the guard hooks. An older Python 3 works but skips the Codex files. | `python3 --version` |
21
+ | Claude Code or OpenCode | The harness that runs the agents. Either one. Both work from the same install. | `claude --version` or `opencode --version` |
22
+
23
+ For a .NET project you also need the .NET SDK. Run `dotnet --version` to check.
24
+
25
+ You do not need rsync, git on the command line, or a clone of this repository.
26
+
27
+ ---
28
+
29
+ ## 1. What gets installed
30
+
31
+ The installer copies the framework into hidden folders inside your project. It never adds the framework as a dependency of your application. After it runs there is no `node_modules`, no `package.json` and no lock file that was not there before.
32
+
33
+ | Path | What it is | On update |
34
+ |---|---|---|
35
+ | `.tfcore/` | The framework: personas, tasks, templates, hooks, helper scripts. | Refreshed. Two files inside are yours and are kept: `core-config.yaml` and `routing.yaml`. |
36
+ | `.claude/commands/TechieFlow/` | The Claude Code mirror of the personas and tasks. Claude Code only reads this folder. | Refreshed. |
37
+ | `.claude/commands/generate-html.md` | The short `/generate-html` command for Claude Code. | Refreshed. |
38
+ | `.claude/settings.json` | Claude Code permissions: everything allowed except git writes, plus the guard hooks. | Refreshed, with the old file kept as `settings.json.bak`. Pass `--keep-permissions` to keep yours. |
39
+ | `.opencode/plugin/techieflow.js` | The OpenCode plugin that runs the same guard hooks Claude Code runs. | Refreshed. |
40
+ | `.opencode/opencode.jsonc` | The framework's OpenCode configuration. OpenCode reads the personas and tasks straight from `.tfcore/` through it. | Refreshed. |
41
+ | `.opencode/command/generate-html.md` | The short `/generate-html` command for OpenCode. | Added on update only. |
42
+ | `opencode.jsonc` | The root OpenCode configuration, for your own additions. | Refreshed only when it holds nothing of yours, with the old file kept as `opencode.jsonc.bak`. |
43
+ | `.codex/` and `.agents/skills/` | The Codex adapter, generated from the same personas and tasks. | Refreshed. `config.toml` is yours and is kept. |
44
+ | `WORKFLOW.html` | The human workflow guide. Open it in a browser. | Refreshed. |
45
+ | `.tf-scaffold-note.txt` | A note with your next command. Delete it when read. | Left alone. |
46
+ | `docs/metrics/` | Five empty telemetry files and a README. This is your project's history: commit it. | Left alone. |
47
+ | `.gitignore` | Lines that keep the copies above out of your commits. Appended, never rewritten. | Appended. |
48
+ | `.gitattributes` | Line-ending rules and a merge rule for the telemetry files. Appended, never rewritten. | Appended. |
49
+ | `.git/hooks/pre-commit` | Records each commit in `docs/metrics/commits.jsonl`. Only when `.git/` exists. | Refreshed if it is ours. |
50
+
51
+ Both harnesses are set up by the one command. There is no separate step for Claude Code or for OpenCode.
52
+
53
+ ---
54
+
55
+ ## 2. Install into an existing project
56
+
57
+ Open a terminal in the project folder.
58
+
59
+ Step 1. Preview what will happen. Nothing is written.
60
+
61
+ ```bash
62
+ npx @techierathore/techieflow@latest install --dry-run
63
+ ```
64
+
65
+ Step 2. Install.
66
+
67
+ ```bash
68
+ npx @techierathore/techieflow@latest install
69
+ ```
70
+
71
+ Step 3. Read the note it left.
72
+
73
+ ```bash
74
+ cat .tf-scaffold-note.txt
75
+ ```
76
+
77
+ Step 4. Start your harness in this folder and run the brownfield day-1 command.
78
+
79
+ Claude Code:
80
+
81
+ ```text
82
+ /TechieFlow:agents:analyst *day1-brownfield MyApp
83
+ ```
84
+
85
+ OpenCode:
86
+
87
+ ```text
88
+ /flow-analyst *day1-brownfield MyApp
89
+ ```
90
+
91
+ Replace `MyApp` with your application's name in PascalCase.
92
+
93
+ The installer warns if it finds no `.csproj` or `.sln` within four folder levels and asks whether to continue. Add `--force` to skip the question.
94
+
95
+ If the project already has `.tfcore/`, install fills in missing files only. Use `update` to refresh.
96
+
97
+ ---
98
+
99
+ ## 3. Start a new project
100
+
101
+ This is the ten-minute path. Use `MyDiary` as the example name.
102
+
103
+ Step 1. Make the folder and step into it.
104
+
105
+ ```bash
106
+ mkdir MyDiary && cd MyDiary
107
+ ```
108
+
109
+ Step 2. Start the git repository. The framework never runs git for you; this is the one git command you run yourself now, so the commit-telemetry hook has somewhere to live.
110
+
111
+ ```bash
112
+ git init
113
+ ```
114
+
115
+ Step 3. Install the framework with the greenfield flag. It also creates `src/`, `tests/playwright/` and `tests/unit/`.
116
+
117
+ ```bash
118
+ npx @techierathore/techieflow@latest install --greenfield
119
+ ```
120
+
121
+ Step 4. Create the .NET solution.
122
+
123
+ ```bash
124
+ dotnet new sln -n MyDiary
125
+ ```
126
+
127
+ ```bash
128
+ dotnet new blazor -n MyDiary.Web -o src/MyDiary.Web
129
+ ```
130
+
131
+ ```bash
132
+ dotnet sln add src/MyDiary.Web
133
+ ```
134
+
135
+ Step 5. Add the component library and build once. The build deploys the library's own agent files.
136
+
137
+ ```bash
138
+ dotnet add src/MyDiary.Web package TrBlazeUI
139
+ ```
140
+
141
+ ```bash
142
+ dotnet build
143
+ ```
144
+
145
+ Step 6. Start your harness in this folder. When Claude Code asks whether to trust the folder, answer yes. That accepts the `.claude/settings.json` the installer wrote.
146
+
147
+ ```bash
148
+ claude
149
+ ```
150
+
151
+ or
152
+
153
+ ```bash
154
+ opencode
155
+ ```
156
+
157
+ Step 7. Run day-1.
158
+
159
+ Claude Code:
160
+
161
+ ```text
162
+ /TechieFlow:agents:analyst *day1-greenfield MyDiary
163
+ ```
164
+
165
+ OpenCode:
166
+
167
+ ```text
168
+ /flow-analyst *day1-greenfield MyDiary
169
+ ```
170
+
171
+ The analyst asks for the concept once. Answer in a sentence or a few bullets. It then writes the BRD, the architecture, the coding standards, the UI mockups, the checklist and the status file, and renders each document to HTML.
172
+
173
+ Step 8. Commit. The framework does not commit for you.
174
+
175
+ ```bash
176
+ git add -A && git commit -m "Day 1"
177
+ ```
178
+
179
+ The hidden framework folders are already in `.gitignore`. What you commit is your documents, your code and `docs/metrics/`.
180
+
181
+ ---
182
+
183
+ ## 4. Update
184
+
185
+ When a new version of the package is released, refresh the framework in each project.
186
+
187
+ Step 1. Preview. Nothing is written.
188
+
189
+ ```bash
190
+ npx @techierathore/techieflow@latest update --dry-run
191
+ ```
192
+
193
+ Step 2. Apply.
194
+
195
+ ```bash
196
+ npx @techierathore/techieflow@latest update
197
+ ```
198
+
199
+ Step 3. Restart Claude Code or OpenCode so the new task and persona files are loaded.
200
+
201
+ Update overwrites framework files and deletes framework files that no longer ship. It never touches the files listed in section 6.
202
+
203
+ If you have edited `.claude/settings.json` on purpose and want to keep it:
204
+
205
+ ```bash
206
+ npx @techierathore/techieflow@latest update --keep-permissions
207
+ ```
208
+
209
+ A project that still has the old `.bmad-core/` folder is migrated in place first. Your `core-config.yaml` is kept and patched.
210
+
211
+ ---
212
+
213
+ ## 5. Uninstall
214
+
215
+ Step 1. See what would be removed. Nothing is deleted without `--force`.
216
+
217
+ ```bash
218
+ npx @techierathore/techieflow@latest uninstall
219
+ ```
220
+
221
+ Step 2. Remove.
222
+
223
+ ```bash
224
+ npx @techierathore/techieflow@latest uninstall --force
225
+ ```
226
+
227
+ Uninstall removes the framework folders, the framework's `.gitignore` lines and the telemetry commit hook. It keeps `docs/metrics/`, every file it can see you changed, the NuGet-deployed library personas and `.gitattributes`.
228
+
229
+ `.tfcore/core-config.yaml` and `.tfcore/routing.yaml` live inside the framework folder. Copy them out first if you want to keep them.
230
+
231
+ ---
232
+
233
+ ## 6. What it does not touch
234
+
235
+ The installer and the updater never write to:
236
+
237
+ - `src/`, `tests/` and any code folder
238
+ - `docs/`, apart from creating `docs/metrics/` once
239
+ - `PROJECT-STATUS.md`, `CLAUDE.md`, `.editorconfig`
240
+ - `.tfcore/core-config.yaml` and `.tfcore/routing.yaml` after the first install
241
+ - `.claude/settings.local.json`
242
+ - `.claude/commands/trblazeui.md`, `.claude/commands/techierag.md` and the same names under `.opencode/command/`. These come from the NuGet packages.
243
+ - `.codex/config.toml` after the first install
244
+ - `opencode.jsonc` at the root when it holds a key of your own
245
+
246
+ Existing lines in `.gitignore` and `.gitattributes` are never rewritten. The managed lines are appended once and recognised on every later run.
247
+
248
+ ---
249
+
250
+ ## 7. Flags
251
+
252
+ | Flag | Meaning |
253
+ |---|---|
254
+ | `--target=<folder>` | Work on another folder instead of the current one. |
255
+ | `--dry-run` | Print what would happen. Write nothing. |
256
+ | `--force` | install: skip the "no .csproj found" question. uninstall: really delete. |
257
+ | `--no-gitignore` | Do not edit `.gitignore` or `.gitattributes`. |
258
+ | `--greenfield` | install only: also create `src/`, `tests/playwright/`, `tests/unit/`. |
259
+ | `--keep-permissions` | update only: leave `.claude/settings.json` as it is. |
260
+
261
+ ---
262
+
263
+ ## 8. The shell scripts are still there
264
+
265
+ The three shell scripts at the root of the repository still work from a clone. They need rsync, bash and python3.
266
+
267
+ ```bash
268
+ git clone https://github.com/techierathore/TechieFlow.git
269
+ ```
270
+
271
+ ```bash
272
+ /path/to/TechieFlow/scaffold-brownfield.sh /path/to/existing-app
273
+ ```
274
+
275
+ ```bash
276
+ /path/to/TechieFlow/scaffold-greenfield.sh /path/to/new-app
277
+ ```
278
+
279
+ ```bash
280
+ /path/to/TechieFlow/update-framework.sh /path/to/app
281
+ ```
282
+
283
+ The installer and the scripts produce the same files. A test in the repository, `scripts/test-install.mjs`, runs both on the same folders and fails on any difference. Choose the route you like. The package route needs no clone and always gives you the released version. The clone route gives you whatever is on the branch you checked out.
284
+
285
+ Do not run `npm install @techierathore/techieflow`. That would add the package to your application. Use `npx`, which runs the installer once and keeps nothing.
286
+
287
+ ---
288
+
289
+ ## 9. If something goes wrong
290
+
291
+ | What you see | What to do |
292
+ |---|---|
293
+ | `bash was not found` | On Windows, run the command inside WSL or Git Bash. |
294
+ | `python3 was not found` | Install Python 3 and run the command again. On macOS: `brew install python3`. On Ubuntu or WSL: `sudo apt-get install -y python3`. |
295
+ | `Codex bindings could not be generated` | Your Python is older than 3.10. Everything except the Codex files is installed. Upgrade Python and run `update` to add them. |
296
+ | `Refusing to install into the framework itself` | You ran the command inside a clone of this repository. Pass `--target=<your project>`. |
297
+ | `does not look installed` on update | The folder has no `.tfcore/`. Run `install` first. |
298
+ | Claude Code does not show the `/TechieFlow:agents:analyst` command | Restart Claude Code in the project folder. Check that `.claude/commands/TechieFlow/agents/analyst.md` exists. |
299
+ | OpenCode does not show `/flow-analyst` | Restart OpenCode. Check that `.opencode/opencode.jsonc` exists and that `.tfcore/agents/analyst.md` exists. |