wize-dev-kit 0.15.0 → 0.16.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 (232) hide show
  1. package/ARCH.md +24 -77
  2. package/CHANGELOG.md +9 -0
  3. package/DECISIONS.md +1 -27
  4. package/README.md +4 -0
  5. package/ROSTER.md +3 -11
  6. package/adapters/README.md +7 -8
  7. package/adapters/antigravity/README.md +5 -5
  8. package/adapters/claude-code/README.md +1 -1
  9. package/adapters/codex/README.md +5 -5
  10. package/adapters/codex/adapter.yaml +1 -1
  11. package/adapters/codex/render.js +1 -1
  12. package/adapters/continue/README.md +5 -5
  13. package/adapters/cursor/README.md +2 -2
  14. package/adapters/generic/README.md +1 -1
  15. package/adapters/kimi-code/README.md +5 -5
  16. package/adapters/kimi-code/render.js +2 -2
  17. package/adapters/opencode/README.md +3 -3
  18. package/adapters/opencode/render.js +1 -27
  19. package/adapters/windsurf/README.md +3 -3
  20. package/package.json +1 -1
  21. package/schemas/agent.schema.json +2 -2
  22. package/schemas/workflow.schema.json +1 -1
  23. package/src/app-overlay/wize-app-release-channels/workflow.md +0 -2
  24. package/src/app-overlay/wize-app-scaffold/workflow.md +0 -2
  25. package/src/app-overlay/wize-app-store-listing/workflow.md +0 -2
  26. package/src/builder-skills/wize-create-agent/workflow.md +0 -2
  27. package/src/builder-skills/wize-create-skill/workflow.md +0 -2
  28. package/src/builder-skills/wize-create-workflow/workflow.md +0 -2
  29. package/src/core-skills/module.yaml +3 -0
  30. package/src/core-skills/wize-advanced-elicitation/skill.md +0 -2
  31. package/src/core-skills/wize-brainstorming/skill.md +0 -2
  32. package/src/core-skills/wize-eli5/skill.md +72 -0
  33. package/src/core-skills/wize-review-adversarial/skill.md +0 -3
  34. package/src/core-skills/wize-shard-doc/skill.md +0 -2
  35. package/src/method-skills/1-analysis/wize-agent-analyst/agent.yaml +0 -3
  36. package/src/method-skills/1-analysis/wize-document-project/workflow.md +20 -213
  37. package/src/method-skills/1-analysis/wize-prfaq/workflow.md +11 -152
  38. package/src/method-skills/1-analysis/wize-product-brief/workflow.md +19 -92
  39. package/src/method-skills/1-analysis/wize-research/workflow.md +12 -39
  40. package/src/method-skills/1-analysis/wize-trigger-map/workflow.md +16 -82
  41. package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +23 -135
  42. package/src/method-skills/2-plan-workflows/wize-ux-design/workflow.md +28 -134
  43. package/src/method-skills/2-plan-workflows/wize-ux-scenarios/workflow.md +15 -93
  44. package/src/method-skills/2-plan-workflows/wize-validate-prd/workflow.md +12 -108
  45. package/src/method-skills/3-solutioning/wize-check-implementation-readiness/workflow.md +11 -103
  46. package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +48 -55
  47. package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +15 -154
  48. package/src/method-skills/3-solutioning/wize-design-system/workflow.md +22 -184
  49. package/src/method-skills/3-solutioning/wize-nfr-principles/workflow.md +17 -145
  50. package/src/method-skills/3-solutioning/wize-tech-vision/workflow.md +22 -130
  51. package/src/method-skills/4-implementation/wize-agent-dev/persona.md +0 -12
  52. package/src/method-skills/4-implementation/wize-code-review/workflow.md +12 -54
  53. package/src/method-skills/4-implementation/wize-create-story/workflow.md +10 -154
  54. package/src/method-skills/4-implementation/wize-dev-story/workflow.md +17 -185
  55. package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +18 -136
  56. package/src/method-skills/4-implementation/wize-retrospective/workflow.md +10 -114
  57. package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +11 -78
  58. package/src/method-skills/4-implementation/wize-sprint-status/workflow.md +11 -45
  59. package/src/method-skills/module.yaml +0 -28
  60. package/src/orchestrator-skills/module.yaml +1 -7
  61. package/src/orchestrator-skills/wize-help/skill.md +67 -227
  62. package/src/orchestrator-skills/wize-onboarding/workflow.md +14 -78
  63. package/src/orchestrator-skills/wize-orchestrator/agent.yaml +0 -2
  64. package/src/orchestrator-skills/wize-orchestrator/persona.md +3 -44
  65. package/src/orchestrator-skills/wize-party-mode/workflow.md +0 -2
  66. package/src/tea-skills/wize-tea-design/workflow.md +13 -107
  67. package/src/tea-skills/wize-tea-gate/workflow.md +25 -118
  68. package/src/tea-skills/wize-tea-nfr/workflow.md +14 -107
  69. package/src/tea-skills/wize-tea-review/workflow.md +13 -123
  70. package/src/tea-skills/wize-tea-risk/workflow.md +10 -113
  71. package/src/tea-skills/wize-tea-trace/workflow.md +12 -86
  72. package/src/web-overlay/wize-web-deploy/workflow.md +0 -2
  73. package/src/web-overlay/wize-web-scaffold/workflow.md +0 -2
  74. package/src/web-overlay/wize-web-seo-audit/workflow.md +0 -2
  75. package/tools/check-eli5-all-adapters.js +50 -0
  76. package/tools/installer/onboarding.js +20 -14
  77. package/tools/installer/render-shared.js +15 -159
  78. package/tools/installer/setup-helpers.js +0 -1
  79. package/tools/installer/validators/run-all.js +2 -3
  80. package/tools/installer/wize-cli.js +70 -500
  81. package/AGENTS.md +0 -37
  82. package/README.es.md +0 -295
  83. package/README.pt-BR.md +0 -293
  84. package/adapters/hermes/README.md +0 -23
  85. package/adapters/hermes/adapter.yaml +0 -8
  86. package/adapters/hermes/render.js +0 -17
  87. package/docs/harnesses/antigravity.md +0 -20
  88. package/docs/harnesses/antigravity.pt-BR.md +0 -20
  89. package/docs/harnesses/claude-code.md +0 -23
  90. package/docs/harnesses/claude-code.pt-BR.md +0 -23
  91. package/docs/harnesses/codex.md +0 -21
  92. package/docs/harnesses/codex.pt-BR.md +0 -21
  93. package/docs/harnesses/continue.md +0 -21
  94. package/docs/harnesses/continue.pt-BR.md +0 -21
  95. package/docs/harnesses/cursor.md +0 -22
  96. package/docs/harnesses/cursor.pt-BR.md +0 -22
  97. package/docs/harnesses/generic.md +0 -20
  98. package/docs/harnesses/generic.pt-BR.md +0 -20
  99. package/docs/harnesses/hermes.md +0 -26
  100. package/docs/harnesses/hermes.pt-BR.md +0 -26
  101. package/docs/harnesses/kimi-code.md +0 -19
  102. package/docs/harnesses/kimi-code.pt-BR.md +0 -19
  103. package/docs/harnesses/opencode.md +0 -31
  104. package/docs/harnesses/opencode.pt-BR.md +0 -31
  105. package/docs/harnesses/windsurf.md +0 -22
  106. package/docs/harnesses/windsurf.pt-BR.md +0 -22
  107. package/src/core-skills/wize-customize/skill.md +0 -116
  108. package/src/core-skills/wize-editorial-review-prose/skill.md +0 -94
  109. package/src/core-skills/wize-editorial-review-structure/skill.md +0 -99
  110. package/src/core-skills/wize-grill/skill.md +0 -77
  111. package/src/core-skills/wize-index-docs/skill.md +0 -119
  112. package/src/core-skills/wize-pre-pr-check/skill.md +0 -134
  113. package/src/core-skills/wize-review-edge-case-hunter/skill.md +0 -115
  114. package/src/core-skills/wize-spec/assets/headless-schemas.md +0 -39
  115. package/src/core-skills/wize-spec/assets/spec-template.md +0 -40
  116. package/src/core-skills/wize-spec/customize.toml +0 -20
  117. package/src/core-skills/wize-spec/skill.md +0 -112
  118. package/src/method-skills/1-analysis/wize-document-project/documentation-requirements.csv +0 -12
  119. package/src/method-skills/1-analysis/wize-document-project/templates/api-contracts-template.md +0 -38
  120. package/src/method-skills/1-analysis/wize-document-project/templates/architecture-template.md +0 -54
  121. package/src/method-skills/1-analysis/wize-document-project/templates/component-inventory-template.md +0 -40
  122. package/src/method-skills/1-analysis/wize-document-project/templates/contribution-guide-template.md +0 -34
  123. package/src/method-skills/1-analysis/wize-document-project/templates/data-models-template.md +0 -36
  124. package/src/method-skills/1-analysis/wize-document-project/templates/deep-dive-template.md +0 -312
  125. package/src/method-skills/1-analysis/wize-document-project/templates/deployment-guide-template.md +0 -42
  126. package/src/method-skills/1-analysis/wize-document-project/templates/development-guide-template.md +0 -61
  127. package/src/method-skills/1-analysis/wize-document-project/templates/index-template.md +0 -185
  128. package/src/method-skills/1-analysis/wize-document-project/templates/project-overview-template.md +0 -110
  129. package/src/method-skills/1-analysis/wize-document-project/templates/project-scan-report-schema.json +0 -159
  130. package/src/method-skills/1-analysis/wize-document-project/templates/source-tree-template.md +0 -142
  131. package/src/method-skills/1-analysis/wize-domain-research/customize.toml +0 -14
  132. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-01-init.md +0 -49
  133. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-02-domain-analysis.md +0 -39
  134. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-03-competitive-landscape.md +0 -39
  135. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-04-regulatory-focus.md +0 -39
  136. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-05-technical-trends.md +0 -39
  137. package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-06-research-synthesis.md +0 -43
  138. package/src/method-skills/1-analysis/wize-domain-research/research.template.md +0 -31
  139. package/src/method-skills/1-analysis/wize-domain-research/workflow.md +0 -58
  140. package/src/method-skills/1-analysis/wize-market-research/customize.toml +0 -14
  141. package/src/method-skills/1-analysis/wize-market-research/research.template.md +0 -31
  142. package/src/method-skills/1-analysis/wize-market-research/steps/step-01-init.md +0 -57
  143. package/src/method-skills/1-analysis/wize-market-research/steps/step-02-customer-behavior.md +0 -39
  144. package/src/method-skills/1-analysis/wize-market-research/steps/step-03-customer-pain-points.md +0 -37
  145. package/src/method-skills/1-analysis/wize-market-research/steps/step-04-customer-decisions.md +0 -39
  146. package/src/method-skills/1-analysis/wize-market-research/steps/step-05-competitive-analysis.md +0 -37
  147. package/src/method-skills/1-analysis/wize-market-research/steps/step-06-research-completion.md +0 -47
  148. package/src/method-skills/1-analysis/wize-market-research/workflow.md +0 -66
  149. package/src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md +0 -129
  150. package/src/method-skills/1-analysis/wize-technical-research/customize.toml +0 -14
  151. package/src/method-skills/1-analysis/wize-technical-research/research.template.md +0 -31
  152. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-01-init.md +0 -49
  153. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-02-technical-overview.md +0 -45
  154. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-03-integration-patterns.md +0 -39
  155. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-04-architectural-patterns.md +0 -39
  156. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-05-implementation-research.md +0 -42
  157. package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-06-research-synthesis.md +0 -46
  158. package/src/method-skills/1-analysis/wize-technical-research/workflow.md +0 -60
  159. package/src/method-skills/2-plan-workflows/wize-edit-prd/workflow.md +0 -110
  160. package/src/method-skills/3-solutioning/wize-create-architecture/architecture-decision-template.md +0 -41
  161. package/src/method-skills/3-solutioning/wize-create-architecture/customize.toml +0 -20
  162. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01-init.md +0 -95
  163. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01b-continue.md +0 -32
  164. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-02-context.md +0 -126
  165. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-03-starter.md +0 -110
  166. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-04-decisions.md +0 -129
  167. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-05-patterns.md +0 -109
  168. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-06-structure.md +0 -97
  169. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-07-validation.md +0 -124
  170. package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-08-complete.md +0 -59
  171. package/src/method-skills/3-solutioning/wize-project-context/workflow.md +0 -120
  172. package/src/method-skills/4-implementation/wize-changelog/workflow.md +0 -184
  173. package/src/method-skills/4-implementation/wize-checkpoint-preview/workflow.md +0 -117
  174. package/src/method-skills/4-implementation/wize-code-review/customize.toml +0 -21
  175. package/src/method-skills/4-implementation/wize-code-review/steps/step-01-gather-context.md +0 -64
  176. package/src/method-skills/4-implementation/wize-code-review/steps/step-02-review.md +0 -40
  177. package/src/method-skills/4-implementation/wize-code-review/steps/step-03-triage.md +0 -43
  178. package/src/method-skills/4-implementation/wize-code-review/steps/step-04-present.md +0 -100
  179. package/src/method-skills/4-implementation/wize-correct-course/workflow.md +0 -93
  180. package/src/method-skills/4-implementation/wize-investigate/workflow.md +0 -123
  181. package/src/method-skills/4-implementation/wize-release/workflow.md +0 -162
  182. package/src/orchestrator-skills/wize/skill.md +0 -164
  183. package/src/orchestrator-skills/wize-check/skill.md +0 -98
  184. package/src/security-overlay/_shared/allowlist.js +0 -154
  185. package/src/security-overlay/_shared/backlog.js +0 -169
  186. package/src/security-overlay/_shared/cli-runner.js +0 -87
  187. package/src/security-overlay/_shared/cvss.js +0 -108
  188. package/src/security-overlay/_shared/detect.js +0 -125
  189. package/src/security-overlay/_shared/install-script.js +0 -205
  190. package/src/security-overlay/_shared/invoke-phase.js +0 -86
  191. package/src/security-overlay/_shared/owasp.js +0 -56
  192. package/src/security-overlay/_shared/partial.js +0 -225
  193. package/src/security-overlay/_shared/preflight.js +0 -175
  194. package/src/security-overlay/_shared/scope-gate.js +0 -172
  195. package/src/security-overlay/_shared/scope-parser.js +0 -147
  196. package/src/security-overlay/agents/red-teamer/agent.yaml +0 -54
  197. package/src/security-overlay/agents/red-teamer/persona.md +0 -49
  198. package/src/security-overlay/data/common.txt +0 -115
  199. package/src/security-overlay/data/owasp-top10.json +0 -15
  200. package/src/security-overlay/data/tool-allowlist.json +0 -31
  201. package/src/security-overlay/skills/wize-sec-enumerate/scripts/run-enumerate.js +0 -180
  202. package/src/security-overlay/skills/wize-sec-enumerate/skill.md +0 -34
  203. package/src/security-overlay/skills/wize-sec-exploit/data/common.txt +0 -117
  204. package/src/security-overlay/skills/wize-sec-exploit/scripts/run-ffuf.js +0 -147
  205. package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nikto.js +0 -145
  206. package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nuclei.js +0 -176
  207. package/src/security-overlay/skills/wize-sec-exploit/scripts/run-sqlmap.js +0 -139
  208. package/src/security-overlay/skills/wize-sec-pentest/scripts/run-pipeline.js +0 -184
  209. package/src/security-overlay/skills/wize-sec-pentest/skill.md +0 -54
  210. package/src/security-overlay/skills/wize-sec-recon/scripts/run-gitleaks.js +0 -139
  211. package/src/security-overlay/skills/wize-sec-recon/scripts/run-osv.js +0 -227
  212. package/src/security-overlay/skills/wize-sec-recon/scripts/run-recon.js +0 -162
  213. package/src/security-overlay/skills/wize-sec-recon/skill.md +0 -37
  214. package/src/security-overlay/skills/wize-sec-report/scripts/render-report.js +0 -1033
  215. package/src/security-overlay/skills/wize-sec-scope/scripts/generate-scope.js +0 -106
  216. package/src/security-overlay/skills/wize-sec-scope/skill.md +0 -52
  217. package/src/tea-skills/wize-qa-generate-e2e-tests/workflow.md +0 -121
  218. package/tools/installer/baseline.js +0 -133
  219. package/tools/installer/commands/agent.js +0 -197
  220. package/tools/installer/commands/doctor.js +0 -320
  221. package/tools/installer/commands/document-project.js +0 -93
  222. package/tools/installer/commands/sync.js +0 -45
  223. package/tools/installer/commands/update.js +0 -172
  224. package/tools/installer/document-project/batch-scanner.js +0 -93
  225. package/tools/installer/document-project/classify.js +0 -170
  226. package/tools/installer/document-project/modes/deep-dive.js +0 -196
  227. package/tools/installer/document-project/modes/full-rescan.js +0 -15
  228. package/tools/installer/document-project/modes/initial-scan.js +0 -100
  229. package/tools/installer/document-project/modes/quick.js +0 -211
  230. package/tools/installer/document-project/render-index.js +0 -101
  231. package/tools/installer/document-project/state.js +0 -110
  232. package/tools/installer/version-check.js +0 -117
@@ -7,27 +7,9 @@ I am **Wizer**. I am the host of this development kit. I know who you are, what
7
7
  ## Operating principles
8
8
 
9
9
  1. **Listen first.** Before routing, I make sure I understand the demand. One clarifying question is cheaper than three wrong hand-offs.
10
- 2. **Route by intent, not just phase.** When the user's message contains a clear intent phrase ("quero pesquisar concorrência", "cria um PRD", "roda um pentest"), I route directly to the matching skill using the intent routing table. I use the phase heuristic only when intent is ambiguous or no intent phrase matches.
11
- 3. **Route, don't perform.** I rarely do the specialist's job. When the question is a brief, I call Pepper. When it is a PRD, Maria Hill. When it is architecture, Tony.
12
- 4. **Keep the thread.** I keep the knowledge of the project consistent across conversations. If something changed, I update `.wize/config/project.toml` before moving on.
13
- 5. **Pair when needed.** When a decision crosses concerns (UX touching architecture, PM touching TEA), I open a **party-mode** with the relevant agents.
14
- 6. **Treat the kit as the contract.** `.wize/`, `AGENTS.md`, and the installed `wize-*` skills are the operating instructions and persistent memory of whoever executes — not background reading. I make sure a demand is classified (Quick Dev vs Full Lifecycle, via `/wize` or `/wize-help`) and framed as a mission — objective, sources of truth, scope, acceptance criteria, validation — before any code is touched.
15
- 7. **Harness-aware interaction.** In text-only harnesses, I ask one clarifying question when intent is ambiguous. In rich-UI harnesses, I offer a menu of matching options.
16
-
17
- ## Fan-out to subagents
18
-
19
- Party-mode is personas taking turns in this same thread — for live back-and-forth. When a step instead needs several **independent** reads on the same input (adversarial review, edge-case sweep, N-way research) that shouldn't see each other's output, I don't fake it by looping through personas myself. Any skill that needs this follows the same pattern:
20
-
21
- 1. **Name each subagent's role and prompt.** E.g. "Blind Hunter — reviews the diff cynically."
22
- 2. **Scope its context explicitly.** State exactly what it can see (diff only? diff + repo read access? diff + spec?). The isolation is the point — a subagent that sees everything can't give an independent read.
23
- 3. **Dispatch on whatever the current harness natively supports:**
24
- - Claude Code — the Task/Agent tool, one call per subagent, run concurrently.
25
- - OpenCode — the persona files this kit renders under `.opencode/agents/*.md` with `mode: subagent`; invoke by name.
26
- - Any harness without a subagent primitive (Codex included) — there is no isolated dispatch available. Generate one prompt file per subagent under the skill's artifact folder and halt, asking the user to run each in a separate session.
27
- 4. **Match the model tier to the task.** Independent reads aren't all equal weight. Dispatch mechanical layers (file sweeps, grep passes, short summaries) on a **lightweight tier**; implementation, refactor, and standard review on the **standard tier**; reserve a **high-capability tier** for architecture calls, critical decisions, and final adversarial review — or when a standard-tier layer already failed. Pass the tier explicitly whenever the harness lets you set it; don't just inherit the session default. Tiers only — never name a vendor's models.
28
- 5. **Tolerate partial failure.** If one subagent fails, times out, or returns empty, note it and proceed with whatever the others returned. Don't block on one flaky layer.
29
-
30
- `wize-code-review` is the reference implementation (see its step-02).
10
+ 2. **Route, don't perform.** I rarely do the specialist's job. When the question is a brief, I call Pepper. When it is a PRD, Maria Hill. When it is architecture, Tony.
11
+ 3. **Keep the thread.** I keep the knowledge of the project consistent across conversations. If something changed, I update `.wize/config/project.toml` before moving on.
12
+ 4. **Pair when needed.** When a decision crosses concerns (UX touching architecture, PM touching TEA), I open a **party-mode** with the relevant agents.
31
13
 
32
14
  ## Voice
33
15
 
@@ -41,29 +23,6 @@ Before greeting, read `.wize/config/user.toml` if it exists. If it has `[user] n
41
23
 
42
24
  If `user.toml` is missing or has no `name`, fall back to a neutral greeting.
43
25
 
44
- ## First-run detection
45
-
46
- Before greeting, check whether this is a first run:
47
-
48
- 1. Read `.wize/planning/brief.md` — if it exists, this is NOT a first run.
49
- 2. Read `.wize/knowledge/document-project/` — if it has content (any `.md` files), this is NOT a first run.
50
- 3. If neither exists: **first run**.
51
-
52
- ## First-run flow
53
-
54
- When first run is detected, do NOT show a menu. Ask one question:
55
-
56
- > "O que você está construindo?"
57
-
58
- Wait for the answer. Then classify:
59
-
60
- - **Greenfield** (new project, idea, feature, product): route to **Pepper / `wize-product-brief`**.
61
- - **Brownfield** (existing codebase, legacy system, "we already have X"): route to **Pepper / `wize-document-project`**.
62
-
63
- If the answer is ambiguous, ask one clarifying question: "Is this a new project or an existing codebase?" Then route.
64
-
65
- Never show a menu on first run. One question → classify → route.
66
-
67
26
  ## Greet
68
27
 
69
28
  > "Welcome back{{`, ` + user.name when present, else ''}}. What are we working on?"
@@ -1,7 +1,5 @@
1
1
  ---
2
-
3
2
  code: wize-party-mode
4
- description: "Use quando uma decisão cruzar preocupações de múltiplos agentes e precisar de discussão multi-agente facilitada."
5
3
  name: Party Mode (multi-agent)
6
4
  owner: wize-orchestrator # Wizer facilitates
7
5
  status: stub
@@ -1,132 +1,38 @@
1
1
  ---
2
-
3
2
  code: wize-tea-design
4
- description: "Use quando uma story entrar em desenvolvimento e precisar do contrato de testes (split, fixtures, mocks, assertions) que a Shuri implementará."
5
3
  name: TEA Test Design
6
- phase: 4-implementation
7
4
  gate: design
8
5
  owner: wize-agent-test-architect # Hawkeye
9
6
  when: per-story-start
10
- status: ready
7
+ status: stub
11
8
  ---
12
9
 
13
10
  # TEA — Test Design
14
11
 
15
- **Goal.** For **one story**: declare the test split, the fixtures, the mocks, the environments, and the assertion targets. This is Hawkeye's contract Shuri implements against. No story enters dev without one.
16
-
17
- Hawkeye drives. Runs at the start of every story (advisory; can be relaxed only when `tea.toml` says so).
12
+ **Goal.** For one story: declare the test split (unit / integration / e2e), required fixtures, mocks, environments.
18
13
 
19
14
  ## Inputs
20
-
21
15
  - `.wize/solutioning/stories/{epic}/{story}.md`
22
16
  - `.wize/solutioning/architecture.md`
23
- - `.wize/implementation/tea/risk-profile.md`
24
- - Overlay test playbooks if active:
25
- - `web-overlay/playbooks/playwright-vitest.md`
26
- - `app-overlay/playbooks/detox-maestro.md`
27
17
 
28
18
  ## Output
29
-
30
19
  - `.wize/implementation/tea/{epic}/{story}/design.md`
31
20
 
32
- ## Steps
33
-
34
- ### 1. Read the story; map every AC
35
-
36
- For each AC, write **one assertion-shape sentence**: *"There will be a {kind} test that does {what} and expects {observable}."*
37
-
38
- ### 2. Pick the test split
39
-
40
- Defaults (from `playwright-vitest.md` / `detox-maestro.md`):
41
- - **Low-risk story:** 70% unit / 20% integration / 10% E2E.
42
- - **Risk-profile flagged story (R-1..R-3):** add 1–2 dedicated E2E + integration for the risk area.
43
- - **UI-only story:** 60% unit / 30% component (Testing Library) / 10% E2E.
44
- - **Server-only story:** 80% unit / 20% integration; no E2E unless an upstream consumer story bundles it.
45
-
46
- ### 3. Declare fixtures + mocks
47
-
48
- - Fixtures: known users, known DB rows, known files.
49
- - Mocks: external services at the network boundary (MSW). Don't mock the unit under test.
50
-
51
- ### 4. Environment
52
-
53
- - Where it runs (local sim, headless emulator, real device farm).
54
- - Network conditions (offline / 3G slow / lossy WiFi).
55
- - OS / browser matrix (from `device-matrix.md` or playwright projects).
56
-
57
- ### 5. Edge cases (cheap; pay back × 10)
58
-
59
- List 3–7 edge cases the ACs don't name but the user might hit:
60
- - Empty / max-length inputs.
61
- - IME / paste / autofill.
62
- - Offline mid-action.
63
- - Concurrent users on the same resource.
64
- - Time-zone / DST.
65
- - Localized number/currency.
66
-
67
- Each gets a test of its own (usually unit).
68
-
69
- ### 6. Hand off
70
-
71
- Mark `status: ready-for-dev` in the design.md frontmatter. Shuri reads before starting.
72
-
73
- ## YAML frontmatter (canonical)
74
-
21
+ ## YAML frontmatter
75
22
  ```yaml
76
23
  ---
77
24
  gate: design
78
- story_id: E01-S03
79
- ac_ids: [AC-02-1, AC-02-2]
80
- status: PASS
81
- created_at: 2026-06-11T12:00:00Z
25
+ story_id: …
26
+ ac_ids: [AC-1, AC-2, …]
82
27
  test_split:
83
- unit: { count: 4, description: "validation, server-action contract, error mapper, mailer payload" }
84
- integration: { count: 1, description: "server action calls mailer with right args, against MSW" }
85
- e2e: { count: 1, description: "happy path; Playwright @chromium @ios" }
86
- fixtures:
87
- - "new-admin user"
88
- - "empty team"
89
- mocks:
90
- - "Resend via MSW"
91
- - "Auth session via fixture cookie"
92
- environment: "local + Playwright project chromium + ios"
93
- risk_links: [R-1]
94
- edges:
95
- - "invalid email rules: blank, missing @, weird IME chars"
96
- - "duplicate teammate email"
97
- - "offline at submit time"
28
+ unit: count + brief description
29
+ integration: count + brief description
30
+ e2e: count + brief description
31
+ fixtures: [...]
32
+ mocks: [...]
33
+ environment: dev|staging|isolated
98
34
  ---
99
35
  ```
100
36
 
101
- ## Body of `design.md`
102
-
103
- ```markdown
104
- ## Per-AC assertion shapes
105
-
106
- - **AC-02-1**: Vitest unit on `validateInviteEmail()` → returns `{ ok: true }` for `name+tag@example.com`. Vitest integration on `inviteTeammate()` server action → asserts `mailer.send` called once with `{ to: 'name@example.com', template: 'team-invite' }`. Playwright E2E → clicks "Send invite", asserts `[data-testid="invite-sent-banner"]` appears within 1s.
107
-
108
- - **AC-02-2**: Vitest unit on `validateInviteEmail()` → returns `{ ok: false, code: 'invalid_format', field: 'email' }` for empty/no-@. Component test (Testing Library) on `<InviteForm>` → asserts the input's `aria-describedby` error region announces "Enter a valid email."
109
-
110
- ## Edge cases (additional tests)
111
-
112
- - E1: Empty email — `validateInviteEmail('')` → `invalid_format`.
113
- - E2: 254-char local part — boundary check; expect graceful clipping.
114
- - E3: Same email submitted twice — second call hits `inviteTeammate()`, asserts second insert is a no-op (idempotency key based on `(team_id, email)`).
115
- - E4: Offline at submit — Playwright `context.setOffline(true)` after click; banner shows "We'll retry when you're back online."
116
-
117
- ## Run plan
118
- - On every PR: full unit + integration; E2E `@smoke` tag only (≤ 30s).
119
- - Nightly: full E2E suite + Lighthouse baseline.
120
- ```
121
-
122
- ## Anti-patterns Hawkeye rejects
123
-
124
- - **`design.md` written after dev started.** Then the story slipped through; flag.
125
- - **One test per AC, no edges.** Edges are where users live.
126
- - **Mocking the unit under test.** You'd be testing the mock.
127
- - **E2E that test the happy path only.** Cover failure too.
128
- - **Selectors by visible text in a multilingual app.** Use `data-testid` or `role` with locale-aware patterns.
129
-
130
- ## Hand-off
131
-
132
- > Test design for E01-S03 at `.wize/implementation/tea/E01-S03/design.md`. 4 unit, 1 integration, 1 E2E, plus 4 edges. Shuri can start; I'll check `tea-trace.md` against this when the PR opens.
37
+ ## Body
38
+ Plain-English rationale + edge-case list.
@@ -1,144 +1,51 @@
1
1
  ---
2
-
3
2
  code: wize-tea-gate
4
- description: "Use quando uma story chegar ao final e precisar da decisão de gate (PASS/CONCERNS/FAIL/WAIVED) com rationale documentado."
5
3
  name: TEA Gate Decision
6
- phase: 4-implementation
7
4
  gate: gate
8
5
  owner: wize-agent-test-architect # Hawkeye
9
6
  when: story-final
10
- status: ready
7
+ status: stub
11
8
  ---
12
9
 
13
10
  # TEA — Gate Decision
14
11
 
15
- **Goal.** Final per-story decision. **PASS / CONCERNS / FAIL / WAIVED** with documented rationale, score, and policy mode. This is the line: a story doesn't advance past it without a recorded gate.
16
-
17
- Hawkeye drives. The four inputs (`design`, `trace`, `review`, plus `nfr` at epic boundary) feed in. Policy is read from `.wize/config/tea.toml`.
12
+ **Goal.** Final per-story gate. PASS / CONCERNS / FAIL / WAIVED with documented rationale.
18
13
 
19
14
  ## Inputs
20
-
21
- - `.wize/implementation/tea/{epic}/{story}/design.md`
22
- - `.wize/implementation/tea/{epic}/{story}/trace.md`
23
- - `.wize/implementation/tea/{epic}/{story}/review.md`
24
- - `.wize/implementation/tea/nfr/{epic}.md` (when the story is the last of its epic)
25
- - `.wize/config/tea.toml`
15
+ - `design.md`, `trace.md`, `review.md` for the story
16
+ - `nfr/{epic}.md` if applicable
17
+ - Story file
26
18
 
27
19
  ## Output
28
-
29
20
  - `.wize/implementation/tea/{epic}/{story}/gate.md`
30
21
 
31
- ## Decision rules
32
-
33
- | Inputs | Recommendation |
34
- |---|---|
35
- | All ACs `met`, no findings | **PASS** |
36
- | All ACs `met`, only low/medium non-blocking findings | **PASS** with notes (or **CONCERNS** depending on count) |
37
- | Any AC `partial` | **CONCERNS** |
38
- | Any AC `not-met` | **FAIL** |
39
- | NFR `FAIL` on the epic (last story) | **FAIL** |
40
- | `tea-review` flagged `knowledge_axes_touched` ≠ `knowledge_axes_updated` (any axis touched without update) | **CONCERNS** (advisory mode) / **FAIL** (enforcing mode) — adds finding `KN-NN` |
41
- | Failing AC OR non-neg NFR with documented business rationale + senior signoff | **WAIVED** |
42
-
43
- Score (0–100): heuristic. `100 - (10 × high) - (5 × medium) - (2 × low)`. Floor 0.
44
-
45
- ## Policy
46
-
47
- `.wize/config/tea.toml` sets `policy = "advisory"` (default) or `"enforcing"`.
48
-
49
- - **Advisory:** `FAIL` is a visible warning in PR; merge isn't auto-blocked. The team decides.
50
- - **Enforcing:** `FAIL` blocks merge via CI status check (`tea-gate`). PASS / CONCERNS allowed through.
51
-
52
- ## Steps
53
-
54
- ### 1. Read the three inputs
55
-
56
- If trace shows `partial`, you know the recommendation. If review recommends FAIL, you've got your decision. The gate doc just records it.
57
-
58
- ### 2. Compute score
59
-
60
- Don't game it. The score communicates magnitude to humans skimming a backlog.
61
-
62
- ### 3. Write the doc
63
-
64
- Frontmatter is the structured truth. The body is the narrative for humans.
65
-
66
- ### 4. Notify
67
-
68
- Update the PR description with the gate verdict + link to the doc. Maria Hill watches the gate status in `sprint-status.md`.
69
-
70
22
  ## YAML frontmatter (canonical)
71
-
72
23
  ```yaml
73
24
  ---
74
25
  gate: gate
75
- story_id: E01-S03
76
- status: PASS
77
- score: 95
78
- policy: advisory
26
+ story_id: …
27
+ status: PASS | CONCERNS | FAIL | WAIVED
28
+ score: 0-100
29
+ policy: advisory | enforcing
79
30
  inputs:
80
- design: ".wize/implementation/tea/E01-S03/design.md"
81
- trace: ".wize/implementation/tea/E01-S03/trace.md"
82
- review: ".wize/implementation/tea/E01-S03/review.md"
83
- nfr: null # not the last story of E01
31
+ - design.md: …
32
+ - trace.md: …
33
+ - review.md: …
34
+ - nfr/{epic}.md: …
84
35
  findings:
85
- - id: REV-01
86
- severity: low
87
- summary: "Empty-state copy slightly differs from Mantis' spec."
88
- recommendation: "Update `<EmptyTeamPanel>` heading in a follow-up."
89
- - id: KN-01
90
- severity: medium
91
- summary: "Story added a new component (`<InviteForm>`) but architecture-snapshot.md was not updated."
92
- recommendation: "Add 2 lines to `.wize/knowledge/document-project/architecture-snapshot.md` under a dated bullet referencing the new component + its public testid contract."
93
- owner: shuri
94
- blocking: false # advisory mode; would be true under enforcing
95
- waived_by: null
96
- waived_reason: null
97
- created_at: 2026-06-11T20:30:00Z
36
+ - id: G-1
37
+ severity: low | medium | high
38
+ summary: …
39
+ recommendation: …
40
+ waived_by: null | "wizer"
41
+ waived_reason: null | "…"
42
+ created_at: ISO-8601
98
43
  ---
99
44
  ```
100
45
 
101
- ## Body of `gate.md`
102
-
103
- ```markdown
104
- ## Verdict
105
- **PASS** (score 95)
106
-
107
- ## Why
108
- - All ACs met with observed evidence.
109
- - Trace clean; coverage 100% on ACs, partial on edges (E3, E4) — tracked for follow-up.
110
- - Review found one low-severity copy finding (REV-01).
111
- - Story is not the last in epic 01; NFR gate runs separately at epic boundary.
112
-
113
- ## Notes for follow-up
114
- - Open a tiny story (or include in next sprint planning) to fix REV-01 and close edges E3, E4.
115
-
116
- ## Trail
117
- - design.md → 4/1/1 split (unit/integration/e2e) + 4 edges declared.
118
- - trace.md → all ACs `covered`; E3 `partial`, E4 `missing` (follow-up).
119
- - review.md → ACs `met`, scope mostly disciplined, copy nit.
120
- - nfr.md → N/A (mid-epic).
121
- ```
122
-
123
- ## When to WAIVE
124
-
125
- Rare. Examples:
126
- - A failing E2E that depends on a flaky external sandbox; the production code is unaffected; sign-off by Tony + Hill.
127
- - A non-negotiable temporarily slipped because of an external integration blocker; we ship with mitigation in place; sign-off by Fury.
128
-
129
- A WAIVE always lists:
130
- - Who waived (`waived_by`).
131
- - Why (`waived_reason`).
132
- - The compensating control (a follow-up story, an SLA monitor, a feature flag).
46
+ ## Body
47
+ Narrative explanation; structured data is the YAML.
133
48
 
134
- ## Anti-patterns Hawkeye rejects
135
-
136
- - **Gating without `review.md`.** No review → no gate.
137
- - **PASS with a `not-met` AC.** Auto-fail.
138
- - **WAIVED with no `waived_by` field.** Reject.
139
- - **Scoring jiggered to clear a threshold.** Trust trumps point-scoring; if the count says 70, don't write 91.
140
- - **Enforcing mode gates without CI check wiring.** Ghost gate; remove or wire it.
141
-
142
- ## Hand-off
143
-
144
- > Gate for E01-S03: **PASS** (score 95). One low-severity finding logged for follow-up. Maria Hill, sprint-status updated; Shuri, ready to start the next story.
49
+ ## Policy
50
+ - **advisory** (default): FAIL is a warning. Merge proceeds.
51
+ - **enforcing**: FAIL blocks merge via CI. Configured in `.wize/config/tea.toml`.
@@ -1,130 +1,37 @@
1
1
  ---
2
-
3
2
  code: wize-tea-nfr
4
- description: "Use quando um epic estiver próximo do merge e precisar verificar se atende aos princípios de NFR definidos pelo Fury."
5
3
  name: TEA NFR Assessment
6
- phase: 4-implementation
7
4
  gate: nfr
8
5
  owner: wize-agent-test-architect # Hawkeye
9
6
  when: pre-merge-per-epic
10
- status: ready
7
+ status: stub
11
8
  ---
12
9
 
13
10
  # TEA — NFR Assessment
14
11
 
15
- **Goal.** Verify that the **epic** as a whole meets Fury's NFR principles: performance, security, reliability, maintainability, accessibility, cost. Story-level gates miss NFRs that emerge only at integration; this gate catches them.
16
-
17
- Hawkeye drives. Tony reviews perf + security findings. Fury escalates if a non-negotiable is at risk. Runs **per epic**, just before any of its stories merges.
12
+ **Goal.** Verify the epic meets Fury's NFR principles: performance, security, reliability, maintainability, accessibility, cost.
18
13
 
19
14
  ## Inputs
20
-
21
- - `.wize/planning/nfr-principles.md` (Fury's targets)
15
+ - `.wize/planning/nfr-principles.md`
22
16
  - Code from all stories in the epic
23
- - Telemetry / benchmark output (lighthouse, web-vitals, macrobenchmark, Sentry perf)
24
- - Overlay perf playbooks: `web-perf-budgets.md`, `mobile-perf-budgets.md`
17
+ - Telemetry/benchmark output
25
18
 
26
19
  ## Output
27
-
28
20
  - `.wize/implementation/tea/nfr/{epic}.md`
29
21
 
30
- ## Steps
31
-
32
- ### 1. For each category, run the verifier
33
-
34
- | Category | Verifier (typical) |
35
- |---|---|
36
- | Performance | lighthouse-ci against epic-scope routes; web-vitals beacon delta |
37
- | Security | `npm audit --omit=dev`; manual OWASP Top 10 walk; secret scan |
38
- | Reliability | injected-failure tests (`@chaos` tag); retry policy review; idempotency check |
39
- | Maintainability | coverage delta; cyclomatic complexity delta; lint baseline |
40
- | Accessibility | axe on every epic-scope route; keyboard walk on critical flows |
41
- | Cost | cost dashboard delta in the epic window |
42
-
43
- ### 2. Score each
44
-
45
- For each category: `PASS` (meets non-negotiable) / `CONCERNS` (within stretch range; below non-negotiable on a measurable item with mitigation plan) / `FAIL` (non-negotiable missed; no plan) / `WAIVED` (with documented reason + sign-off).
46
-
47
- ### 3. Findings (one per slip)
48
-
49
- If anything failed or concerned, write the finding: what we measured, what was expected, why the slip, what the next step is.
50
-
51
- ### 4. Hand off
52
-
53
- `PASS` → epic can merge. `CONCERNS` (advisory) → flag in PR description. `FAIL` (enforcing) → blocks merge.
54
-
55
- ## YAML frontmatter (canonical)
56
-
22
+ ## YAML frontmatter
57
23
  ```yaml
58
24
  ---
59
25
  gate: nfr
60
- epic: 01-onboarding
61
- status: CONCERNS
26
+ epic: …
27
+ status: PASS | CONCERNS | FAIL | WAIVED
62
28
  scores:
63
- performance: PASS
64
- security: PASS
65
- reliability: CONCERNS
66
- maintainability: PASS
67
- accessibility: PASS
68
- cost: PASS
69
- findings:
70
- - id: NFR-01-1
71
- category: reliability
72
- severity: medium
73
- summary: "Outbox retry interval too aggressive for Resend's documented backoff."
74
- expected: "Exponential 30s/2m/10m; we set 5s/15s/45s."
75
- actual: "Spike in Resend 429s during integration test."
76
- recommendation: "Update retry policy in `lib/email/outbox.ts`; capture with `outbox-retry.spec.ts`."
77
- owner: shuri
78
- blocking: false
79
- created_at: 2026-06-11T18:00:00Z
29
+ performance: …
30
+ security: …
31
+ reliability: …
32
+ maintainability: …
33
+ accessibility: …
34
+ cost: …
35
+ findings: [...]
80
36
  ---
81
37
  ```
82
-
83
- ## Body of `nfr/{epic}.md`
84
-
85
- ```markdown
86
- ## Summary
87
- Epic 01 (onboarding) at gate. Performance and a11y pass non-negotiables; reliability has one mid-severity concern around outbox backoff.
88
-
89
- ## Per category
90
-
91
- ### Performance — PASS
92
- - LCP (signup): 1.45s p75 (target ≤ 2.5s).
93
- - INP (signup): 90ms p75 (target ≤ 200ms).
94
- - CLS (signup): 0.03 (target ≤ 0.1).
95
- - LCP (onboarding): 1.7s p75.
96
-
97
- ### Security — PASS
98
- - `npm audit` clean (dev advisories noted in `.audit-ignore.md`).
99
- - OWASP Top 10 walk: no findings.
100
- - RLS verified on `users`, `teams`, `memberships`.
101
-
102
- ### Reliability — CONCERNS
103
- - See NFR-01-1.
104
-
105
- ### Maintainability — PASS
106
- - Coverage 84% on logic modules in this epic.
107
- - No file > 300 LOC introduced.
108
-
109
- ### Accessibility — PASS
110
- - axe clean on `/signup`, `/signup/error`, `/onboarding`, `/onboarding/invite-sent`.
111
- - Keyboard walk: focus order matches visual; modal traps + restores.
112
-
113
- ### Cost — PASS
114
- - No cost dashboard change beyond expected (account creation; mailer spend within budget).
115
-
116
- ## Action items
117
- - Shuri: PR-XXX fixes NFR-01-1. Re-run NFR after merge.
118
- - Hawkeye: re-baseline web-vitals after epic ships to prod.
119
- ```
120
-
121
- ## Anti-patterns Hawkeye rejects
122
-
123
- - **Self-reported "looks fine" with no verifier output.** Attach the artifact.
124
- - **Concerns left for "later."** Either an action item with owner+deadline or it's not a concern.
125
- - **Waived without sign-off.** WAIVED needs `waived_by: NAME` + reason.
126
- - **NFR run on stage with synthetic data.** Use realistic distributions whenever possible.
127
-
128
- ## Hand-off
129
-
130
- > NFR gate for Epic 01: **CONCERNS**. PR can proceed if the reliability finding (NFR-01-1) is committed to be addressed in the next sprint. Otherwise hold the merge.