@mytechtoday/augment-extensions 0.1.1 → 0.2.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/augment-extensions/domain-rules/wordpress/README.md +163 -0
- package/augment-extensions/domain-rules/wordpress/module.json +32 -0
- package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -0
- package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -0
- package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -0
- package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -0
- package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -0
- package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -0
- package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -0
- package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -0
- package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -0
- package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -0
- package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -0
- package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -0
- package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -0
- package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -0
- package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -0
- package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -0
- package/augment-extensions/examples/rest-api-plugin/README.md +98 -0
- package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -0
- package/augment-extensions/examples/rest-api-plugin/module.json +40 -0
- package/augment-extensions/examples/woocommerce-extension/README.md +98 -0
- package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -0
- package/augment-extensions/examples/woocommerce-extension/module.json +40 -0
- package/augment-extensions/workflows/wordpress-plugin/README.md +232 -0
- package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -0
- package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -0
- package/augment-extensions/workflows/wordpress-plugin/module.json +49 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -0
- package/cli/dist/cli.js +5 -1
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +41 -0
- package/cli/dist/commands/show.js.map +1 -1
- package/modules.md +52 -0
- package/package.json +1 -1
|
@@ -0,0 +1,854 @@
|
|
|
1
|
+
# Bead Decomposition Patterns for WordPress Plugin Development
|
|
2
|
+
|
|
3
|
+
This document provides reusable patterns for breaking down WordPress plugin development tasks into Beads tasks with proper dependencies.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
1. [Plugin Creation Pattern](#plugin-creation-pattern)
|
|
8
|
+
2. [Feature Addition Pattern](#feature-addition-pattern)
|
|
9
|
+
3. [Custom Post Type Pattern](#custom-post-type-pattern)
|
|
10
|
+
4. [Settings Page Pattern](#settings-page-pattern)
|
|
11
|
+
5. [AJAX Feature Pattern](#ajax-feature-pattern)
|
|
12
|
+
6. [REST API Endpoint Pattern](#rest-api-endpoint-pattern)
|
|
13
|
+
7. [Custom Database Table Pattern](#custom-database-table-pattern)
|
|
14
|
+
8. [Security Audit Pattern](#security-audit-pattern)
|
|
15
|
+
9. [WordPress.org Submission Pattern](#wordpress-org-submission-pattern)
|
|
16
|
+
10. [Bug Fix Pattern](#bug-fix-pattern)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Plugin Creation Pattern
|
|
21
|
+
|
|
22
|
+
**Use Case**: Creating a new WordPress plugin from scratch
|
|
23
|
+
|
|
24
|
+
**Epic Structure**:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Create epic
|
|
28
|
+
bd create "Create [Plugin Name] plugin" -p 0 --type epic --label plugin-creation
|
|
29
|
+
|
|
30
|
+
# Subtasks
|
|
31
|
+
bd create "Create plugin scaffolding" -p 1 --parent [epic-id] --label scaffolding
|
|
32
|
+
bd create "Create main plugin file with header" -p 1 --parent [epic-id] --label scaffolding
|
|
33
|
+
bd create "Create directory structure" -p 1 --parent [epic-id] --label scaffolding
|
|
34
|
+
bd create "Create activation/deactivation hooks" -p 1 --parent [epic-id] --label scaffolding
|
|
35
|
+
bd create "Create uninstall.php" -p 1 --parent [epic-id] --label scaffolding
|
|
36
|
+
|
|
37
|
+
bd create "Implement core functionality" -p 2 --parent [epic-id] --label core
|
|
38
|
+
bd create "Create core classes" -p 2 --parent [epic-id] --label core
|
|
39
|
+
bd create "Implement admin interface" -p 2 --parent [epic-id] --label admin
|
|
40
|
+
bd create "Implement frontend display" -p 2 --parent [epic-id] --label frontend
|
|
41
|
+
|
|
42
|
+
bd create "Add security measures" -p 3 --parent [epic-id] --label security
|
|
43
|
+
bd create "Add nonce verification" -p 3 --parent [epic-id] --label security
|
|
44
|
+
bd create "Add capability checks" -p 3 --parent [epic-id] --label security
|
|
45
|
+
bd create "Add input sanitization" -p 3 --parent [epic-id] --label security
|
|
46
|
+
bd create "Add output escaping" -p 3 --parent [epic-id] --label security
|
|
47
|
+
|
|
48
|
+
bd create "Create tests" -p 4 --parent [epic-id] --label testing
|
|
49
|
+
bd create "Set up PHPUnit" -p 4 --parent [epic-id] --label testing
|
|
50
|
+
bd create "Write unit tests" -p 4 --parent [epic-id] --label testing
|
|
51
|
+
bd create "Write integration tests" -p 4 --parent [epic-id] --label testing
|
|
52
|
+
|
|
53
|
+
bd create "Create documentation" -p 5 --parent [epic-id] --label documentation
|
|
54
|
+
bd create "Create readme.txt" -p 5 --parent [epic-id] --label documentation
|
|
55
|
+
bd create "Add inline documentation" -p 5 --parent [epic-id] --label documentation
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Dependencies**:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Scaffolding tasks are sequential
|
|
62
|
+
bd dep add [main-file-id] [epic-id]
|
|
63
|
+
bd dep add [directory-id] [main-file-id]
|
|
64
|
+
bd dep add [hooks-id] [directory-id]
|
|
65
|
+
bd dep add [uninstall-id] [hooks-id]
|
|
66
|
+
|
|
67
|
+
# Core depends on scaffolding
|
|
68
|
+
bd dep add [core-classes-id] [uninstall-id]
|
|
69
|
+
bd dep add [admin-id] [core-classes-id]
|
|
70
|
+
bd dep add [frontend-id] [core-classes-id]
|
|
71
|
+
|
|
72
|
+
# Security depends on core
|
|
73
|
+
bd dep add [nonce-id] [admin-id]
|
|
74
|
+
bd dep add [nonce-id] [frontend-id]
|
|
75
|
+
bd dep add [capability-id] [admin-id]
|
|
76
|
+
bd dep add [sanitization-id] [admin-id]
|
|
77
|
+
bd dep add [sanitization-id] [frontend-id]
|
|
78
|
+
bd dep add [escaping-id] [admin-id]
|
|
79
|
+
bd dep add [escaping-id] [frontend-id]
|
|
80
|
+
|
|
81
|
+
# Testing depends on security
|
|
82
|
+
bd dep add [phpunit-id] [escaping-id]
|
|
83
|
+
bd dep add [unit-tests-id] [phpunit-id]
|
|
84
|
+
bd dep add [integration-tests-id] [phpunit-id]
|
|
85
|
+
|
|
86
|
+
# Documentation can run in parallel with testing
|
|
87
|
+
bd dep add [readme-id] [escaping-id]
|
|
88
|
+
bd dep add [inline-docs-id] [escaping-id]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Task Count**: 17 tasks
|
|
92
|
+
**Estimated Time**: 2-4 weeks
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Feature Addition Pattern
|
|
97
|
+
|
|
98
|
+
**Use Case**: Adding a new feature to an existing plugin
|
|
99
|
+
|
|
100
|
+
**Epic Structure**:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Create epic
|
|
104
|
+
bd create "Add [Feature Name] to [Plugin Name]" -p 0 --type epic --label feature-addition
|
|
105
|
+
|
|
106
|
+
# Planning
|
|
107
|
+
bd create "Create OpenSpec spec for feature" -p 1 --parent [epic-id] --label planning
|
|
108
|
+
bd create "Design database schema (if needed)" -p 1 --parent [epic-id] --label planning
|
|
109
|
+
|
|
110
|
+
# Implementation
|
|
111
|
+
bd create "Create feature class" -p 2 --parent [epic-id] --label implementation
|
|
112
|
+
bd create "Add database migration (if needed)" -p 2 --parent [epic-id] --label implementation
|
|
113
|
+
bd create "Implement core logic" -p 2 --parent [epic-id] --label implementation
|
|
114
|
+
bd create "Add admin interface" -p 2 --parent [epic-id] --label implementation
|
|
115
|
+
bd create "Add frontend display" -p 2 --parent [epic-id] --label implementation
|
|
116
|
+
bd create "Add AJAX handlers (if needed)" -p 2 --parent [epic-id] --label implementation
|
|
117
|
+
|
|
118
|
+
# Integration
|
|
119
|
+
bd create "Integrate with existing code" -p 3 --parent [epic-id] --label integration
|
|
120
|
+
bd create "Add hooks and filters" -p 3 --parent [epic-id] --label integration
|
|
121
|
+
bd create "Update settings page" -p 3 --parent [epic-id] --label integration
|
|
122
|
+
|
|
123
|
+
# Security
|
|
124
|
+
bd create "Add security measures" -p 4 --parent [epic-id] --label security
|
|
125
|
+
bd create "Run security audit" -p 4 --parent [epic-id] --label security
|
|
126
|
+
|
|
127
|
+
# Testing
|
|
128
|
+
bd create "Write unit tests" -p 5 --parent [epic-id] --label testing
|
|
129
|
+
bd create "Write integration tests" -p 5 --parent [epic-id] --label testing
|
|
130
|
+
bd create "Manual testing" -p 5 --parent [epic-id] --label testing
|
|
131
|
+
|
|
132
|
+
# Documentation
|
|
133
|
+
bd create "Update readme.txt" -p 6 --parent [epic-id] --label documentation
|
|
134
|
+
bd create "Add inline documentation" -p 6 --parent [epic-id] --label documentation
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Dependencies**:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Implementation depends on planning
|
|
141
|
+
bd dep add [feature-class-id] [openspec-id]
|
|
142
|
+
bd dep add [migration-id] [schema-id]
|
|
143
|
+
bd dep add [core-logic-id] [feature-class-id]
|
|
144
|
+
bd dep add [admin-id] [core-logic-id]
|
|
145
|
+
bd dep add [frontend-id] [core-logic-id]
|
|
146
|
+
bd dep add [ajax-id] [core-logic-id]
|
|
147
|
+
|
|
148
|
+
# Integration depends on implementation
|
|
149
|
+
bd dep add [integrate-id] [admin-id]
|
|
150
|
+
bd dep add [integrate-id] [frontend-id]
|
|
151
|
+
bd dep add [hooks-id] [integrate-id]
|
|
152
|
+
bd dep add [settings-id] [integrate-id]
|
|
153
|
+
|
|
154
|
+
# Security depends on integration
|
|
155
|
+
bd dep add [security-measures-id] [settings-id]
|
|
156
|
+
bd dep add [security-audit-id] [security-measures-id]
|
|
157
|
+
|
|
158
|
+
# Testing depends on security
|
|
159
|
+
bd dep add [unit-tests-id] [security-audit-id]
|
|
160
|
+
bd dep add [integration-tests-id] [security-audit-id]
|
|
161
|
+
bd dep add [manual-testing-id] [integration-tests-id]
|
|
162
|
+
|
|
163
|
+
# Documentation depends on testing
|
|
164
|
+
bd dep add [readme-id] [manual-testing-id]
|
|
165
|
+
bd dep add [inline-docs-id] [manual-testing-id]
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Task Count**: 18 tasks
|
|
169
|
+
**Estimated Time**: 1-2 weeks
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Custom Post Type Pattern
|
|
174
|
+
|
|
175
|
+
**Use Case**: Adding a custom post type with taxonomy and meta boxes
|
|
176
|
+
|
|
177
|
+
**Epic Structure**:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Create epic
|
|
181
|
+
bd create "Add [Post Type Name] custom post type" -p 0 --type epic --label custom-post-type
|
|
182
|
+
|
|
183
|
+
# Registration
|
|
184
|
+
bd create "Register custom post type" -p 1 --parent [epic-id] --label registration
|
|
185
|
+
bd create "Register custom taxonomy" -p 1 --parent [epic-id] --label registration
|
|
186
|
+
bd create "Add rewrite rules" -p 1 --parent [epic-id] --label registration
|
|
187
|
+
|
|
188
|
+
# Admin Interface
|
|
189
|
+
bd create "Add custom meta boxes" -p 2 --parent [epic-id] --label admin
|
|
190
|
+
bd create "Add custom columns to list view" -p 2 --parent [epic-id] --label admin
|
|
191
|
+
bd create "Add quick edit support" -p 2 --parent [epic-id] --label admin
|
|
192
|
+
bd create "Add bulk actions" -p 2 --parent [epic-id] --label admin
|
|
193
|
+
|
|
194
|
+
# Frontend Display
|
|
195
|
+
bd create "Create archive template" -p 3 --parent [epic-id] --label frontend
|
|
196
|
+
bd create "Create single template" -p 3 --parent [epic-id] --label frontend
|
|
197
|
+
bd create "Add shortcode for display" -p 3 --parent [epic-id] --label frontend
|
|
198
|
+
bd create "Add widget (optional)" -p 3 --parent [epic-id] --label frontend
|
|
199
|
+
|
|
200
|
+
# Security
|
|
201
|
+
bd create "Add capability checks for meta boxes" -p 4 --parent [epic-id] --label security
|
|
202
|
+
bd create "Add nonce verification for meta saves" -p 4 --parent [epic-id] --label security
|
|
203
|
+
bd create "Sanitize meta box inputs" -p 4 --parent [epic-id] --label security
|
|
204
|
+
|
|
205
|
+
# Testing
|
|
206
|
+
bd create "Test post type registration" -p 5 --parent [epic-id] --label testing
|
|
207
|
+
bd create "Test meta box functionality" -p 5 --parent [epic-id] --label testing
|
|
208
|
+
bd create "Test frontend display" -p 5 --parent [epic-id] --label testing
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Dependencies**:
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# Taxonomy and rewrite depend on post type
|
|
215
|
+
bd dep add [taxonomy-id] [post-type-id]
|
|
216
|
+
bd dep add [rewrite-id] [post-type-id]
|
|
217
|
+
|
|
218
|
+
# Admin features depend on registration
|
|
219
|
+
bd dep add [meta-boxes-id] [rewrite-id]
|
|
220
|
+
bd dep add [columns-id] [rewrite-id]
|
|
221
|
+
bd dep add [quick-edit-id] [columns-id]
|
|
222
|
+
bd dep add [bulk-actions-id] [columns-id]
|
|
223
|
+
|
|
224
|
+
# Frontend depends on registration
|
|
225
|
+
bd dep add [archive-id] [rewrite-id]
|
|
226
|
+
bd dep add [single-id] [rewrite-id]
|
|
227
|
+
bd dep add [shortcode-id] [single-id]
|
|
228
|
+
bd dep add [widget-id] [shortcode-id]
|
|
229
|
+
|
|
230
|
+
# Security depends on admin features
|
|
231
|
+
bd dep add [capability-id] [meta-boxes-id]
|
|
232
|
+
bd dep add [nonce-id] [meta-boxes-id]
|
|
233
|
+
bd dep add [sanitize-id] [meta-boxes-id]
|
|
234
|
+
|
|
235
|
+
# Testing depends on security
|
|
236
|
+
bd dep add [test-registration-id] [sanitize-id]
|
|
237
|
+
bd dep add [test-meta-id] [sanitize-id]
|
|
238
|
+
bd dep add [test-frontend-id] [widget-id]
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Task Count**: 17 tasks
|
|
242
|
+
**Estimated Time**: 1 week
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Settings Page Pattern
|
|
247
|
+
|
|
248
|
+
**Use Case**: Adding a settings page with WordPress Settings API
|
|
249
|
+
|
|
250
|
+
**Epic Structure**:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# Create epic
|
|
254
|
+
bd create "Add [Settings Page Name] settings page" -p 0 --type epic --label settings-page
|
|
255
|
+
|
|
256
|
+
# Page Setup
|
|
257
|
+
bd create "Register settings page" -p 1 --parent [epic-id] --label setup
|
|
258
|
+
bd create "Create page template" -p 1 --parent [epic-id] --label setup
|
|
259
|
+
bd create "Add menu item" -p 1 --parent [epic-id] --label setup
|
|
260
|
+
|
|
261
|
+
# Settings API
|
|
262
|
+
bd create "Register settings" -p 2 --parent [epic-id] --label settings-api
|
|
263
|
+
bd create "Add settings sections" -p 2 --parent [epic-id] --label settings-api
|
|
264
|
+
bd create "Add settings fields" -p 2 --parent [epic-id] --label settings-api
|
|
265
|
+
bd create "Add sanitization callbacks" -p 2 --parent [epic-id] --label settings-api
|
|
266
|
+
|
|
267
|
+
# UI Components
|
|
268
|
+
bd create "Create field renderers" -p 3 --parent [epic-id] --label ui
|
|
269
|
+
bd create "Add tabs (if multiple sections)" -p 3 --parent [epic-id] --label ui
|
|
270
|
+
bd create "Add reset to defaults button" -p 3 --parent [epic-id] --label ui
|
|
271
|
+
bd create "Add import/export (optional)" -p 3 --parent [epic-id] --label ui
|
|
272
|
+
|
|
273
|
+
# Security
|
|
274
|
+
bd create "Add nonce verification" -p 4 --parent [epic-id] --label security
|
|
275
|
+
bd create "Add capability checks" -p 4 --parent [epic-id] --label security
|
|
276
|
+
bd create "Sanitize all inputs" -p 4 --parent [epic-id] --label security
|
|
277
|
+
|
|
278
|
+
# Testing
|
|
279
|
+
bd create "Test settings save/load" -p 5 --parent [epic-id] --label testing
|
|
280
|
+
bd create "Test sanitization" -p 5 --parent [epic-id] --label testing
|
|
281
|
+
bd create "Test reset functionality" -p 5 --parent [epic-id] --label testing
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Dependencies**:
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
# Page template and menu depend on registration
|
|
288
|
+
bd dep add [template-id] [register-id]
|
|
289
|
+
bd dep add [menu-id] [register-id]
|
|
290
|
+
|
|
291
|
+
# Settings API depends on page setup
|
|
292
|
+
bd dep add [register-settings-id] [menu-id]
|
|
293
|
+
bd dep add [sections-id] [register-settings-id]
|
|
294
|
+
bd dep add [fields-id] [sections-id]
|
|
295
|
+
bd dep add [sanitization-id] [fields-id]
|
|
296
|
+
|
|
297
|
+
# UI depends on Settings API
|
|
298
|
+
bd dep add [renderers-id] [sanitization-id]
|
|
299
|
+
bd dep add [tabs-id] [renderers-id]
|
|
300
|
+
bd dep add [reset-id] [renderers-id]
|
|
301
|
+
bd dep add [import-export-id] [reset-id]
|
|
302
|
+
|
|
303
|
+
# Security depends on UI
|
|
304
|
+
bd dep add [nonce-id] [import-export-id]
|
|
305
|
+
bd dep add [capability-id] [import-export-id]
|
|
306
|
+
bd dep add [sanitize-inputs-id] [import-export-id]
|
|
307
|
+
|
|
308
|
+
# Testing depends on security
|
|
309
|
+
bd dep add [test-save-id] [sanitize-inputs-id]
|
|
310
|
+
bd dep add [test-sanitization-id] [sanitize-inputs-id]
|
|
311
|
+
bd dep add [test-reset-id] [sanitize-inputs-id]
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**Task Count**: 17 tasks
|
|
315
|
+
**Estimated Time**: 3-5 days
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## AJAX Feature Pattern
|
|
320
|
+
|
|
321
|
+
**Use Case**: Adding AJAX functionality to a plugin
|
|
322
|
+
|
|
323
|
+
**Epic Structure**:
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
# Create epic
|
|
327
|
+
bd create "Add AJAX [Feature Name]" -p 0 --type epic --label ajax-feature
|
|
328
|
+
|
|
329
|
+
# Backend Setup
|
|
330
|
+
bd create "Create AJAX handler function" -p 1 --parent [epic-id] --label backend
|
|
331
|
+
bd create "Register AJAX actions" -p 1 --parent [epic-id] --label backend
|
|
332
|
+
bd create "Add response formatting" -p 1 --parent [epic-id] --label backend
|
|
333
|
+
|
|
334
|
+
# Frontend Setup
|
|
335
|
+
bd create "Create JavaScript file" -p 2 --parent [epic-id] --label frontend
|
|
336
|
+
bd create "Enqueue script with dependencies" -p 2 --parent [epic-id] --label frontend
|
|
337
|
+
bd create "Localize script with ajax_url and nonce" -p 2 --parent [epic-id] --label frontend
|
|
338
|
+
|
|
339
|
+
# Implementation
|
|
340
|
+
bd create "Implement AJAX request logic" -p 3 --parent [epic-id] --label implementation
|
|
341
|
+
bd create "Add loading state UI" -p 3 --parent [epic-id] --label implementation
|
|
342
|
+
bd create "Add success handler" -p 3 --parent [epic-id] --label implementation
|
|
343
|
+
bd create "Add error handler" -p 3 --parent [epic-id] --label implementation
|
|
344
|
+
|
|
345
|
+
# Security
|
|
346
|
+
bd create "Add nonce verification in handler" -p 4 --parent [epic-id] --label security
|
|
347
|
+
bd create "Add capability checks" -p 4 --parent [epic-id] --label security
|
|
348
|
+
bd create "Sanitize inputs" -p 4 --parent [epic-id] --label security
|
|
349
|
+
bd create "Escape outputs" -p 4 --parent [epic-id] --label security
|
|
350
|
+
|
|
351
|
+
# Testing
|
|
352
|
+
bd create "Test AJAX request/response" -p 5 --parent [epic-id] --label testing
|
|
353
|
+
bd create "Test error handling" -p 5 --parent [epic-id] --label testing
|
|
354
|
+
bd create "Test security measures" -p 5 --parent [epic-id] --label testing
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
**Dependencies**:
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Backend tasks are sequential
|
|
361
|
+
bd dep add [register-actions-id] [handler-id]
|
|
362
|
+
bd dep add [response-id] [register-actions-id]
|
|
363
|
+
|
|
364
|
+
# Frontend depends on backend
|
|
365
|
+
bd dep add [js-file-id] [response-id]
|
|
366
|
+
bd dep add [enqueue-id] [js-file-id]
|
|
367
|
+
bd dep add [localize-id] [enqueue-id]
|
|
368
|
+
|
|
369
|
+
# Implementation depends on frontend setup
|
|
370
|
+
bd dep add [request-logic-id] [localize-id]
|
|
371
|
+
bd dep add [loading-ui-id] [request-logic-id]
|
|
372
|
+
bd dep add [success-handler-id] [request-logic-id]
|
|
373
|
+
bd dep add [error-handler-id] [request-logic-id]
|
|
374
|
+
|
|
375
|
+
# Security depends on implementation
|
|
376
|
+
bd dep add [nonce-verify-id] [error-handler-id]
|
|
377
|
+
bd dep add [capability-id] [error-handler-id]
|
|
378
|
+
bd dep add [sanitize-id] [error-handler-id]
|
|
379
|
+
bd dep add [escape-id] [error-handler-id]
|
|
380
|
+
|
|
381
|
+
# Testing depends on security
|
|
382
|
+
bd dep add [test-ajax-id] [escape-id]
|
|
383
|
+
bd dep add [test-errors-id] [escape-id]
|
|
384
|
+
bd dep add [test-security-id] [escape-id]
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Task Count**: 17 tasks
|
|
388
|
+
**Estimated Time**: 2-3 days
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## REST API Endpoint Pattern
|
|
393
|
+
|
|
394
|
+
**Use Case**: Adding a REST API endpoint to a plugin
|
|
395
|
+
|
|
396
|
+
**Epic Structure**:
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
# Create epic
|
|
400
|
+
bd create "Add REST API endpoint for [Resource]" -p 0 --type epic --label rest-api
|
|
401
|
+
|
|
402
|
+
# Endpoint Setup
|
|
403
|
+
bd create "Register REST route" -p 1 --parent [epic-id] --label setup
|
|
404
|
+
bd create "Create callback function" -p 1 --parent [epic-id] --label setup
|
|
405
|
+
bd create "Add permission callback" -p 1 --parent [epic-id] --label setup
|
|
406
|
+
|
|
407
|
+
# Request Handling
|
|
408
|
+
bd create "Define request parameters" -p 2 --parent [epic-id] --label request
|
|
409
|
+
bd create "Add parameter validation" -p 2 --parent [epic-id] --label request
|
|
410
|
+
bd create "Add parameter sanitization" -p 2 --parent [epic-id] --label request
|
|
411
|
+
|
|
412
|
+
# Response Handling
|
|
413
|
+
bd create "Implement GET handler" -p 3 --parent [epic-id] --label response
|
|
414
|
+
bd create "Implement POST handler" -p 3 --parent [epic-id] --label response
|
|
415
|
+
bd create "Implement PUT handler (optional)" -p 3 --parent [epic-id] --label response
|
|
416
|
+
bd create "Implement DELETE handler (optional)" -p 3 --parent [epic-id] --label response
|
|
417
|
+
bd create "Format response data" -p 3 --parent [epic-id] --label response
|
|
418
|
+
|
|
419
|
+
# Security
|
|
420
|
+
bd create "Add authentication check" -p 4 --parent [epic-id] --label security
|
|
421
|
+
bd create "Add authorization check" -p 4 --parent [epic-id] --label security
|
|
422
|
+
bd create "Add rate limiting (optional)" -p 4 --parent [epic-id] --label security
|
|
423
|
+
|
|
424
|
+
# Testing
|
|
425
|
+
bd create "Test GET requests" -p 5 --parent [epic-id] --label testing
|
|
426
|
+
bd create "Test POST requests" -p 5 --parent [epic-id] --label testing
|
|
427
|
+
bd create "Test authentication/authorization" -p 5 --parent [epic-id] --label testing
|
|
428
|
+
bd create "Test error responses" -p 5 --parent [epic-id] --label testing
|
|
429
|
+
|
|
430
|
+
# Documentation
|
|
431
|
+
bd create "Document API endpoint" -p 6 --parent [epic-id] --label documentation
|
|
432
|
+
bd create "Add usage examples" -p 6 --parent [epic-id] --label documentation
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
**Dependencies**:
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
# Setup tasks are sequential
|
|
439
|
+
bd dep add [callback-id] [route-id]
|
|
440
|
+
bd dep add [permission-id] [callback-id]
|
|
441
|
+
|
|
442
|
+
# Request handling depends on setup
|
|
443
|
+
bd dep add [parameters-id] [permission-id]
|
|
444
|
+
bd dep add [validation-id] [parameters-id]
|
|
445
|
+
bd dep add [sanitization-id] [validation-id]
|
|
446
|
+
|
|
447
|
+
# Response handlers depend on request handling
|
|
448
|
+
bd dep add [get-handler-id] [sanitization-id]
|
|
449
|
+
bd dep add [post-handler-id] [sanitization-id]
|
|
450
|
+
bd dep add [put-handler-id] [sanitization-id]
|
|
451
|
+
bd dep add [delete-handler-id] [sanitization-id]
|
|
452
|
+
bd dep add [format-response-id] [delete-handler-id]
|
|
453
|
+
|
|
454
|
+
# Security depends on response handling
|
|
455
|
+
bd dep add [authentication-id] [format-response-id]
|
|
456
|
+
bd dep add [authorization-id] [authentication-id]
|
|
457
|
+
bd dep add [rate-limiting-id] [authorization-id]
|
|
458
|
+
|
|
459
|
+
# Testing depends on security
|
|
460
|
+
bd dep add [test-get-id] [rate-limiting-id]
|
|
461
|
+
bd dep add [test-post-id] [rate-limiting-id]
|
|
462
|
+
bd dep add [test-auth-id] [rate-limiting-id]
|
|
463
|
+
bd dep add [test-errors-id] [rate-limiting-id]
|
|
464
|
+
|
|
465
|
+
# Documentation depends on testing
|
|
466
|
+
bd dep add [document-id] [test-errors-id]
|
|
467
|
+
bd dep add [examples-id] [document-id]
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
**Task Count**: 20 tasks
|
|
471
|
+
**Estimated Time**: 3-5 days
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## Custom Database Table Pattern
|
|
476
|
+
|
|
477
|
+
**Use Case**: Adding a custom database table with CRUD operations
|
|
478
|
+
|
|
479
|
+
**Epic Structure**:
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
# Create epic
|
|
483
|
+
bd create "Add custom database table for [Data Type]" -p 0 --type epic --label database-table
|
|
484
|
+
|
|
485
|
+
# Schema Design
|
|
486
|
+
bd create "Design table schema" -p 1 --parent [epic-id] --label schema
|
|
487
|
+
bd create "Create migration script" -p 1 --parent [epic-id] --label schema
|
|
488
|
+
bd create "Add version checking" -p 1 --parent [epic-id] --label schema
|
|
489
|
+
|
|
490
|
+
# Model Class
|
|
491
|
+
bd create "Create model class" -p 2 --parent [epic-id] --label model
|
|
492
|
+
bd create "Implement create() method" -p 2 --parent [epic-id] --label model
|
|
493
|
+
bd create "Implement get_by_id() method" -p 2 --parent [epic-id] --label model
|
|
494
|
+
bd create "Implement get_all() method" -p 2 --parent [epic-id] --label model
|
|
495
|
+
bd create "Implement update() method" -p 2 --parent [epic-id] --label model
|
|
496
|
+
bd create "Implement delete() method" -p 2 --parent [epic-id] --label model
|
|
497
|
+
|
|
498
|
+
# Query Optimization
|
|
499
|
+
bd create "Add database indexes" -p 3 --parent [epic-id] --label optimization
|
|
500
|
+
bd create "Implement pagination" -p 3 --parent [epic-id] --label optimization
|
|
501
|
+
bd create "Add caching layer" -p 3 --parent [epic-id] --label optimization
|
|
502
|
+
|
|
503
|
+
# Security
|
|
504
|
+
bd create "Use prepared statements for all queries" -p 4 --parent [epic-id] --label security
|
|
505
|
+
bd create "Validate data before insertion" -p 4 --parent [epic-id] --label security
|
|
506
|
+
bd create "Sanitize all inputs" -p 4 --parent [epic-id] --label security
|
|
507
|
+
|
|
508
|
+
# Testing
|
|
509
|
+
bd create "Test CRUD operations" -p 5 --parent [epic-id] --label testing
|
|
510
|
+
bd create "Test pagination" -p 5 --parent [epic-id] --label testing
|
|
511
|
+
bd create "Test data validation" -p 5 --parent [epic-id] --label testing
|
|
512
|
+
|
|
513
|
+
# Cleanup
|
|
514
|
+
bd create "Add uninstall cleanup (optional)" -p 6 --parent [epic-id] --label cleanup
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
**Dependencies**:
|
|
518
|
+
|
|
519
|
+
```bash
|
|
520
|
+
# Schema tasks are sequential
|
|
521
|
+
bd dep add [migration-id] [schema-id]
|
|
522
|
+
bd dep add [version-id] [migration-id]
|
|
523
|
+
|
|
524
|
+
# Model class depends on schema
|
|
525
|
+
bd dep add [model-class-id] [version-id]
|
|
526
|
+
bd dep add [create-method-id] [model-class-id]
|
|
527
|
+
bd dep add [get-by-id-id] [model-class-id]
|
|
528
|
+
bd dep add [get-all-id] [model-class-id]
|
|
529
|
+
bd dep add [update-method-id] [model-class-id]
|
|
530
|
+
bd dep add [delete-method-id] [model-class-id]
|
|
531
|
+
|
|
532
|
+
# Optimization depends on model
|
|
533
|
+
bd dep add [indexes-id] [delete-method-id]
|
|
534
|
+
bd dep add [pagination-id] [delete-method-id]
|
|
535
|
+
bd dep add [caching-id] [pagination-id]
|
|
536
|
+
|
|
537
|
+
# Security depends on optimization
|
|
538
|
+
bd dep add [prepared-statements-id] [caching-id]
|
|
539
|
+
bd dep add [validation-id] [prepared-statements-id]
|
|
540
|
+
bd dep add [sanitization-id] [validation-id]
|
|
541
|
+
|
|
542
|
+
# Testing depends on security
|
|
543
|
+
bd dep add [test-crud-id] [sanitization-id]
|
|
544
|
+
bd dep add [test-pagination-id] [sanitization-id]
|
|
545
|
+
bd dep add [test-validation-id] [sanitization-id]
|
|
546
|
+
|
|
547
|
+
# Cleanup depends on testing
|
|
548
|
+
bd dep add [uninstall-id] [test-validation-id]
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
**Task Count**: 19 tasks
|
|
552
|
+
**Estimated Time**: 4-6 days
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## Security Audit Pattern
|
|
557
|
+
|
|
558
|
+
**Use Case**: Performing a comprehensive security audit
|
|
559
|
+
|
|
560
|
+
**Epic Structure**:
|
|
561
|
+
|
|
562
|
+
```bash
|
|
563
|
+
# Create epic
|
|
564
|
+
bd create "Security audit for [Plugin Name]" -p 0 --type epic --label security-audit
|
|
565
|
+
|
|
566
|
+
# Automated Scanning
|
|
567
|
+
bd create "Run PHPCS with WordPress-VIP-Go" -p 1 --parent [epic-id] --label automated
|
|
568
|
+
bd create "Run WPScan (if applicable)" -p 1 --parent [epic-id] --label automated
|
|
569
|
+
|
|
570
|
+
# Manual Review - CSRF
|
|
571
|
+
bd create "Audit forms for nonce verification" -p 2 --parent [epic-id] --label csrf
|
|
572
|
+
bd create "Audit AJAX handlers for nonce verification" -p 2 --parent [epic-id] --label csrf
|
|
573
|
+
|
|
574
|
+
# Manual Review - XSS
|
|
575
|
+
bd create "Audit output for escaping" -p 2 --parent [epic-id] --label xss
|
|
576
|
+
bd create "Audit admin pages for escaping" -p 2 --parent [epic-id] --label xss
|
|
577
|
+
|
|
578
|
+
# Manual Review - SQL Injection
|
|
579
|
+
bd create "Audit database queries" -p 2 --parent [epic-id] --label sql-injection
|
|
580
|
+
bd create "Verify prepared statements usage" -p 2 --parent [epic-id] --label sql-injection
|
|
581
|
+
|
|
582
|
+
# Manual Review - Authorization
|
|
583
|
+
bd create "Audit capability checks" -p 2 --parent [epic-id] --label authorization
|
|
584
|
+
bd create "Audit user role handling" -p 2 --parent [epic-id] --label authorization
|
|
585
|
+
|
|
586
|
+
# Remediation
|
|
587
|
+
bd create "Fix critical issues" -p 3 --parent [epic-id] --label remediation
|
|
588
|
+
bd create "Fix high-priority issues" -p 3 --parent [epic-id] --label remediation
|
|
589
|
+
bd create "Verify fixes" -p 3 --parent [epic-id] --label remediation
|
|
590
|
+
|
|
591
|
+
# Documentation
|
|
592
|
+
bd create "Document security findings" -p 4 --parent [epic-id] --label documentation
|
|
593
|
+
bd create "Create security audit report" -p 4 --parent [epic-id] --label documentation
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
**Dependencies**:
|
|
597
|
+
|
|
598
|
+
```bash
|
|
599
|
+
# Manual reviews depend on automated scanning
|
|
600
|
+
bd dep add [audit-forms-id] [phpcs-id]
|
|
601
|
+
bd dep add [audit-ajax-id] [phpcs-id]
|
|
602
|
+
bd dep add [audit-output-id] [phpcs-id]
|
|
603
|
+
bd dep add [audit-admin-id] [phpcs-id]
|
|
604
|
+
bd dep add [audit-queries-id] [phpcs-id]
|
|
605
|
+
bd dep add [verify-prepared-id] [phpcs-id]
|
|
606
|
+
bd dep add [audit-capability-id] [phpcs-id]
|
|
607
|
+
bd dep add [audit-roles-id] [phpcs-id]
|
|
608
|
+
|
|
609
|
+
# Remediation depends on all manual reviews
|
|
610
|
+
bd dep add [fix-critical-id] [audit-roles-id]
|
|
611
|
+
bd dep add [fix-high-id] [fix-critical-id]
|
|
612
|
+
bd dep add [verify-fixes-id] [fix-high-id]
|
|
613
|
+
|
|
614
|
+
# Documentation depends on remediation
|
|
615
|
+
bd dep add [document-findings-id] [verify-fixes-id]
|
|
616
|
+
bd dep add [audit-report-id] [document-findings-id]
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
**Task Count**: 15 tasks
|
|
620
|
+
**Estimated Time**: 2-3 days
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
## WordPress.org Submission Pattern
|
|
625
|
+
|
|
626
|
+
**Use Case**: Submitting a plugin to WordPress.org
|
|
627
|
+
|
|
628
|
+
**Epic Structure**:
|
|
629
|
+
|
|
630
|
+
```bash
|
|
631
|
+
# Create epic
|
|
632
|
+
bd create "Submit [Plugin Name] to WordPress.org" -p 0 --type epic --label wordpress-org
|
|
633
|
+
|
|
634
|
+
# Pre-submission
|
|
635
|
+
bd create "Run final WPCS check" -p 1 --parent [epic-id] --label pre-submission
|
|
636
|
+
bd create "Validate readme.txt format" -p 1 --parent [epic-id] --label pre-submission
|
|
637
|
+
bd create "Create plugin banner images" -p 1 --parent [epic-id] --label assets
|
|
638
|
+
bd create "Create plugin icon images" -p 1 --parent [epic-id] --label assets
|
|
639
|
+
bd create "Take plugin screenshots" -p 1 --parent [epic-id] --label assets
|
|
640
|
+
bd create "Optimize all images" -p 1 --parent [epic-id] --label assets
|
|
641
|
+
bd create "Create plugin ZIP file" -p 1 --parent [epic-id] --label pre-submission
|
|
642
|
+
|
|
643
|
+
# Submission
|
|
644
|
+
bd create "Create WordPress.org account" -p 2 --parent [epic-id] --label submission
|
|
645
|
+
bd create "Submit plugin via form" -p 2 --parent [epic-id] --label submission
|
|
646
|
+
bd create "Wait for initial review" -p 2 --parent [epic-id] --label submission
|
|
647
|
+
bd create "Respond to review feedback" -p 2 --parent [epic-id] --label submission
|
|
648
|
+
|
|
649
|
+
# Post-approval
|
|
650
|
+
bd create "Set up SVN repository" -p 3 --parent [epic-id] --label post-approval
|
|
651
|
+
bd create "Commit files to trunk" -p 3 --parent [epic-id] --label post-approval
|
|
652
|
+
bd create "Tag release version" -p 3 --parent [epic-id] --label post-approval
|
|
653
|
+
bd create "Upload assets to SVN" -p 3 --parent [epic-id] --label post-approval
|
|
654
|
+
bd create "Verify plugin on WordPress.org" -p 3 --parent [epic-id] --label post-approval
|
|
655
|
+
|
|
656
|
+
# Documentation
|
|
657
|
+
bd create "Create submission documentation" -p 4 --parent [epic-id] --label documentation
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
**Dependencies**:
|
|
661
|
+
|
|
662
|
+
```bash
|
|
663
|
+
# Assets can be created in parallel
|
|
664
|
+
bd dep add [optimize-images-id] [banner-id]
|
|
665
|
+
bd dep add [optimize-images-id] [icon-id]
|
|
666
|
+
bd dep add [optimize-images-id] [screenshots-id]
|
|
667
|
+
|
|
668
|
+
# ZIP depends on WPCS and readme
|
|
669
|
+
bd dep add [zip-id] [wpcs-id]
|
|
670
|
+
bd dep add [zip-id] [readme-id]
|
|
671
|
+
|
|
672
|
+
# Submission depends on ZIP and account
|
|
673
|
+
bd dep add [submit-id] [zip-id]
|
|
674
|
+
bd dep add [submit-id] [account-id]
|
|
675
|
+
bd dep add [wait-review-id] [submit-id]
|
|
676
|
+
bd dep add [respond-feedback-id] [wait-review-id]
|
|
677
|
+
|
|
678
|
+
# SVN setup depends on approval
|
|
679
|
+
bd dep add [svn-setup-id] [respond-feedback-id]
|
|
680
|
+
bd dep add [commit-trunk-id] [svn-setup-id]
|
|
681
|
+
bd dep add [tag-release-id] [commit-trunk-id]
|
|
682
|
+
bd dep add [upload-assets-id] [tag-release-id]
|
|
683
|
+
bd dep add [verify-id] [upload-assets-id]
|
|
684
|
+
|
|
685
|
+
# Documentation depends on verification
|
|
686
|
+
bd dep add [documentation-id] [verify-id]
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
**Task Count**: 17 tasks
|
|
690
|
+
**Estimated Time**: 1-2 weeks (including review wait time)
|
|
691
|
+
|
|
692
|
+
---
|
|
693
|
+
|
|
694
|
+
## Bug Fix Pattern
|
|
695
|
+
|
|
696
|
+
**Use Case**: Fixing a bug in an existing plugin
|
|
697
|
+
|
|
698
|
+
**Epic Structure**:
|
|
699
|
+
|
|
700
|
+
```bash
|
|
701
|
+
# Create epic
|
|
702
|
+
bd create "Fix: [Bug Description]" -p 0 --type epic --label bug-fix
|
|
703
|
+
|
|
704
|
+
# Investigation
|
|
705
|
+
bd create "Reproduce bug" -p 1 --parent [epic-id] --label investigation
|
|
706
|
+
bd create "Identify root cause" -p 1 --parent [epic-id] --label investigation
|
|
707
|
+
bd create "Document expected behavior" -p 1 --parent [epic-id] --label investigation
|
|
708
|
+
|
|
709
|
+
# Fix Implementation
|
|
710
|
+
bd create "Implement fix" -p 2 --parent [epic-id] --label implementation
|
|
711
|
+
bd create "Add error handling" -p 2 --parent [epic-id] --label implementation
|
|
712
|
+
bd create "Update related code" -p 2 --parent [epic-id] --label implementation
|
|
713
|
+
|
|
714
|
+
# Testing
|
|
715
|
+
bd create "Write regression test" -p 3 --parent [epic-id] --label testing
|
|
716
|
+
bd create "Test fix in isolation" -p 3 --parent [epic-id] --label testing
|
|
717
|
+
bd create "Test with related features" -p 3 --parent [epic-id] --label testing
|
|
718
|
+
bd create "Test edge cases" -p 3 --parent [epic-id] --label testing
|
|
719
|
+
|
|
720
|
+
# Documentation
|
|
721
|
+
bd create "Update changelog" -p 4 --parent [epic-id] --label documentation
|
|
722
|
+
bd create "Add inline comments" -p 4 --parent [epic-id] --label documentation
|
|
723
|
+
bd create "Update readme if needed" -p 4 --parent [epic-id] --label documentation
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
**Dependencies**:
|
|
727
|
+
|
|
728
|
+
```bash
|
|
729
|
+
# Investigation tasks are sequential
|
|
730
|
+
bd dep add [root-cause-id] [reproduce-id]
|
|
731
|
+
bd dep add [expected-behavior-id] [root-cause-id]
|
|
732
|
+
|
|
733
|
+
# Implementation depends on investigation
|
|
734
|
+
bd dep add [implement-fix-id] [expected-behavior-id]
|
|
735
|
+
bd dep add [error-handling-id] [implement-fix-id]
|
|
736
|
+
bd dep add [update-related-id] [implement-fix-id]
|
|
737
|
+
|
|
738
|
+
# Testing depends on implementation
|
|
739
|
+
bd dep add [regression-test-id] [update-related-id]
|
|
740
|
+
bd dep add [test-isolation-id] [regression-test-id]
|
|
741
|
+
bd dep add [test-related-id] [test-isolation-id]
|
|
742
|
+
bd dep add [test-edge-cases-id] [test-related-id]
|
|
743
|
+
|
|
744
|
+
# Documentation depends on testing
|
|
745
|
+
bd dep add [changelog-id] [test-edge-cases-id]
|
|
746
|
+
bd dep add [comments-id] [test-edge-cases-id]
|
|
747
|
+
bd dep add [readme-id] [test-edge-cases-id]
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
**Task Count**: 13 tasks
|
|
751
|
+
**Estimated Time**: 1-3 days
|
|
752
|
+
|
|
753
|
+
---
|
|
754
|
+
|
|
755
|
+
## Best Practices for Task Decomposition
|
|
756
|
+
|
|
757
|
+
### 1. Granularity
|
|
758
|
+
|
|
759
|
+
- **Too large**: Tasks that take more than 1 day
|
|
760
|
+
- **Too small**: Tasks that take less than 30 minutes
|
|
761
|
+
- **Just right**: Tasks that take 1-4 hours
|
|
762
|
+
|
|
763
|
+
### 2. Dependencies
|
|
764
|
+
|
|
765
|
+
- Use dependencies to enforce order
|
|
766
|
+
- Identify tasks that can run in parallel
|
|
767
|
+
- Don't over-constrain (allow parallelism where possible)
|
|
768
|
+
|
|
769
|
+
### 3. Labeling
|
|
770
|
+
|
|
771
|
+
Use consistent labels:
|
|
772
|
+
- `scaffolding` - Initial setup
|
|
773
|
+
- `core` - Core functionality
|
|
774
|
+
- `admin` - Admin interface
|
|
775
|
+
- `frontend` - Frontend display
|
|
776
|
+
- `security` - Security measures
|
|
777
|
+
- `testing` - Tests
|
|
778
|
+
- `documentation` - Documentation
|
|
779
|
+
- `implementation` - Feature implementation
|
|
780
|
+
- `integration` - Integration with existing code
|
|
781
|
+
- `optimization` - Performance optimization
|
|
782
|
+
|
|
783
|
+
### 4. Priorities
|
|
784
|
+
|
|
785
|
+
- P0: Blocking/Critical
|
|
786
|
+
- P1: High priority
|
|
787
|
+
- P2: Medium priority
|
|
788
|
+
- P3: Low priority
|
|
789
|
+
|
|
790
|
+
### 5. Estimation
|
|
791
|
+
|
|
792
|
+
Include time estimates in task descriptions:
|
|
793
|
+
```bash
|
|
794
|
+
bd create "Task name (est: 2h)" -p 1 --parent [epic-id]
|
|
795
|
+
```
|
|
796
|
+
|
|
797
|
+
### 6. Progress Tracking
|
|
798
|
+
|
|
799
|
+
Update task status regularly:
|
|
800
|
+
```bash
|
|
801
|
+
bd update [task-id] --status in_progress
|
|
802
|
+
bd comment [task-id] "Progress update"
|
|
803
|
+
bd close [task-id]
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
---
|
|
807
|
+
|
|
808
|
+
## Usage Examples
|
|
809
|
+
|
|
810
|
+
### Example 1: Create Contact Form Plugin
|
|
811
|
+
|
|
812
|
+
```bash
|
|
813
|
+
# Use Plugin Creation Pattern
|
|
814
|
+
bd create "Create Simple Contact Form plugin" -p 0 --type epic --label plugin-creation
|
|
815
|
+
|
|
816
|
+
# Follow the pattern, customizing task names
|
|
817
|
+
bd create "Create plugin scaffolding for Simple Contact Form" -p 1 --parent bd-xyz
|
|
818
|
+
bd create "Create main plugin file simple-contact-form.php" -p 1 --parent bd-xyz
|
|
819
|
+
# ... continue with pattern
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
### Example 2: Add Custom Fields Feature
|
|
823
|
+
|
|
824
|
+
```bash
|
|
825
|
+
# Use Feature Addition Pattern
|
|
826
|
+
bd create "Add Custom Fields to Simple Contact Form" -p 0 --type epic --label feature-addition
|
|
827
|
+
|
|
828
|
+
# Follow the pattern
|
|
829
|
+
bd create "Create OpenSpec spec for custom fields feature" -p 1 --parent bd-abc
|
|
830
|
+
bd create "Design custom fields database schema" -p 1 --parent bd-abc
|
|
831
|
+
# ... continue with pattern
|
|
832
|
+
```
|
|
833
|
+
|
|
834
|
+
### Example 3: Fix Email Notification Bug
|
|
835
|
+
|
|
836
|
+
```bash
|
|
837
|
+
# Use Bug Fix Pattern
|
|
838
|
+
bd create "Fix: Email notifications not sending" -p 0 --type epic --label bug-fix
|
|
839
|
+
|
|
840
|
+
# Follow the pattern
|
|
841
|
+
bd create "Reproduce email notification bug" -p 1 --parent bd-def
|
|
842
|
+
bd create "Identify root cause of email failure" -p 1 --parent bd-def
|
|
843
|
+
# ... continue with pattern
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
---
|
|
847
|
+
|
|
848
|
+
## Related Resources
|
|
849
|
+
|
|
850
|
+
- [Beads Workflow Documentation](../../beads/README.md)
|
|
851
|
+
- [OpenSpec Workflow Documentation](../../openspec/README.md)
|
|
852
|
+
- [WordPress Plugin Development Workflow](../rules/development-workflow.md)
|
|
853
|
+
- [WordPress Plugin Best Practices](../rules/best-practices.md)
|
|
854
|
+
|