@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,134 @@
1
+ # fix-issues
2
+
3
+ The single front door for fixing bugs the owner found by running the app — UI layout, broken rendering, wrong data, or logic. You drop **a folder of screenshots (+ an optional description file)**; flow-master reproduces each issue, triages where it lives, fans the fix out to the right builder, re-verifies, and updates the docs. **You never invoke the UI / functional / RAG agents yourself — flow-master calls them as sub-agents.**
4
+
5
+ ## Why this exists
6
+
7
+ When the verifier passes but the running UI is still broken (overlapping controls, blank screens, wrong behavior), the owner needs ONE command to hand a pile of evidence to and have it fixed end-to-end — not to choreograph trblazeui, techierag, and the verifier by hand. `*fix-issues` is that command. It is generic: a bug can be anywhere (layout, data, logic, RAG), so it triages first and routes second. (Analysis WITHOUT fixing — "log these UAT bugs, don't fix yet" — is `*triage-issues`, not this task; see §0.)
8
+
9
+ ## Inputs
10
+
11
+ - `{AppName}` (required; or resolve from `core-config.yaml`).
12
+ - `{Folder}` (required) — a path to a folder the owner filled with **screenshots** of the broken screens and, optionally, a **description file** (`bugs.md` / `README.md` / `notes.txt`) naming what's wrong on each (e.g. "Dashboard: KPI cards overlap the chart; Clients list shows count 16 but rows are blank"). If `{Folder}` is omitted, ask once for the folder path. (Screenshots-in-a-folder is the intended evidence channel — do not require the owner to describe bugs in chat.)
13
+
14
+ ## SEQUENTIAL Execution
15
+
16
+ ### 0. Scope guard — was a FIX actually requested?
17
+
18
+ **`*fix-issues` fixes.** If the owner's words ask only to **analyze / triage / log / document** the bugs, update the checklist, or re-verify other features — and do NOT ask for a fix — STOP: execute `.tfcore/tasks/triage-issues.md` instead (same evidence channel, docs-only deliverable) and let the owner decide about fixing afterwards. "Analyze these bugs" is NEVER permission to edit code.
19
+
20
+ ### 1. Ingest the evidence
21
+
22
+ - List the folder. **Read every screenshot** (vision) and the description file if present. Build a working list of issues: `{ id, screen/route guess, role guess, symptom, evidence-image }`.
23
+ - For each issue, classify a first-guess **kind**: `layout` (overlap/clip/off-viewport/unstyled), `render-empty` (blank table/chart/value), `data/logic` (wrong values, failed action), `rag` (bad/empty AI answer). Final classification happens after repro (§3).
24
+ - If the description names screens/roles, use them; otherwise infer the screen from the screenshot (match against the DevGuide screen list / routes).
25
+
26
+ ### 2. Boot the app (per `_smoke-test-policy.md` + `verify-phase.md §Local-only`)
27
+
28
+ - Boot the app yourself via the build-invocation-ladder; bring up dependent services (DB/LLM/API) in dependency order for a multi-service stack. "Can't run on Linux / it's multi-service / it targets Windows" are BANNED excuses; escalate per `verify-phase.md §3a` (rung #4 Windows-side → another port → ask the owner only as a last resort). Never propose a cloud deploy.
29
+ - Resolve a test login from `docs/{AppName}-UsageGuide.md` / the DB — never auto-create a random user.
30
+
31
+ ### 3. Reproduce each issue live with Playwright
32
+
33
+ For each issue, log in as the relevant role, navigate to the screen, and **reproduce the symptom**:
34
+ - Take a fresh screenshot at desktop + a mobile width and compare to the owner's evidence.
35
+ - Apply the **data render gate** (`verify-phase.md §4a`) and the **visual-truth gate** (`§4b`): is the control blank? do controls overlap / clip / sit off-viewport? is it unstyled?
36
+ - Settle the issue's **kind** from what you observe (not just the owner's guess), and map it to the owning screen + `REQ-*` in `docs/{AppName}-Checklist.md` (use the DevGuide screen→REQ map). If an issue can't be reproduced, note it (maybe environment/data-specific) and ask the owner rather than guessing a fix.
37
+
38
+ Echo a triage table before fixing:
39
+ ```
40
+ Issue 1 → REQ-UI-007 (Dashboard) — kind: layout (KPI cards overlap chart @ both widths) → /trblazeui
41
+ Issue 2 → REQ-FN-014 (Clients) — kind: render-empty (grid 16 count, 0 rows) → flow-master (data)
42
+ Issue 3 → REQ-RAG-003 (Assistant)— kind: rag (empty answer) → /techierag
43
+ ```
44
+
45
+ ### 4. Fan out the fixes to the right builder (flow-master calls them — the owner does not)
46
+
47
+ In ONE turn, route each issue to its builder as a sub-agent, in parallel where they don't share files:
48
+ - **`layout` / UI** → invoke **`/trblazeui`** as a sub-agent: fix the Razor/CSS/component so it renders correctly and matches the mockup (greenfield) / intended layout; cite the REQ + the symptom + the screenshot. Page-layout fixes are trblazeui's job.
49
+ - **`render-empty` / `data` / `logic`** → spawn a **builder subagent** (`tf-builder` if the harness registers it, otherwise the harness's general subagent — Claude Code `Agent` tool / OpenCode `task` tool): fix the binding/guard/column-mapping/service/query so the control actually renders its data (the `verify-phase §4a` failure modes — undeclared params, column→property mismatch, throwing computed getters, null guards).
50
+ - **`rag`** → invoke **`/techierag`** as a sub-agent: fix the RAG flow (ingestion/search/prompt/provider config).
51
+ - Each sub-agent tags its fix with the `[REQ-*]` tag in the checklist Remarks (**NEVER a git commit — git is manual; agents never run git/gh**), logs any library gap to the owning feedback file, and returns `{ reqsFixed[], filesChanged[], notes[] }`. Every sub-agent prompt MUST carry the two standing rules from `build-phase.md §3` verbatim (no git; smoke it yourself — library agents don't read `.tfcore/` tasks). Wait for all to return.
52
+
53
+ ### 5. Re-smoke (data + visual) then re-verify the affected REQs
54
+
55
+ - Rebuild (invocation ladder). Re-smoke each fixed screen yourself: data renders AND it looks right at desktop + mobile (per `_smoke-test-policy.md` — both gates). If a fix didn't take, loop back to §4 for that issue.
56
+ - Chain the verifier: read `.tfcore/tasks/verify-phase.md` and run it inline scoped to the affected REQ IDs (skip its §0 question — scope is known). It applies §4a + §4b and writes verdicts into `docs/{AppName}-Checklist.md`.
57
+
58
+ ### 6. Update the docs (status gate)
59
+
60
+ - **Checklist:** the verifier already wrote verdicts; confirm each fixed REQ is `Verified` (or note why not).
61
+ - **DevGuide:** refresh the affected screens' observed render/visual status + Known issues (the verifier's §6b does this; if a screen wasn't in scope, update it via `*devguide {AppName} --update`).
62
+ - **PROJECT-STATUS (FINAL GATE, per `_status-update-gate.md`):** update `PROJECT-STATUS.md` AND re-render `PROJECT-STATUS.html` — open requirements, a verification-log row, next command. A markdown-only update is incomplete.
63
+ - **Never run git.** Investigate by reading working-tree files at `file:line`, never a diff.
64
+
65
+ ### 6a. Emit the run record — and CLOSE the misses you fixed
66
+
67
+ Same turn as the status gate. Doctrine: `.tfcore/tasks/_metrics-emit-gate.md`; schema `.tfcore/telemetry/SCHEMA.md` §2 + §5.5. Stamp `started` with `date -u +%Y-%m-%dT%H:%M:%SZ` at §1, before you ingest anything.
68
+
69
+ **Emit the run record FIRST.** The `miss-fix` records below carry no numbers of their own — they name this run, and `tf-emit.sh` copies its token window. A `miss-fix` emitted before its run record finds nothing and is costed `none`.
70
+
71
+ ```bash
72
+ cat <<'JSON' | bash .tfcore/utils/tf-emit.sh runs
73
+ {"kind":"run","app":"{AppName}","cmd":"fix-issues","mode":"fix",
74
+ "started":"<start>","ended":"<now>","duration_s":<n>,
75
+ "reqs_touched":["REQ-UI-009"],"reqs_count":1,
76
+ "subagents":["trblazeui"],"files_written":<n>,"build_result":"pass"}
77
+ JSON
78
+ ```
79
+
80
+ `mode` is always `"fix"` here — that is the whole point of this command. The verifier chained in §5 emits its own `gates.jsonl` and `misses.jsonl` records; do not emit those yourself.
81
+
82
+ **Then one `miss-fix` per REQ you repaired.** This is what makes "what did that miss cost to fix" answerable at all:
83
+
84
+ ```bash
85
+ for REQ in REQ-UI-009 REQ-FN-014; do
86
+ MID=$(bash .tfcore/utils/tf-emit.sh --open-miss "$REQ" | cut -d' ' -f1)
87
+ [ -z "$MID" ] && continue # no open miss for this REQ — nothing to close
88
+ FA=$(bash .tfcore/utils/tf-emit.sh --next-fix-attempt "$MID")
89
+ cat <<JSON | bash .tfcore/utils/tf-emit.sh misses
90
+ {"kind":"miss-fix","miss_id":"$MID","req_id":"$REQ",
91
+ "fix_run_id":"<the §1 start timestamp>","fix_cmd":"fix-issues",
92
+ "fix_attempt":$FA,"verdict_after":"<the verifier's verdict>","reopened":false}
93
+ JSON
94
+ done
95
+ ```
96
+
97
+ - **`verdict_after` is the verifier's verdict from §5, not your assessment of your own fix.** `Verified` only where the verifier actually wrote it. A miss closed on the fixer's word is the same failure as a self-attested `Verified`.
98
+ - **A REQ with no open miss is normal** — the owner reported something the gates never recorded as a miss. Open one first (`--next-miss-id`, `found_by:"owner"`, per `triage-issues` §6a) and then close it in the same run, so the defect has both a cause and a cost.
99
+ - **Write no token, dollar, or `cost_attribution` field.** `tf-emit.sh` copies the window from `fix_run_id` and derives the attribution from that run's `reqs_touched` — `sole` when this fix touched one REQ, `shared:<n>` when it touched several. That distinction is the whole reason the cost figure can be defended, and it is not yours to assert (constraint 10).
100
+
101
+ **Telemetry has no veto:** a failed emit never changes the outcome and is not worth reporting.
102
+
103
+ ### 7. HALT — report
104
+
105
+ ```
106
+ # Fix-issues — {AppName}
107
+ Evidence: {Folder} ({S} screenshots, {desc|no} description)
108
+ Issues: {N} triaged → {u} UI/layout, {d} data/render, {r} RAG, {x} could-not-reproduce
109
+ Fixed + re-verified: {f} REQs now Verified | Still open: {o} (reason)
110
+ Docs: checklist + DevGuide + PROJECT-STATUS updated (+ HTML re-rendered)
111
+ Next: {if open issues → re-run *fix-issues with the still-broken shots / *verify all ; else "all reported issues fixed and re-verified"}
112
+ ```
113
+
114
+ ## Hard rules
115
+
116
+ - **A fix must be ASKED for.** Analyze/log/document-only requests route to `.tfcore/tasks/triage-issues.md` (§0) — never start fixing on an analysis request.
117
+ - **One front door, flow-master routes.** The owner runs only `*fix-issues`; flow-master calls trblazeui / techierag / its own subagents. Never tell the owner to invoke a builder agent themselves.
118
+ - **Triage from what you OBSERVE, not just the owner's words.** Reproduce live before fixing; classify by the actual data + visual gates.
119
+ - **Both gates before "fixed".** A fix is done only when the screen renders its data AND looks right (no overlap/clip/off-viewport), confirmed by re-smoke + the verifier.
120
+ - **Boot the app yourself**, incl. multi-service stacks; asking the owner to run it is the last resort. Never propose a cloud deploy.
121
+ - **Use documented test users; never auto-create random ones.**
122
+ - **Status gate is the last action** — PROJECT-STATUS `.md` AND `.html`. Never run git.
123
+
124
+ ## Output Checklist
125
+
126
+ - [ ] Evidence folder ingested — screenshots read (vision) + description parsed; issue list built
127
+ - [ ] App booted (incl. dependent services); documented test user used
128
+ - [ ] Each issue reproduced live and triaged (kind + owning REQ) — triage table echoed
129
+ - [ ] Fixes fanned out to the right builder (trblazeui / flow-master subagent / techierag) — owner did NOT invoke any agent
130
+ - [ ] Re-smoked (data + visual) and verifier re-run on the affected REQs (verdicts in the checklist)
131
+ - [ ] DevGuide affected screens refreshed; PROJECT-STATUS.md + .html updated (status gate)
132
+ - [ ] `runs.jsonl` record emitted with `cmd:"fix-issues"`, `mode:"fix"` (§6a) — **before** the miss-fix records, so the token window exists to copy
133
+ - [ ] One `misses.jsonl` `miss-fix` per repaired REQ that had an open miss, carrying the verifier's verdict — no token/cost/attribution field written by hand
134
+ - [ ] Report printed with fixed vs still-open counts
@@ -0,0 +1,115 @@
1
+ # generate-html
2
+
3
+ Convert one or more **human-readable** markdown files to self-contained HTML using the shared shell. Use this when you need to render documents that `*render-workflow-docs` does not cover (the UsageGuide, the DevGuide, library-feedback docs, ad-hoc design notes, legacy/archived docs). Note: suffixed doc variants like `-v2` are banned by the collision policy (day1-brownfield §1.6) — superseded docs live unmodified in `docs/OldDocs/`.
4
+
5
+ **NEVER render the checklist to HTML.** The `*-Checklist.md` (and its Requirements Status table) is an **AI-agent working document** — agents read it in markdown. An HTML mirror just burns tokens and drifts from the source. If asked to render a `*-Checklist.md`, decline and explain it's an agent doc; if a stale `*-Checklist.html` exists from before this rule, the user may delete it.
6
+
7
+ ## Why this exists
8
+
9
+ `*render-workflow-docs` only renders the three canonical files (`{App}-BRD.md`, `{App}-Architecture.md`, `PROJECT-STATUS.md`). When the user has additional or versioned docs, this task accepts explicit paths.
10
+
11
+ ## Invocation forms
12
+
13
+ ```
14
+ *generate-html @path/to/file.md
15
+ *generate-html @path/to/file1.md @path/to/file2.md @path/to/file3.md
16
+ *generate-html @docs/SomeFolder/
17
+ ```
18
+
19
+ (Or via the slash-command wrapper: `/TechieFlow:tasks:generate-html @path/to/file.md` in Claude Code; `/techieflow:tasks:generate-html path/to/file.md` in OpenCode. **The `@` sigil is Claude Code's file-mention; under OpenCode type the plain path WITHOUT `@`** — an `@file` in an OpenCode prompt inlines the entire file into context, wasting tokens. This task accepts both forms and treats them identically.)
20
+
21
+ Note: the `@` prefix is Claude Code's file-mention sigil. OpenCode treats a leading `@` as file-content-inclusion, so pass plain paths there.
22
+
23
+ - **Single file:** convert that one MD to a sibling HTML.
24
+ - **Multiple files:** convert each. List separated by spaces. Each becomes a sibling HTML.
25
+ - **Directory:** convert every `*.md` directly inside that directory. **Non-recursive** — do not descend into subdirectories. If the user wants subdirectories included, they can pass each subdir as another argument.
26
+
27
+ If no arguments are passed, HALT and tell the user: `Usage: *generate-html @<path-to-md-or-dir> [@<more-paths>]`.
28
+
29
+ ## Inputs
30
+
31
+ - One or more `@`-prefixed paths (the `@` is Claude Code's file-mention sigil; strip it when resolving the actual path).
32
+ - Paths may be absolute or relative to project root.
33
+
34
+ ## SEQUENTIAL Execution
35
+
36
+ ### 1. Resolve the input set
37
+
38
+ For each argument:
39
+ - Strip leading `@`.
40
+ - If the path ends with `/` or is a directory: use the Read tool to read each `*.md` directly under that directory (non-recursive, no subdirs).
41
+ - Otherwise: treat as a single file path.
42
+ - Skip any path that doesn't exist; emit a one-line note for each skip and continue with the rest. Do not HALT unless ZERO paths resolve.
43
+
44
+ If ZERO paths resolve, HALT with: `No markdown files found at the given paths. Check the paths and retry.`
45
+
46
+ Echo a one-line summary: `Rendering N markdown file(s): file1.md, file2.md, ...`.
47
+
48
+ ### 2. For each MD, build the HTML
49
+
50
+ **Run the renderer. Do NOT hand-author HTML.**
51
+
52
+ ```bash
53
+ bash .tfcore/utils/tf-render-html.sh docs/{AppName}-BRD.md PROJECT-STATUS.md
54
+ ```
55
+
56
+ It takes one or more `.md` paths, writes a sibling `.html` for each, and implements `html-render-shell.md` in full — §1 slugs (with dedupe), §2 CSS, §3 skeleton + flash-free theme script, §4 heading anchors *and* hand-written `<a id="…"></a>` anchors preserved verbatim, §5 mermaid toolbar wrapper, §5.5 label self-check, §6 escaped code blocks, §6b agent-note strip, §7 JS, §8 inline + sidebar TOC (sidebar only above 6 H2s). It reads the CSS and JS **out of the spec file at render time**, so the output cannot drift from the spec.
57
+
58
+ Hand-authoring the HTML through the Write tool is no longer the path: it cost 75–80k output tokens per phase for documents whose content barely changed, produced non-reproducible output, and risked silent truncation on large files (TfLens TF-003, 2026-08-27). Reserve it for the case where the renderer genuinely cannot express something — and report that as a framework defect rather than hand-rolling around it.
59
+
60
+ **Read the output.** The renderer prints one line per file (size, H2 count, sidebar yes/no, diagram count, notes stripped) and warns on `⚠ mermaid §5.5` for an unquoted flowchart label or a reserved `end` node id. Those warnings are about the **source `.md`** — fix the diagram in the markdown and re-render; never edit the generated HTML.
61
+
62
+ **It refuses to render a checklist** (`*-Checklist.md`, exit 2) — that ban is now mechanical, not just prose.
63
+
64
+ Read `.tfcore/templates/v4custom/html-render-shell.md` when you need to understand or change the shell; it remains the specification. You do not need to read it just to render.
65
+
66
+ For each MD file:
67
+
68
+ 1. **Read** the source MD content.
69
+ 2. **Extract title** from the first `#` heading; if none, derive from the filename (humanize: replace `-` and `_` with spaces, title-case).
70
+ 3. **Build the heading list** (every `##`, `###`, `####`): for each, compute the slug per shell §1, attach an `id` to the heading, and decorate with the anchor link `<a class="anchor-link" href="#{slug}">#</a>`. Dedupe slugs by appending `-2`, `-3`, ... when a slug already exists in the doc.
71
+ 4. **Decide TOC mode:**
72
+ - If H2 count > 6: render with sidebar TOC (no `no-toc` class).
73
+ - Otherwise: render with `no-toc` class on `.layout` and omit the `<nav class="side">` block.
74
+ - **Always** render the inline `.toc-inline` block at the top of `<main>` when H2 count ≥ 2.
75
+ 5. **If the MD source already contains a `## Table of Contents` section**, replace it inline with the inline `.toc-inline` HTML block (don't double-render). Use the same slugs you assigned in step 3 so links work.
76
+ 6. **Convert body markdown** to HTML:
77
+ - Paragraphs, bold/italic, links, lists, tables, blockquotes — standard markdown → HTML.
78
+ - Code fences: `` ```mermaid `` → §5 `<div class="diagram">` wrapper with toolbar buttons; any other code fence → §6 `<pre><code class="language-{lang}">{escaped}</code></pre>`.
79
+ - Inline code: `<code>...</code>`.
80
+ - HTML comments in source (`<!-- ... -->`): pass through.
81
+ - **Agent-facing authoring notes NEVER render as visible text.** The doc templates carry drafting-agent instructions (the "Depth mandate", "Mermaid mandate", "read before drafting" notes, how-to-use-this-template guidance) as HTML comments, which pass through invisibly. If the source MD still carries such a note as a **visible** blockquote or paragraph — text addressed to the drafting/authoring AGENT rather than to the document's human reader (typical in docs generated from pre-2026-07 templates) — **OMIT it from the rendered HTML** and, if you are also allowed to edit the MD, convert it to an HTML comment there. List every such omission in the output summary. Reader-facing blockquotes (a DevGuide's verification-status banner or Purpose note, a UsageGuide's test-user rules, etc.) stay.
82
+ 7. **Assemble** using the §3 skeleton, with §2 CSS inlined verbatim in `<head>`, and §7 JS inlined verbatim at end of `<body>`. The mermaid + svg-pan-zoom CDN scripts go just before the JS.
83
+ 8. **Write** the output to `{same-dir}/{basename}.html` (replace `.md` with `.html`). If the file already exists, overwrite.
84
+
85
+ ### 3. Validate (mental review — no shell-out)
86
+
87
+ Per shell §9 checklist, for each rendered file confirm:
88
+ - CSS palette and JS pasted verbatim.
89
+ - Every TOC entry's `href` matches an existing heading `id`.
90
+ - Every mermaid fence wrapped in `.diagram` with all 6 toolbar buttons.
91
+ - Sidebar present iff H2 count > 6.
92
+ - No external resource references except the two CDN scripts.
93
+
94
+ **Mermaid validity pass (do this for EVERY diagram — it is the #1 reported bug).** Apply the shell §5.5 self-check to each mermaid block before emitting it:
95
+ - Each node/edge/subgraph label that contains anything other than letters, digits, and spaces (i.e. has `(` `)` `/` `&` `:` `,` `[` `]` `{` `}` `#` `@` `<` `>` `|` `"` etc.) MUST be wrapped in double quotes, with the quotes INSIDE the shape brackets (`API["ASP.NET API (v2)"]`, `DB[("SQL Server")]`).
96
+ - No node id is a reserved word (lowercase `end`).
97
+ - If you find a bare label in the source MD, **fix it in the emitted HTML** (quote it) rather than copying through a diagram you know will throw "Syntax error" in the browser. Note any such fix in the output summary so the author can also fix the MD source.
98
+
99
+ Do NOT shell out to an HTML validator. Do NOT `wc -c` the files. Do NOT `du`.
100
+
101
+ ### 4. Output summary
102
+
103
+ Print one line per rendered file: the absolute output path. End with: `Open each in a browser to confirm Mermaid renders correctly and copy buttons / diagram toolbars work.`
104
+
105
+ ## Output Checklist
106
+
107
+ - [ ] Every input MD has a sibling HTML produced
108
+ - [ ] Each HTML is self-contained (no broken local refs)
109
+ - [ ] Sidebar TOC present only when H2 count > 6
110
+ - [ ] Inline TOC present when H2 count ≥ 2
111
+ - [ ] Every heading has an id matching the TOC link
112
+ - [ ] Mermaid diagrams have working toolbar (zoom, fit, 1:1, fullscreen, popout)
113
+ - [ ] Mermaid validity pass done (shell §5.5): every non-trivial label double-quoted, no `end` node ids, bare labels fixed not emitted
114
+ - [ ] No agent-facing authoring note (Depth/Mermaid mandate, template how-to) rendered as visible text — leaked ones omitted and reported
115
+ - [ ] Copy buttons present on every `<pre>` (added by JS, no need to inject manually)
@@ -0,0 +1,126 @@
1
+ # handoff-phase
2
+
3
+ Final-phase wrap-up: usage doc + status refresh + library-feedback consolidation + HTML re-render.
4
+
5
+ ## Purpose
6
+
7
+ After the checklist's Requirements Status table is green (or `Blocked` library-gap items accepted), produce the artifacts the user needs to ship and the artifacts future-you needs to resume.
8
+
9
+ **Run-once-per-UAT-cycle guard:** handoff *produces* the UAT bundle — it runs BEFORE owner UAT, once. If the PROJECT-STATUS Verification log already has a READY-FOR-UAT handoff row for the current cycle and the only open rows are documented owner-run UAT, there is nothing for this task to add: say so and point at the UsageGuide UAT plan instead of re-running. Execute anyway ONLY when the owner explicitly invoked `*handoff-phase` themselves, or when substantive doc-affecting work landed after the last handoff (then note in the Verification log row what changed). Agents never *suggest* a repeat handoff while non-terminal rows remain (`_status-update-gate.md` item 5, UAT tier).
10
+
11
+ ## Inputs
12
+
13
+ - `{AppName}` argument (required; or resolve from core-config.yaml).
14
+
15
+ ## SEQUENTIAL Execution
16
+
17
+ ### 1. Finalize `docs/{AppName}-UsageGuide.md`
18
+
19
+ The Usage Guide was created at day-1 (`day1-*` §7.4) from `.tfcore/templates/v4custom/app-usageguide-tmpl.md`. **Update it in place — do not create a new doc.** (If it's missing — a project that predates this step — create it now from that template.) At handoff, bring every section up to ship-reality and **TERSELY**. Hard rules:
20
+
21
+ - **Test-users table:** reconcile with the database — every account that actually exists now is marked `Created? = ✅`; drop or mark any planned ⬜ account that was never created. This table is what UAT logs in with, so it must match the live DB.
22
+ - **Screen-by-screen test plan:** ensure every shipped feature has a walkthrough block; remove blocks for cut features.
23
+
24
+ Below, "populate" means refresh these sections of the existing doc. Hard rules:
25
+
26
+ - **No narrative prose anywhere.** No "this app uses Blazor Server because…", no caveats, no explanations. The deployment-steps section must look like a runbook — one command per line, numbered in execution order.
27
+ - **Skip any step that doesn't apply.** If the repo has no SQL migrations, omit the database-setup step entirely — do not leave "N/A" placeholders or "// not applicable" comments.
28
+ - **No optional steps in the numbered list.** The numbered deployment-steps section is the minimum sufficient set of commands to go from `git clone` to a running app. Anything optional goes in "Known limitations" or a separate doc.
29
+
30
+ Detection sources for each section:
31
+
32
+ - **Prerequisites**: SDK version from `global.json` / `.csproj` `<TargetFramework>`. Add a one-line entry for each external runtime the build/test commands depend on (Node only if Playwright tests exist; Postgres/SQL Server/etc. only if migrations exist; MAUI workload only if there's a MAUI project). One line each. No prose.
33
+ - **Deployment steps**: detect in this order and emit one numbered step per command:
34
+ 1. `git clone <repo>` (always)
35
+ 2. `dotnet restore` (always)
36
+ 3. SQL migrations — scan `database/`, `db/migrations/`, `src/*Db/Scripts/`, and any DbUp project's `<EmbeddedResource>` paths. List `.sql` files in lexicographic order, one per line. If a DbUp project exists, prefer `dotnet run --project src/{AppName}.Db` as a single step instead of listing each SQL file.
37
+ 4. `dotnet build`
38
+ 5. Backend run — find the API/service startup project. One `dotnet run --project ... --urls http://localhost:5100` line.
39
+ 6. Frontend run — find the Web/UI startup project. One `dotnet run --project ... --urls http://localhost:5099` line.
40
+ 7. "Open http://localhost:5099 in a browser."
41
+ - For MAUI: replace step 5/6 with `winrun "dotnet build src/{AppName}.Maui"` then `winrun "dotnet run --project src/{AppName}.Maui"`.
42
+ - If frontend and backend are the same project (Blazor Server-only): collapse steps 5+6 into one.
43
+ - **Test**: `dotnet test`. Add `npx playwright test` ONLY if the repo has Playwright tests checked in.
44
+ - **Smoke checklist**: one checkbox per top-level BRD capability (5–10 max). Each line is a user action, not a technical step ("Log in as admin and load the dashboard" — NOT "verify JWT validation").
45
+ - **Known limitations**: pull every `Blocked` REQ row from the checklist Status table + every entry from the per-library feedback files (`docs/{AppName}-TrBlazeUI-Feedback.md`, `docs/{AppName}-TechieRag-Feedback.md`). One line each. Cross-reference to issue IDs (TR-NNN, TR-RAG-NNN).
46
+
47
+ **If you find yourself writing more than one line per numbered step, you're doing it wrong** — the user has explicitly called out that the deployment steps got polluted with "unnecessary details" in past runs. Strip aggressively.
48
+
49
+ ### 2. Update `PROJECT-STATUS.md` (per `.tfcore/tasks/_status-update-gate.md`)
50
+
51
+ - `current_phase: Handoff` (the user manually sets `Released` after UAT passes — §5)
52
+ - `last_updated`: today
53
+ - `last_verified_build: PASS` (you just verified — confirm with `dotnet build` if uncertain)
54
+ - `last_verified_date`: today
55
+ - "Where I am": one paragraph — "All REQ-* verified; awaiting UAT per usage doc."
56
+ - "Next command to run": `Manual UAT per docs/{AppName}-UsageGuide.md smoke checklist.`
57
+ - "Open requirements": list any REQ-* not `Verified` in the checklist Status table (`Blocked`-by-library or deferred). Empty if all clear.
58
+ - "Library feedback summary": refresh counts from the consolidated library-feedback doc (§4 below)
59
+ - "Standards compliance": copy from the latest verifier run (recorded in the checklist Status table Remarks / prior PROJECT-STATUS entry)
60
+ - Append a "Verification log" row for the handoff (Result = ship-readiness verdict; Status table column → `docs/{AppName}-Checklist.md#requirements-status`)
61
+ - **BRD §4 Development status** — per the gate's item 9, roll the now-final checklist statuses up into the BRD §4 table (at handoff, most features should land on `Done`). If the BRD has no §4 section (legacy), say so and point the user at `*refresh-status {AppName}` to add it. The re-render in §3 picks up the change.
62
+
63
+ ### 2a. Emit the run record (telemetry)
64
+
65
+ Same turn as the status/PROJECT-STATUS write. Doctrine + the ten constraints: `.tfcore/tasks/_metrics-emit-gate.md`. Schema: `.tfcore/telemetry/SCHEMA.md` §2. Stamp `started` with `date -u +%Y-%m-%dT%H:%M:%SZ` as your FIRST action of this task — it cannot be reconstructed at the end.
66
+
67
+ ```bash
68
+ cat <<'JSON' | bash .tfcore/utils/tf-emit.sh runs
69
+ {"kind":"run","app":"{AppName}","cmd":"handoff-phase","mode":null,
70
+ "started":"<start>","ended":"<now>","duration_s":<n>,
71
+ "reqs_touched":[],"reqs_count":0,
72
+ "subagents":[],"files_written":<n>,"build_result":"not-run"}
73
+ JSON
74
+ ```
75
+
76
+ `reqs_touched` carries REQ IDs only — never requirement text — and `[]` is correct when this task touched no specific REQ. **Telemetry has no veto:** if the emit fails, the phase still succeeded; do not retry, do not diagnose, do not mention it.
77
+
78
+ ### 3. Re-render the HTMLs
79
+
80
+ Invoke `render-workflow-docs {AppName}` as a subtask. Specifically:
81
+ - `docs/{AppName}-BRD.html` — always re-render (do NOT mtime-compare with bash; the Write tool is cheap and a stale HTML is worse than a redundant re-render)
82
+ - `docs/{AppName}-Architecture.html` — if implementation revealed "as-built" deltas from "Target", update Architecture.md first, then re-render. Set status to "Current (post-implementation)" or "Current + planned target" as appropriate.
83
+ - `PROJECT-STATUS.html` — always re-render (just updated in §2)
84
+
85
+ Then re-render the **Usage Guide** (updated in §1) and the **DevGuide** (refreshed in §3a) via `.tfcore/tasks/generate-html.md`: `docs/{AppName}-UsageGuide.md` (+ the DevGuide — `docs/{AppName}-DevGuide.md` if single, or every file under `docs/devguides/` if split) → sibling `.html`. **Do NOT render the checklist to HTML** — it is an AI-agent working document kept in markdown only; its Status table stays accurate in markdown.
86
+
87
+ ### 3a. Refresh the Developer Guide
88
+
89
+ Run `.tfcore/tasks/devguide.md` for `{AppName}` (`*devguide {AppName}`) so the screen-by-screen code map reflects the final as-built code — this is the doc a human developer uses to chase bugs and verify the AI-generated code from page → control → service → data-access → stored proc. If a DevGuide already exists, an incremental `--update` is enough (remap only changed screens). It produces `docs/{AppName}-DevGuide.md` (single) — or, for a large app, an index + per-role files under `docs/devguides/` — and their `.html`; §3 above already lists them in the re-render set.
90
+
91
+ ### 4. Consolidate the per-library feedback files
92
+
93
+ For EACH of `docs/{AppName}-TrBlazeUI-Feedback.md` and `docs/{AppName}-TechieRag-Feedback.md` (and any other `docs/{AppName}-{LibName}-Feedback.md`) that exists — they are separate files because each goes to a different team:
94
+ - Deduplicate entries (same expected/actual pair = duplicate; merge them).
95
+ - Sort by severity: blocker → major → minor → nice-to-have.
96
+ - Ensure each entry has all the schema fields (Severity, Repro, Expected, Actual, Encountered in, Workaround, Suggested fix). Fill in missing ones from context if possible.
97
+ - Refresh the file's summary block:
98
+ ```markdown
99
+ ## Summary
100
+ - {N blockers, M majors, P minors, Q nice-to-haves}
101
+ - Last consolidated: {today}
102
+ ```
103
+ - If a legacy combined `docs/{AppName}-Library-Feedback.md` exists (pre-split projects), split its sections into the per-library files first, then archive it to `docs/OldDocs/`.
104
+
105
+ If no feedback file exists (no library issues encountered), skip this step.
106
+
107
+ ### 5. Output summary + ship-readiness verdict
108
+
109
+ Deliver:
110
+ - "✔ {AppName} is ready for UAT." OR
111
+ - "⚠ {AppName} has {N} `Blocked` (library-gap) items — see docs/{AppName}-TrBlazeUI-Feedback.md / docs/{AppName}-TechieRag-Feedback.md before UAT."
112
+
113
+ Then explicitly tell the user:
114
+ 1. Open `docs/{AppName}-UsageGuide.md` and run the smoke checklist.
115
+ 2. Hand each per-library feedback file to its team (or file as GitHub issues against that library's repo): `docs/{AppName}-TrBlazeUI-Feedback.md` → TrBlazeUI team, `docs/{AppName}-TechieRag-Feedback.md` → TechieRag team. The library teams use this same framework, so the file drops straight into their flow.
116
+ 3. After UAT passes, manually update `PROJECT-STATUS.md`: `current_phase: Released`.
117
+ 4. For end-user / external documentation, run `*productguide {AppName}` (flow-master) — it builds a screenshot-illustrated, task-oriented user manual (MD + HTML) from the DevGuide's screen map + captured screenshots. On-demand; re-run with `--update` as the UI evolves.
118
+
119
+ ## Output Checklist
120
+
121
+ - [ ] `docs/{AppName}-UsageGuide.md` finalized — Test-users table reconciled with the DB (created accounts ✅) + screen-by-screen plan current + prereqs/build/run/test/smoke; its `.html` re-rendered
122
+ - [ ] Developer Guide generated/refreshed (`*devguide {AppName}`) — screen-by-screen code map (page→control→service→data-access→proc) + its `.html`
123
+ - [ ] `PROJECT-STATUS.md` updated with handoff phase + UAT next-step
124
+ - [ ] `docs/{AppName}-BRD.html`, `docs/{AppName}-Architecture.html`, `PROJECT-STATUS.html`, the UsageGuide + DevGuide HTML re-rendered (the checklist is NOT rendered to HTML — markdown only)
125
+ - [ ] Per-library feedback files consolidated, one per library (if applicable; legacy combined file split + archived)
126
+ - [ ] Ship-readiness verdict delivered with explicit next steps
@@ -0,0 +1,173 @@
1
+ # Index Documentation Task
2
+
3
+ ## Purpose
4
+
5
+ This task maintains the integrity and completeness of the `docs/index.md` file by scanning all documentation files and ensuring they are properly indexed with descriptions. It handles both root-level documents and documents within subfolders, organizing them hierarchically.
6
+
7
+ ## Task Instructions
8
+
9
+ You are now operating as a Documentation Indexer. Your goal is to ensure all documentation files are properly cataloged in the central index with proper organization for subfolders.
10
+
11
+ ### Required Steps
12
+
13
+ 1. First, locate and scan:
14
+ - The `docs/` directory and all subdirectories
15
+ - The existing `docs/index.md` file (create if absent)
16
+ - All markdown (`.md`) and text (`.txt`) files in the documentation structure
17
+ - Note the folder structure for hierarchical organization
18
+
19
+ 2. For the existing `docs/index.md`:
20
+ - Parse current entries
21
+ - Note existing file references and descriptions
22
+ - Identify any broken links or missing files
23
+ - Keep track of already-indexed content
24
+ - Preserve existing folder sections
25
+
26
+ 3. For each documentation file found:
27
+ - Extract the title (from first heading or filename)
28
+ - Generate a brief description by analyzing the content
29
+ - Create a relative markdown link to the file
30
+ - Check if it's already in the index
31
+ - Note which folder it belongs to (if in a subfolder)
32
+ - If missing or outdated, prepare an update
33
+
34
+ 4. For any missing or non-existent files found in index:
35
+ - Present a list of all entries that reference non-existent files
36
+ - For each entry:
37
+ - Show the full entry details (title, path, description)
38
+ - Ask for explicit confirmation before removal
39
+ - Provide option to update the path if file was moved
40
+ - Log the decision (remove/update/keep) for final report
41
+
42
+ 5. Update `docs/index.md`:
43
+ - Maintain existing structure and organization
44
+ - Create level 2 sections (`##`) for each subfolder
45
+ - List root-level documents first
46
+ - Add missing entries with descriptions
47
+ - Update outdated entries
48
+ - Remove only entries that were confirmed for removal
49
+ - Ensure consistent formatting throughout
50
+
51
+ ### Index Structure Format
52
+
53
+ The index should be organized as follows:
54
+
55
+ ```markdown
56
+ # Documentation Index
57
+
58
+ ## Root Documents
59
+
60
+ ### [Document Title](./document.md)
61
+
62
+ Brief description of the document's purpose and contents.
63
+
64
+ ### [Another Document](./another.md)
65
+
66
+ Description here.
67
+
68
+ ## Folder Name
69
+
70
+ Documents within the `folder-name/` directory:
71
+
72
+ ### [Document in Folder](./folder-name/document.md)
73
+
74
+ Description of this document.
75
+
76
+ ### [Another in Folder](./folder-name/another.md)
77
+
78
+ Description here.
79
+
80
+ ## Another Folder
81
+
82
+ Documents within the `another-folder/` directory:
83
+
84
+ ### [Nested Document](./another-folder/document.md)
85
+
86
+ Description of nested document.
87
+ ```
88
+
89
+ ### Index Entry Format
90
+
91
+ Each entry should follow this format:
92
+
93
+ ```markdown
94
+ ### [Document Title](relative/path/to/file.md)
95
+
96
+ Brief description of the document's purpose and contents.
97
+ ```
98
+
99
+ ### Rules of Operation
100
+
101
+ 1. NEVER modify the content of indexed files
102
+ 2. Preserve existing descriptions in index.md when they are adequate
103
+ 3. Maintain any existing categorization or grouping in the index
104
+ 4. Use relative paths for all links (starting with `./`)
105
+ 5. Ensure descriptions are concise but informative
106
+ 6. NEVER remove entries without explicit confirmation
107
+ 7. Report any broken links or inconsistencies found
108
+ 8. Allow path updates for moved files before considering removal
109
+ 9. Create folder sections using level 2 headings (`##`)
110
+ 10. Sort folders alphabetically, with root documents listed first
111
+ 11. Within each section, sort documents alphabetically by title
112
+
113
+ ### Process Output
114
+
115
+ The task will provide:
116
+
117
+ 1. A summary of changes made to index.md
118
+ 2. List of newly indexed files (organized by folder)
119
+ 3. List of updated entries
120
+ 4. List of entries presented for removal and their status:
121
+ - Confirmed removals
122
+ - Updated paths
123
+ - Kept despite missing file
124
+ 5. Any new folders discovered
125
+ 6. Any other issues or inconsistencies found
126
+
127
+ ### Handling Missing Files
128
+
129
+ For each file referenced in the index but not found in the filesystem:
130
+
131
+ 1. Present the entry:
132
+
133
+ ```markdown
134
+ Missing file detected:
135
+ Title: [Document Title]
136
+ Path: relative/path/to/file.md
137
+ Description: Existing description
138
+ Section: [Root Documents | Folder Name]
139
+
140
+ Options:
141
+
142
+ 1. Remove this entry
143
+ 2. Update the file path
144
+ 3. Keep entry (mark as temporarily unavailable)
145
+
146
+ Please choose an option (1/2/3):
147
+ ```
148
+
149
+ 2. Wait for user confirmation before taking any action
150
+ 3. Log the decision for the final report
151
+
152
+ ### Special Cases
153
+
154
+ 1. **Sharded Documents**: If a folder contains an `index.md` file, treat it as a sharded document:
155
+ - Use the folder's `index.md` title as the section title
156
+ - List the folder's documents as subsections
157
+ - Note in the description that this is a multi-part document
158
+
159
+ 2. **README files**: Convert `README.md` to more descriptive titles based on content
160
+
161
+ 3. **Nested Subfolders**: For deeply nested folders, maintain the hierarchy but limit to 2 levels in the main index. Deeper structures should have their own index files.
162
+
163
+ ## Required Input
164
+
165
+ Please provide:
166
+
167
+ 1. Location of the `docs/` directory (default: `./docs`)
168
+ 2. Confirmation of write access to `docs/index.md`
169
+ 3. Any specific categorization preferences
170
+ 4. Any files or directories to exclude from indexing (e.g., `.git`, `node_modules`)
171
+ 5. Whether to include hidden files/folders (starting with `.`)
172
+
173
+ Would you like to proceed with documentation indexing? Please provide the required input above.
@@ -0,0 +1,75 @@
1
+ # KB Mode Interaction Task
2
+
3
+ ## Purpose
4
+
5
+ Provide a user-friendly interface to the TechieFlow knowledge base without overwhelming users with information upfront.
6
+
7
+ ## Instructions
8
+
9
+ When entering KB mode (\*kb-mode), follow these steps:
10
+
11
+ ### 1. Welcome and Guide
12
+
13
+ Announce entering KB mode with a brief, friendly introduction.
14
+
15
+ ### 2. Present Topic Areas
16
+
17
+ Offer a concise list of main topic areas the user might want to explore:
18
+
19
+ **What would you like to know more about?**
20
+
21
+ 1. **Setup & Installation** - Getting started with TechieFlow
22
+ 2. **Workflows** - Choosing the right workflow for your project
23
+ 3. **Web vs IDE** - When to use each environment
24
+ 4. **Agents** - Understanding specialized agents and their roles
25
+ 5. **Documents** - PRDs, Architecture, Stories, and more
26
+ 6. **Agile Process** - How TechieFlow implements Agile methodologies
27
+ 7. **Configuration** - Customizing TechieFlow for your needs
28
+ 8. **Best Practices** - Tips for effective TechieFlow usage
29
+
30
+ Or ask me about anything else related to TechieFlow!
31
+
32
+ ### 3. Respond Contextually
33
+
34
+ - Wait for user's specific question or topic selection
35
+ - Provide focused, relevant information from the knowledge base
36
+ - Offer to dive deeper or explore related topics
37
+ - Keep responses concise unless user asks for detailed explanations
38
+
39
+ ### 4. Interactive Exploration
40
+
41
+ - After answering, suggest related topics they might find helpful
42
+ - Maintain conversational flow rather than data dumping
43
+ - Use examples when appropriate
44
+ - Reference specific documentation sections when relevant
45
+
46
+ ### 5. Exit Gracefully
47
+
48
+ When user is done or wants to exit KB mode:
49
+
50
+ - Summarize key points discussed if helpful
51
+ - Remind them they can return to KB mode anytime with \*kb-mode
52
+ - Suggest next steps based on what was discussed
53
+
54
+ ## Example Interaction
55
+
56
+ **User**: \*kb-mode
57
+
58
+ **Assistant**: I've entered KB mode and have access to the full TechieFlow knowledge base. I can help you with detailed information about any aspect of TechieFlow.
59
+
60
+ **What would you like to know more about?**
61
+
62
+ 1. **Setup & Installation** - Getting started with TechieFlow
63
+ 2. **Workflows** - Choosing the right workflow for your project
64
+ 3. **Web vs IDE** - When to use each environment
65
+ 4. **Agents** - Understanding specialized agents and their roles
66
+ 5. **Documents** - PRDs, Architecture, Stories, and more
67
+ 6. **Agile Process** - How TechieFlow implements Agile methodologies
68
+ 7. **Configuration** - Customizing TechieFlow for your needs
69
+ 8. **Best Practices** - Tips for effective TechieFlow usage
70
+
71
+ Or ask me about anything else related to TechieFlow!
72
+
73
+ **User**: Tell me about workflows
74
+
75
+ **Assistant**: [Provides focused information about workflows from the KB, then offers to explore specific workflow types or related topics]