@techierathore/techieflow 1.0.1 → 1.0.3

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 (178) hide show
  1. package/.claude/commands/TechieFlow/agents/analyst.md +0 -5
  2. package/.claude/commands/TechieFlow/agents/architect.md +0 -6
  3. package/.claude/commands/TechieFlow/agents/flow-master.md +41 -215
  4. package/.claude/commands/TechieFlow/agents/verifier.md +23 -64
  5. package/.claude/commands/TechieFlow/tasks/_metrics-emit-gate.md +24 -117
  6. package/.claude/commands/TechieFlow/tasks/_smoke-test-policy.md +20 -84
  7. package/.claude/commands/TechieFlow/tasks/_status-update-gate.md +10 -74
  8. package/.claude/commands/TechieFlow/tasks/_yolo-mode.md +20 -58
  9. package/.claude/commands/TechieFlow/tasks/amend-docs.md +20 -143
  10. package/.claude/commands/TechieFlow/tasks/build-phase.md +14 -224
  11. package/.claude/commands/TechieFlow/tasks/day1-brownfield.md +31 -505
  12. package/.claude/commands/TechieFlow/tasks/day1-greenfield.md +28 -213
  13. package/.claude/commands/TechieFlow/tasks/deploy-checklist.md +19 -0
  14. package/.claude/commands/TechieFlow/tasks/devguide.md +10 -219
  15. package/.claude/commands/TechieFlow/tasks/fix-issues.md +10 -129
  16. package/.claude/commands/TechieFlow/tasks/log-miss.md +19 -158
  17. package/.claude/commands/TechieFlow/tasks/metrics-report.md +1 -1
  18. package/.claude/commands/TechieFlow/tasks/mockups.md +12 -117
  19. package/.claude/commands/TechieFlow/tasks/refresh-status.md +9 -130
  20. package/.claude/commands/TechieFlow/tasks/split-brd.md +10 -126
  21. package/.claude/commands/TechieFlow/tasks/triage-and-fix.md +14 -0
  22. package/.claude/commands/TechieFlow/tasks/triage-issues.md +11 -152
  23. package/.claude/commands/TechieFlow/tasks/verify-phase.md +36 -572
  24. package/.opencode/plugin/techieflow.js +39 -12
  25. package/.tfcore/agents/analyst.md +0 -5
  26. package/.tfcore/agents/architect.md +0 -6
  27. package/.tfcore/agents/flow-master.md +41 -215
  28. package/.tfcore/agents/verifier.md +23 -64
  29. package/.tfcore/core-config.yaml +10 -0
  30. package/.tfcore/hooks/block-git.sh +4 -4
  31. package/.tfcore/hooks/guard-artifacts.sh +2 -2
  32. package/.tfcore/hooks/guard-build.sh +76 -0
  33. package/.tfcore/hooks/guard-db.sh +90 -0
  34. package/.tfcore/hooks/guard-metrics.sh +56 -0
  35. package/.tfcore/hooks/guard-status-html.sh +116 -71
  36. package/.tfcore/hooks/guard-status.sh +43 -16
  37. package/.tfcore/hooks/guard-verify.sh +70 -48
  38. package/.tfcore/hooks/sweep-artifacts.sh +2 -2
  39. package/.tfcore/install-manifest.yaml +0 -18
  40. package/.tfcore/routing.yaml +25 -14
  41. package/.tfcore/standards/coding-standards-core.md +61 -0
  42. package/.tfcore/standards/coding-standards-dotnet.md +93 -0
  43. package/.tfcore/tasks/_metrics-emit-gate.md +24 -117
  44. package/.tfcore/tasks/_smoke-test-policy.md +20 -84
  45. package/.tfcore/tasks/_status-update-gate.md +10 -74
  46. package/.tfcore/tasks/_yolo-mode.md +20 -58
  47. package/.tfcore/tasks/amend-docs.md +20 -143
  48. package/.tfcore/tasks/build-phase.md +14 -224
  49. package/.tfcore/tasks/day1-brownfield.md +31 -505
  50. package/.tfcore/tasks/day1-greenfield.md +28 -213
  51. package/.tfcore/tasks/deploy-checklist.md +19 -0
  52. package/.tfcore/tasks/devguide.md +10 -219
  53. package/.tfcore/tasks/fix-issues.md +10 -129
  54. package/.tfcore/tasks/log-miss.md +19 -158
  55. package/.tfcore/tasks/metrics-report.md +1 -1
  56. package/.tfcore/tasks/mockups.md +12 -117
  57. package/.tfcore/tasks/refresh-status.md +9 -130
  58. package/.tfcore/tasks/split-brd.md +10 -126
  59. package/.tfcore/tasks/triage-and-fix.md +14 -0
  60. package/.tfcore/tasks/triage-issues.md +11 -152
  61. package/.tfcore/tasks/verify-phase.md +36 -572
  62. package/.tfcore/telemetry/SCHEMA.md +43 -7
  63. package/.tfcore/telemetry/tf-metrics.sh +152 -17
  64. package/.tfcore/templates/project-brief-tmpl.yaml +1 -1
  65. package/.tfcore/templates/stack-defaults/dotnet.md +35 -0
  66. package/.tfcore/templates/stack-questions.md +77 -0
  67. package/.tfcore/templates/v4custom/app-agents-md-tmpl.md +3 -4
  68. package/.tfcore/templates/v4custom/app-architecture-tmpl.md +107 -115
  69. package/.tfcore/templates/v4custom/app-brd-tmpl.md +108 -184
  70. package/.tfcore/templates/v4custom/app-checklist-tmpl.md +48 -73
  71. package/.tfcore/templates/v4custom/app-claude-md-tmpl.md +1 -1
  72. package/.tfcore/templates/v4custom/app-coding-standards-tmpl.md +52 -0
  73. package/.tfcore/templates/v4custom/app-deployment-checklist-tmpl.md +86 -0
  74. package/.tfcore/templates/v4custom/app-devguide-tmpl.md +69 -146
  75. package/.tfcore/templates/v4custom/app-phases-tmpl.md +35 -0
  76. package/.tfcore/templates/v4custom/app-productguide-tmpl.md +38 -35
  77. package/.tfcore/templates/v4custom/app-project-status-tmpl.md +63 -73
  78. package/.tfcore/templates/v4custom/app-uidesign-tmpl.md +62 -37
  79. package/.tfcore/templates/v4custom/app-usageguide-tmpl.md +69 -54
  80. package/.tfcore/templates/v4custom/build-invocation-ladder.md +17 -180
  81. package/.tfcore/templates/v4custom/build-subagent-prompt.md +17 -0
  82. package/.tfcore/templates/v4custom/metrics-report-template.md +2 -2
  83. package/.tfcore/user-guide.md +0 -23
  84. package/.tfcore/utils/__pycache__/tf-brd-status.cpython-312.pyc +0 -0
  85. package/.tfcore/utils/__pycache__/tf-checklist-edit.cpython-312.pyc +0 -0
  86. package/.tfcore/utils/__pycache__/tf-codex-bind.cpython-312.pyc +0 -0
  87. package/.tfcore/utils/__pycache__/tf-codex-telemetry.cpython-312.pyc +0 -0
  88. package/.tfcore/utils/__pycache__/tf-day1-files.cpython-312.pyc +0 -0
  89. package/.tfcore/utils/__pycache__/tf-devguide-list.cpython-312.pyc +0 -0
  90. package/.tfcore/utils/__pycache__/tf-doc-check.cpython-312.pyc +0 -0
  91. package/.tfcore/utils/__pycache__/tf-log-miss.cpython-312.pyc +0 -0
  92. package/.tfcore/utils/__pycache__/tf-misses-md.cpython-312.pyc +0 -0
  93. package/.tfcore/utils/__pycache__/tf-mockups-locate.cpython-312.pyc +0 -0
  94. package/.tfcore/utils/__pycache__/tf-opencode-audit.cpython-312.pyc +0 -0
  95. package/.tfcore/utils/__pycache__/tf-perf-grade.cpython-312.pyc +0 -0
  96. package/.tfcore/utils/__pycache__/tf-render-html.cpython-312.pyc +0 -0
  97. package/.tfcore/utils/__pycache__/tf-split-brd.cpython-312.pyc +0 -0
  98. package/.tfcore/utils/__pycache__/tf-status-facts.cpython-312.pyc +0 -0
  99. package/.tfcore/utils/__pycache__/tf-triage.cpython-312.pyc +0 -0
  100. package/.tfcore/utils/__pycache__/tf-verify-list.cpython-312.pyc +0 -0
  101. package/.tfcore/utils/__pycache__/tf-verify-verdict.cpython-312.pyc +0 -0
  102. package/.tfcore/utils/tf-brd-status.py +176 -0
  103. package/.tfcore/utils/tf-brd-status.sh +19 -0
  104. package/.tfcore/utils/tf-build-list.py +191 -0
  105. package/.tfcore/utils/tf-build-list.sh +20 -0
  106. package/.tfcore/utils/tf-build.sh +143 -0
  107. package/.tfcore/utils/tf-cdp-relay.ps1 +64 -0
  108. package/.tfcore/utils/tf-checklist-edit.py +133 -0
  109. package/.tfcore/utils/tf-day1-files.py +208 -0
  110. package/.tfcore/utils/tf-day1-files.sh +20 -0
  111. package/.tfcore/utils/tf-devguide-list.py +249 -0
  112. package/.tfcore/utils/tf-devguide-list.sh +18 -0
  113. package/.tfcore/utils/tf-doc-check.py +1267 -0
  114. package/.tfcore/utils/tf-doc-check.sh +29 -0
  115. package/.tfcore/utils/tf-emit.sh +203 -13
  116. package/.tfcore/utils/tf-fix-close.sh +83 -0
  117. package/.tfcore/utils/tf-goal.sh +193 -62
  118. package/.tfcore/utils/tf-harness.sh +4 -9
  119. package/.tfcore/utils/tf-log-miss.py +197 -0
  120. package/.tfcore/utils/tf-log-miss.sh +14 -0
  121. package/.tfcore/utils/tf-misses-md.py +211 -0
  122. package/.tfcore/utils/tf-misses-md.sh +13 -0
  123. package/.tfcore/utils/tf-mockups-locate.py +66 -0
  124. package/.tfcore/utils/tf-mockups-locate.sh +18 -0
  125. package/.tfcore/utils/tf-opencode-audit.py +23 -7
  126. package/.tfcore/utils/tf-perf-grade.py +97 -0
  127. package/.tfcore/utils/tf-perf-grade.sh +12 -0
  128. package/.tfcore/utils/tf-phase.sh +74 -0
  129. package/.tfcore/utils/tf-routing-bind.sh +10 -5
  130. package/.tfcore/utils/tf-routing.sh +6 -7
  131. package/.tfcore/utils/tf-split-brd.py +304 -0
  132. package/.tfcore/utils/tf-split-brd.sh +22 -0
  133. package/.tfcore/utils/tf-status-evidence.sh +68 -0
  134. package/.tfcore/utils/tf-status-facts.py +309 -0
  135. package/.tfcore/utils/tf-status-facts.sh +20 -0
  136. package/.tfcore/utils/tf-triage.py +243 -0
  137. package/.tfcore/utils/tf-triage.sh +16 -0
  138. package/.tfcore/utils/tf-verify-boot.sh +250 -0
  139. package/.tfcore/utils/tf-verify-emit.sh +110 -0
  140. package/.tfcore/utils/tf-verify-env.sh +88 -0
  141. package/.tfcore/utils/tf-verify-list.py +270 -0
  142. package/.tfcore/utils/tf-verify-list.sh +13 -0
  143. package/.tfcore/utils/tf-verify-screens.mjs +283 -0
  144. package/.tfcore/utils/tf-verify-screens.sh +22 -0
  145. package/.tfcore/utils/tf-verify-tests.sh +123 -0
  146. package/.tfcore/utils/tf-verify-verdict.py +283 -0
  147. package/.tfcore/utils/tf-verify-verdict.sh +15 -0
  148. package/.tfcore/utils/tf-yolo.sh +59 -0
  149. package/README.md +114 -1149
  150. package/docs/TechieFlow-Installation.md +27 -7
  151. package/opencode.jsonc +13 -33
  152. package/package.json +4 -7
  153. package/scripts/install.mjs +73 -46
  154. package/scripts/npm-cleanup.mjs +137 -0
  155. package/scripts/npm-postinstall.mjs +49 -0
  156. package/.claude/commands/TechieFlow/tasks/advanced-elicitation.md +0 -117
  157. package/.claude/commands/TechieFlow/tasks/author-brd.md +0 -79
  158. package/.claude/commands/TechieFlow/tasks/document-project.md +0 -343
  159. package/.claude/commands/TechieFlow/tasks/execute-checklist.md +0 -86
  160. package/.claude/commands/TechieFlow/tasks/index-docs.md +0 -173
  161. package/.claude/commands/TechieFlow/tasks/kb-mode-interaction.md +0 -75
  162. package/.claude/commands/TechieFlow/tasks/shard-doc.md +0 -185
  163. package/.codex/config.toml +0 -46
  164. package/.codex/hooks.json +0 -63
  165. package/.codex/rules/techieflow.rules +0 -8
  166. package/.tfcore/hooks/codex-adapter.py +0 -248
  167. package/.tfcore/tasks/advanced-elicitation.md +0 -117
  168. package/.tfcore/tasks/author-brd.md +0 -79
  169. package/.tfcore/tasks/document-project.md +0 -343
  170. package/.tfcore/tasks/execute-checklist.md +0 -86
  171. package/.tfcore/tasks/index-docs.md +0 -173
  172. package/.tfcore/tasks/kb-mode-interaction.md +0 -75
  173. package/.tfcore/tasks/shard-doc.md +0 -185
  174. package/.tfcore/utils/tf-codex-bind.py +0 -196
  175. package/.tfcore/utils/tf-codex-telemetry.py +0 -60
  176. package/WORKFLOW.html +0 -1986
  177. package/scripts/test-install.mjs +0 -505
  178. package/scripts/validate.mjs +0 -163
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env node
2
+ // scripts/npm-postinstall.mjs — the install hook, for when someone runs
3
+ //
4
+ // npm install @techierathore/techieflow
5
+ //
6
+ // instead of the documented `npx @techierathore/techieflow@latest install`. npm runs this
7
+ // hook after it has put the package under node_modules/. The hook installs the framework
8
+ // into the project (the folder npm was run in), then starts npm-cleanup.mjs detached to
9
+ // remove the package from node_modules/, package.json and package-lock.json once npm has
10
+ // finished writing them. The result is the same as the npx command: the framework's hidden
11
+ // folders, and no npm files that were not there before.
12
+ //
13
+ // npm 12 and newer do not run install hooks unless the project allows them, so on those
14
+ // versions a plain `npm install` only places the package under node_modules/. The fix is
15
+ // to run the documented npx command, which installs the framework and tidies that up.
16
+ //
17
+ // The hook does nothing when the package is not being installed as a dependency of some
18
+ // other folder: `npx`, `npm exec`, `npm pack`, `npm publish` and `npm install` inside
19
+ // this repository all skip it.
20
+
21
+ import { spawn, spawnSync } from "node:child_process";
22
+ import { existsSync } from "node:fs";
23
+ import { dirname, join, resolve } from "node:path";
24
+ import { fileURLToPath } from "node:url";
25
+
26
+ const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
27
+ const target = process.env.INIT_CWD ? resolve(process.env.INIT_CWD) : null;
28
+ const dependencyInstall = ["install", "ci"].includes(process.env.npm_command)
29
+ && target !== null
30
+ && target !== packageRoot
31
+ && existsSync(join(target, "node_modules", "@techierathore", "techieflow"));
32
+
33
+ if (!dependencyInstall) process.exit(0);
34
+
35
+ const installed = spawnSync(process.execPath, [join(packageRoot, "scripts", "install.mjs"), "install", `--target=${target}`], {
36
+ cwd: target,
37
+ env: process.env,
38
+ stdio: "inherit",
39
+ });
40
+ if (installed.status !== 0) process.exit(installed.status ?? 1);
41
+
42
+ const cleanup = spawn(process.execPath, [join(packageRoot, "scripts", "npm-cleanup.mjs"), target], {
43
+ cwd: target,
44
+ detached: true,
45
+ stdio: "ignore",
46
+ windowsHide: true,
47
+ });
48
+ cleanup.unref();
49
+ console.log("TechieFlow installed. The temporary npm files (node_modules, package.json, package-lock.json entries) are being removed.");
@@ -1,117 +0,0 @@
1
- # Advanced Elicitation Task
2
-
3
- ## Purpose
4
-
5
- - Provide optional reflective and brainstorming actions to enhance content quality
6
- - Enable deeper exploration of ideas through structured elicitation techniques
7
- - Support iterative refinement through multiple analytical perspectives
8
- - Usable during template-driven document creation or any chat conversation
9
-
10
- ## Usage Scenarios
11
-
12
- ### Scenario 1: Template Document Creation
13
-
14
- After outputting a section during document creation:
15
-
16
- 1. **Section Review**: Ask user to review the drafted section
17
- 2. **Offer Elicitation**: Present 9 carefully selected elicitation methods
18
- 3. **Simple Selection**: User types a number (0-8) to engage method, or 9 to proceed
19
- 4. **Execute & Loop**: Apply selected method, then re-offer choices until user proceeds
20
-
21
- ### Scenario 2: General Chat Elicitation
22
-
23
- User can request advanced elicitation on any agent output:
24
-
25
- - User says "do advanced elicitation" or similar
26
- - Agent selects 9 relevant methods for the context
27
- - Same simple 0-9 selection process
28
-
29
- ## Task Instructions
30
-
31
- ### 1. Intelligent Method Selection
32
-
33
- **Context Analysis**: Before presenting options, analyze:
34
-
35
- - **Content Type**: Technical specs, user stories, architecture, requirements, etc.
36
- - **Complexity Level**: Simple, moderate, or complex content
37
- - **Stakeholder Needs**: Who will use this information
38
- - **Risk Level**: High-impact decisions vs routine items
39
- - **Creative Potential**: Opportunities for innovation or alternatives
40
-
41
- **Method Selection Strategy**:
42
-
43
- 1. **Always Include Core Methods** (choose 3-4):
44
- - Expand or Contract for Audience
45
- - Critique and Refine
46
- - Identify Potential Risks
47
- - Assess Alignment with Goals
48
-
49
- 2. **Context-Specific Methods** (choose 4-5):
50
- - **Technical Content**: Tree of Thoughts, ReWOO, Meta-Prompting
51
- - **User-Facing Content**: Agile Team Perspective, Stakeholder Roundtable
52
- - **Creative Content**: Innovation Tournament, Escape Room Challenge
53
- - **Strategic Content**: Red Team vs Blue Team, Hindsight Reflection
54
-
55
- 3. **Always Include**: "Proceed / No Further Actions" as option 9
56
-
57
- ### 2. Section Context and Review
58
-
59
- When invoked after outputting a section:
60
-
61
- 1. **Provide Context Summary**: Give a brief 1-2 sentence summary of what the user should look for in the section just presented
62
-
63
- 2. **Explain Visual Elements**: If the section contains diagrams, explain them briefly before offering elicitation options
64
-
65
- 3. **Clarify Scope Options**: If the section contains multiple distinct items, inform the user they can apply elicitation actions to:
66
- - The entire section as a whole
67
- - Individual items within the section (specify which item when selecting an action)
68
-
69
- ### 3. Present Elicitation Options
70
-
71
- **Review Request Process:**
72
-
73
- - Ask the user to review the drafted section
74
- - In the SAME message, inform them they can suggest direct changes OR select an elicitation method
75
- - Present 9 intelligently selected methods (0-8) plus "Proceed" (9)
76
- - Keep descriptions short - just the method name
77
- - Await simple numeric selection
78
-
79
- **Action List Presentation Format:**
80
-
81
- ```text
82
- **Advanced Elicitation Options**
83
- Choose a number (0-8) or 9 to proceed:
84
-
85
- 0. [Method Name]
86
- 1. [Method Name]
87
- 2. [Method Name]
88
- 3. [Method Name]
89
- 4. [Method Name]
90
- 5. [Method Name]
91
- 6. [Method Name]
92
- 7. [Method Name]
93
- 8. [Method Name]
94
- 9. Proceed / No Further Actions
95
- ```
96
-
97
- **Response Handling:**
98
-
99
- - **Numbers 0-8**: Execute the selected method, then re-offer the choice
100
- - **Number 9**: Proceed to next section or continue conversation
101
- - **Direct Feedback**: Apply user's suggested changes and continue
102
-
103
- ### 4. Method Execution Framework
104
-
105
- **Execution Process:**
106
-
107
- 1. **Retrieve Method**: Access the specific elicitation method from the elicitation-methods data file
108
- 2. **Apply Context**: Execute the method from your current role's perspective
109
- 3. **Provide Results**: Deliver insights, critiques, or alternatives relevant to the content
110
- 4. **Re-offer Choice**: Present the same 9 options again until user selects 9 or gives direct feedback
111
-
112
- **Execution Guidelines:**
113
-
114
- - **Be Concise**: Focus on actionable insights, not lengthy explanations
115
- - **Stay Relevant**: Tie all elicitation back to the specific content being analyzed
116
- - **Identify Personas**: For multi-persona methods, clearly identify which viewpoint is speaking
117
- - **Maintain Flow**: Keep the process moving efficiently
@@ -1,79 +0,0 @@
1
- # author-brd
2
-
3
- Author or extend a Business Requirements Document (BRD) with stable BRD-N requirement IDs, using interactive elicitation. The analyst NEVER assumes a requirement — each candidate is confirmed by the user before it lands in the BRD.
4
-
5
- > **When to use:** this is the INTERACTIVE alternative for extending an existing BRD requirement-by-requirement. For creating a project's BRD, the default path is `*day1-brownfield` / `*day1-greenfield` (bulk draft, no per-item confirmation).
6
-
7
- ## Purpose
8
-
9
- Produce a BRD where every business/functional requirement has a unique, stable, append-only ID (`BRD-1`, `BRD-2`, …) that downstream agents (UI agent, orchestrator, verifier) can declare and verify against. Eliminate the "implicit requirement" problem by forcing per-item user confirmation.
10
-
11
- ## elicit
12
-
13
- elicit=true — this task REQUIRES user interaction. Never skip elicitation for efficiency.
14
-
15
- ## Inputs
16
-
17
- - `{AppName}` argument (required for the canonical filename; ask once if missing).
18
- - `{topic}` argument (optional) — the product/feature area. If absent, ask once: "What's the topic / product area for this BRD?"
19
- - Existing BRD path. Resolve in this order: `core-config.yaml → customTechnicalDocuments`, then `docs/{AppName}-BRD.md` (legacy fallbacks: `docs/brd.md`, `docs/BRD.md`). If found, OPEN it and continue from the highest existing BRD-N. If not found, create `docs/{AppName}-BRD.md` from `.tfcore/templates/v4custom/app-brd-tmpl.md` (feature catalog + §10 BRD-N ledger shape — NOT ad-hoc "Phase N" sections).
20
-
21
- ## SEQUENTIAL Execution
22
-
23
- ### 1. Read or scaffold the BRD
24
-
25
- - If the resolved BRD exists: read it, parse all existing `BRD-{N}` IDs, and record the highest N. New requirements continue from N+1.
26
- - If absent: scaffold `docs/{AppName}-BRD.md` from `.tfcore/templates/v4custom/app-brd-tmpl.md` (leave unconfirmed sections empty; confirmed requirements land in the §10 ledger).
27
- - Ask the user which areas they want to scope today.
28
-
29
- ### 2. Drive elicitation per area, one at a time
30
-
31
- For each area the user wants to cover (UI, data, workflow, NFRs, etc.):
32
-
33
- 1. Generate a numbered list of CANDIDATE requirements for that area — 3 to 7 items, written as one-line "user can X" / "system shall Y" statements. Do NOT assign BRD-N IDs yet.
34
- 2. Present the list and ask the user to (a) accept, (b) reject, (c) refine, or (d) add their own — one item at a time. Use this exact prompt format:
35
- ```
36
- Candidate requirements for {area}:
37
- 1. {candidate}
38
- 2. {candidate}
39
- ...
40
- For each, reply: keep / drop / refine: <new text>. Or add a new one with: add: <text>.
41
- ```
42
- 3. After the user processes each item, assign the next BRD-N to every KEPT or REFINED item, in the order they were confirmed. Show the assignments back:
43
- ```
44
- Assigned:
45
- - BRD-{N}: {final text}
46
- - BRD-{N+1}: {final text}
47
- ```
48
- 4. Append the assigned requirements to the §10 Functional-requirements ledger of the resolved BRD file (and flesh out / create the owning feature-catalog entry).
49
-
50
- Repeat for each area until the user says they're done with this BRD pass.
51
-
52
- ### 3. NFRs and acceptance criteria (optional pass)
53
-
54
- If the user wants NFRs (performance, accessibility, browser support, etc.) or acceptance criteria for any BRD-N, run the same elicitation pattern. NFRs get their own BRD-N IDs (do NOT use a separate `NFR-N` series — keep one ID space so the verifier can grade everything uniformly).
55
-
56
- ### 4. Final output
57
-
58
- Append/refresh the footer block of the BRD:
59
- ```
60
- ---
61
- Last updated: {YYYY-MM-DD}
62
- Highest BRD ID: BRD-{N}
63
- ```
64
-
65
- Print a compact summary to the user:
66
- ```
67
- BRD updated → docs/{AppName}-BRD.md
68
- Added: BRD-{a}..BRD-{b} ({count} requirements)
69
- Phases touched: {list}
70
- ```
71
-
72
- HALT.
73
-
74
- ## Hard rules
75
-
76
- - elicit=true — never batch-confirm; one item at a time.
77
- - BRD-N IDs are append-only — never renumber an existing ID even if the user removes a requirement later (mark it `~~BRD-N~~ (removed)` instead).
78
- - Requirements are written as observable outcomes, not implementation hints. The verifier needs to be able to test them.
79
- - The analyst writes the BRD; the analyst does NOT implement anything.
@@ -1,343 +0,0 @@
1
- # Document an Existing Project
2
-
3
- ## Purpose
4
-
5
- Generate comprehensive documentation for existing projects optimized for AI development agents. This task creates structured reference materials that enable AI agents to understand project context, conventions, and patterns for effective contribution to any codebase.
6
-
7
- ## Task Instructions
8
-
9
- ### 1. Initial Project Analysis
10
-
11
- **CRITICAL:** First, check if a PRD or requirements document exists in context. If yes, use it to focus your documentation efforts on relevant areas only.
12
-
13
- **IF PRD EXISTS**:
14
-
15
- - Review the PRD to understand what enhancement/feature is planned
16
- - Identify which modules, services, or areas will be affected
17
- - Focus documentation ONLY on these relevant areas
18
- - Skip unrelated parts of the codebase to keep docs lean
19
-
20
- **IF NO PRD EXISTS**:
21
- Ask the user:
22
-
23
- "I notice you haven't provided a PRD or requirements document. To create more focused and useful documentation, I recommend one of these options:
24
-
25
- 1. **Create a PRD first** - Would you like me to help create a brownfield PRD before documenting? This helps focus documentation on relevant areas.
26
-
27
- 2. **Provide existing requirements** - Do you have a requirements document, epic, or feature description you can share?
28
-
29
- 3. **Describe the focus** - Can you briefly describe what enhancement or feature you're planning? For example:
30
- - 'Adding payment processing to the user service'
31
- - 'Refactoring the authentication module'
32
- - 'Integrating with a new third-party API'
33
-
34
- 4. **Document everything** - Or should I proceed with comprehensive documentation of the entire codebase? (Note: This may create excessive documentation for large projects)
35
-
36
- Please let me know your preference, or I can proceed with full documentation if you prefer."
37
-
38
- Based on their response:
39
-
40
- - If they choose option 1-3: Use that context to focus documentation
41
- - If they choose option 4 or decline: Proceed with comprehensive analysis below
42
-
43
- Begin by conducting analysis of the existing project. Use available tools to:
44
-
45
- 1. **Project Structure Discovery**: Examine the root directory structure, identify main folders, and understand the overall organization
46
- 2. **Technology Stack Identification**: Look for package.json, requirements.txt, Cargo.toml, pom.xml, etc. to identify languages, frameworks, and dependencies
47
- 3. **Build System Analysis**: Find build scripts, CI/CD configurations, and development commands
48
- 4. **Existing Documentation Review**: Check for README files, docs folders, and any existing documentation
49
- 5. **Code Pattern Analysis**: Sample key files to understand coding patterns, naming conventions, and architectural approaches
50
-
51
- Ask the user these elicitation questions to better understand their needs:
52
-
53
- - What is the primary purpose of this project?
54
- - Are there any specific areas of the codebase that are particularly complex or important for agents to understand?
55
- - What types of tasks do you expect AI agents to perform on this project? (e.g., bug fixes, feature additions, refactoring, testing)
56
- - Are there any existing documentation standards or formats you prefer?
57
- - What level of technical detail should the documentation target? (junior developers, senior developers, mixed team)
58
- - Is there a specific feature or enhancement you're planning? (This helps focus documentation)
59
-
60
- ### 2. Deep Codebase Analysis
61
-
62
- CRITICAL: Before generating documentation, conduct extensive analysis of the existing codebase:
63
-
64
- 1. **Explore Key Areas**:
65
- - Entry points (main files, index files, app initializers)
66
- - Configuration files and environment setup
67
- - Package dependencies and versions
68
- - Build and deployment configurations
69
- - Test suites and coverage
70
-
71
- 2. **Ask Clarifying Questions**:
72
- - "I see you're using [technology X]. Are there any custom patterns or conventions I should document?"
73
- - "What are the most critical/complex parts of this system that developers struggle with?"
74
- - "Are there any undocumented 'tribal knowledge' areas I should capture?"
75
- - "What technical debt or known issues should I document?"
76
- - "Which parts of the codebase change most frequently?"
77
-
78
- 3. **Map the Reality**:
79
- - Identify ACTUAL patterns used (not theoretical best practices)
80
- - Find where key business logic lives
81
- - Locate integration points and external dependencies
82
- - Document workarounds and technical debt
83
- - Note areas that differ from standard patterns
84
-
85
- **IF PRD PROVIDED**: Also analyze what would need to change for the enhancement
86
-
87
- ### 3. Core Documentation Generation
88
-
89
- [[LLM: Generate a comprehensive BROWNFIELD architecture document that reflects the ACTUAL state of the codebase.
90
-
91
- **CRITICAL**: This is NOT an aspirational architecture document. Document what EXISTS, including:
92
-
93
- - Technical debt and workarounds
94
- - Inconsistent patterns between different parts
95
- - Legacy code that can't be changed
96
- - Integration constraints
97
- - Performance bottlenecks
98
-
99
- **Document Structure**:
100
-
101
- # [Project Name] Brownfield Architecture Document
102
-
103
- ## Introduction
104
-
105
- This document captures the CURRENT STATE of the [Project Name] codebase, including technical debt, workarounds, and real-world patterns. It serves as a reference for AI agents working on enhancements.
106
-
107
- ### Document Scope
108
-
109
- [If PRD provided: "Focused on areas relevant to: {enhancement description}"]
110
- [If no PRD: "Comprehensive documentation of entire system"]
111
-
112
- ### Change Log
113
-
114
- | Date | Version | Description | Author |
115
- | ------ | ------- | --------------------------- | --------- |
116
- | [Date] | 1.0 | Initial brownfield analysis | [Analyst] |
117
-
118
- ## Quick Reference - Key Files and Entry Points
119
-
120
- ### Critical Files for Understanding the System
121
-
122
- - **Main Entry**: `src/index.js` (or actual entry point)
123
- - **Configuration**: `config/app.config.js`, `.env.example`
124
- - **Core Business Logic**: `src/services/`, `src/domain/`
125
- - **API Definitions**: `src/routes/` or link to OpenAPI spec
126
- - **Database Models**: `src/models/` or link to schema files
127
- - **Key Algorithms**: [List specific files with complex logic]
128
-
129
- ### If PRD Provided - Enhancement Impact Areas
130
-
131
- [Highlight which files/modules will be affected by the planned enhancement]
132
-
133
- ## High Level Architecture
134
-
135
- ### Technical Summary
136
-
137
- ### Actual Tech Stack (from package.json/requirements.txt)
138
-
139
- | Category | Technology | Version | Notes |
140
- | --------- | ---------- | ------- | -------------------------- |
141
- | Runtime | Node.js | 16.x | [Any constraints] |
142
- | Framework | Express | 4.18.2 | [Custom middleware?] |
143
- | Database | PostgreSQL | 13 | [Connection pooling setup] |
144
-
145
- etc...
146
-
147
- ### Repository Structure Reality Check
148
-
149
- - Type: [Monorepo/Polyrepo/Hybrid]
150
- - Package Manager: [npm/yarn/pnpm]
151
- - Notable: [Any unusual structure decisions]
152
-
153
- ## Source Tree and Module Organization
154
-
155
- ### Project Structure (Actual)
156
-
157
- ```text
158
- project-root/
159
- ├── src/
160
- │ ├── controllers/ # HTTP request handlers
161
- │ ├── services/ # Business logic (NOTE: inconsistent patterns between user and payment services)
162
- │ ├── models/ # Database models (Sequelize)
163
- │ ├── utils/ # Mixed bag - needs refactoring
164
- │ └── legacy/ # DO NOT MODIFY - old payment system still in use
165
- ├── tests/ # Jest tests (60% coverage)
166
- ├── scripts/ # Build and deployment scripts
167
- └── config/ # Environment configs
168
- ```
169
-
170
- ### Key Modules and Their Purpose
171
-
172
- - **User Management**: `src/services/userService.js` - Handles all user operations
173
- - **Authentication**: `src/middleware/auth.js` - JWT-based, custom implementation
174
- - **Payment Processing**: `src/legacy/payment.js` - CRITICAL: Do not refactor, tightly coupled
175
- - **[List other key modules with their actual files]**
176
-
177
- ## Data Models and APIs
178
-
179
- ### Data Models
180
-
181
- Instead of duplicating, reference actual model files:
182
-
183
- - **User Model**: See `src/models/User.js`
184
- - **Order Model**: See `src/models/Order.js`
185
- - **Related Types**: TypeScript definitions in `src/types/`
186
-
187
- ### API Specifications
188
-
189
- - **OpenAPI Spec**: `docs/api/openapi.yaml` (if exists)
190
- - **Postman Collection**: `docs/api/postman-collection.json`
191
- - **Manual Endpoints**: [List any undocumented endpoints discovered]
192
-
193
- ## Technical Debt and Known Issues
194
-
195
- ### Critical Technical Debt
196
-
197
- 1. **Payment Service**: Legacy code in `src/legacy/payment.js` - tightly coupled, no tests
198
- 2. **User Service**: Different pattern than other services, uses callbacks instead of promises
199
- 3. **Database Migrations**: Manually tracked, no proper migration tool
200
- 4. **[Other significant debt]**
201
-
202
- ### Workarounds and Gotchas
203
-
204
- - **Environment Variables**: Must set `NODE_ENV=production` even for staging (historical reason)
205
- - **Database Connections**: Connection pool hardcoded to 10, changing breaks payment service
206
- - **[Other workarounds developers need to know]**
207
-
208
- ## Integration Points and External Dependencies
209
-
210
- ### External Services
211
-
212
- | Service | Purpose | Integration Type | Key Files |
213
- | -------- | -------- | ---------------- | ------------------------------ |
214
- | Stripe | Payments | REST API | `src/integrations/stripe/` |
215
- | SendGrid | Emails | SDK | `src/services/emailService.js` |
216
-
217
- etc...
218
-
219
- ### Internal Integration Points
220
-
221
- - **Frontend Communication**: REST API on port 3000, expects specific headers
222
- - **Background Jobs**: Redis queue, see `src/workers/`
223
- - **[Other integrations]**
224
-
225
- ## Development and Deployment
226
-
227
- ### Local Development Setup
228
-
229
- 1. Actual steps that work (not ideal steps)
230
- 2. Known issues with setup
231
- 3. Required environment variables (see `.env.example`)
232
-
233
- ### Build and Deployment Process
234
-
235
- - **Build Command**: `npm run build` (webpack config in `webpack.config.js`)
236
- - **Deployment**: Manual deployment via `scripts/deploy.sh`
237
- - **Environments**: Dev, Staging, Prod (see `config/environments/`)
238
-
239
- ## Testing Reality
240
-
241
- ### Current Test Coverage
242
-
243
- - Unit Tests: 60% coverage (Jest)
244
- - Integration Tests: Minimal, in `tests/integration/`
245
- - E2E Tests: None
246
- - Manual Testing: Primary QA method
247
-
248
- ### Running Tests
249
-
250
- ```bash
251
- npm test # Runs unit tests
252
- npm run test:integration # Runs integration tests (requires local DB)
253
- ```
254
-
255
- ## If Enhancement PRD Provided - Impact Analysis
256
-
257
- ### Files That Will Need Modification
258
-
259
- Based on the enhancement requirements, these files will be affected:
260
-
261
- - `src/services/userService.js` - Add new user fields
262
- - `src/models/User.js` - Update schema
263
- - `src/routes/userRoutes.js` - New endpoints
264
- - [etc...]
265
-
266
- ### New Files/Modules Needed
267
-
268
- - `src/services/newFeatureService.js` - New business logic
269
- - `src/models/NewFeature.js` - New data model
270
- - [etc...]
271
-
272
- ### Integration Considerations
273
-
274
- - Will need to integrate with existing auth middleware
275
- - Must follow existing response format in `src/utils/responseFormatter.js`
276
- - [Other integration points]
277
-
278
- ## Appendix - Useful Commands and Scripts
279
-
280
- ### Frequently Used Commands
281
-
282
- ```bash
283
- npm run dev # Start development server
284
- npm run build # Production build
285
- npm run migrate # Run database migrations
286
- npm run seed # Seed test data
287
- ```
288
-
289
- ### Debugging and Troubleshooting
290
-
291
- - **Logs**: Check `logs/app.log` for application logs
292
- - **Debug Mode**: Set `DEBUG=app:*` for verbose logging
293
- - **Common Issues**: See `docs/troubleshooting.md`]]
294
-
295
- ### 4. Document Delivery
296
-
297
- 1. **In Web UI (Gemini, ChatGPT, Claude)**:
298
- - Present the entire document in one response (or multiple if too long)
299
- - Tell user to copy and save as `docs/brownfield-architecture.md` or `docs/project-architecture.md`
300
- - Mention it can be sharded later in IDE if needed
301
-
302
- 2. **In IDE Environment**:
303
- - Create the document as `docs/brownfield-architecture.md`
304
- - Inform user this single document contains all architectural information
305
- - Can be sharded later using PO agent if desired
306
-
307
- The document should be comprehensive enough that future agents can understand:
308
-
309
- - The actual state of the system (not idealized)
310
- - Where to find key files and logic
311
- - What technical debt exists
312
- - What constraints must be respected
313
- - If PRD provided: What needs to change for the enhancement]]
314
-
315
- ### 5. Quality Assurance
316
-
317
- CRITICAL: Before finalizing the document:
318
-
319
- 1. **Accuracy Check**: Verify all technical details match the actual codebase
320
- 2. **Completeness Review**: Ensure all major system components are documented
321
- 3. **Focus Validation**: If user provided scope, verify relevant areas are emphasized
322
- 4. **Clarity Assessment**: Check that explanations are clear for AI agents
323
- 5. **Navigation**: Ensure document has clear section structure for easy reference
324
-
325
- Apply the advanced elicitation task after major sections to refine based on user feedback.
326
-
327
- ## Success Criteria
328
-
329
- - Single comprehensive brownfield architecture document created
330
- - Document reflects REALITY including technical debt and workarounds
331
- - Key files and modules are referenced with actual paths
332
- - Models/APIs reference source files rather than duplicating content
333
- - If PRD provided: Clear impact analysis showing what needs to change
334
- - Document enables AI agents to navigate and understand the actual codebase
335
- - Technical constraints and "gotchas" are clearly documented
336
-
337
- ## Notes
338
-
339
- - This task creates ONE document that captures the TRUE state of the system
340
- - References actual files rather than duplicating content when possible
341
- - Documents technical debt, workarounds, and constraints honestly
342
- - For brownfield projects with PRD: Provides clear enhancement impact analysis
343
- - The goal is PRACTICAL documentation for AI agents doing real work
@@ -1,86 +0,0 @@
1
- # Checklist Validation Task
2
-
3
- This task provides instructions for validating documentation against checklists. The agent MUST follow these instructions to ensure thorough and systematic validation of documents.
4
-
5
- ## Available Checklists
6
-
7
- If the user asks or does not specify a specific checklist, list the checklists available to the agent persona. If the task is being run not with a specific agent, tell the user to check the .tfcore/checklists folder to select the appropriate one to run.
8
-
9
- ## Instructions
10
-
11
- 1. **Initial Assessment**
12
- - If user or the task being run provides a checklist name:
13
- - Try fuzzy matching (e.g. "architecture checklist" -> "architect-checklist")
14
- - If multiple matches found, ask user to clarify
15
- - Load the appropriate checklist from .tfcore/checklists/
16
- - If no checklist specified:
17
- - Ask the user which checklist they want to use
18
- - Present the available options from the files in the checklists folder
19
- - Confirm if they want to work through the checklist:
20
- - Section by section (interactive mode - very time consuming)
21
- - All at once (YOLO mode - recommended for checklists, there will be a summary of sections at the end to discuss)
22
-
23
- 2. **Document and Artifact Gathering**
24
- - Each checklist will specify its required documents/artifacts at the beginning
25
- - Follow the checklist's specific instructions for what to gather, generally a file can be resolved in the docs folder, if not or unsure, halt and ask or confirm with the user.
26
-
27
- 3. **Checklist Processing**
28
-
29
- If in interactive mode:
30
- - Work through each section of the checklist one at a time
31
- - For each section:
32
- - Review all items in the section following instructions for that section embedded in the checklist
33
- - Check each item against the relevant documentation or artifacts as appropriate
34
- - Present summary of findings for that section, highlighting warnings, errors and non applicable items (rationale for non-applicability).
35
- - Get user confirmation before proceeding to next section or if any thing major do we need to halt and take corrective action
36
-
37
- If in YOLO mode:
38
- - Process all sections at once
39
- - Create a comprehensive report of all findings
40
- - Present the complete analysis to the user
41
-
42
- 4. **Validation Approach**
43
-
44
- For each checklist item:
45
- - Read and understand the requirement
46
- - Look for evidence in the documentation that satisfies the requirement
47
- - Consider both explicit mentions and implicit coverage
48
- - Aside from this, follow all checklist llm instructions
49
- - Mark items as:
50
- - ✅ PASS: Requirement clearly met
51
- - ❌ FAIL: Requirement not met or insufficient coverage
52
- - ⚠️ PARTIAL: Some aspects covered but needs improvement
53
- - N/A: Not applicable to this case
54
-
55
- 5. **Section Analysis**
56
-
57
- For each section:
58
- - think step by step to calculate pass rate
59
- - Identify common themes in failed items
60
- - Provide specific recommendations for improvement
61
- - In interactive mode, discuss findings with user
62
- - Document any user decisions or explanations
63
-
64
- 6. **Final Report**
65
-
66
- Prepare a summary that includes:
67
- - Overall checklist completion status
68
- - Pass rates by section
69
- - List of failed items with context
70
- - Specific recommendations for improvement
71
- - Any sections or items marked as N/A with justification
72
-
73
- ## Checklist Execution Methodology
74
-
75
- Each checklist now contains embedded LLM prompts and instructions that will:
76
-
77
- 1. **Guide thorough thinking** - Prompts ensure deep analysis of each section
78
- 2. **Request specific artifacts** - Clear instructions on what documents/access is needed
79
- 3. **Provide contextual guidance** - Section-specific prompts for better validation
80
- 4. **Generate comprehensive reports** - Final summary with detailed findings
81
-
82
- The LLM will:
83
-
84
- - Execute the complete checklist validation
85
- - Present a final report with pass/fail rates and key findings
86
- - Offer to provide detailed analysis of any section, especially those with warnings or failures