@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,428 @@
1
+ # Gutenberg Block Plugin Example
2
+
3
+ ## Overview
4
+
5
+ This example demonstrates a complete **Gutenberg Block Plugin** with block.json, edit.js, save.js, PHP registration, styles, and build process using modern WordPress block development practices.
6
+
7
+ **Complexity**: Medium-High
8
+ **File Count**: 10-15 files
9
+ **Team Size**: 1-3 developers
10
+ **Use Case**: Custom Gutenberg blocks, content components, interactive elements
11
+
12
+ ---
13
+
14
+ ## Complete Plugin: "Testimonial Block"
15
+
16
+ A comprehensive Gutenberg block plugin demonstrating modern block development with block.json, React components, InspectorControls, RichText, MediaUpload, and proper build process.
17
+
18
+ ---
19
+
20
+ ## Directory Structure
21
+
22
+ ```
23
+ testimonial-block/
24
+ ├── testimonial-block.php # Main plugin file
25
+ ├── package.json # NPM dependencies
26
+ ├── webpack.config.js # Webpack configuration
27
+ ├── .babelrc # Babel configuration
28
+ ├── readme.txt # WordPress.org readme
29
+ ├── src/
30
+ │ ├── block.json # Block metadata
31
+ │ ├── index.js # Block registration
32
+ │ ├── edit.js # Edit component
33
+ │ ├── save.js # Save component
34
+ │ ├── editor.scss # Editor styles
35
+ │ └── style.scss # Frontend styles
36
+ ├── build/ # Compiled files (generated)
37
+ │ ├── index.js
38
+ │ ├── index.asset.php
39
+ │ ├── editor.css
40
+ │ └── style.css
41
+ └── languages/ # Translation files
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Main Plugin File
47
+
48
+ ### File: `testimonial-block.php`
49
+
50
+ ```php
51
+ <?php
52
+ /**
53
+ * Plugin Name: Testimonial Block
54
+ * Plugin URI: https://example.com/testimonial-block
55
+ * Description: Custom Gutenberg block for displaying testimonials
56
+ * Version: 1.0.0
57
+ * Requires at least: 6.0
58
+ * Requires PHP: 7.4
59
+ * Author: Your Name
60
+ * Author URI: https://example.com
61
+ * License: GPL-2.0+
62
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
63
+ * Text Domain: testimonial-block
64
+ * Domain Path: /languages
65
+ *
66
+ * @package Testimonial_Block
67
+ */
68
+
69
+ // Exit if accessed directly
70
+ if (!defined('ABSPATH')) {
71
+ exit;
72
+ }
73
+
74
+ // Define plugin constants
75
+ define('TESTIMONIAL_BLOCK_VERSION', '1.0.0');
76
+ define('TESTIMONIAL_BLOCK_PLUGIN_DIR', plugin_dir_path(__FILE__));
77
+ define('TESTIMONIAL_BLOCK_PLUGIN_URL', plugin_dir_url(__FILE__));
78
+
79
+ /**
80
+ * Register the block
81
+ */
82
+ function testimonial_block_register() {
83
+ // Register the block
84
+ register_block_type(TESTIMONIAL_BLOCK_PLUGIN_DIR . 'build');
85
+ }
86
+ add_action('init', 'testimonial_block_register');
87
+
88
+ /**
89
+ * Load plugin text domain
90
+ */
91
+ function testimonial_block_load_textdomain() {
92
+ load_plugin_textdomain(
93
+ 'testimonial-block',
94
+ false,
95
+ dirname(plugin_basename(__FILE__)) . '/languages'
96
+ );
97
+ }
98
+ add_action('init', 'testimonial_block_load_textdomain');
99
+
100
+ /**
101
+ * Add block category (optional)
102
+ */
103
+ function testimonial_block_add_category($categories) {
104
+ return array_merge(
105
+ $categories,
106
+ array(
107
+ array(
108
+ 'slug' => 'testimonials',
109
+ 'title' => __('Testimonials', 'testimonial-block'),
110
+ 'icon' => 'star-filled',
111
+ ),
112
+ )
113
+ );
114
+ }
115
+ add_filter('block_categories_all', 'testimonial_block_add_category');
116
+ ```
117
+
118
+ ---
119
+
120
+ ## Block Configuration
121
+
122
+ ### File: `src/block.json`
123
+
124
+ ```json
125
+ {
126
+ "$schema": "https://schemas.wp.org/trunk/block.json",
127
+ "apiVersion": 3,
128
+ "name": "testimonial-block/testimonial",
129
+ "version": "1.0.0",
130
+ "title": "Testimonial",
131
+ "category": "testimonials",
132
+ "icon": "format-quote",
133
+ "description": "Display a testimonial with author information and photo.",
134
+ "keywords": ["testimonial", "review", "quote"],
135
+ "textdomain": "testimonial-block",
136
+ "attributes": {
137
+ "content": {
138
+ "type": "string",
139
+ "source": "html",
140
+ "selector": ".testimonial-content"
141
+ },
142
+ "authorName": {
143
+ "type": "string",
144
+ "source": "html",
145
+ "selector": ".testimonial-author-name"
146
+ },
147
+ "authorTitle": {
148
+ "type": "string",
149
+ "source": "html",
150
+ "selector": ".testimonial-author-title"
151
+ },
152
+ "authorImage": {
153
+ "type": "object",
154
+ "default": {
155
+ "url": "",
156
+ "alt": "",
157
+ "id": null
158
+ }
159
+ },
160
+ "rating": {
161
+ "type": "number",
162
+ "default": 5
163
+ },
164
+ "alignment": {
165
+ "type": "string",
166
+ "default": "left"
167
+ },
168
+ "backgroundColor": {
169
+ "type": "string",
170
+ "default": "#f9f9f9"
171
+ },
172
+ "textColor": {
173
+ "type": "string",
174
+ "default": "#333333"
175
+ }
176
+ },
177
+ "supports": {
178
+ "html": false,
179
+ "align": ["wide", "full"],
180
+ "spacing": {
181
+ "margin": true,
182
+ "padding": true
183
+ }
184
+ },
185
+ "editorScript": "file:./index.js",
186
+ "editorStyle": "file:./editor.css",
187
+ "style": "file:./style.css"
188
+ }
189
+ ```
190
+
191
+ ---
192
+
193
+ ## Block Registration
194
+
195
+ ### File: `src/index.js`
196
+
197
+ ```javascript
198
+ import { registerBlockType } from '@wordpress/blocks';
199
+ import Edit from './edit';
200
+ import save from './save';
201
+ import metadata from './block.json';
202
+ import './editor.scss';
203
+ import './style.scss';
204
+
205
+ /**
206
+ * Register the block
207
+ */
208
+ registerBlockType(metadata.name, {
209
+ edit: Edit,
210
+ save,
211
+ });
212
+ ```
213
+
214
+ ---
215
+
216
+ ## Edit Component
217
+
218
+ ### File: `src/edit.js`
219
+
220
+ ```javascript
221
+ import { __ } from '@wordpress/i18n';
222
+ import {
223
+ useBlockProps,
224
+ InspectorControls,
225
+ RichText,
226
+ MediaUpload,
227
+ MediaUploadCheck,
228
+ BlockControls,
229
+ AlignmentToolbar,
230
+ } from '@wordpress/block-editor';
231
+ import {
232
+ PanelBody,
233
+ RangeControl,
234
+ Button,
235
+ ColorPicker,
236
+ } from '@wordpress/components';
237
+ import { Fragment } from '@wordpress/element';
238
+
239
+ /**
240
+ * Edit component
241
+ */
242
+ export default function Edit({ attributes, setAttributes }) {
243
+ const {
244
+ content,
245
+ authorName,
246
+ authorTitle,
247
+ authorImage,
248
+ rating,
249
+ alignment,
250
+ backgroundColor,
251
+ textColor,
252
+ } = attributes;
253
+
254
+ const blockProps = useBlockProps({
255
+ className: `testimonial-block align-${alignment}`,
256
+ style: {
257
+ backgroundColor,
258
+ color: textColor,
259
+ },
260
+ });
261
+
262
+ const onSelectImage = (media) => {
263
+ setAttributes({
264
+ authorImage: {
265
+ url: media.url,
266
+ alt: media.alt,
267
+ id: media.id,
268
+ },
269
+ });
270
+ };
271
+
272
+ const removeImage = () => {
273
+ setAttributes({
274
+ authorImage: {
275
+ url: '',
276
+ alt: '',
277
+ id: null,
278
+ },
279
+ });
280
+ };
281
+
282
+ const renderStars = (count) => {
283
+ const stars = [];
284
+ for (let i = 0; i < 5; i++) {
285
+ stars.push(
286
+ <span
287
+ key={i}
288
+ className={`star ${i < count ? 'filled' : ''}`}
289
+ >
290
+
291
+ </span>
292
+ );
293
+ }
294
+ return stars;
295
+ };
296
+
297
+ return (
298
+ <Fragment>
299
+ <BlockControls>
300
+ <AlignmentToolbar
301
+ value={alignment}
302
+ onChange={(newAlignment) =>
303
+ setAttributes({ alignment: newAlignment })
304
+ }
305
+ />
306
+ </BlockControls>
307
+
308
+ <InspectorControls>
309
+ <PanelBody title={__('Testimonial Settings', 'testimonial-block')}>
310
+ <RangeControl
311
+ label={__('Rating', 'testimonial-block')}
312
+ value={rating}
313
+ onChange={(value) => setAttributes({ rating: value })}
314
+ min={1}
315
+ max={5}
316
+ step={1}
317
+ />
318
+ </PanelBody>
319
+
320
+ <PanelBody title={__('Color Settings', 'testimonial-block')}>
321
+ <p>{__('Background Color', 'testimonial-block')}</p>
322
+ <ColorPicker
323
+ color={backgroundColor}
324
+ onChangeComplete={(value) =>
325
+ setAttributes({ backgroundColor: value.hex })
326
+ }
327
+ />
328
+
329
+ <p style={{ marginTop: '20px' }}>
330
+ {__('Text Color', 'testimonial-block')}
331
+ </p>
332
+ <ColorPicker
333
+ color={textColor}
334
+ onChangeComplete={(value) =>
335
+ setAttributes({ textColor: value.hex })
336
+ }
337
+ />
338
+ </PanelBody>
339
+
340
+ <PanelBody title={__('Author Image', 'testimonial-block')}>
341
+ <MediaUploadCheck>
342
+ <MediaUpload
343
+ onSelect={onSelectImage}
344
+ allowedTypes={['image']}
345
+ value={authorImage.id}
346
+ render={({ open }) => (
347
+ <div>
348
+ {authorImage.url ? (
349
+ <div>
350
+ <img
351
+ src={authorImage.url}
352
+ alt={authorImage.alt}
353
+ style={{
354
+ width: '100%',
355
+ marginBottom: '10px',
356
+ }}
357
+ />
358
+ <Button
359
+ onClick={removeImage}
360
+ isDestructive
361
+ >
362
+ {__('Remove Image', 'testimonial-block')}
363
+ </Button>
364
+ </div>
365
+ ) : (
366
+ <Button onClick={open} isPrimary>
367
+ {__('Select Image', 'testimonial-block')}
368
+ </Button>
369
+ )}
370
+ </div>
371
+ )}
372
+ />
373
+ </MediaUploadCheck>
374
+ </PanelBody>
375
+ </InspectorControls>
376
+
377
+ <div {...blockProps}>
378
+ <div className="testimonial-content-wrapper">
379
+ <div className="testimonial-quote-icon">❝</div>
380
+ <RichText
381
+ tagName="p"
382
+ className="testimonial-content"
383
+ value={content}
384
+ onChange={(value) => setAttributes({ content: value })}
385
+ placeholder={__(
386
+ 'Enter testimonial content...',
387
+ 'testimonial-block'
388
+ )}
389
+ />
390
+ </div>
391
+
392
+ <div className="testimonial-rating">{renderStars(rating)}</div>
393
+
394
+ <div className="testimonial-author">
395
+ {authorImage.url && (
396
+ <img
397
+ src={authorImage.url}
398
+ alt={authorImage.alt}
399
+ className="testimonial-author-image"
400
+ />
401
+ )}
402
+ <div className="testimonial-author-info">
403
+ <RichText
404
+ tagName="p"
405
+ className="testimonial-author-name"
406
+ value={authorName}
407
+ onChange={(value) =>
408
+ setAttributes({ authorName: value })
409
+ }
410
+ placeholder={__('Author Name', 'testimonial-block')}
411
+ />
412
+ <RichText
413
+ tagName="p"
414
+ className="testimonial-author-title"
415
+ value={authorTitle}
416
+ onChange={(value) =>
417
+ setAttributes({ authorTitle: value })
418
+ }
419
+ placeholder={__('Author Title', 'testimonial-block')}
420
+ />
421
+ </div>
422
+ </div>
423
+ </div>
424
+ </Fragment>
425
+ );
426
+ }
427
+ ```
428
+
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "gutenberg-block-plugin",
3
+ "version": "1.0.0",
4
+ "displayName": "Gutenberg Block Plugin Examples",
5
+ "description": "Complete Gutenberg block plugin examples with block.json, React components, InspectorControls, RichText, MediaUpload, and build process",
6
+ "type": "examples",
7
+ "author": "Augment Extensions",
8
+ "license": "MIT",
9
+ "augment": {
10
+ "characterCount": 15889,
11
+ "priority": "medium",
12
+ "category": "examples",
13
+ "appliesTo": {
14
+ "filePatterns": [
15
+ "**/block.json",
16
+ "**/src/edit.js",
17
+ "**/src/save.js",
18
+ "**/*.php"
19
+ ],
20
+ "projectTypes": [
21
+ "wordpress-plugin",
22
+ "gutenberg-block"
23
+ ]
24
+ }
25
+ },
26
+ "installation": {
27
+ "required": false,
28
+ "dependencies": []
29
+ },
30
+ "tags": [
31
+ "wordpress",
32
+ "gutenberg",
33
+ "blocks",
34
+ "react",
35
+ "javascript",
36
+ "php",
37
+ "examples"
38
+ ]
39
+ }
40
+
@@ -0,0 +1,98 @@
1
+ # REST API Plugin Examples
2
+
3
+ ## Overview
4
+
5
+ Complete REST API plugin examples demonstrating WordPress REST API development with custom endpoints (GET, POST, PUT, DELETE), authentication, validation, error handling, and JavaScript client examples.
6
+
7
+ ## Key Benefits
8
+
9
+ - **Complete CRUD Operations**: Full implementation of GET, POST, PUT, DELETE endpoints
10
+ - **Authentication**: Multiple authentication methods (nonce, API key, JWT)
11
+ - **Validation**: Request parameter validation and sanitization
12
+ - **Error Handling**: Proper error responses with WP_Error
13
+ - **JavaScript Clients**: Fetch API and wp.apiFetch examples
14
+ - **Security**: Permission callbacks and nonce verification
15
+ - **Pagination**: Collection endpoints with pagination support
16
+
17
+ ## Installation
18
+
19
+ These are reference examples. Copy the code into your WordPress plugin project.
20
+
21
+ ## Directory Structure
22
+
23
+ ```
24
+ augment-extensions/examples/rest-api-plugin/
25
+ ├── module.json # Module metadata
26
+ ├── README.md # This file
27
+ └── examples/
28
+ ├── task-manager-api.md # Complete task management REST API
29
+ ├── user-profile-api.md # User profile API with authentication
30
+ └── product-catalog-api.md # Product catalog with filtering
31
+ ```
32
+
33
+ ## Examples Included
34
+
35
+ ### 1. Task Manager API
36
+ Complete REST API plugin with:
37
+ - GET /tasks - List all tasks (with pagination)
38
+ - GET /tasks/{id} - Get single task
39
+ - POST /tasks - Create new task
40
+ - PUT /tasks/{id} - Update task
41
+ - DELETE /tasks/{id} - Delete task
42
+ - Authentication and permissions
43
+ - JavaScript client examples
44
+
45
+ ### 2. User Profile API
46
+ User profile management demonstrating:
47
+ - Custom user meta endpoints
48
+ - Avatar upload
49
+ - Profile validation
50
+ - Privacy controls
51
+ - Current user authentication
52
+
53
+ ### 3. Product Catalog API
54
+ Product catalog with:
55
+ - Advanced filtering
56
+ - Search functionality
57
+ - Category endpoints
58
+ - Custom taxonomies
59
+ - Batch operations
60
+
61
+ ## Character Count
62
+
63
+ ~0 characters (will be updated after creation)
64
+
65
+ ## Contents
66
+
67
+ - Complete plugin files (PHP, JS)
68
+ - REST API endpoint registration
69
+ - Permission callbacks
70
+ - Validation schemas
71
+ - Error handling
72
+ - JavaScript client code
73
+ - Authentication examples
74
+ - Pagination implementation
75
+ - Response formatting
76
+
77
+ ## Usage
78
+
79
+ ```bash
80
+ # Copy example to your project
81
+ cp -r examples/task-manager-api/ /path/to/wp-content/plugins/
82
+
83
+ # Activate plugin in WordPress admin
84
+
85
+ # Test endpoints
86
+ curl https://example.com/wp-json/task-manager/v1/tasks
87
+ ```
88
+
89
+ ## Related Modules
90
+
91
+ - `domain-rules/wordpress-plugin` - WordPress plugin development guidelines
92
+ - `workflows/wordpress-plugin` - WordPress plugin development workflow
93
+ - `coding-standards/php` - PHP coding standards
94
+
95
+ ## Version History
96
+
97
+ - **1.0.0** (2026-01-26): Initial release with three complete examples
98
+