wize-dev-kit 0.14.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.
- package/ARCH.md +24 -77
- package/CHANGELOG.md +24 -0
- package/DECISIONS.md +1 -27
- package/README.md +7 -2
- package/ROSTER.md +3 -11
- package/adapters/README.md +7 -7
- package/adapters/antigravity/README.md +5 -5
- package/adapters/claude-code/README.md +1 -1
- package/adapters/codex/README.md +5 -5
- package/adapters/codex/adapter.yaml +1 -1
- package/adapters/codex/render.js +1 -1
- package/adapters/continue/README.md +5 -5
- package/adapters/cursor/README.md +2 -2
- package/adapters/generic/README.md +1 -1
- package/adapters/kimi-code/README.md +5 -5
- package/adapters/kimi-code/render.js +2 -2
- package/adapters/opencode/README.md +3 -3
- package/adapters/opencode/render.js +1 -27
- package/adapters/windsurf/README.md +3 -3
- package/package.json +1 -1
- package/schemas/agent.schema.json +2 -2
- package/schemas/workflow.schema.json +1 -1
- package/src/app-overlay/wize-app-release-channels/workflow.md +0 -2
- package/src/app-overlay/wize-app-scaffold/workflow.md +0 -2
- package/src/app-overlay/wize-app-store-listing/workflow.md +0 -2
- package/src/builder-skills/wize-create-agent/workflow.md +0 -2
- package/src/builder-skills/wize-create-skill/workflow.md +0 -2
- package/src/builder-skills/wize-create-workflow/workflow.md +0 -2
- package/src/core-skills/module.yaml +3 -0
- package/src/core-skills/wize-advanced-elicitation/skill.md +0 -2
- package/src/core-skills/wize-brainstorming/skill.md +0 -2
- package/src/core-skills/wize-eli5/skill.md +72 -0
- package/src/core-skills/wize-review-adversarial/skill.md +0 -3
- package/src/core-skills/wize-shard-doc/skill.md +0 -2
- package/src/method-skills/1-analysis/wize-agent-analyst/agent.yaml +0 -3
- package/src/method-skills/1-analysis/wize-document-project/workflow.md +20 -213
- package/src/method-skills/1-analysis/wize-prfaq/workflow.md +11 -152
- package/src/method-skills/1-analysis/wize-product-brief/workflow.md +19 -92
- package/src/method-skills/1-analysis/wize-research/workflow.md +12 -39
- package/src/method-skills/1-analysis/wize-trigger-map/workflow.md +16 -82
- package/src/method-skills/2-plan-workflows/wize-create-prd/workflow.md +23 -135
- package/src/method-skills/2-plan-workflows/wize-ux-design/workflow.md +28 -134
- package/src/method-skills/2-plan-workflows/wize-ux-scenarios/workflow.md +15 -93
- package/src/method-skills/2-plan-workflows/wize-validate-prd/workflow.md +12 -108
- package/src/method-skills/3-solutioning/wize-check-implementation-readiness/workflow.md +11 -103
- package/src/method-skills/3-solutioning/wize-create-architecture/workflow.md +48 -55
- package/src/method-skills/3-solutioning/wize-create-epics-and-stories/workflow.md +15 -154
- package/src/method-skills/3-solutioning/wize-design-system/workflow.md +22 -184
- package/src/method-skills/3-solutioning/wize-nfr-principles/workflow.md +17 -145
- package/src/method-skills/3-solutioning/wize-tech-vision/workflow.md +22 -130
- package/src/method-skills/4-implementation/wize-agent-dev/persona.md +0 -12
- package/src/method-skills/4-implementation/wize-code-review/workflow.md +12 -54
- package/src/method-skills/4-implementation/wize-create-story/workflow.md +10 -154
- package/src/method-skills/4-implementation/wize-dev-story/workflow.md +17 -185
- package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +18 -136
- package/src/method-skills/4-implementation/wize-retrospective/workflow.md +10 -114
- package/src/method-skills/4-implementation/wize-sprint-planning/workflow.md +11 -78
- package/src/method-skills/4-implementation/wize-sprint-status/workflow.md +11 -45
- package/src/method-skills/module.yaml +0 -28
- package/src/orchestrator-skills/module.yaml +1 -7
- package/src/orchestrator-skills/wize-help/skill.md +67 -227
- package/src/orchestrator-skills/wize-onboarding/workflow.md +14 -78
- package/src/orchestrator-skills/wize-orchestrator/agent.yaml +0 -2
- package/src/orchestrator-skills/wize-orchestrator/persona.md +3 -44
- package/src/orchestrator-skills/wize-party-mode/workflow.md +0 -2
- package/src/tea-skills/wize-tea-design/workflow.md +13 -107
- package/src/tea-skills/wize-tea-gate/workflow.md +25 -118
- package/src/tea-skills/wize-tea-nfr/workflow.md +14 -107
- package/src/tea-skills/wize-tea-review/workflow.md +13 -123
- package/src/tea-skills/wize-tea-risk/workflow.md +10 -113
- package/src/tea-skills/wize-tea-trace/workflow.md +12 -86
- package/src/web-overlay/wize-web-deploy/workflow.md +0 -2
- package/src/web-overlay/wize-web-scaffold/workflow.md +0 -2
- package/src/web-overlay/wize-web-seo-audit/workflow.md +0 -2
- package/tools/check-eli5-all-adapters.js +50 -0
- package/tools/installer/onboarding.js +20 -14
- package/tools/installer/render-shared.js +14 -158
- package/tools/installer/validators/run-all.js +2 -3
- package/tools/installer/wize-cli.js +70 -499
- package/AGENTS.md +0 -37
- package/README.es.md +0 -294
- package/README.pt-BR.md +0 -292
- package/docs/harnesses/antigravity.md +0 -20
- package/docs/harnesses/antigravity.pt-BR.md +0 -20
- package/docs/harnesses/claude-code.md +0 -23
- package/docs/harnesses/claude-code.pt-BR.md +0 -23
- package/docs/harnesses/codex.md +0 -21
- package/docs/harnesses/codex.pt-BR.md +0 -21
- package/docs/harnesses/continue.md +0 -21
- package/docs/harnesses/continue.pt-BR.md +0 -21
- package/docs/harnesses/cursor.md +0 -22
- package/docs/harnesses/cursor.pt-BR.md +0 -22
- package/docs/harnesses/generic.md +0 -20
- package/docs/harnesses/generic.pt-BR.md +0 -20
- package/docs/harnesses/kimi-code.md +0 -19
- package/docs/harnesses/kimi-code.pt-BR.md +0 -19
- package/docs/harnesses/opencode.md +0 -31
- package/docs/harnesses/opencode.pt-BR.md +0 -31
- package/docs/harnesses/windsurf.md +0 -22
- package/docs/harnesses/windsurf.pt-BR.md +0 -22
- package/src/core-skills/wize-customize/skill.md +0 -116
- package/src/core-skills/wize-editorial-review-prose/skill.md +0 -94
- package/src/core-skills/wize-editorial-review-structure/skill.md +0 -99
- package/src/core-skills/wize-grill/skill.md +0 -77
- package/src/core-skills/wize-index-docs/skill.md +0 -119
- package/src/core-skills/wize-pre-pr-check/skill.md +0 -134
- package/src/core-skills/wize-review-edge-case-hunter/skill.md +0 -115
- package/src/core-skills/wize-spec/assets/headless-schemas.md +0 -39
- package/src/core-skills/wize-spec/assets/spec-template.md +0 -40
- package/src/core-skills/wize-spec/customize.toml +0 -20
- package/src/core-skills/wize-spec/skill.md +0 -112
- package/src/method-skills/1-analysis/wize-document-project/documentation-requirements.csv +0 -12
- package/src/method-skills/1-analysis/wize-document-project/templates/api-contracts-template.md +0 -38
- package/src/method-skills/1-analysis/wize-document-project/templates/architecture-template.md +0 -54
- package/src/method-skills/1-analysis/wize-document-project/templates/component-inventory-template.md +0 -40
- package/src/method-skills/1-analysis/wize-document-project/templates/contribution-guide-template.md +0 -34
- package/src/method-skills/1-analysis/wize-document-project/templates/data-models-template.md +0 -36
- package/src/method-skills/1-analysis/wize-document-project/templates/deep-dive-template.md +0 -312
- package/src/method-skills/1-analysis/wize-document-project/templates/deployment-guide-template.md +0 -42
- package/src/method-skills/1-analysis/wize-document-project/templates/development-guide-template.md +0 -61
- package/src/method-skills/1-analysis/wize-document-project/templates/index-template.md +0 -185
- package/src/method-skills/1-analysis/wize-document-project/templates/project-overview-template.md +0 -110
- package/src/method-skills/1-analysis/wize-document-project/templates/project-scan-report-schema.json +0 -159
- package/src/method-skills/1-analysis/wize-document-project/templates/source-tree-template.md +0 -142
- package/src/method-skills/1-analysis/wize-domain-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-01-init.md +0 -49
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-02-domain-analysis.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-03-competitive-landscape.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-04-regulatory-focus.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-05-technical-trends.md +0 -39
- package/src/method-skills/1-analysis/wize-domain-research/domain-steps/step-06-research-synthesis.md +0 -43
- package/src/method-skills/1-analysis/wize-domain-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-domain-research/workflow.md +0 -58
- package/src/method-skills/1-analysis/wize-market-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-market-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-market-research/steps/step-01-init.md +0 -57
- package/src/method-skills/1-analysis/wize-market-research/steps/step-02-customer-behavior.md +0 -39
- package/src/method-skills/1-analysis/wize-market-research/steps/step-03-customer-pain-points.md +0 -37
- package/src/method-skills/1-analysis/wize-market-research/steps/step-04-customer-decisions.md +0 -39
- package/src/method-skills/1-analysis/wize-market-research/steps/step-05-competitive-analysis.md +0 -37
- package/src/method-skills/1-analysis/wize-market-research/steps/step-06-research-completion.md +0 -47
- package/src/method-skills/1-analysis/wize-market-research/workflow.md +0 -66
- package/src/method-skills/1-analysis/wize-refresh-knowledge/workflow.md +0 -129
- package/src/method-skills/1-analysis/wize-technical-research/customize.toml +0 -14
- package/src/method-skills/1-analysis/wize-technical-research/research.template.md +0 -31
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-01-init.md +0 -49
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-02-technical-overview.md +0 -45
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-03-integration-patterns.md +0 -39
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-04-architectural-patterns.md +0 -39
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-05-implementation-research.md +0 -42
- package/src/method-skills/1-analysis/wize-technical-research/technical-steps/step-06-research-synthesis.md +0 -46
- package/src/method-skills/1-analysis/wize-technical-research/workflow.md +0 -60
- package/src/method-skills/2-plan-workflows/wize-edit-prd/workflow.md +0 -110
- package/src/method-skills/3-solutioning/wize-create-architecture/architecture-decision-template.md +0 -41
- package/src/method-skills/3-solutioning/wize-create-architecture/customize.toml +0 -20
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01-init.md +0 -95
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-01b-continue.md +0 -32
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-02-context.md +0 -126
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-03-starter.md +0 -110
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-04-decisions.md +0 -129
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-05-patterns.md +0 -109
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-06-structure.md +0 -97
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-07-validation.md +0 -124
- package/src/method-skills/3-solutioning/wize-create-architecture/steps/step-08-complete.md +0 -59
- package/src/method-skills/3-solutioning/wize-project-context/workflow.md +0 -120
- package/src/method-skills/4-implementation/wize-changelog/workflow.md +0 -184
- package/src/method-skills/4-implementation/wize-checkpoint-preview/workflow.md +0 -117
- package/src/method-skills/4-implementation/wize-code-review/customize.toml +0 -21
- package/src/method-skills/4-implementation/wize-code-review/steps/step-01-gather-context.md +0 -64
- package/src/method-skills/4-implementation/wize-code-review/steps/step-02-review.md +0 -40
- package/src/method-skills/4-implementation/wize-code-review/steps/step-03-triage.md +0 -43
- package/src/method-skills/4-implementation/wize-code-review/steps/step-04-present.md +0 -100
- package/src/method-skills/4-implementation/wize-correct-course/workflow.md +0 -93
- package/src/method-skills/4-implementation/wize-investigate/workflow.md +0 -123
- package/src/method-skills/4-implementation/wize-release/workflow.md +0 -162
- package/src/orchestrator-skills/wize/skill.md +0 -164
- package/src/orchestrator-skills/wize-check/skill.md +0 -98
- package/src/security-overlay/_shared/allowlist.js +0 -154
- package/src/security-overlay/_shared/backlog.js +0 -169
- package/src/security-overlay/_shared/cli-runner.js +0 -87
- package/src/security-overlay/_shared/cvss.js +0 -108
- package/src/security-overlay/_shared/detect.js +0 -125
- package/src/security-overlay/_shared/install-script.js +0 -205
- package/src/security-overlay/_shared/invoke-phase.js +0 -86
- package/src/security-overlay/_shared/owasp.js +0 -56
- package/src/security-overlay/_shared/partial.js +0 -225
- package/src/security-overlay/_shared/preflight.js +0 -175
- package/src/security-overlay/_shared/scope-gate.js +0 -172
- package/src/security-overlay/_shared/scope-parser.js +0 -147
- package/src/security-overlay/agents/red-teamer/agent.yaml +0 -54
- package/src/security-overlay/agents/red-teamer/persona.md +0 -49
- package/src/security-overlay/data/common.txt +0 -115
- package/src/security-overlay/data/owasp-top10.json +0 -15
- package/src/security-overlay/data/tool-allowlist.json +0 -31
- package/src/security-overlay/skills/wize-sec-enumerate/scripts/run-enumerate.js +0 -180
- package/src/security-overlay/skills/wize-sec-enumerate/skill.md +0 -34
- package/src/security-overlay/skills/wize-sec-exploit/data/common.txt +0 -117
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-ffuf.js +0 -147
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nikto.js +0 -145
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-nuclei.js +0 -176
- package/src/security-overlay/skills/wize-sec-exploit/scripts/run-sqlmap.js +0 -139
- package/src/security-overlay/skills/wize-sec-pentest/scripts/run-pipeline.js +0 -184
- package/src/security-overlay/skills/wize-sec-pentest/skill.md +0 -54
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-gitleaks.js +0 -139
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-osv.js +0 -227
- package/src/security-overlay/skills/wize-sec-recon/scripts/run-recon.js +0 -162
- package/src/security-overlay/skills/wize-sec-recon/skill.md +0 -37
- package/src/security-overlay/skills/wize-sec-report/scripts/render-report.js +0 -1033
- package/src/security-overlay/skills/wize-sec-scope/scripts/generate-scope.js +0 -106
- package/src/security-overlay/skills/wize-sec-scope/skill.md +0 -52
- package/src/tea-skills/wize-qa-generate-e2e-tests/workflow.md +0 -121
- package/tools/installer/baseline.js +0 -128
- package/tools/installer/commands/agent.js +0 -197
- package/tools/installer/commands/doctor.js +0 -319
- package/tools/installer/commands/document-project.js +0 -93
- package/tools/installer/commands/sync.js +0 -45
- package/tools/installer/commands/update.js +0 -172
- package/tools/installer/document-project/batch-scanner.js +0 -93
- package/tools/installer/document-project/classify.js +0 -170
- package/tools/installer/document-project/modes/deep-dive.js +0 -196
- package/tools/installer/document-project/modes/full-rescan.js +0 -15
- package/tools/installer/document-project/modes/initial-scan.js +0 -100
- package/tools/installer/document-project/modes/quick.js +0 -211
- package/tools/installer/document-project/render-index.js +0 -101
- package/tools/installer/document-project/state.js +0 -110
- package/tools/installer/version-check.js +0 -117
|
@@ -1,145 +1,35 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
code: wize-tea-review
|
|
4
|
-
description: "Use quando uma story terminar implementação e precisar de revisão estruturada de AC fulfillment, disciplina de teste e cobertura de risco."
|
|
5
3
|
name: TEA Story Review
|
|
6
|
-
phase: 4-implementation
|
|
7
4
|
gate: review
|
|
8
5
|
owner: wize-agent-test-architect # Hawkeye
|
|
9
6
|
when: story-end
|
|
10
|
-
status:
|
|
7
|
+
status: stub
|
|
11
8
|
---
|
|
12
9
|
|
|
13
10
|
# TEA — Story Review
|
|
14
11
|
|
|
15
|
-
**Goal.**
|
|
16
|
-
|
|
17
|
-
Hawkeye drives. Runs at story end, right before `tea-gate`.
|
|
12
|
+
**Goal.** Structured story review (separate from Shuri's `wize-code-review`).
|
|
18
13
|
|
|
19
14
|
## Inputs
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- Test run results (PR CI).
|
|
24
|
-
- Code diff (the PR).
|
|
15
|
+
- Story file (ACs)
|
|
16
|
+
- Test results
|
|
17
|
+
- Trace doc
|
|
25
18
|
|
|
26
19
|
## Output
|
|
27
|
-
|
|
28
20
|
- `.wize/implementation/tea/{epic}/{story}/review.md`
|
|
29
21
|
|
|
30
|
-
##
|
|
31
|
-
|
|
32
|
-
### 1. AC check (per AC)
|
|
33
|
-
|
|
34
|
-
For each AC, observe the actual behavior on a staging or local build and decide: `met` / `partial` / `not-met`. Use the recorded video/screenshot when CI captured one (Playwright `screenshot: only-on-failure` or always for review tag).
|
|
35
|
-
|
|
36
|
-
### 2. Test discipline
|
|
37
|
-
|
|
38
|
-
Walk:
|
|
39
|
-
- Are `tea-design.md`'s declared tests present in code?
|
|
40
|
-
- Is every assertion meaningful (not just `expect(true).toBe(true)`)?
|
|
41
|
-
- Are selectors stable (role/label/testid) rather than brittle (CSS classes)?
|
|
42
|
-
- Are mocks at the network boundary (MSW) rather than in the unit under test?
|
|
43
|
-
- Are there `test.skip` or `test.only` left in?
|
|
44
|
-
|
|
45
|
-
### 3. Risk-spot coverage
|
|
46
|
-
|
|
47
|
-
If the story touches any `R-x` from the risk profile, walk the mitigation contract and confirm it's met.
|
|
48
|
-
|
|
49
|
-
### 4. Story scope discipline
|
|
50
|
-
|
|
51
|
-
Did the story stay within its declared scope? Any out-of-scope item that crept in is flagged in the review (and either moved to a new story or backed out).
|
|
52
|
-
|
|
53
|
-
### 5. Knowledge update check
|
|
54
|
-
|
|
55
|
-
Did this story touch any of the 5 `document-project` axes (architecture / conventions / risk-spots / dependencies / overview)? If yes, walk the PR diff and confirm the corresponding `.wize/knowledge/document-project/*.md` got 1–3 new lines this commit.
|
|
56
|
-
|
|
57
|
-
Decision:
|
|
58
|
-
- **Touched + updated** → record as PASS, no finding.
|
|
59
|
-
- **Touched + NOT updated** → record finding `KN-NN` (severity `medium`); recommendation: `gate CONCERNS` (advisory mode) or `gate FAIL` (enforcing).
|
|
60
|
-
- **Not touched** → write `knowledge: n/a` in the body, move on.
|
|
61
|
-
|
|
62
|
-
This is what keeps the brownfield baseline alive instead of stale. Without it, `document-project` is honest in week 1 and obsolete in week 24.
|
|
63
|
-
|
|
64
|
-
### 6. Findings
|
|
65
|
-
|
|
66
|
-
For each issue, write: severity (`low / medium / high`), what, why it matters, what to do.
|
|
67
|
-
|
|
68
|
-
### 7. Recommend gate outcome
|
|
69
|
-
|
|
70
|
-
Review doesn't *make* the gate decision (that's `tea-gate`); it recommends. Possible recommendations:
|
|
71
|
-
- `gate PASS`
|
|
72
|
-
- `gate CONCERNS` with N findings
|
|
73
|
-
- `gate FAIL` (only if a non-negotiable AC is `not-met`)
|
|
74
|
-
- `gate WAIVED` (only with documented reason + senior signoff)
|
|
75
|
-
|
|
76
|
-
## YAML frontmatter (canonical)
|
|
77
|
-
|
|
22
|
+
## YAML frontmatter
|
|
78
23
|
```yaml
|
|
79
24
|
---
|
|
80
25
|
gate: review
|
|
81
|
-
story_id:
|
|
82
|
-
status: PASS
|
|
26
|
+
story_id: …
|
|
27
|
+
status: PASS | CONCERNS | FAIL
|
|
83
28
|
ac_check:
|
|
84
|
-
- id: AC-
|
|
85
|
-
met: true
|
|
86
|
-
evidence:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
evidence: "InviteForm.spec.tsx::error region announces"
|
|
90
|
-
knowledge_axes_touched: [conventions, risk-spots]
|
|
91
|
-
knowledge_axes_updated: [conventions, risk-spots] # leave empty array if axes touched but no update happened
|
|
92
|
-
findings:
|
|
93
|
-
- id: REV-01
|
|
94
|
-
severity: low
|
|
95
|
-
summary: "Empty-state copy slightly differs from Mantis' spec."
|
|
96
|
-
recommendation: "Update `<EmptyTeamPanel>` heading to 'Invite your first teammate'."
|
|
97
|
-
owner: shuri
|
|
98
|
-
blocking: false
|
|
99
|
-
risk_links: [R-1]
|
|
100
|
-
recommendation: gate-PASS
|
|
101
|
-
created_at: 2026-06-11T20:00:00Z
|
|
29
|
+
- id: AC-1
|
|
30
|
+
met: true|partial|false
|
|
31
|
+
evidence: …
|
|
32
|
+
findings: [...]
|
|
33
|
+
recommendations: [...]
|
|
102
34
|
---
|
|
103
35
|
```
|
|
104
|
-
|
|
105
|
-
## Body of `review.md`
|
|
106
|
-
|
|
107
|
-
```markdown
|
|
108
|
-
## Per-AC
|
|
109
|
-
|
|
110
|
-
### AC-02-1 — met
|
|
111
|
-
Evidence: E2E `e2e/onboarding/invite.spec.ts::happy path` passed locally + CI run #412. Banner appears 720ms after click (well within 1s NFR).
|
|
112
|
-
|
|
113
|
-
### AC-02-2 — met
|
|
114
|
-
Evidence: Unit + component test both pass. Manually walked screen-reader output — VoiceOver announces "Email — error — Enter a valid email." correctly.
|
|
115
|
-
|
|
116
|
-
## Test discipline
|
|
117
|
-
- All declared tests present.
|
|
118
|
-
- `data-testid` discipline solid (invite-form, invite-email, invite-cta, invite-sent-banner).
|
|
119
|
-
- No `test.skip` / `.only`.
|
|
120
|
-
- One snapshot test — small enough to be useful; not a tree snapshot.
|
|
121
|
-
|
|
122
|
-
## Risk coverage
|
|
123
|
-
- R-1 (mailer): integration test covers the right path; happy path E2E confirms end-to-end. PASS.
|
|
124
|
-
|
|
125
|
-
## Scope discipline
|
|
126
|
-
- Two minor copy tweaks crept in (out-of-spec; logged as REV-01).
|
|
127
|
-
|
|
128
|
-
## Findings
|
|
129
|
-
- REV-01 (low): empty-state copy.
|
|
130
|
-
|
|
131
|
-
## Recommendation
|
|
132
|
-
Recommend `gate PASS` with one low-severity finding to fix in a follow-up.
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## Anti-patterns Hawkeye rejects
|
|
136
|
-
|
|
137
|
-
- **Review without walking the code.** Reading the test names isn't review.
|
|
138
|
-
- **AC marked "met" without observed evidence.** Tests passing + screenshot/recording, please.
|
|
139
|
-
- **Findings without owners.** Same as everywhere else in the kit.
|
|
140
|
-
- **Recommending PASS when an AC is `partial`.** No.
|
|
141
|
-
- **Recommending PASS when a non-negotiable NFR slipped.** That's a gate FAIL.
|
|
142
|
-
|
|
143
|
-
## Hand-off
|
|
144
|
-
|
|
145
|
-
> Review for E01-S03 at `.wize/implementation/tea/E01-S03/review.md`. All ACs `met`, one low-severity copy finding. Recommending `gate PASS`. Final at `wize-tea-gate`.
|
|
@@ -1,142 +1,39 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
code: wize-tea-risk
|
|
4
|
-
description: "Use quando a arquitetura for assinada e precisar construir a matriz probabilidade × impacto que prioriza todo o trabalho de TEA."
|
|
5
3
|
name: TEA Risk Profile
|
|
6
|
-
phase: 4-implementation
|
|
7
4
|
gate: risk
|
|
8
5
|
owner: wize-agent-test-architect # Hawkeye
|
|
9
6
|
when: once-after-architecture
|
|
10
|
-
status:
|
|
7
|
+
status: stub
|
|
11
8
|
---
|
|
12
9
|
|
|
13
10
|
# TEA — Risk Profile
|
|
14
11
|
|
|
15
|
-
**Goal.** Build the
|
|
16
|
-
|
|
17
|
-
Hawkeye drives. Tony co-signs. Runs **once**, right after architecture is signed off; revisit only on significant scope or architecture changes.
|
|
12
|
+
**Goal.** Build the probability × impact matrix that prioritizes the rest of TEA's work.
|
|
18
13
|
|
|
19
14
|
## Inputs
|
|
20
|
-
|
|
21
15
|
- `.wize/solutioning/architecture.md`
|
|
22
16
|
- `.wize/solutioning/epics/`
|
|
23
|
-
- `.wize/planning/nfr-principles.md`
|
|
24
|
-
- `.wize/knowledge/document-project/risk-spots.md` (brownfield)
|
|
25
|
-
- `.wize/knowledge/document-project/index.md` (documentation gap markers)
|
|
26
17
|
|
|
27
18
|
## Output
|
|
28
|
-
|
|
29
19
|
- `.wize/implementation/tea/risk-profile.md`
|
|
30
20
|
|
|
31
|
-
## Steps
|
|
32
|
-
|
|
33
|
-
### 1. List candidate hot spots
|
|
34
|
-
|
|
35
|
-
For every architectural component + every epic, ask: *"If this misbehaves, what hurts?"*. Write candidates without filtering.
|
|
36
|
-
|
|
37
|
-
### 2. Score each
|
|
38
|
-
|
|
39
|
-
| Axis | Levels |
|
|
40
|
-
|---|---|
|
|
41
|
-
| Probability | `low` (would be a surprise), `medium` (could happen), `high` (likely without explicit work) |
|
|
42
|
-
| Impact | `low` (cosmetic / opex), `medium` (user friction / revenue dent), `high` (data loss / outage / regulatory) |
|
|
43
|
-
|
|
44
|
-
Composite score:
|
|
45
|
-
- `low × low` = LOW
|
|
46
|
-
- `low × medium`, `medium × low`, `medium × medium` = MEDIUM
|
|
47
|
-
- anything touching `high` = HIGH
|
|
48
|
-
|
|
49
|
-
### 3. For each finding, write the mitigation contract
|
|
50
|
-
|
|
51
|
-
Per row:
|
|
52
|
-
- **What test makes us confident?** Unit / integration / E2E / NFR / manual.
|
|
53
|
-
- **Who owns the mitigation?** Shuri / Tony / external service.
|
|
54
|
-
- **When is it verified?** Story-level / epic-level / pre-launch.
|
|
55
|
-
|
|
56
|
-
### 4. Hand off
|
|
57
|
-
|
|
58
|
-
Hawkeye uses this in every `tea-design.md`. Tony respects it when picking ADR options.
|
|
59
|
-
|
|
60
21
|
## YAML frontmatter (canonical)
|
|
61
|
-
|
|
62
22
|
```yaml
|
|
63
23
|
---
|
|
64
24
|
gate: risk
|
|
65
25
|
status: PASS | CONCERNS | FAIL | WAIVED
|
|
66
26
|
score: 0-100
|
|
67
|
-
created_at:
|
|
27
|
+
created_at: ISO-8601
|
|
68
28
|
findings:
|
|
69
29
|
- id: R-1
|
|
70
|
-
area:
|
|
71
|
-
probability: high
|
|
72
|
-
impact: medium
|
|
73
|
-
rationale:
|
|
74
|
-
mitigation:
|
|
75
|
-
owner: shuri + tony
|
|
76
|
-
verified_when: story E01-S04 + NFR per epic
|
|
77
|
-
- id: R-2
|
|
78
|
-
area: "Database migrations under load"
|
|
79
|
-
probability: medium
|
|
80
|
-
impact: high
|
|
81
|
-
rationale: "Future migrations must be rolled out without lock contention."
|
|
82
|
-
mitigation: "Online schema changes; canary on staging with synthetic load; ADR-006 process."
|
|
83
|
-
owner: tony
|
|
84
|
-
verified_when: pre-launch
|
|
85
|
-
- id: R-3
|
|
86
|
-
area: "Auth: token refresh during long-running tabs"
|
|
87
|
-
probability: medium
|
|
88
|
-
impact: medium
|
|
89
|
-
rationale: "Cookie refresh race in RSC + edge can sign user out unexpectedly."
|
|
90
|
-
mitigation: "E2E covering > 1h tab; refresh strategy ADR-008; on-call alert on `auth_session_expired_unexpected`."
|
|
91
|
-
owner: shuri
|
|
92
|
-
verified_when: story E04-S02 + post-launch monitoring
|
|
30
|
+
area: …
|
|
31
|
+
probability: low | medium | high
|
|
32
|
+
impact: low | medium | high
|
|
33
|
+
rationale: …
|
|
34
|
+
mitigation: …
|
|
93
35
|
---
|
|
94
36
|
```
|
|
95
37
|
|
|
96
|
-
## Body
|
|
97
|
-
|
|
98
|
-
The narrative explains the matrix; the YAML is the structured truth. Hawkeye writes 1–2 lines per finding explaining the *why*.
|
|
99
|
-
|
|
100
|
-
```markdown
|
|
101
|
-
## Matrix
|
|
102
|
-
|
|
103
|
-
| | Impact LOW | Impact MEDIUM | Impact HIGH |
|
|
104
|
-
|---|---|---|---|
|
|
105
|
-
| **Prob HIGH** | R-7 | R-1 | R-2 |
|
|
106
|
-
| **Prob MEDIUM** | R-4 | R-3 | R-5 |
|
|
107
|
-
| **Prob LOW** | — | R-6 | — |
|
|
108
|
-
|
|
109
|
-
## Top-3 (drive test design)
|
|
110
|
-
|
|
111
|
-
1. **R-2** — Database migrations under load. Pre-launch verification mandatory.
|
|
112
|
-
2. **R-1** — Outbox/mailer. Story E01-S04 covers; epic NFR re-verifies.
|
|
113
|
-
3. **R-5** — Payment idempotency. Story E03-S02 covers.
|
|
114
|
-
|
|
115
|
-
## What this means for `tea-design.md`
|
|
116
|
-
|
|
117
|
-
- E01-S04 (mailer): 1 unit (retry policy), 1 integration (Resend sandbox), 1 E2E (sign-up arrives within 5min).
|
|
118
|
-
- E03-S02 (payments): 2 integration (Stripe idempotency keys), 1 E2E (double-click guard).
|
|
119
|
-
- Other stories follow the default 70/20/10 split.
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Documentation gap risk category
|
|
123
|
-
|
|
124
|
-
In brownfield repos, missing or stale documentation is an operational risk: new contributors make unsafe assumptions, AI agents hallucinate context, and reviews miss implicit contracts. Hawkeye treats it as a first-class risk area.
|
|
125
|
-
|
|
126
|
-
| Symptom | Severity | Rationale | Mitigation |
|
|
127
|
-
|---|---|---|---|
|
|
128
|
-
| `index.md` contains `_(To be generated)_` markers | medium | Conditional docs were skipped; the baseline is incomplete. | Schedule `wize-document-project initial_scan` for the next cooldown. |
|
|
129
|
-
| Baseline files older than 60 days | medium | Docs may no longer reflect the codebase. | Run `wize-refresh-knowledge` at sprint end. |
|
|
130
|
-
| No baseline exists in a brownfield repo | high | Team is flying blind; architecture and conventions are tribal knowledge. | Run `wize-dev-kit document-project quick` immediately. |
|
|
131
|
-
|
|
132
|
-
## Anti-patterns Hawkeye rejects
|
|
133
|
-
|
|
134
|
-
- **Findings without mitigation.** A finding without a contract is a wish.
|
|
135
|
-
- **Mitigation owned by "the team."** Name a persona/human.
|
|
136
|
-
- **HIGH impact, MEDIUM probability, no NFR re-check.** Wire it into epic NFR gate.
|
|
137
|
-
- **Cosmetic risks scored HIGH.** Calibration. Reserve HIGH for data, outage, regulatory.
|
|
138
|
-
- **Risk profile rewritten per sprint.** Run once; revise on real architecture changes.
|
|
139
|
-
|
|
140
|
-
## Hand-off
|
|
141
|
-
|
|
142
|
-
> Risk profile at `.wize/implementation/tea/risk-profile.md`. Top-3 drive deep `tea-design.md` for E01-S04, E03-S02, plus pre-launch migration drill. Default 70/20/10 split for the rest.
|
|
38
|
+
## Body
|
|
39
|
+
Narrative summary; the structured data is the YAML.
|
|
@@ -1,110 +1,36 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
2
|
code: wize-tea-trace
|
|
4
|
-
description: "Use quando uma story estiver em implementação e precisar mapear cada AC para testes concretos no repositório."
|
|
5
3
|
name: TEA Traceability
|
|
6
|
-
phase: 4-implementation
|
|
7
4
|
gate: trace
|
|
8
5
|
owner: wize-agent-test-architect # Hawkeye
|
|
9
6
|
when: during-or-after-implementation
|
|
10
|
-
status:
|
|
7
|
+
status: stub
|
|
11
8
|
---
|
|
12
9
|
|
|
13
10
|
# TEA — Traceability
|
|
14
11
|
|
|
15
|
-
**Goal.** Map every Acceptance Criterion to
|
|
16
|
-
|
|
17
|
-
Hawkeye drives. Runs while Shuri implements (or right after PR open).
|
|
12
|
+
**Goal.** Map every Acceptance Criterion to one or more concrete tests in the repo.
|
|
18
13
|
|
|
19
14
|
## Inputs
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
- `tea-design.md` (the test contract).
|
|
23
|
-
- Repo (the actual test files).
|
|
15
|
+
- Story file (ACs)
|
|
16
|
+
- Test files produced by Shuri
|
|
24
17
|
|
|
25
18
|
## Output
|
|
26
|
-
|
|
27
19
|
- `.wize/implementation/tea/{epic}/{story}/trace.md`
|
|
28
20
|
|
|
29
|
-
##
|
|
30
|
-
|
|
31
|
-
### 1. Walk every AC
|
|
32
|
-
|
|
33
|
-
For each AC ID:
|
|
34
|
-
- Find the test(s) that exercise it.
|
|
35
|
-
- Reference the file + test name precisely.
|
|
36
|
-
- Decide status: `covered` (every assertion of the AC has a test) / `partial` (some assertions only) / `missing` (no test).
|
|
37
|
-
|
|
38
|
-
### 2. Compute coverage score
|
|
39
|
-
|
|
40
|
-
- `covered_count / total_acs`.
|
|
41
|
-
- Reported but doesn't drive gate alone; the **per-AC status** drives gate.
|
|
42
|
-
|
|
43
|
-
### 3. Flag holes
|
|
44
|
-
|
|
45
|
-
For every `partial` / `missing`, write what's needed in one line. Hawkeye proposes the test; Shuri writes it.
|
|
46
|
-
|
|
47
|
-
### 4. Hand off
|
|
48
|
-
|
|
49
|
-
If everything is `covered`, status `PASS`. Otherwise `CONCERNS` (advisory) or `FAIL` (enforcing) until holes are closed.
|
|
50
|
-
|
|
51
|
-
## YAML frontmatter (canonical)
|
|
52
|
-
|
|
21
|
+
## YAML frontmatter
|
|
53
22
|
```yaml
|
|
54
23
|
---
|
|
55
24
|
gate: trace
|
|
56
|
-
story_id:
|
|
57
|
-
status: PASS
|
|
25
|
+
story_id: …
|
|
26
|
+
status: PASS | CONCERNS | FAIL
|
|
58
27
|
coverage:
|
|
59
|
-
- ac_id: AC-
|
|
60
|
-
status: covered
|
|
61
|
-
tests:
|
|
62
|
-
- "src/onboarding/invite/__tests__/validateInviteEmail.spec.ts::valid email"
|
|
63
|
-
- "src/onboarding/invite/__tests__/inviteTeammate.spec.ts::calls mailer with right args"
|
|
64
|
-
- "e2e/onboarding/invite.spec.ts::happy path on Playwright @chromium"
|
|
65
|
-
- ac_id: AC-02-2
|
|
66
|
-
status: covered
|
|
28
|
+
- ac_id: AC-1
|
|
67
29
|
tests:
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
created_at: 2026-06-11T15:30:00Z
|
|
30
|
+
- path/to/test.spec.ts::case-name
|
|
31
|
+
status: covered | partial | missing
|
|
71
32
|
---
|
|
72
33
|
```
|
|
73
34
|
|
|
74
|
-
## Body
|
|
75
|
-
|
|
76
|
-
```markdown
|
|
77
|
-
## Per-AC
|
|
78
|
-
|
|
79
|
-
### AC-02-1 — covered
|
|
80
|
-
Tests:
|
|
81
|
-
- `validateInviteEmail.spec.ts::valid email`
|
|
82
|
-
- `inviteTeammate.spec.ts::calls mailer with right args`
|
|
83
|
-
- `e2e/onboarding/invite.spec.ts::happy path`
|
|
84
|
-
|
|
85
|
-
### AC-02-2 — covered
|
|
86
|
-
Tests:
|
|
87
|
-
- `validateInviteEmail.spec.ts::invalid email rules`
|
|
88
|
-
- `InviteForm.spec.tsx::error region announces`
|
|
89
|
-
|
|
90
|
-
## Edges (from `design.md`)
|
|
91
|
-
|
|
92
|
-
- E1 (empty) — covered (validateInviteEmail.spec.ts::empty).
|
|
93
|
-
- E3 (idempotency) — **partial**. Integration test exists but doesn't assert second insert is no-op. Propose: assert `db.invites.count({ email, team_id })` = 1 after two calls.
|
|
94
|
-
- E4 (offline) — **missing**. Propose: Playwright `context.setOffline(true)` before click; assert offline banner.
|
|
95
|
-
|
|
96
|
-
## Action items
|
|
97
|
-
- Shuri: add the missing offline E2E (or split into next story; flag in `review.md` then).
|
|
98
|
-
- Hawkeye: re-run trace once PR has the new tests.
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Anti-patterns Hawkeye rejects
|
|
102
|
-
|
|
103
|
-
- **Trace by file count, not per-AC.** "We have 24 tests" tells you nothing. Per AC, please.
|
|
104
|
-
- **Counting passing CI as trace.** CI passes when a test exists; trace cares whether the test exercises the AC.
|
|
105
|
-
- **`partial` left unflagged.** Either close or list as a known-open with story link.
|
|
106
|
-
- **Re-naming tests after trace.** The trace breaks; Shuri renames in agreement with Hawkeye or doesn't rename.
|
|
107
|
-
|
|
108
|
-
## Hand-off
|
|
109
|
-
|
|
110
|
-
> Trace for E01-S03 at `.wize/implementation/tea/E01-S03/trace.md`. All ACs `covered`. Two edges still open (E3, E4); proposing follow-up. Ready for `tea-review`.
|
|
35
|
+
## Body
|
|
36
|
+
For any `missing` or `partial`, propose what to write.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Verifica que o wize-eli5 é renderizado por TODOS os 10 adapters de harness.
|
|
3
|
+
'use strict';
|
|
4
|
+
const fs = require('node:fs');
|
|
5
|
+
const path = require('node:path');
|
|
6
|
+
const os = require('node:os');
|
|
7
|
+
|
|
8
|
+
const KIT = path.resolve(__dirname, '..');
|
|
9
|
+
const EXPECT = [
|
|
10
|
+
{ code: 'claude-code', file: '.claude/skills/wize-eli5/SKILL.md' },
|
|
11
|
+
{ code: 'antigravity', file: '.agent/skills/wize-eli5/SKILL.md' },
|
|
12
|
+
{ code: 'codex', file: '.agents/skills/wize-eli5/SKILL.md' },
|
|
13
|
+
{ code: 'kimi-code', file: '.kimi/skills/wize-eli5/SKILL.md' },
|
|
14
|
+
{ code: 'hermes', file: '.hermes/skills/wize-eli5/SKILL.md' },
|
|
15
|
+
{ code: 'cursor', file: '.cursor/rules/wize-eli5.mdc' },
|
|
16
|
+
{ code: 'windsurf', file: '.windsurf/rules/wize-eli5.md' },
|
|
17
|
+
{ code: 'continue', file: '.continue/prompts/wize-eli5.prompt' },
|
|
18
|
+
{ code: 'opencode', file: '.opencode/commands/wize-eli5.md' },
|
|
19
|
+
{ code: 'generic', file: '.wize/agents/wize-eli5.md' },
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
let ok = 0, fail = 0;
|
|
23
|
+
for (const a of EXPECT) {
|
|
24
|
+
const root = fs.mkdtempSync(path.join(os.tmpdir(), `wize-eli5-${a.code}-`));
|
|
25
|
+
try {
|
|
26
|
+
const mod = require(path.join(KIT, 'adapters', a.code, 'render.js'));
|
|
27
|
+
mod.render(KIT, root, { profiles: ['core'] });
|
|
28
|
+
const f = path.join(root, a.file);
|
|
29
|
+
if (fs.existsSync(f)) {
|
|
30
|
+
const content = fs.readFileSync(f, 'utf-8');
|
|
31
|
+
if (/ELI5/.test(content) && /Explain Like I Am 5/.test(content)) {
|
|
32
|
+
console.log(` ✓ ${a.code.padEnd(11)} -> ${a.file}`);
|
|
33
|
+
ok++;
|
|
34
|
+
} else {
|
|
35
|
+
console.log(` ✖ ${a.code}: arquivo existe mas sem conteúdo wize-eli5`);
|
|
36
|
+
fail++;
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
console.log(` ✖ ${a.code}: ${a.file} NÃO foi gerado`);
|
|
40
|
+
fail++;
|
|
41
|
+
}
|
|
42
|
+
} catch (e) {
|
|
43
|
+
console.log(` ✖ ${a.code}: erro ao renderizar — ${e.message}`);
|
|
44
|
+
fail++;
|
|
45
|
+
} finally {
|
|
46
|
+
fs.rmSync(root, { recursive: true, force: true });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
console.log(`\n${ok}/10 harnesses com wize-eli5.`);
|
|
50
|
+
process.exit(fail ? 1 : 0);
|
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Onboarding handoff — Wizer-driven triage after install.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* turning into a wall of text.
|
|
4
|
+
* Stub: in v0.1 this just prints the first action Wizer would take.
|
|
5
|
+
* In a real run this would be a workflow executed by the active IDE adapter.
|
|
7
6
|
*/
|
|
8
7
|
'use strict';
|
|
9
8
|
|
|
10
9
|
function compose(detection, profiles) {
|
|
11
|
-
const lines = [
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
lines.push('
|
|
10
|
+
const lines = [
|
|
11
|
+
'',
|
|
12
|
+
'╭─ Wizer ─────────────────────────────────────╮',
|
|
13
|
+
'│ Welcome back. What are we working on? │',
|
|
14
|
+
'╰─────────────────────────────────────────────╯'
|
|
15
|
+
];
|
|
16
|
+
if (detection.brownfield) {
|
|
17
|
+
lines.push('');
|
|
18
|
+
lines.push('I see this repo already has code. I can ask Pepper and Peggy to baseline it before we plan.');
|
|
19
|
+
lines.push(' → /wize-document-project');
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
lines.push('
|
|
21
|
+
lines.push('');
|
|
22
|
+
lines.push('When ready, name the next step:');
|
|
23
|
+
lines.push(' → /wize-product-brief (Pepper)');
|
|
24
|
+
lines.push(' → /wize-create-prd (Maria Hill, if brief exists)');
|
|
25
|
+
lines.push(' → /wize-create-architecture (Tony, if PRD exists)');
|
|
26
|
+
lines.push(' → /wize-quick-dev (Shuri, for small fixes)');
|
|
27
|
+
if (profiles.find(p => p.code === 'web-overlay')) lines.push(' → /wize-web-scaffold (overlay)');
|
|
28
|
+
if (profiles.find(p => p.code === 'app-overlay')) lines.push(' → /wize-app-scaffold (overlay)');
|
|
23
29
|
return lines.join('\n');
|
|
24
30
|
}
|
|
25
31
|
|