@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.
Files changed (79) hide show
  1. package/augment-extensions/domain-rules/wordpress/README.md +163 -0
  2. package/augment-extensions/domain-rules/wordpress/module.json +32 -0
  3. package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -0
  4. package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -0
  5. package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -0
  6. package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -0
  7. package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -0
  8. package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -0
  9. package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -0
  10. package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -0
  11. package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -0
  12. package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -0
  13. package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -0
  14. package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -0
  15. package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -0
  16. package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -0
  17. package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -0
  18. package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -0
  19. package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -0
  20. package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -0
  21. package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -0
  22. package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -0
  23. package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -0
  24. package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -0
  25. package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -0
  26. package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -0
  27. package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -0
  28. package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -0
  29. package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -0
  30. package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -0
  31. package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -0
  32. package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -0
  33. package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -0
  34. package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -0
  35. package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -0
  36. package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -0
  37. package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -0
  38. package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -0
  39. package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -0
  40. package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -0
  41. package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -0
  42. package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -0
  43. package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -0
  44. package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -0
  45. package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -0
  46. package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -0
  47. package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -0
  48. package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -0
  49. package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -0
  50. package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -0
  51. package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -0
  52. package/augment-extensions/examples/rest-api-plugin/README.md +98 -0
  53. package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -0
  54. package/augment-extensions/examples/rest-api-plugin/module.json +40 -0
  55. package/augment-extensions/examples/woocommerce-extension/README.md +98 -0
  56. package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -0
  57. package/augment-extensions/examples/woocommerce-extension/module.json +40 -0
  58. package/augment-extensions/workflows/wordpress-plugin/README.md +232 -0
  59. package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -0
  60. package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -0
  61. package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -0
  62. package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -0
  63. package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -0
  64. package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -0
  65. package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -0
  66. package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -0
  67. package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -0
  68. package/augment-extensions/workflows/wordpress-plugin/module.json +49 -0
  69. package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -0
  70. package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -0
  71. package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -0
  72. package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -0
  73. package/cli/dist/cli.js +5 -1
  74. package/cli/dist/cli.js.map +1 -1
  75. package/cli/dist/commands/show.d.ts.map +1 -1
  76. package/cli/dist/commands/show.js +41 -0
  77. package/cli/dist/commands/show.js.map +1 -1
  78. package/modules.md +52 -0
  79. package/package.json +1 -1
@@ -0,0 +1,352 @@
1
+ # WordPress Plugin Structure
2
+
3
+ ## Overview
4
+
5
+ This rule defines how to detect WordPress plugin projects and the standard directory structures for different plugin complexity levels.
6
+
7
+ ## Plugin Detection
8
+
9
+ ### Detection Criteria
10
+
11
+ AI agents should detect a WordPress plugin project when ANY of the following conditions are met:
12
+
13
+ #### 1. Plugin Header Detection
14
+
15
+ Look for PHP files containing a plugin header comment block with required headers:
16
+
17
+ ```php
18
+ <?php
19
+ /**
20
+ * Plugin Name: My Plugin Name
21
+ * Plugin URI: https://example.com/my-plugin
22
+ * Description: Brief description of the plugin
23
+ * Version: 1.0.0
24
+ * Author: Author Name
25
+ * Author URI: https://example.com
26
+ * License: GPL-2.0+
27
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
28
+ * Text Domain: my-plugin
29
+ * Domain Path: /languages
30
+ * Requires at least: 6.0
31
+ * Requires PHP: 7.4
32
+ */
33
+ ```
34
+
35
+ **Required Headers**:
36
+ - `Plugin Name` - Display name of the plugin
37
+ - `Description` - Brief description
38
+ - `Version` - Semantic version number
39
+ - `Author` - Plugin author name
40
+
41
+ **Recommended Headers**:
42
+ - `Plugin URI` - Plugin homepage
43
+ - `Author URI` - Author website
44
+ - `License` - License identifier (GPL-2.0+, MIT, etc.)
45
+ - `Text Domain` - Translation text domain (should match plugin slug)
46
+ - `Domain Path` - Path to translation files (usually `/languages`)
47
+ - `Requires at least` - Minimum WordPress version
48
+ - `Requires PHP` - Minimum PHP version
49
+
50
+ #### 2. File Pattern Detection
51
+
52
+ - Main plugin file (typically matches directory name: `my-plugin/my-plugin.php`)
53
+ - `readme.txt` - WordPress.org format readme
54
+ - `uninstall.php` - Cleanup script for plugin uninstallation
55
+ - `languages/` directory - Translation files (`.pot`, `.po`, `.mo`)
56
+
57
+ #### 3. Directory Structure Detection
58
+
59
+ Common plugin directory patterns:
60
+ - `includes/` or `inc/` - Core functionality
61
+ - `admin/` - Admin-specific code
62
+ - `public/` - Frontend-specific code
63
+ - `assets/` - CSS, JS, images
64
+ - `blocks/` - Gutenberg blocks
65
+ - `templates/` - Template files
66
+
67
+ ## Standard Directory Structures
68
+
69
+ ### 1. Simple Procedural Plugin
70
+
71
+ **Complexity**: Low
72
+ **File Count**: 1-5 files
73
+ **Use Case**: Small utility plugins, simple functionality, quick prototypes
74
+
75
+ ```
76
+ my-plugin/
77
+ ├── my-plugin.php # Main plugin file (all code)
78
+ └── readme.txt # WordPress.org readme
79
+ ```
80
+
81
+ **When to Use**:
82
+ - Single feature plugins (e.g., disable comments, add custom CSS)
83
+ - Utility functions
84
+ - Quick prototypes
85
+ - Learning/tutorial plugins
86
+
87
+ ### 2. Organized Procedural Plugin
88
+
89
+ **Complexity**: Medium
90
+ **File Count**: 5-20 files
91
+ **Use Case**: Medium-sized plugins, organized code, team collaboration
92
+
93
+ ```
94
+ my-plugin/
95
+ ├── my-plugin.php # Main plugin file (loader)
96
+ ├── includes/
97
+ │ ├── functions.php # Core functions
98
+ │ ├── hooks.php # Hook callbacks
99
+ │ └── shortcodes.php # Shortcode handlers
100
+ ├── admin/
101
+ │ ├── settings.php # Admin settings
102
+ │ └── meta-boxes.php # Meta boxes
103
+ ├── public/
104
+ │ └── display.php # Frontend display
105
+ ├── assets/
106
+ │ ├── css/
107
+ │ │ ├── admin.css
108
+ │ │ └── public.css
109
+ │ ├── js/
110
+ │ │ ├── admin.js
111
+ │ │ └── public.js
112
+ │ └── images/
113
+ ├── languages/
114
+ │ └── my-plugin.pot # Translation template
115
+ ├── uninstall.php # Cleanup on uninstall
116
+ └── readme.txt
117
+ ```
118
+
119
+ **When to Use**:
120
+ - Multiple features
121
+ - Admin and frontend functionality
122
+ - Custom assets (CSS/JS)
123
+ - Team collaboration
124
+
125
+ ### 3. Object-Oriented Plugin
126
+
127
+ **Complexity**: Medium-High
128
+ **File Count**: 10-50 files
129
+ **Use Case**: Large plugins, maintainable code, extensibility
130
+
131
+ ```
132
+ my-plugin/
133
+ ├── my-plugin.php # Main plugin file (bootstrap)
134
+ ├── includes/
135
+ │ ├── class-plugin.php # Main plugin class
136
+ │ ├── class-admin.php # Admin functionality
137
+ │ ├── class-public.php # Public functionality
138
+ │ ├── class-loader.php # Hook loader
139
+ │ └── class-activator.php # Activation logic
140
+ ├── admin/
141
+ │ ├── class-settings.php # Settings page
142
+ │ └── partials/ # Admin view templates
143
+ ├── public/
144
+ │ ├── class-shortcode.php # Shortcode handler
145
+ │ └── partials/ # Public view templates
146
+ ├── assets/
147
+ │ ├── css/
148
+ │ ├── js/
149
+ │ └── images/
150
+ ├── languages/
151
+ ├── uninstall.php
152
+ └── readme.txt
153
+ ```
154
+
155
+ **When to Use**:
156
+ - Complex functionality
157
+ - Need for extensibility
158
+ - Multiple developers
159
+ - Long-term maintenance
160
+
161
+ ### 4. WordPress Plugin Boilerplate
162
+
163
+ **Complexity**: High
164
+ **File Count**: 20+ files
165
+ **Use Case**: Standard WordPress plugin structure, best practices, enterprise plugins
166
+
167
+ ```
168
+ plugin-name/
169
+ ├── plugin-name.php
170
+ ├── admin/
171
+ │ ├── class-plugin-name-admin.php
172
+ │ ├── css/
173
+ │ │ └── plugin-name-admin.css
174
+ │ ├── js/
175
+ │ │ └── plugin-name-admin.js
176
+ │ └── partials/
177
+ │ └── plugin-name-admin-display.php
178
+ ├── includes/
179
+ │ ├── class-plugin-name.php
180
+ │ ├── class-plugin-name-loader.php
181
+ │ ├── class-plugin-name-i18n.php
182
+ │ ├── class-plugin-name-activator.php
183
+ │ └── class-plugin-name-deactivator.php
184
+ ├── public/
185
+ │ ├── class-plugin-name-public.php
186
+ │ ├── css/
187
+ │ │ └── plugin-name-public.css
188
+ │ ├── js/
189
+ │ │ └── plugin-name-public.js
190
+ │ └── partials/
191
+ │ └── plugin-name-public-display.php
192
+ ├── languages/
193
+ │ └── plugin-name.pot
194
+ ├── uninstall.php
195
+ └── README.txt
196
+ ```
197
+
198
+ **When to Use**:
199
+ - Following WordPress.org best practices
200
+ - Enterprise-level plugins
201
+ - Maximum maintainability
202
+ - Plugin marketplace submission
203
+
204
+ ## File Naming Conventions
205
+
206
+ ### PHP Files
207
+
208
+ - **Main plugin file**: `plugin-slug.php` (matches directory name)
209
+ - **Class files**: `class-{class-name}.php` (lowercase, hyphens)
210
+ - **Function files**: `{purpose}-functions.php` or `functions.php`
211
+ - **Template files**: `{template-name}.php`
212
+
213
+ **Examples**:
214
+ - `class-plugin-name.php`
215
+ - `class-admin-settings.php`
216
+ - `helper-functions.php`
217
+ - `contact-form-template.php`
218
+
219
+ ### Asset Files
220
+
221
+ - **CSS**: `{plugin-slug}-{context}.css` (e.g., `my-plugin-admin.css`)
222
+ - **JavaScript**: `{plugin-slug}-{context}.js` (e.g., `my-plugin-public.js`)
223
+ - **Images**: Descriptive names with hyphens
224
+
225
+ ### Translation Files
226
+
227
+ - **POT template**: `{text-domain}.pot`
228
+ - **PO files**: `{text-domain}-{locale}.po` (e.g., `my-plugin-es_ES.po`)
229
+ - **MO files**: `{text-domain}-{locale}.mo` (e.g., `my-plugin-es_ES.mo`)
230
+
231
+ ## Required Files
232
+
233
+ ### Main Plugin File
234
+
235
+ **Purpose**: Entry point for the plugin, contains plugin header
236
+
237
+ **Location**: Root of plugin directory
238
+
239
+ **Naming**: Should match plugin directory name
240
+
241
+ **Example**: `my-plugin/my-plugin.php`
242
+
243
+ ### readme.txt
244
+
245
+ **Purpose**: WordPress.org plugin directory readme
246
+
247
+ **Location**: Root of plugin directory
248
+
249
+ **Format**: WordPress.org readme format
250
+
251
+ **Required Sections**:
252
+ - Contributors
253
+ - Tags
254
+ - Requires at least
255
+ - Tested up to
256
+ - Stable tag
257
+ - License
258
+ - Short Description
259
+ - Description
260
+ - Installation
261
+ - Frequently Asked Questions
262
+ - Screenshots
263
+ - Changelog
264
+
265
+ ### uninstall.php
266
+
267
+ **Purpose**: Clean up plugin data on uninstallation
268
+
269
+ **Location**: Root of plugin directory
270
+
271
+ **Security**: Must check for `WP_UNINSTALL_PLUGIN` constant
272
+
273
+ **Example**:
274
+ ```php
275
+ <?php
276
+ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
277
+ exit;
278
+ }
279
+
280
+ // Delete options
281
+ delete_option( 'my_plugin_option' );
282
+
283
+ // Delete custom tables
284
+ global $wpdb;
285
+ $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}my_plugin_table" );
286
+ ```
287
+
288
+ ## Best Practices
289
+
290
+ ### Security
291
+
292
+ ✅ **DO**:
293
+ - Always check `ABSPATH` constant in all PHP files
294
+ - Use `WP_UNINSTALL_PLUGIN` in uninstall.php
295
+ - Prefix all function names, class names, and database tables
296
+ - Use nonces for form submissions
297
+ - Sanitize all input, escape all output
298
+
299
+ ❌ **DON'T**:
300
+ - Allow direct file access
301
+ - Use generic function/class names
302
+ - Store sensitive data in plain text
303
+
304
+ ### Performance
305
+
306
+ ✅ **DO**:
307
+ - Load assets only when needed
308
+ - Use conditional loading for admin/frontend
309
+ - Minimize database queries
310
+ - Use transients for caching
311
+
312
+ ❌ **DON'T**:
313
+ - Load all assets on every page
314
+ - Make unnecessary database queries
315
+ - Ignore caching opportunities
316
+
317
+ ### Maintainability
318
+
319
+ ✅ **DO**:
320
+ - Use consistent naming conventions
321
+ - Organize code logically
322
+ - Comment complex logic
323
+ - Follow WordPress Coding Standards
324
+
325
+ ❌ **DON'T**:
326
+ - Mix concerns (admin/public code)
327
+ - Use inconsistent naming
328
+ - Leave code undocumented
329
+
330
+ ## AI Agent Guidelines
331
+
332
+ When scaffolding a new WordPress plugin:
333
+
334
+ 1. **Ask for complexity level** or infer from requirements
335
+ 2. **Choose appropriate structure** based on complexity
336
+ 3. **Create directory structure** first
337
+ 4. **Generate main plugin file** with proper headers
338
+ 5. **Add security checks** to all files
339
+ 6. **Create readme.txt** with proper format
340
+ 7. **Add uninstall.php** if plugin stores data
341
+ 8. **Set up translation files** if i18n is needed
342
+
343
+ When analyzing existing plugins:
344
+
345
+ 1. **Detect plugin header** in PHP files
346
+ 2. **Identify structure pattern** used
347
+ 3. **Check for required files** (readme.txt, uninstall.php)
348
+ 4. **Validate naming conventions**
349
+ 5. **Verify security checks** (ABSPATH, nonces)
350
+ 6. **Suggest improvements** based on best practices
351
+
352
+