@brunosps00/dev-workflow 0.11.0 → 0.13.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 (111) hide show
  1. package/README.md +48 -5
  2. package/lib/constants.js +20 -20
  3. package/lib/init.js +24 -1
  4. package/lib/migrate-skills.js +129 -0
  5. package/lib/removed-bundled-skills.js +16 -0
  6. package/lib/uninstall.js +6 -2
  7. package/lib/utils.js +43 -1
  8. package/package.json +1 -1
  9. package/scaffold/en/agent-instructions.md +68 -0
  10. package/scaffold/en/commands/dw-autopilot.md +1 -1
  11. package/scaffold/en/commands/dw-brainstorm.md +1 -1
  12. package/scaffold/en/commands/dw-bugfix.md +3 -3
  13. package/scaffold/en/commands/dw-create-techspec.md +1 -1
  14. package/scaffold/en/commands/dw-deps-audit.md +1 -1
  15. package/scaffold/en/commands/dw-fix-qa.md +1 -1
  16. package/scaffold/en/commands/dw-functional-doc.md +2 -2
  17. package/scaffold/en/commands/dw-help.md +1 -1
  18. package/scaffold/en/commands/dw-redesign-ui.md +7 -7
  19. package/scaffold/en/commands/dw-run-qa.md +4 -4
  20. package/scaffold/en/commands/dw-run-task.md +2 -2
  21. package/scaffold/en/templates/constitution-template.md +1 -1
  22. package/scaffold/pt-br/agent-instructions.md +68 -0
  23. package/scaffold/pt-br/commands/dw-autopilot.md +1 -1
  24. package/scaffold/pt-br/commands/dw-brainstorm.md +1 -1
  25. package/scaffold/pt-br/commands/dw-bugfix.md +3 -3
  26. package/scaffold/pt-br/commands/dw-create-techspec.md +1 -1
  27. package/scaffold/pt-br/commands/dw-deps-audit.md +1 -1
  28. package/scaffold/pt-br/commands/dw-fix-qa.md +1 -1
  29. package/scaffold/pt-br/commands/dw-functional-doc.md +2 -2
  30. package/scaffold/pt-br/commands/dw-help.md +1 -1
  31. package/scaffold/pt-br/commands/dw-redesign-ui.md +7 -7
  32. package/scaffold/pt-br/commands/dw-run-qa.md +4 -4
  33. package/scaffold/pt-br/commands/dw-run-task.md +2 -2
  34. package/scaffold/pt-br/templates/constitution-template.md +1 -1
  35. package/scaffold/skills/dw-council/SKILL.md +1 -1
  36. package/scaffold/skills/dw-testing-discipline/SKILL.md +148 -0
  37. package/scaffold/skills/dw-testing-discipline/references/ai-agent-gates.md +170 -0
  38. package/scaffold/skills/dw-testing-discipline/references/anti-patterns.md +336 -0
  39. package/scaffold/skills/dw-testing-discipline/references/flaky-discipline.md +163 -0
  40. package/scaffold/skills/dw-testing-discipline/references/iron-laws.md +128 -0
  41. package/scaffold/skills/dw-testing-discipline/references/playwright-recipes.md +282 -0
  42. package/scaffold/skills/dw-testing-discipline/references/positive-patterns.md +241 -0
  43. package/scaffold/skills/{webapp-testing → dw-testing-discipline}/references/security-boundary.md +1 -1
  44. package/scaffold/skills/dw-ui-discipline/SKILL.md +128 -0
  45. package/scaffold/skills/dw-ui-discipline/references/accessibility-floor.md +225 -0
  46. package/scaffold/skills/dw-ui-discipline/references/anti-slop.md +162 -0
  47. package/scaffold/skills/dw-ui-discipline/references/curated-defaults.md +195 -0
  48. package/scaffold/skills/dw-ui-discipline/references/hard-gate.md +142 -0
  49. package/scaffold/skills/dw-ui-discipline/references/state-matrix.md +101 -0
  50. package/scaffold/skills/ui-ux-pro-max/LICENSE +0 -21
  51. package/scaffold/skills/ui-ux-pro-max/SKILL.md +0 -659
  52. package/scaffold/skills/ui-ux-pro-max/data/_sync_all.py +0 -414
  53. package/scaffold/skills/ui-ux-pro-max/data/app-interface.csv +0 -31
  54. package/scaffold/skills/ui-ux-pro-max/data/charts.csv +0 -26
  55. package/scaffold/skills/ui-ux-pro-max/data/colors.csv +0 -162
  56. package/scaffold/skills/ui-ux-pro-max/data/design.csv +0 -1776
  57. package/scaffold/skills/ui-ux-pro-max/data/draft.csv +0 -1779
  58. package/scaffold/skills/ui-ux-pro-max/data/google-fonts.csv +0 -1924
  59. package/scaffold/skills/ui-ux-pro-max/data/icons.csv +0 -106
  60. package/scaffold/skills/ui-ux-pro-max/data/landing.csv +0 -35
  61. package/scaffold/skills/ui-ux-pro-max/data/products.csv +0 -162
  62. package/scaffold/skills/ui-ux-pro-max/data/react-performance.csv +0 -45
  63. package/scaffold/skills/ui-ux-pro-max/data/stacks/angular.csv +0 -51
  64. package/scaffold/skills/ui-ux-pro-max/data/stacks/astro.csv +0 -54
  65. package/scaffold/skills/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
  66. package/scaffold/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
  67. package/scaffold/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
  68. package/scaffold/skills/ui-ux-pro-max/data/stacks/laravel.csv +0 -51
  69. package/scaffold/skills/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
  70. package/scaffold/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -51
  71. package/scaffold/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
  72. package/scaffold/skills/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
  73. package/scaffold/skills/ui-ux-pro-max/data/stacks/react.csv +0 -54
  74. package/scaffold/skills/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
  75. package/scaffold/skills/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
  76. package/scaffold/skills/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
  77. package/scaffold/skills/ui-ux-pro-max/data/stacks/threejs.csv +0 -54
  78. package/scaffold/skills/ui-ux-pro-max/data/stacks/vue.csv +0 -50
  79. package/scaffold/skills/ui-ux-pro-max/data/styles.csv +0 -85
  80. package/scaffold/skills/ui-ux-pro-max/data/typography.csv +0 -74
  81. package/scaffold/skills/ui-ux-pro-max/data/ui-reasoning.csv +0 -162
  82. package/scaffold/skills/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  83. package/scaffold/skills/ui-ux-pro-max/scripts/core.py +0 -262
  84. package/scaffold/skills/ui-ux-pro-max/scripts/design_system.py +0 -1148
  85. package/scaffold/skills/ui-ux-pro-max/scripts/search.py +0 -114
  86. package/scaffold/skills/ui-ux-pro-max/skills/brand/SKILL.md +0 -97
  87. package/scaffold/skills/ui-ux-pro-max/skills/design/SKILL.md +0 -302
  88. package/scaffold/skills/ui-ux-pro-max/skills/design-system/SKILL.md +0 -244
  89. package/scaffold/skills/ui-ux-pro-max/templates/base/quick-reference.md +0 -297
  90. package/scaffold/skills/ui-ux-pro-max/templates/base/skill-content.md +0 -358
  91. package/scaffold/skills/ui-ux-pro-max/templates/platforms/agent.json +0 -21
  92. package/scaffold/skills/ui-ux-pro-max/templates/platforms/augment.json +0 -18
  93. package/scaffold/skills/ui-ux-pro-max/templates/platforms/claude.json +0 -21
  94. package/scaffold/skills/ui-ux-pro-max/templates/platforms/codebuddy.json +0 -21
  95. package/scaffold/skills/ui-ux-pro-max/templates/platforms/codex.json +0 -21
  96. package/scaffold/skills/ui-ux-pro-max/templates/platforms/continue.json +0 -21
  97. package/scaffold/skills/ui-ux-pro-max/templates/platforms/copilot.json +0 -21
  98. package/scaffold/skills/ui-ux-pro-max/templates/platforms/cursor.json +0 -21
  99. package/scaffold/skills/ui-ux-pro-max/templates/platforms/droid.json +0 -21
  100. package/scaffold/skills/ui-ux-pro-max/templates/platforms/gemini.json +0 -21
  101. package/scaffold/skills/ui-ux-pro-max/templates/platforms/kilocode.json +0 -21
  102. package/scaffold/skills/ui-ux-pro-max/templates/platforms/kiro.json +0 -21
  103. package/scaffold/skills/ui-ux-pro-max/templates/platforms/opencode.json +0 -21
  104. package/scaffold/skills/ui-ux-pro-max/templates/platforms/qoder.json +0 -21
  105. package/scaffold/skills/ui-ux-pro-max/templates/platforms/roocode.json +0 -21
  106. package/scaffold/skills/ui-ux-pro-max/templates/platforms/trae.json +0 -21
  107. package/scaffold/skills/ui-ux-pro-max/templates/platforms/warp.json +0 -18
  108. package/scaffold/skills/ui-ux-pro-max/templates/platforms/windsurf.json +0 -21
  109. package/scaffold/skills/webapp-testing/SKILL.md +0 -138
  110. package/scaffold/skills/webapp-testing/assets/test-helper.js +0 -56
  111. /package/scaffold/skills/{webapp-testing → dw-testing-discipline}/references/three-workflow-patterns.md +0 -0
@@ -1,21 +0,0 @@
1
- {
2
- "platform": "qoder",
3
- "displayName": "Qoder",
4
- "installType": "full",
5
- "folderStructure": {
6
- "root": ".qoder",
7
- "skillPath": "skills/ui-ux-pro-max",
8
- "filename": "SKILL.md"
9
- },
10
- "scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
11
- "frontmatter": {
12
- "name": "ui-ux-pro-max",
13
- "description": "UI/UX design intelligence with searchable database"
14
- },
15
- "sections": {
16
- "quickReference": false
17
- },
18
- "title": "ui-ux-pro-max",
19
- "description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 161 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 16 technology stacks. Searchable database with priority-based recommendations.",
20
- "skillOrWorkflow": "Skill"
21
- }
@@ -1,21 +0,0 @@
1
- {
2
- "platform": "roocode",
3
- "displayName": "Roo Code",
4
- "installType": "full",
5
- "folderStructure": {
6
- "root": ".roo",
7
- "skillPath": "skills/ui-ux-pro-max",
8
- "filename": "SKILL.md"
9
- },
10
- "scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
11
- "frontmatter": {
12
- "name": "ui-ux-pro-max",
13
- "description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 161 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 16 technology stacks."
14
- },
15
- "sections": {
16
- "quickReference": false
17
- },
18
- "title": "ui-ux-pro-max",
19
- "description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 161 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 16 technology stacks. Searchable database with priority-based recommendations.",
20
- "skillOrWorkflow": "Workflow"
21
- }
@@ -1,21 +0,0 @@
1
- {
2
- "platform": "trae",
3
- "displayName": "Trae",
4
- "installType": "full",
5
- "folderStructure": {
6
- "root": ".trae",
7
- "skillPath": "skills/ui-ux-pro-max",
8
- "filename": "SKILL.md"
9
- },
10
- "scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
11
- "frontmatter": {
12
- "name": "ui-ux-pro-max",
13
- "description": "UI/UX design intelligence with searchable database"
14
- },
15
- "sections": {
16
- "quickReference": false
17
- },
18
- "title": "ui-ux-pro-max",
19
- "description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 161 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 16 technology stacks. Searchable database with priority-based recommendations.",
20
- "skillOrWorkflow": "Skill"
21
- }
@@ -1,18 +0,0 @@
1
- {
2
- "platform": "warp",
3
- "displayName": "Warp",
4
- "installType": "full",
5
- "folderStructure": {
6
- "root": ".warp",
7
- "skillPath": "skills/ui-ux-pro-max",
8
- "filename": "SKILL.md"
9
- },
10
- "scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
11
- "frontmatter": null,
12
- "sections": {
13
- "quickReference": false
14
- },
15
- "title": "ui-ux-pro-max",
16
- "description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 161 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 16 technology stacks. Searchable database with priority-based recommendations.",
17
- "skillOrWorkflow": "Skill"
18
- }
@@ -1,21 +0,0 @@
1
- {
2
- "platform": "windsurf",
3
- "displayName": "Windsurf",
4
- "installType": "full",
5
- "folderStructure": {
6
- "root": ".windsurf",
7
- "skillPath": "skills/ui-ux-pro-max",
8
- "filename": "SKILL.md"
9
- },
10
- "scriptPath": "skills/ui-ux-pro-max/scripts/search.py",
11
- "frontmatter": {
12
- "name": "ui-ux-pro-max",
13
- "description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 161 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 16 technology stacks."
14
- },
15
- "sections": {
16
- "quickReference": false
17
- },
18
- "title": "ui-ux-pro-max",
19
- "description": "Comprehensive design guide for web and mobile applications. Contains 67 styles, 161 color palettes, 57 font pairings, 99 UX guidelines, and 25 chart types across 16 technology stacks. Searchable database with priority-based recommendations.",
20
- "skillOrWorkflow": "Skill"
21
- }
@@ -1,138 +0,0 @@
1
- ---
2
- name: webapp-testing
3
- description: Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
4
- ---
5
-
6
- # Web Application Testing
7
-
8
- This skill enables comprehensive testing and debugging of local web applications using Playwright automation.
9
-
10
- You should use the Playwright MCP Server to undertake the work if possible. If the MCP Server is unavailable, you can run the code in a local Node.js environment with Playwright installed.
11
-
12
- ## When to Use This Skill
13
-
14
- Use this skill when you need to:
15
-
16
- - Test frontend functionality in a real browser
17
- - Verify UI behavior and interactions
18
- - Debug web application issues
19
- - Capture screenshots for documentation or debugging
20
- - Inspect browser console logs
21
- - Validate form submissions and user flows
22
- - Check responsive design across viewports
23
-
24
- ## Prerequisites
25
-
26
- - Node.js installed on the system
27
- - A locally running web application (or accessible URL)
28
- - Playwright will be installed automatically if not present
29
-
30
- ## Core Capabilities
31
-
32
- ### 1. Browser Automation
33
-
34
- - Navigate to URLs
35
- - Click buttons and links
36
- - Fill form fields
37
- - Select dropdowns
38
- - Handle dialogs and alerts
39
-
40
- ### 2. Verification
41
-
42
- - Assert element presence
43
- - Verify text content
44
- - Check element visibility
45
- - Validate URLs
46
- - Test responsive behavior
47
-
48
- ### 3. Debugging
49
-
50
- - Capture screenshots
51
- - View console logs
52
- - Inspect network requests
53
- - Debug failed tests
54
-
55
- ## Usage Examples
56
-
57
- ### Example 1: Basic Navigation Test
58
-
59
- ```javascript
60
- // Navigate to a page and verify title
61
- await page.goto("http://localhost:3000");
62
- const title = await page.title();
63
- console.log("Page title:", title);
64
- ```
65
-
66
- ### Example 2: Form Interaction
67
-
68
- ```javascript
69
- // Fill out and submit a form
70
- await page.fill("#username", "testuser");
71
- await page.fill("#password", "password123");
72
- await page.click('button[type="submit"]');
73
- await page.waitForURL("**/dashboard");
74
- ```
75
-
76
- ### Example 3: Screenshot Capture
77
-
78
- ```javascript
79
- // Capture a screenshot for debugging
80
- await page.screenshot({ path: "debug.png", fullPage: true });
81
- ```
82
-
83
- ## Guidelines
84
-
85
- 1. **Always verify the app is running** - Check that the local server is accessible before running tests
86
- 2. **Use explicit waits** - Wait for elements or navigation to complete before interacting
87
- 3. **Capture screenshots on failure** - Take screenshots to help debug issues
88
- 4. **Clean up resources** - Always close the browser when done
89
- 5. **Handle timeouts gracefully** - Set reasonable timeouts for slow operations
90
- 6. **Test incrementally** - Start with simple interactions before complex flows
91
- 7. **Use selectors wisely** - Prefer data-testid or role-based selectors over CSS classes
92
-
93
- ## Common Patterns
94
-
95
- ### Pattern: Wait for Element
96
-
97
- ```javascript
98
- await page.waitForSelector("#element-id", { state: "visible" });
99
- ```
100
-
101
- ### Pattern: Check if Element Exists
102
-
103
- ```javascript
104
- const exists = (await page.locator("#element-id").count()) > 0;
105
- ```
106
-
107
- ### Pattern: Get Console Logs
108
-
109
- ```javascript
110
- page.on("console", (msg) => console.log("Browser log:", msg.text()));
111
- ```
112
-
113
- ### Pattern: Handle Errors
114
-
115
- ```javascript
116
- try {
117
- await page.click("#button");
118
- } catch (error) {
119
- await page.screenshot({ path: "error.png" });
120
- throw error;
121
- }
122
- ```
123
-
124
- ## Limitations
125
-
126
- - Requires Node.js environment
127
- - Cannot test native mobile apps (use React Native Testing Library instead)
128
- - May have issues with complex authentication flows
129
- - Some modern frameworks may require specific configuration
130
-
131
- ## Helper Functions
132
-
133
- Some helper functions are available in [`test-helper.js`](./assets/test-helper.js) to simplify common tasks like waiting for elements, capturing screenshots, and handling errors. You can import and use these functions in your tests to improve readability and maintainability.
134
-
135
- ## References
136
-
137
- - `references/security-boundary.md` — every byte from a browser is potentially attacker-controlled. Test that server-side authorization, validation, and CSRF protection hold even when the UI is bypassed via direct API calls or DevTools manipulation. Adapted from [`addyosmani/agent-skills/browser-devtools`](https://github.com/addyosmani/agent-skills/tree/main/browser-devtools) (MIT).
138
- - `references/three-workflow-patterns.md` — UI bugs vs network issues vs performance investigations are three distinct testing workflows with different signals and failure modes. Pick the right workflow for the verification you actually need; don't conflate them in a single mega-test. Adapted from the same upstream skill.
@@ -1,56 +0,0 @@
1
- /**
2
- * Helper utilities for web application testing with Playwright
3
- */
4
-
5
- /**
6
- * Wait for a condition to be true with timeout
7
- * @param {Function} condition - Function that returns boolean
8
- * @param {number} timeout - Timeout in milliseconds
9
- * @param {number} interval - Check interval in milliseconds
10
- */
11
- async function waitForCondition(condition, timeout = 5000, interval = 100) {
12
- const startTime = Date.now();
13
- while (Date.now() - startTime < timeout) {
14
- if (await condition()) {
15
- return true;
16
- }
17
- await new Promise(resolve => setTimeout(resolve, interval));
18
- }
19
- throw new Error('Condition not met within timeout');
20
- }
21
-
22
- /**
23
- * Capture browser console logs
24
- * @param {Page} page - Playwright page object
25
- * @returns {Array} Array of console messages
26
- */
27
- function captureConsoleLogs(page) {
28
- const logs = [];
29
- page.on('console', msg => {
30
- logs.push({
31
- type: msg.type(),
32
- text: msg.text(),
33
- timestamp: new Date().toISOString()
34
- });
35
- });
36
- return logs;
37
- }
38
-
39
- /**
40
- * Take screenshot with automatic naming
41
- * @param {Page} page - Playwright page object
42
- * @param {string} name - Base name for screenshot
43
- */
44
- async function captureScreenshot(page, name) {
45
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
46
- const filename = `${name}-${timestamp}.png`;
47
- await page.screenshot({ path: filename, fullPage: true });
48
- console.log(`Screenshot saved: ${filename}`);
49
- return filename;
50
- }
51
-
52
- module.exports = {
53
- waitForCondition,
54
- captureConsoleLogs,
55
- captureScreenshot
56
- };