@brunosps00/dev-workflow 0.13.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +106 -122
  2. package/lib/constants.js +16 -36
  3. package/lib/migrate-skills.js +11 -4
  4. package/lib/removed-commands.js +30 -0
  5. package/package.json +1 -1
  6. package/scaffold/en/agent-instructions.md +27 -16
  7. package/scaffold/en/commands/dw-adr.md +2 -2
  8. package/scaffold/en/commands/dw-analyze-project.md +7 -7
  9. package/scaffold/en/commands/dw-autopilot.md +20 -20
  10. package/scaffold/en/commands/dw-brainstorm.md +160 -9
  11. package/scaffold/en/commands/dw-bugfix.md +7 -6
  12. package/scaffold/en/commands/dw-commit.md +1 -1
  13. package/scaffold/en/commands/dw-dockerize.md +9 -9
  14. package/scaffold/en/commands/dw-find-skills.md +4 -4
  15. package/scaffold/en/commands/dw-functional-doc.md +2 -2
  16. package/scaffold/en/commands/dw-generate-pr.md +4 -4
  17. package/scaffold/en/commands/dw-help.md +95 -351
  18. package/scaffold/en/commands/dw-intel.md +76 -12
  19. package/scaffold/en/commands/dw-new-project.md +9 -9
  20. package/scaffold/en/commands/dw-plan.md +175 -0
  21. package/scaffold/en/commands/dw-qa.md +166 -0
  22. package/scaffold/en/commands/dw-redesign-ui.md +7 -7
  23. package/scaffold/en/commands/dw-review.md +198 -0
  24. package/scaffold/en/commands/dw-run.md +176 -0
  25. package/scaffold/en/commands/dw-secure-audit.md +222 -0
  26. package/scaffold/en/commands/dw-update.md +1 -1
  27. package/scaffold/en/references/playwright-patterns.md +1 -1
  28. package/scaffold/en/references/refactoring-catalog.md +1 -1
  29. package/scaffold/en/templates/brainstorm-matrix.md +1 -1
  30. package/scaffold/en/templates/idea-onepager.md +3 -3
  31. package/scaffold/en/templates/project-onepager.md +5 -5
  32. package/scaffold/pt-br/agent-instructions.md +27 -16
  33. package/scaffold/pt-br/commands/dw-adr.md +2 -2
  34. package/scaffold/pt-br/commands/dw-analyze-project.md +7 -7
  35. package/scaffold/pt-br/commands/dw-autopilot.md +20 -20
  36. package/scaffold/pt-br/commands/dw-brainstorm.md +160 -9
  37. package/scaffold/pt-br/commands/dw-bugfix.md +10 -9
  38. package/scaffold/pt-br/commands/dw-commit.md +1 -1
  39. package/scaffold/pt-br/commands/dw-dockerize.md +9 -9
  40. package/scaffold/pt-br/commands/dw-find-skills.md +4 -4
  41. package/scaffold/pt-br/commands/dw-functional-doc.md +2 -2
  42. package/scaffold/pt-br/commands/dw-generate-pr.md +4 -4
  43. package/scaffold/pt-br/commands/dw-help.md +97 -300
  44. package/scaffold/pt-br/commands/dw-intel.md +77 -13
  45. package/scaffold/pt-br/commands/dw-new-project.md +9 -9
  46. package/scaffold/pt-br/commands/dw-plan.md +175 -0
  47. package/scaffold/pt-br/commands/dw-qa.md +166 -0
  48. package/scaffold/pt-br/commands/dw-redesign-ui.md +7 -7
  49. package/scaffold/pt-br/commands/dw-review.md +198 -0
  50. package/scaffold/pt-br/commands/dw-run.md +176 -0
  51. package/scaffold/pt-br/commands/dw-secure-audit.md +222 -0
  52. package/scaffold/pt-br/commands/dw-update.md +1 -1
  53. package/scaffold/pt-br/references/playwright-patterns.md +1 -1
  54. package/scaffold/pt-br/references/refactoring-catalog.md +1 -1
  55. package/scaffold/pt-br/templates/brainstorm-matrix.md +1 -1
  56. package/scaffold/pt-br/templates/idea-onepager.md +3 -3
  57. package/scaffold/pt-br/templates/project-onepager.md +5 -5
  58. package/scaffold/pt-br/templates/tasks-template.md +1 -1
  59. package/scaffold/skills/api-testing-recipes/SKILL.md +6 -6
  60. package/scaffold/skills/api-testing-recipes/references/auth-patterns.md +1 -1
  61. package/scaffold/skills/api-testing-recipes/references/matrix-conventions.md +1 -1
  62. package/scaffold/skills/api-testing-recipes/references/openapi-driven.md +3 -3
  63. package/scaffold/skills/docker-compose-recipes/SKILL.md +1 -1
  64. package/scaffold/skills/dw-codebase-intel/SKILL.md +9 -9
  65. package/scaffold/skills/dw-codebase-intel/agents/intel-updater.md +4 -4
  66. package/scaffold/skills/dw-codebase-intel/references/api-design-discipline.md +1 -1
  67. package/scaffold/skills/dw-codebase-intel/references/incremental-update.md +5 -5
  68. package/scaffold/skills/dw-codebase-intel/references/intel-format.md +1 -1
  69. package/scaffold/skills/dw-codebase-intel/references/query-patterns.md +3 -3
  70. package/scaffold/skills/dw-council/SKILL.md +2 -2
  71. package/scaffold/skills/dw-debug-protocol/SKILL.md +5 -3
  72. package/scaffold/skills/dw-execute-phase/SKILL.md +16 -16
  73. package/scaffold/skills/dw-execute-phase/agents/executor.md +5 -5
  74. package/scaffold/skills/dw-execute-phase/agents/plan-checker.md +4 -4
  75. package/scaffold/skills/dw-execute-phase/references/atomic-commits.md +1 -1
  76. package/scaffold/skills/dw-execute-phase/references/plan-verification.md +2 -2
  77. package/scaffold/skills/dw-execute-phase/references/wave-coordination.md +1 -1
  78. package/scaffold/skills/dw-git-discipline/SKILL.md +5 -2
  79. package/scaffold/skills/dw-incident-response/SKILL.md +168 -0
  80. package/scaffold/skills/dw-incident-response/references/blameless-discipline.md +126 -0
  81. package/scaffold/skills/dw-incident-response/references/communication-templates.md +107 -0
  82. package/scaffold/skills/dw-incident-response/references/postmortem-template.md +133 -0
  83. package/scaffold/skills/dw-incident-response/references/runbook-templates.md +169 -0
  84. package/scaffold/skills/dw-incident-response/references/severity-and-triage.md +186 -0
  85. package/scaffold/skills/dw-llm-eval/SKILL.md +150 -0
  86. package/scaffold/skills/dw-llm-eval/references/agent-eval.md +252 -0
  87. package/scaffold/skills/dw-llm-eval/references/judge-calibration.md +169 -0
  88. package/scaffold/skills/dw-llm-eval/references/oracle-ladder.md +171 -0
  89. package/scaffold/skills/dw-llm-eval/references/rag-metrics.md +186 -0
  90. package/scaffold/skills/dw-llm-eval/references/reference-dataset.md +190 -0
  91. package/scaffold/skills/dw-memory/SKILL.md +2 -2
  92. package/scaffold/skills/dw-review-rigor/SKILL.md +5 -5
  93. package/scaffold/skills/dw-simplification/SKILL.md +4 -4
  94. package/scaffold/skills/dw-source-grounding/SKILL.md +1 -1
  95. package/scaffold/skills/dw-testing-discipline/SKILL.md +103 -78
  96. package/scaffold/skills/dw-testing-discipline/references/agent-guardrails.md +170 -0
  97. package/scaffold/skills/dw-testing-discipline/references/anti-patterns.md +7 -7
  98. package/scaffold/skills/dw-testing-discipline/references/core-rules.md +128 -0
  99. package/scaffold/skills/dw-testing-discipline/references/flaky-discipline.md +3 -3
  100. package/scaffold/skills/dw-testing-discipline/references/{positive-patterns.md → patterns.md} +1 -1
  101. package/scaffold/skills/dw-testing-discipline/references/playwright-recipes.md +3 -3
  102. package/scaffold/skills/dw-ui-discipline/SKILL.md +103 -79
  103. package/scaffold/skills/dw-ui-discipline/references/accessibility-floor.md +2 -2
  104. package/scaffold/skills/dw-ui-discipline/references/hard-gate.md +93 -73
  105. package/scaffold/skills/dw-ui-discipline/references/state-matrix.md +1 -1
  106. package/scaffold/skills/dw-ui-discipline/references/visual-slop.md +152 -0
  107. package/scaffold/skills/dw-verify/SKILL.md +4 -4
  108. package/scaffold/skills/humanizer/SKILL.md +1 -7
  109. package/scaffold/skills/remotion-best-practices/SKILL.md +3 -1
  110. package/scaffold/skills/security-review/SKILL.md +1 -1
  111. package/scaffold/skills/security-review/languages/csharp.md +1 -1
  112. package/scaffold/skills/security-review/languages/rust.md +1 -1
  113. package/scaffold/skills/security-review/languages/typescript.md +1 -1
  114. package/scaffold/skills/vercel-react-best-practices/SKILL.md +3 -1
  115. package/scaffold/templates-overrides-readme.md +3 -3
  116. package/scaffold/en/commands/dw-code-review.md +0 -385
  117. package/scaffold/en/commands/dw-create-prd.md +0 -148
  118. package/scaffold/en/commands/dw-create-tasks.md +0 -195
  119. package/scaffold/en/commands/dw-create-techspec.md +0 -210
  120. package/scaffold/en/commands/dw-deep-research.md +0 -418
  121. package/scaffold/en/commands/dw-deps-audit.md +0 -327
  122. package/scaffold/en/commands/dw-fix-qa.md +0 -152
  123. package/scaffold/en/commands/dw-map-codebase.md +0 -125
  124. package/scaffold/en/commands/dw-refactoring-analysis.md +0 -340
  125. package/scaffold/en/commands/dw-revert-task.md +0 -114
  126. package/scaffold/en/commands/dw-review-implementation.md +0 -349
  127. package/scaffold/en/commands/dw-run-plan.md +0 -300
  128. package/scaffold/en/commands/dw-run-qa.md +0 -496
  129. package/scaffold/en/commands/dw-run-task.md +0 -209
  130. package/scaffold/en/commands/dw-security-check.md +0 -271
  131. package/scaffold/pt-br/commands/dw-code-review.md +0 -365
  132. package/scaffold/pt-br/commands/dw-create-prd.md +0 -148
  133. package/scaffold/pt-br/commands/dw-create-tasks.md +0 -195
  134. package/scaffold/pt-br/commands/dw-create-techspec.md +0 -208
  135. package/scaffold/pt-br/commands/dw-deep-research.md +0 -172
  136. package/scaffold/pt-br/commands/dw-deps-audit.md +0 -327
  137. package/scaffold/pt-br/commands/dw-fix-qa.md +0 -152
  138. package/scaffold/pt-br/commands/dw-map-codebase.md +0 -125
  139. package/scaffold/pt-br/commands/dw-refactoring-analysis.md +0 -340
  140. package/scaffold/pt-br/commands/dw-revert-task.md +0 -114
  141. package/scaffold/pt-br/commands/dw-review-implementation.md +0 -337
  142. package/scaffold/pt-br/commands/dw-run-plan.md +0 -296
  143. package/scaffold/pt-br/commands/dw-run-qa.md +0 -494
  144. package/scaffold/pt-br/commands/dw-run-task.md +0 -208
  145. package/scaffold/pt-br/commands/dw-security-check.md +0 -271
  146. package/scaffold/skills/dw-testing-discipline/references/ai-agent-gates.md +0 -170
  147. package/scaffold/skills/dw-testing-discipline/references/iron-laws.md +0 -128
  148. package/scaffold/skills/dw-ui-discipline/references/anti-slop.md +0 -162
@@ -0,0 +1,152 @@
1
+ # Visual slop — 14 patterns + 17 default values to avoid
2
+
3
+ Two parts:
4
+ 1. **Fourteen patterns** an ungrounded UI agent produces.
5
+ 2. **Seventeen specific values** that signal "no thought went into this."
6
+
7
+ Used by `/dw-review --code-only` against UI diffs and by `/dw-redesign-ui` as a self-check during proposal.
8
+
9
+ ## The 14 patterns
10
+
11
+ ### 1. Uniform-section flatness
12
+
13
+ Every section uses the same card style, same padding, same text size, same emphasis weight. The eye finds no anchor.
14
+
15
+ - **Why it happens:** Default of "consistent = good" without realizing hierarchy needs deliberate variation.
16
+ - **Fix:** One primary section per scroll height. Differentiate by size, weight, color saturation, or whitespace by ≥30%. Everything else recedes.
17
+ - **Example violation:** Dashboard with 6 identical metric cards.
18
+ - **Example fix:** One hero metric (largest, top); 3 supporting metrics; 2 minor metrics in a different visual treatment.
19
+
20
+ ### 2. Soft hierarchy
21
+
22
+ Headings barely larger than body. Primary CTA same color as secondary. The user can't tell what to look at first.
23
+
24
+ - **Why it happens:** "Elegant restraint" applied without ensuring guidance still works.
25
+ - **Fix:** Squint at the design (literally). What jumps out? If nothing jumps out, increase contrast in size, weight, or color for the primary element.
26
+
27
+ ### 3. Decorative hover
28
+
29
+ Hover effects on elements that have no click handler. Cards that fade slightly but don't link anywhere.
30
+
31
+ - **Why it happens:** Default "apply hover to anything card-shaped."
32
+ - **Fix:** Hover effect lives only on elements with an on-click. Non-interactive shapes get `cursor: default`. If it's hoverable, it must do something.
33
+
34
+ ### 4. Emoji as ornament
35
+
36
+ Emojis in headers and section labels where they add no information: 🎯 Goals · 🚀 Launch · ✨ Features · 📊 Analytics · 🔥 Trending.
37
+
38
+ - **Why it happens:** Training data has many "emoji-in-headers = engaging" patterns.
39
+ - **Fix:** Use icons (lucide, heroicons, tabler) for semantic meaning. Reserve emojis for genuinely emotive contexts (celebrations, errors needing empathy). If removing the emoji preserves the meaning, remove it.
40
+
41
+ ### 5. Gradient cover
42
+
43
+ Hero with diagonal purple-to-pink gradient. Buttons with subtle gradient. Card backgrounds with mesh gradients. Gradient as visual fallback for weak composition.
44
+
45
+ - **Why it happens:** AI-art aesthetics leak into UI; gradients hide compositional weakness.
46
+ - **Fix:** A gradient must earn its place — usually for hero zones with poetic copy. Solid colors with strong hierarchy beat gradients in utility surfaces.
47
+
48
+ ### 6. Glass-on-everything
49
+
50
+ Frosted-glass effect on modals, cards, dropdowns, side panels — anywhere a surface can be layered. Including on top of plain backgrounds where the blur effect has nothing to blur.
51
+
52
+ - **Why it happens:** macOS aesthetic. Looks premium without effort.
53
+ - **Fix:** Glass only when there's meaningful content visible behind the surface. Glass over plain backgrounds adds visual noise without semantic gain.
54
+
55
+ ### 7. Center-aligned by default
56
+
57
+ Body paragraphs center-aligned. Headlines centered. Forms with labels centered above inputs. Tabular data centered instead of column-aligned.
58
+
59
+ - **Why it happens:** Marketing-page training data biases toward center.
60
+ - **Fix:** Center for hero headlines and small CTA labels only. Body text and forms read better left-aligned in LTR scripts. Tabular data reads in columns.
61
+
62
+ ### 8. Grayscale wash
63
+
64
+ Neutral gray palette everywhere — `slate-50`, `gray-100`, `zinc-200` — for backgrounds, borders, text, accents. No accent color, no character.
65
+
66
+ - **Why it happens:** "Neutral = safe" plus shadcn/ui's neutral starting point.
67
+ - **Fix:** Establish ONE accent color (from brand or curated defaults). Use it intentionally on the primary CTA, the active state, the one place the user looks first. Gray is the canvas, not the painting.
68
+
69
+ ### 9. Verb-less CTAs
70
+
71
+ "Get Started" · "Learn More" · "Click Here" · "Submit" · "OK" buttons. Generic verbs that say nothing.
72
+
73
+ - **Why it happens:** Default LLM verb library.
74
+ - **Fix:** Use the verb the user is actually doing. "Approve refund" not "Submit". "Start free trial" not "Get Started". "Schedule a call" not "Contact us".
75
+
76
+ ### 10. Stock-illustration hero
77
+
78
+ Figure-with-laptop hero art. Diverse-team-around-table illustration. Abstract floating shapes. Generic figures from illustration kits.
79
+
80
+ - **Why it happens:** "Illustration = friendly" default. Cheap to produce.
81
+ - **Fix:** Use product screenshots (real screens, real data, sanitized) or skip illustration entirely. A clean hero with strong typography beats generic illustration.
82
+
83
+ ### 11. Shadow soup
84
+
85
+ Cards with shadow. Buttons with shadow. Inputs with shadow. Tooltips with shadow on shadows. Borders AND shadows AND gradients on one element.
86
+
87
+ - **Why it happens:** Material Design leftover; depth as decoration.
88
+ - **Fix:** Pick one depth mechanism per layer. If cards have shadow, buttons inside should not. If you use elevation systematically (Material 3), enforce the elevation hierarchy.
89
+
90
+ ### 12. Generic spinner
91
+
92
+ Spinner overlay for every async operation, regardless of duration or context.
93
+
94
+ - **Why it happens:** Default fallback in every UI library.
95
+ - **Fix granularity:**
96
+ - <300ms: show nothing (spinner appearing then vanishing is flicker).
97
+ - 300ms–2s: skeleton loader matching content shape.
98
+ - 2s–10s: spinner + status text ("Loading orders...").
99
+ - 10s+: progress bar or step indicator + cancel button.
100
+
101
+ ### 13. Silent empty state
102
+
103
+ "No items found." Centered. Nothing else. User has no idea what to do.
104
+
105
+ - **Why it happens:** Empty state treated as edge case, not as a real screen.
106
+ - **Fix:** Every empty state answers two questions: WHY is it empty (no data yet vs filter excluded everything vs error)? WHAT should the user do (CTA, like "Create your first invoice")?
107
+
108
+ ### 14. Toast spam
109
+
110
+ Every UI event becomes a toast. Save successful → toast. Validation error → toast. Network slow → toast. Five stack up and the user reads none.
111
+
112
+ - **Why it happens:** Toast is the default feedback mechanism in component libraries.
113
+ - **Fix:** Toasts only for actions that need confirmation AWAY from the originating surface (background save, undo-able deletion). Inline feedback for form validation. Modal/banner for blocking errors. Cap at 2 stacked toasts.
114
+
115
+ ## The 17 anti-default values
116
+
117
+ Specific values that signal "no thought went into this." Avoid unless you can articulate WHY you picked exactly this one:
118
+
119
+ | Anti-default | Tell |
120
+ |--------------|------|
121
+ | `#3B82F6` (Tailwind blue-500) | The internet's default blue |
122
+ | `rounded-lg` everywhere | Universal default; no surface character |
123
+ | `shadow-md` on every card | Universal default; no depth hierarchy |
124
+ | `bg-gradient-to-br from-purple-500 to-pink-500` | "AI startup landing page" gradient |
125
+ | Inter as the only font choice | Default font of ~60% of new SaaS |
126
+ | `font-bold` for every emphasis | Bold is one tool, not the only tool |
127
+ | Lucide icons exclusively | One icon family is fine; signature is none |
128
+ | Generic "happy team" hero illustration | Placeholder energy |
129
+ | "Get Started" / "Learn More" CTA copy | Verb-less; says nothing |
130
+ | 4 / 8 / 12 / 16 spacing exclusively | The default 4-step scale; no rhythm |
131
+ | `border-gray-200` for every divider | Visual whisper; no intent |
132
+ | Sans-serif headlines + sans-serif body | No typographic contrast |
133
+ | Center-aligned everything | See pattern #7 |
134
+ | Animated CSS confetti on success | Cheesy; mismatches most brands |
135
+ | `bg-white dark:bg-gray-900` only | No real dark-mode design pass |
136
+ | Single-column form on a wide screen | Vertical scroll where horizontal fits |
137
+ | Modal for every interaction | Most modals should be inline editing |
138
+
139
+ ## How to apply this catalog
140
+
141
+ In `/dw-redesign-ui` step 4 (propose) — before presenting design directions, self-check against this list. If you're using a pattern, say why explicitly ("gradient crutch — intentional for marketing hero"). Sometimes the pattern IS the right call; the discipline is awareness, not absolutism.
142
+
143
+ In `/dw-review --code-only` UI section — grep the diff for the anti-default values and the patterns. Each hit becomes a finding under `dw-review-rigor`:
144
+ - Pattern on a NEW surface → `medium` severity.
145
+ - Pattern propagating EXISTING slop further → `low` severity (consistency wins).
146
+ - Pattern on a redesign that was supposed to fix slop → `high` severity (regression).
147
+
148
+ ## When the patterns bend
149
+
150
+ - **Marketing pages** can use gradients and emojis with more freedom — different surface job.
151
+ - **Brand-mandated** values override this list (if your brand IS `#3B82F6`, use it).
152
+ - **Component libraries** like shadcn ship neutral defaults — the discipline is to ADD character on top, not remove the neutrality.
@@ -171,11 +171,11 @@ If no verification command exists for the project, state that explicitly in the
171
171
 
172
172
  This skill is invoked transparently from:
173
173
 
174
- - `/dw-run-task` — before committing the task's changes
175
- - `/dw-run-plan` — before Level 2 review and before declaring the plan complete
176
- - `/dw-fix-qa` — before marking a bug as resolved in `QA/bugs.md`
174
+ - `/dw-run` — before committing the task's changes
175
+ - `/dw-run` — before Level 2 review and before declaring the plan complete
176
+ - `/dw-qa --fix` — before marking a bug as resolved in `QA/bugs.md`
177
177
  - `/dw-bugfix` — before claiming the bug is fixed (original symptom no longer reproduces)
178
- - `/dw-code-review` — before emitting an APPROVED verdict
178
+ - `/dw-review --code-only` — before emitting an APPROVED verdict
179
179
  - `/dw-generate-pr` — blocks PR creation if the session has no passing VERIFICATION REPORT post-last-edit
180
180
 
181
181
  Callers should mention this skill in their "Skills Complementares" section so the user sees the dependency.
@@ -1,13 +1,7 @@
1
1
  ---
2
2
  name: humanizer
3
3
  version: 2.2.0
4
- description: |
5
- Remove signs of AI-generated writing from text. Use when editing or reviewing
6
- text to make it sound more natural and human-written. Based on Wikipedia's
7
- comprehensive "Signs of AI writing" guide. Detects and fixes patterns including:
8
- inflated symbolism, promotional language, superficial -ing analyses, vague
9
- attributions, em dash overuse, rule of three, AI vocabulary words, negative
10
- parallelisms, and excessive conjunctive phrases.
4
+ description: Use when editing AI-generated text. Detects 24 'signs of AI writing' (em-dashes, rule-of-three, AI vocab, vague attributions). Triggers on docs, READMEs, blog posts, captions, marketing copy.
11
5
  allowed-tools:
12
6
  - Read
13
7
  - Write
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: remotion-best-practices
3
- description: Best practices for Remotion - Video creation in React
3
+ description: Use for video composition with Remotion + React. 25+ rules for composition, transitions, FFmpeg, performance. Triggers on .tsx Remotion files, video rendering, motion design, captions.
4
+ allowed-tools:
5
+ - Read
4
6
  metadata:
5
7
  tags: remotion, video, react, animation, composition
6
8
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: security-review
3
- description: Security code review for vulnerabilities. Use when asked to "security review", "find vulnerabilities", "check for security issues", "audit security", "OWASP review", or review code for injection, XSS, authentication, authorization, cryptography issues. Provides systematic review with confidence-based reporting.
3
+ description: Use for security code review. OWASP patterns (injection, XSS, auth, authz, crypto, SSRF, secrets). Confidence-based reporting. Triggers on 'security review', auth/payment code, or /dw-secure-audit.
4
4
  allowed-tools: Read, Grep, Glob, Bash, Task
5
5
  license: LICENSE
6
6
  ---
@@ -1,6 +1,6 @@
1
1
  # C# / .NET Security Patterns
2
2
 
3
- Covers **ASP.NET Core, ASP.NET (Framework), Blazor, Razor Pages, Minimal APIs, Entity Framework Core, ADO.NET, Dapper, Identity, NuGet**. Used by `/dw-security-check` as the primary reference when C# is detected in scope.
3
+ Covers **ASP.NET Core, ASP.NET (Framework), Blazor, Razor Pages, Minimal APIs, Entity Framework Core, ADO.NET, Dapper, Identity, NuGet**. Used by `/dw-secure-audit` as the primary reference when C# is detected in scope.
4
4
 
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Rust Security Patterns
2
2
 
3
- Covers **Actix Web, Axum, Rocket, Warp, Tonic (gRPC), Tower, Tokio, sqlx, Diesel, SeaORM, serde, reqwest, hyper, std::process, std::fs, unsafe blocks, FFI, and cargo supply chain**. Used by `/dw-security-check` as the primary reference when Rust is detected in scope.
3
+ Covers **Actix Web, Axum, Rocket, Warp, Tonic (gRPC), Tower, Tokio, sqlx, Diesel, SeaORM, serde, reqwest, hyper, std::process, std::fs, unsafe blocks, FFI, and cargo supply chain**. Used by `/dw-secure-audit` as the primary reference when Rust is detected in scope.
4
4
 
5
5
  > Rust's ownership and borrow checker eliminate **memory-safety** classes of bugs (use-after-free, data races, buffer overflows) — but **logic bugs, misuse of `unsafe`, DoS via panic, injection into string-APIs, and supply-chain compromise are still present**. Do not assume "Rust = secure".
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  This file complements `javascript.md` (which already covers React/Vue/Express/Next/Angular/Node XSS, injection, DOM sinks, prototype pollution). Here we focus on **TypeScript-specific** vulnerability classes: type-system abuses, runtime vs compile-time gap, TS-native ORMs, TS-native validators, and framework-specific patterns unique to TS ecosystems.
4
4
 
5
- > Used by `/dw-security-check` as the primary reference when TS is detected in scope.
5
+ > Used by `/dw-secure-audit` as the primary reference when TS is detected in scope.
6
6
 
7
7
  ---
8
8
 
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  name: vercel-react-best-practices
3
- description: React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
3
+ description: Use for React/Next.js performance optimization. 67 rules across async, bundle, client, render, JS micro-perf. Triggers on React components, Next.js pages, data fetching, perf review, hydration issues.
4
+ allowed-tools:
5
+ - Read
4
6
  license: MIT
5
7
  metadata:
6
8
  author: vercel
@@ -23,7 +23,7 @@ git add .dw/templates/overrides/prd-template.md
23
23
  git commit -m "chore(templates): customize PRD template for our team"
24
24
  ```
25
25
 
26
- The override takes effect immediately. Commands that consume the template (`/dw-create-prd`, etc.) will read from `.dw/templates/<name>.md`, which is preserved as your edited copy.
26
+ The override takes effect immediately. Commands that consume the template (`/dw-plan prd`, etc.) will read from `.dw/templates/<name>.md`, which is preserved as your edited copy.
27
27
 
28
28
  ## How to revert an override
29
29
 
@@ -46,9 +46,9 @@ npx @brunosps00/dev-workflow update
46
46
 
47
47
  - Removing critical-path sections like FR numbering or test plans — downstream commands rely on these.
48
48
  - Adding fields that conflict with the YAML frontmatter schema.
49
- - Anything that breaks `/dw-create-techspec` or `/dw-create-tasks` cross-references.
49
+ - Anything that breaks `/dw-plan techspec` or `/dw-plan tasks` cross-references.
50
50
 
51
- If in doubt, run the workflow end-to-end after editing — the consistency check at the end of `/dw-create-tasks` will surface most structural breakages.
51
+ If in doubt, run the workflow end-to-end after editing — the consistency check at the end of `/dw-plan tasks` will surface most structural breakages.
52
52
 
53
53
  ## Versioning your overrides
54
54
 
@@ -1,385 +0,0 @@
1
- <system_instructions>
2
- You are an AI assistant specialized in formal Code Review (Level 3). Your task is to perform a deep analysis of the produced code, verify conformance with project rules, adherence to the TechSpec, code quality, and generate a formal persisted report.
3
-
4
- ## When to Use
5
- - Use when performing a formal Level 3 code review before PR that includes PRD compliance, code quality, rules conformance, and test verification
6
- - Do NOT use when only checking PRD compliance (use `/dw-review-implementation` for Level 2)
7
- - Do NOT use when code has not been implemented yet
8
-
9
- ## Pipeline Position
10
- **Predecessor:** `/dw-review-implementation` or `/dw-run-plan` | **Successor:** `/dw-generate-pr`
11
-
12
- Typically invoked before creating PR via `/dw-generate-pr`
13
-
14
- <critical>Use git diff to analyze code changes</critical>
15
- <critical>Verify if the code conforms to the rules in .dw/rules/</critical>
16
- <critical>ALL tests must pass before approving the review</critical>
17
- <critical>The implementation must follow the TechSpec and Tasks</critical>
18
- <critical>Generate the report at {{PRD_PATH}}/dw-code-review.md</critical>
19
-
20
- ## Complementary Skills
21
-
22
- When available in the project under `./.agents/skills/`, use these skills as analytical support without replacing this command:
23
-
24
- - `dw-review-rigor`: **ALWAYS** — applies de-duplication (same pattern in N files = 1 finding), severity ordering (critical → high → medium → low), verify-before-flag, skip-what-linter-catches, and signal-over-volume. The report's "Issues Found" table follows this discipline.
25
- - `dw-verify`: **ALWAYS** — invoked before emitting an `APPROVED` or `APPROVED WITH CAVEATS` verdict. Without a VERIFICATION REPORT PASS (test + lint + build), the verdict cannot be APPROVED.
26
- - `/dw-security-check`: **ALWAYS for TS/Python/C#/Rust projects** — invoked as step 6.7 (Security Layer) before emitting a verdict. If the project uses a supported language and `security-check.md` is missing OR has REJECTED status, the verdict is **REJECTED** — no exception.
27
- - `dw-simplification`: use when the diff touches dense or twisty code — applies Chesterton's Fence (understand WHY before flagging removal), behavior-preserving refactor protocol (test gate before/after), and complexity metrics (cyclomatic, cognitive, depth, fan-out) so that "simplify this" findings are concrete, not vibes-based.
28
- - `security-review`: use when auth, authorization, external input, upload, SQL, external integration, secrets, SSRF, XSS, or sensitive surfaces are present
29
- - `vercel-react-best-practices`: use when the diff touches React/Next.js to review rendering, fetching, bundle, hydration, and performance patterns
30
-
31
- ## Codebase Intelligence
32
-
33
- <critical>If `.dw/intel/` exists, querying it via `/dw-intel` is MANDATORY before reviewing. Do NOT skip this step.</critical>
34
- - Internally run: `/dw-intel "documented conventions and anti-patterns"`
35
- - Prioritize findings that violate documented conventions
36
- - Check if questionable architectural decisions are intentional (documented in `.dw/rules/`)
37
-
38
- If `.dw/intel/` does NOT exist:
39
- - Use `.dw/rules/` as context, falling back to grep
40
- - Suggest running `/dw-map-codebase` after the review for richer downstream context
41
-
42
- ## Input Variables
43
-
44
- | Variable | Description | Example |
45
- |----------|-------------|---------|
46
- | `{{PRD_PATH}}` | Path to the PRD folder | `.dw/spec/prd-user-onboarding` |
47
-
48
- ## Position
49
-
50
- This is **Review Level 3**:
51
-
52
- | Level | Command | When | Report |
53
- |-------|---------|------|--------|
54
- | 1 | *(embedded in /dw-run-task)* | After each task | No |
55
- | 2 | `/dw-review-implementation` | After all tasks | Terminal output |
56
- | **3** | **`/dw-code-review`** | **Before PR** | **`code-review.md`** |
57
-
58
- Level 3 includes EVERYTHING from Level 2 (PRD compliance) plus code quality analysis.
59
-
60
- ## Objectives
61
-
62
- 1. Verify PRD compliance (all RFs implemented)
63
- 2. Verify adherence to TechSpec (architecture, endpoints, schemas)
64
- 3. Analyze code quality (SOLID, DRY, complexity, security)
65
- 4. Verify conformance with project rules
66
- 5. Execute tests and verify coverage
67
- 6. Generate formal `code-review.md` report
68
-
69
- ## File Locations
70
-
71
- - PRD: `{{PRD_PATH}}/prd.md`
72
- - TechSpec: `{{PRD_PATH}}/techspec.md`
73
- - Tasks: `{{PRD_PATH}}/tasks.md`
74
- - Project Rules: `.dw/rules/`
75
- - Refactoring Catalog: `.dw/references/refactoring-catalog.md`
76
- - Output Report: `{{PRD_PATH}}/dw-code-review.md`
77
-
78
- ## Process Steps
79
-
80
- ### 1. Documentation Analysis (Required)
81
-
82
- - Read the PRD and extract functional requirements (RF-XX)
83
- - Read the TechSpec to understand expected architectural decisions
84
- - Read the Tasks to verify implemented scope
85
- - Read the relevant project rules (`.dw/rules/`)
86
-
87
- <critical>DO NOT SKIP THIS STEP - Understanding context is fundamental for the review</critical>
88
-
89
- ### 2. Code Change Analysis (Required)
90
-
91
- Execute git commands to understand what was changed:
92
-
93
- ```bash
94
- # See modified files
95
- git status
96
-
97
- # See diff of all changes
98
- git diff
99
-
100
- # See staged diff
101
- git diff --staged
102
-
103
- # See commits on current branch vs main
104
- git log main..HEAD --oneline
105
-
106
- # See full diff of branch vs main
107
- git diff main...HEAD
108
-
109
- # See statistics
110
- git diff main...HEAD --stat
111
- ```
112
-
113
- For each modified file:
114
- 1. Analyze changes line by line
115
- 2. Verify they follow project patterns
116
- 3. Identify potential issues
117
- 4. If the diff includes sensitive surfaces, also run a review guided by the `security-review` skill
118
- 5. If the diff includes React/Next.js, also review with `vercel-react-best-practices`
119
-
120
- ### 3. PRD Compliance - Level 2 (Required)
121
-
122
- For EACH functional requirement from the PRD:
123
- ```
124
- | RF-XX | Description | Status | Evidence |
125
- |-------|-------------|--------|----------|
126
- | RF-01 | User must... | ✅/❌/⚠️ | file.ts:line |
127
- ```
128
-
129
- For EACH endpoint from the TechSpec:
130
- ```
131
- | Endpoint | Method | Implemented | File |
132
- |----------|--------|-------------|------|
133
- | /api/xxx | GET | ✅/❌ | controller.ts |
134
- ```
135
-
136
- For EACH task:
137
- ```
138
- | Task | Doc Status | Real Status | Gaps |
139
- |------|------------|-------------|------|
140
- | 1.0 | ✅ | ✅ | - |
141
- ```
142
-
143
- ### 4. Rules Conformance (Required)
144
-
145
- For each impacted project, verify project-specific rules from `.dw/rules/`:
146
-
147
- **General Patterns (all projects):**
148
- - [ ] Explicit types (no `any`)
149
- - [ ] No `console.log` in production (only in dev/debug)
150
- - [ ] Adequate error handling
151
- - [ ] Multi-tenancy respected
152
- - [ ] Organized imports
153
- - [ ] Clear and descriptive names (no abbreviations)
154
-
155
- **Backend patterns (check .dw/rules/ for specifics):**
156
- - [ ] Architecture patterns respected (Clean Architecture, DDD, etc.)
157
- - [ ] Use Cases return proper result types
158
- - [ ] DTOs follow project conventions
159
- - [ ] Parameterized queries (no SQL injection)
160
- - [ ] Co-located unit tests (`*.spec.ts`)
161
-
162
- **Frontend patterns (check .dw/rules/ for specifics):**
163
- - [ ] Server Components by default (if Next.js)
164
- - [ ] `'use client'` only when necessary
165
- - [ ] Forms follow project form patterns
166
- - [ ] API calls use project fetch utilities
167
- - [ ] UI follows project design system
168
-
169
- ### 4.1. Constitution Compliance (Required when `.dw/constitution.md` exists)
170
-
171
- <critical>**Auto-create if missing**: if `.dw/constitution.md` does NOT exist, copy `templates/constitution-template.md` (project-local `.dw/templates/constitution-template.md` first, falling back to bundled scaffold) verbatim with frontmatter `mode: defaults`. Print in chat: "Installed defaults constitution at `.dw/constitution.md` (all principles at `severity: info` — reported but not blocking this review). Continuing." Then proceed.</critical>
172
-
173
- For each principle in `.dw/constitution.md`, check the diff for violations:
174
-
175
- 1. **Parse principles**: read each `**P-NNN — <name>** (severity: <S>)` entry; capture `P-NNN`, `severity`, and the `Enforcement` description.
176
- 2. **Apply enforcement**: for each principle, run the enforcement check against the diff (grep, file inspection, or pattern match per the Enforcement line).
177
- 3. **Classify violations**:
178
- - Principle severity `info` → add row to "Issues Found" table with severity `low`. **Does not block** the verdict.
179
- - Principle severity `high` → add row with severity `critical`. **Blocks** the verdict to `REJECTED` UNLESS an ADR in the same PRD's `adrs/` directory documents the deviation (look for `Deviates: P-NNN` in any ADR body).
180
- - Principle severity `critical` → add row with severity `critical` AND require the ADR to have a non-empty `Approved by:` field. Missing field = still `REJECTED`.
181
- 4. **No silent skips**: if the diff is too large to analyze every principle, report which were checked and which were skipped due to scope.
182
-
183
- **Output format in the report:**
184
-
185
- ```markdown
186
- ## Constitution Compliance
187
-
188
- | Principle | Severity | Status | Evidence | ADR escape |
189
- |-----------|----------|--------|----------|------------|
190
- | P-001 — No `any` casts | info | VIOLATED | src/foo.ts:42 | n/a |
191
- | P-009 — Server-side auth | high | VIOLATED | src/api/order.ts:18 missing auth middleware | none → BLOCKS |
192
- | P-010 — Secrets in repo | critical | PASS | — | — |
193
- ```
194
-
195
- If any `high`/`critical` violation has no ADR escape: append to the verdict line "REJECTED — constitution violation(s) without ADR (see Constitution Compliance section)".
196
-
197
- ### 5. Code Quality Analysis (Required)
198
-
199
- | Aspect | Verification |
200
- |--------|-------------|
201
- | **DRY** | Code not duplicated across files |
202
- | **SOLID** | Single Responsibility, Interface Segregation |
203
- | **Complexity** | Short functions, low cyclomatic complexity |
204
- | **Naming** | Clear names, no abbreviations, verbs for functions |
205
- | **Error Handling** | Proper try/catch, typed errors, no silencing |
206
- | **Security** | No SQL injection, XSS, secrets in code, input validation |
207
- | **Performance** | No N+1 queries, pagination, lazy loading |
208
- | **Testability** | Injectable dependencies, no hidden side effects |
209
-
210
- When the `security-review` skill is applied, report only high-confidence findings, clearly distinguishing:
211
- - Confirmed vulnerabilities
212
- - Items needing additional verification
213
-
214
- ### 6. Test Execution (Required)
215
-
216
- For each impacted project, run the test suite:
217
-
218
- ```bash
219
- # Check .dw/rules/ or project config for the correct test command
220
- pnpm test
221
- # or
222
- npm test
223
- ```
224
-
225
- Verify:
226
- - [ ] All tests pass
227
- - [ ] New tests were added for new code
228
- - [ ] Tests are meaningful (not just for coverage)
229
-
230
- <critical>THE REVIEW CANNOT BE APPROVED IF ANY TEST FAILS</critical>
231
-
232
- ### 6.5. Apply `dw-review-rigor` (Required)
233
-
234
- Before writing the "Issues Found" table, invoke the `dw-review-rigor` skill and apply the five rules:
235
-
236
- 1. **De-duplicate**: if the same pattern appears in N files, emit 1 finding with the list of affected files — never N identical findings.
237
- 2. **Severity ordering**: always present in critical → high → medium → low order (not by file).
238
- 3. **Verify intent before flagging**: check adjacent comments, ADRs in `.dw/spec/*/adrs/`, test coverage, rules in `.dw/rules/`. Do not flag patterns with documented justification.
239
- 4. **Skip what the linter catches**: run the project linter first; anything it already reports is not a finding.
240
- 5. **Signal over volume**: ~8 precise findings beats 30 marginal ones. Keep all critical/high; prune medium/low to the most impactful.
241
-
242
- If prior reviews exist in `{{PRD_PATH}}/reviews/` or a previous `{{PRD_PATH}}/dw-code-review.md` round, read them and emit **only NEW findings** — do not re-flag items already tracked.
243
-
244
- ### 6.6. Final Verification (Required before verdict)
245
-
246
- <critical>Invoke `dw-verify` and include the VERIFICATION REPORT at the start of the report. Without PASS, the verdict can only be `REJECTED` — never `APPROVED` or `APPROVED WITH CAVEATS`.</critical>
247
-
248
- ### 6.7. Security Layer (Required for TS/Python/C#/Rust projects)
249
-
250
- <critical>For TypeScript/JavaScript, Python, C#, or Rust projects whose diff touches code, invoke `/dw-security-check` with the same `{{PRD_PATH}}`. Without a `security-check.md` present in the PRD OR with a status other than CLEAN / PASSED WITH OBSERVATIONS, the verdict is **REJECTED** — no exception.</critical>
251
-
252
- - If `/dw-security-check` returns **REJECTED**: automatic verdict **REJECTED**. Include the security-check's CRITICAL/HIGH findings with appropriate severity in the final report's "Issues Found" section.
253
- - If it returns **PASSED WITH OBSERVATIONS**: may proceed to APPROVED WITH CAVEATS, listing medium/low observations as caveats.
254
- - If it returns **CLEAN**: proceeds normally to a verdict based on the remaining criteria.
255
- - Projects in languages not supported by security-check (Go, Java, PHP, Ruby, etc.) → skip this step with a visible note in the code-review report.
256
-
257
- ### 7. Generate Code Review Report (Required)
258
-
259
- Save to `{{PRD_PATH}}/dw-code-review.md`:
260
-
261
- ```markdown
262
- # Code Review - [Feature Name]
263
-
264
- ## Summary
265
- - **Date:** [YYYY-MM-DD]
266
- - **Branch:** [branch name]
267
- - **Status:** APPROVED / APPROVED WITH CAVEATS / REJECTED
268
- - **Files Modified:** [X]
269
- - **Lines Added:** [Y]
270
- - **Lines Removed:** [Z]
271
-
272
- ## PRD Compliance (Level 2)
273
-
274
- ### Status by Functional Requirement
275
- | RF | Description | Status | Evidence |
276
- |----|-------------|--------|----------|
277
- | RF-01 | [desc] | ✅/❌/⚠️ | [file:line] |
278
-
279
- ### Status by Endpoint
280
- | Endpoint | Method | Status | File |
281
- |----------|--------|--------|------|
282
- | [endpoint] | [method] | ✅/❌ | [file] |
283
-
284
- ### Status by Task
285
- | Task | Status | Gaps |
286
- |------|--------|------|
287
- | [task] | ✅/⚠️/❌ | [gaps] |
288
-
289
- ## Rules Conformance
290
- | Rule | Project | Status | Notes |
291
- |------|---------|--------|-------|
292
- | Architecture | [project] | ✅/⚠️/❌ | [notes] |
293
- | Multi-tenancy | [project] | ✅/⚠️/❌ | [notes] |
294
- | Server Components | [project] | ✅/⚠️/❌ | [notes] |
295
-
296
- ## Code Quality
297
- | Aspect | Status | Notes |
298
- |--------|--------|-------|
299
- | DRY | ✅/⚠️/❌ | [notes] |
300
- | SOLID | ✅/⚠️/❌ | [notes] |
301
- | Error Handling | ✅/⚠️/❌ | [notes] |
302
- | Security | ✅/⚠️/❌ | [notes] |
303
-
304
- ## Tests
305
- - **Total Tests:** [X]
306
- - **Passing:** [Y]
307
- - **Failing:** [Z]
308
- - **New Tests:** [W]
309
-
310
- ## Issues Found
311
- | Severity | File | Line | Description | Suggestion |
312
- |----------|------|------|-------------|------------|
313
- | CRITICAL/MAJOR/MINOR | [file] | [line] | [desc] | [fix] |
314
-
315
- ## Positive Points
316
- - [positive points identified]
317
-
318
- ## Recommendations
319
- 1. [priority action]
320
- 2. [secondary action]
321
-
322
- ## Conclusion
323
- [Final review assessment with next steps]
324
- ```
325
-
326
- ## Approval Criteria
327
-
328
- **APPROVED**: All RFs implemented, tests passing, code conforms to rules and TechSpec, no security issues.
329
-
330
- **APPROVED WITH CAVEATS**: RFs implemented, tests passing, but there are recommended non-blocking improvements (MINOR issues).
331
-
332
- **REJECTED**: Tests failing, RFs not implemented, serious rules violations, security issues, or CRITICAL issues.
333
-
334
- ## Next Steps by Status
335
-
336
- <critical>The suggested next step MUST match the review status. NEVER suggest /dw-fix-qa after code-review — that command is exclusively for bugs found by /dw-run-qa.</critical>
337
-
338
- - **APPROVED**: Suggest `/dw-commit` followed by `/dw-generate-pr`
339
- - **APPROVED WITH CAVEATS**: List the caveats. Suggest fixing the caveats, re-running build + lint with --fix, then re-running `/dw-code-review`
340
- - **REJECTED**: List the findings that caused rejection. The correct flow is:
341
- 1. Fix the findings listed in the report
342
- 2. Run build and lint with `--fix` until they pass
343
- 3. Re-run `/dw-code-review`
344
- 4. Repeat until APPROVED
345
- - Do NOT suggest `/dw-fix-qa` (that is for visual QA bugs)
346
- - Do NOT suggest `/dw-run-qa` before resolving code-review findings
347
-
348
- **Approval Decision Flow:**
349
- ```dot
350
- digraph approval {
351
- "Tests pass?" -> "Rules violations?" [label="yes"];
352
- "Tests pass?" -> "REJECTED" [label="no"];
353
- "Rules violations?" -> "Critical violations?" [label="yes"];
354
- "Rules violations?" -> "APPROVED" [label="no"];
355
- "Critical violations?" -> "REJECTED" [label="yes"];
356
- "Critical violations?" -> "APPROVED WITH CAVEATS" [label="no"];
357
- }
358
- ```
359
-
360
- ## Quality Checklist
361
-
362
- - [ ] PRD read and RFs extracted
363
- - [ ] TechSpec analyzed
364
- - [ ] Tasks verified
365
- - [ ] Project rules reviewed
366
- - [ ] Git diff analyzed
367
- - [ ] PRD compliance verified (Level 2)
368
- - [ ] Rules conformance verified
369
- - [ ] Code quality analyzed
370
- - [ ] Tests executed and passing
371
- - [ ] Report `code-review.md` generated
372
- - [ ] Final status defined
373
-
374
- ## Important Notes
375
-
376
- - Always read the complete code of modified files, not just the diff
377
- - Check if there are files that should have been modified but were not
378
- - Consider the impact of changes on other parts of the system
379
- - Be constructive in criticism, always suggesting alternatives
380
- - For multi-project setups, verify integration contracts between projects
381
-
382
- <critical>THE REVIEW IS NOT COMPLETE UNTIL ALL TESTS PASS</critical>
383
- <critical>ALWAYS check the project rules before flagging issues</critical>
384
- <critical>Generate the report at {{PRD_PATH}}/dw-code-review.md</critical>
385
- </system_instructions>