@mytechtoday/augment-extensions 0.2.0 → 0.4.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/README.md +614 -39
- package/augment-extensions/coding-standards/bash/README.md +196 -0
- package/augment-extensions/coding-standards/bash/module.json +163 -0
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -0
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -0
- package/augment-extensions/coding-standards/css/README.md +40 -0
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/css/module.json +44 -0
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html/README.md +40 -0
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html/module.json +44 -0
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -0
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -0
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/js/README.md +46 -0
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/js/module.json +49 -0
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/php/README.md +248 -0
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -0
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -0
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -0
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -0
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -0
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -0
- package/augment-extensions/coding-standards/php/module.json +166 -0
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -0
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -0
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -0
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -0
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -0
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -0
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -0
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -0
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -0
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -0
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -0
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -0
- package/augment-extensions/coding-standards/php/rules/security.md +358 -0
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -0
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -0
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -0
- package/augment-extensions/coding-standards/powershell/README.md +154 -0
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -0
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -0
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -0
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -0
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -0
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -0
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -0
- package/augment-extensions/coding-standards/powershell/module.json +165 -0
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -0
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -0
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -0
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -0
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -0
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -0
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -0
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -0
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -0
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -0
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -0
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -0
- package/augment-extensions/coding-standards/python/README.md +12 -8
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -0
- package/augment-extensions/coding-standards/python/module.json +8 -4
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -0
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -0
- package/augment-extensions/coding-standards/python/rules/error-handling.md +855 -68
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -0
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -0
- package/augment-extensions/coding-standards/python/rules/type-hints.md +115 -50
- package/augment-extensions/collections/html-css-js/README.md +82 -0
- package/augment-extensions/collections/html-css-js/collection.json +41 -0
- package/augment-extensions/domain-rules/database/README.md +161 -0
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -0
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -0
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -0
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -0
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -0
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -0
- package/augment-extensions/domain-rules/database/module.json +28 -0
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -0
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -0
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -0
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -0
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -0
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -0
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -0
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -0
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -0
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -0
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -0
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -0
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -0
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -0
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -0
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -0
- package/augment-extensions/domain-rules/mcp/README.md +150 -0
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
- package/augment-extensions/domain-rules/mcp/module.json +49 -0
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
- package/augment-extensions/workflows/beads/module.json +4 -3
- package/augment-extensions/workflows/database/README.md +195 -0
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
- package/augment-extensions/workflows/database/module.json +42 -0
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
- package/augment-extensions/workflows/database/rules/workflow.md +458 -0
- package/augment-extensions/workflows/openspec/module.json +4 -3
- package/augment-extensions/writing-standards/screenplay/README.md +171 -0
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
- package/augment-extensions/writing-standards/screenplay/module.json +124 -0
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
- package/cli/MODULES.md +302 -0
- package/cli/dist/cli.js +142 -9
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/catalog.d.ts +13 -0
- package/cli/dist/commands/catalog.d.ts.map +1 -0
- package/cli/dist/commands/catalog.js +104 -0
- package/cli/dist/commands/catalog.js.map +1 -0
- package/cli/dist/commands/gui.d.ts +6 -0
- package/cli/dist/commands/gui.d.ts.map +1 -0
- package/cli/dist/commands/gui.js +211 -0
- package/cli/dist/commands/gui.js.map +1 -0
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +12 -0
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/install-rules.d.ts +14 -0
- package/cli/dist/commands/install-rules.d.ts.map +1 -0
- package/cli/dist/commands/install-rules.js +127 -0
- package/cli/dist/commands/install-rules.js.map +1 -0
- package/cli/dist/commands/link.d.ts.map +1 -1
- package/cli/dist/commands/link.js +9 -11
- package/cli/dist/commands/link.js.map +1 -1
- package/cli/dist/commands/list.d.ts.map +1 -1
- package/cli/dist/commands/list.js +11 -28
- package/cli/dist/commands/list.js.map +1 -1
- package/cli/dist/commands/mcp.d.ts +48 -0
- package/cli/dist/commands/mcp.d.ts.map +1 -0
- package/cli/dist/commands/mcp.js +229 -0
- package/cli/dist/commands/mcp.js.map +1 -0
- package/cli/dist/commands/self-remove.d.ts +7 -0
- package/cli/dist/commands/self-remove.d.ts.map +1 -0
- package/cli/dist/commands/self-remove.js +179 -0
- package/cli/dist/commands/self-remove.js.map +1 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +29 -99
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/skill.d.ts +67 -0
- package/cli/dist/commands/skill.d.ts.map +1 -0
- package/cli/dist/commands/skill.js +513 -0
- package/cli/dist/commands/skill.js.map +1 -0
- package/cli/dist/commands/unlink.d.ts +6 -0
- package/cli/dist/commands/unlink.d.ts.map +1 -0
- package/cli/dist/commands/unlink.js +115 -0
- package/cli/dist/commands/unlink.js.map +1 -0
- package/cli/dist/commands/validate.d.ts +6 -0
- package/cli/dist/commands/validate.d.ts.map +1 -0
- package/cli/dist/commands/validate.js +159 -0
- package/cli/dist/commands/validate.js.map +1 -0
- package/cli/dist/utils/catalog-sync.d.ts +22 -0
- package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
- package/cli/dist/utils/catalog-sync.js +157 -0
- package/cli/dist/utils/catalog-sync.js.map +1 -0
- package/cli/dist/utils/character-count.d.ts +56 -0
- package/cli/dist/utils/character-count.d.ts.map +1 -0
- package/cli/dist/utils/character-count.js +190 -0
- package/cli/dist/utils/character-count.js.map +1 -0
- package/cli/dist/utils/documentation-validator.d.ts +18 -0
- package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
- package/cli/dist/utils/documentation-validator.js +233 -0
- package/cli/dist/utils/documentation-validator.js.map +1 -0
- package/cli/dist/utils/install-rules.d.ts +32 -0
- package/cli/dist/utils/install-rules.d.ts.map +1 -0
- package/cli/dist/utils/install-rules.js +375 -0
- package/cli/dist/utils/install-rules.js.map +1 -0
- package/cli/dist/utils/mcp-integration.d.ts +70 -0
- package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
- package/cli/dist/utils/mcp-integration.js +292 -0
- package/cli/dist/utils/mcp-integration.js.map +1 -0
- package/cli/dist/utils/module-system.d.ts +153 -0
- package/cli/dist/utils/module-system.d.ts.map +1 -0
- package/cli/dist/utils/module-system.js +528 -0
- package/cli/dist/utils/module-system.js.map +1 -0
- package/cli/dist/utils/modules-catalog.d.ts +33 -0
- package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
- package/cli/dist/utils/modules-catalog.js +163 -0
- package/cli/dist/utils/modules-catalog.js.map +1 -0
- package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
- package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
- package/cli/dist/utils/rule-install-hooks.js +224 -0
- package/cli/dist/utils/rule-install-hooks.js.map +1 -0
- package/cli/dist/utils/skill-system.d.ts +95 -0
- package/cli/dist/utils/skill-system.d.ts.map +1 -0
- package/cli/dist/utils/skill-system.js +313 -0
- package/cli/dist/utils/skill-system.js.map +1 -0
- package/modules.md +518 -106
- package/package.json +12 -3
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# Category Configuration
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The PHP coding standards module supports multiple project categories, each with specific rules and best practices. This document explains how to configure category selection for your project.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Supported Categories
|
|
10
|
+
|
|
11
|
+
The module supports the following PHP project categories:
|
|
12
|
+
|
|
13
|
+
- **web** - Web applications (MVC, template engines, form handling)
|
|
14
|
+
- **api** - RESTful APIs (HTTP methods, authentication, response formatting)
|
|
15
|
+
- **cli** - Command-line tools (Symfony Console, argument handling)
|
|
16
|
+
- **cms** - CMS integrations (WordPress, Drupal plugins/themes)
|
|
17
|
+
- **ecommerce** - E-commerce systems (shopping carts, payment gateways, WooCommerce)
|
|
18
|
+
- **legacy** - Legacy code migration (refactoring, namespace introduction, type hints)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Configuration File
|
|
23
|
+
|
|
24
|
+
### Location
|
|
25
|
+
|
|
26
|
+
Create a configuration file in your project root:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
.augment/php-config.json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Format
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"php_categories": ["web", "api"],
|
|
37
|
+
"psr_standards": ["PSR-1", "PSR-12", "PSR-4", "PSR-7"],
|
|
38
|
+
"php_version": "8.2",
|
|
39
|
+
"strict_types": true,
|
|
40
|
+
"static_analysis": {
|
|
41
|
+
"tool": "phpstan",
|
|
42
|
+
"level": 8
|
|
43
|
+
},
|
|
44
|
+
"code_style": {
|
|
45
|
+
"tool": "php-cs-fixer",
|
|
46
|
+
"ruleset": "PSR-12"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Configuration Options
|
|
52
|
+
|
|
53
|
+
#### php_categories (required)
|
|
54
|
+
|
|
55
|
+
Array of category identifiers to apply to your project.
|
|
56
|
+
|
|
57
|
+
**Examples:**
|
|
58
|
+
```json
|
|
59
|
+
// Single category
|
|
60
|
+
"php_categories": ["web"]
|
|
61
|
+
|
|
62
|
+
// Multiple categories
|
|
63
|
+
"php_categories": ["web", "api"]
|
|
64
|
+
|
|
65
|
+
// CMS-focused project
|
|
66
|
+
"php_categories": ["cms", "ecommerce"]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### psr_standards (optional)
|
|
70
|
+
|
|
71
|
+
Array of PSR standards to enforce. Defaults to all applicable standards.
|
|
72
|
+
|
|
73
|
+
**Available standards:**
|
|
74
|
+
- `PSR-1` - Basic Coding Standard
|
|
75
|
+
- `PSR-12` - Extended Coding Style
|
|
76
|
+
- `PSR-4` - Autoloading
|
|
77
|
+
- `PSR-7` - HTTP Messages
|
|
78
|
+
- `PSR-11` - Container Interface
|
|
79
|
+
- `PSR-15` - HTTP Handlers
|
|
80
|
+
- `PSR-18` - HTTP Client
|
|
81
|
+
|
|
82
|
+
**Example:**
|
|
83
|
+
```json
|
|
84
|
+
"psr_standards": ["PSR-1", "PSR-12", "PSR-4"]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### php_version (optional)
|
|
88
|
+
|
|
89
|
+
Minimum PHP version for your project. Defaults to `8.0`.
|
|
90
|
+
|
|
91
|
+
**Example:**
|
|
92
|
+
```json
|
|
93
|
+
"php_version": "8.2"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### strict_types (optional)
|
|
97
|
+
|
|
98
|
+
Whether to enforce strict type declarations. Defaults to `true`.
|
|
99
|
+
|
|
100
|
+
**Example:**
|
|
101
|
+
```json
|
|
102
|
+
"strict_types": true
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
#### static_analysis (optional)
|
|
106
|
+
|
|
107
|
+
Configuration for static analysis tools.
|
|
108
|
+
|
|
109
|
+
**Options:**
|
|
110
|
+
- `tool` - Tool to use (`phpstan` or `psalm`)
|
|
111
|
+
- `level` - Analysis level (0-8 for PHPStan, 1-8 for Psalm)
|
|
112
|
+
|
|
113
|
+
**Example:**
|
|
114
|
+
```json
|
|
115
|
+
"static_analysis": {
|
|
116
|
+
"tool": "phpstan",
|
|
117
|
+
"level": 8
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
#### code_style (optional)
|
|
122
|
+
|
|
123
|
+
Configuration for code style enforcement.
|
|
124
|
+
|
|
125
|
+
**Options:**
|
|
126
|
+
- `tool` - Tool to use (`php-cs-fixer` or `phpcs`)
|
|
127
|
+
- `ruleset` - Ruleset to apply (`PSR-12`, `PSR-2`, etc.)
|
|
128
|
+
|
|
129
|
+
**Example:**
|
|
130
|
+
```json
|
|
131
|
+
"code_style": {
|
|
132
|
+
"tool": "php-cs-fixer",
|
|
133
|
+
"ruleset": "PSR-12"
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Rule Application
|
|
140
|
+
|
|
141
|
+
### Universal Rules
|
|
142
|
+
|
|
143
|
+
The following rules are applied to ALL categories:
|
|
144
|
+
|
|
145
|
+
- PSR Standards (psr-standards.md)
|
|
146
|
+
- Naming Conventions (naming-conventions.md)
|
|
147
|
+
- Type Declarations (type-declarations.md)
|
|
148
|
+
- Error Handling (error-handling.md)
|
|
149
|
+
- Security (security.md)
|
|
150
|
+
- Performance (performance.md)
|
|
151
|
+
- Testing (testing.md)
|
|
152
|
+
- Documentation (documentation.md)
|
|
153
|
+
- Code Quality (code-quality.md)
|
|
154
|
+
|
|
155
|
+
### Category-Specific Rules
|
|
156
|
+
|
|
157
|
+
Category-specific rules are applied based on your `php_categories` configuration:
|
|
158
|
+
|
|
159
|
+
- **web** → web-applications.md
|
|
160
|
+
- **api** → api-development.md
|
|
161
|
+
- **cli** → cli-tools.md
|
|
162
|
+
- **cms** → cms-integration.md
|
|
163
|
+
- **ecommerce** → ecommerce.md
|
|
164
|
+
- **legacy** → legacy-migration.md
|
|
165
|
+
|
|
166
|
+
### Rule Priority
|
|
167
|
+
|
|
168
|
+
When rules conflict between universal and category-specific:
|
|
169
|
+
|
|
170
|
+
1. **Category-specific rules take precedence** over universal rules
|
|
171
|
+
2. **Later categories override earlier categories** (in array order)
|
|
172
|
+
3. **Conflicts are logged** for manual review
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Conflict Detection
|
|
177
|
+
|
|
178
|
+
### Automatic Detection
|
|
179
|
+
|
|
180
|
+
The module automatically detects conflicts between:
|
|
181
|
+
|
|
182
|
+
- Universal rules and category-specific rules
|
|
183
|
+
- Multiple category-specific rules
|
|
184
|
+
- Configuration options
|
|
185
|
+
|
|
186
|
+
### Conflict Resolution
|
|
187
|
+
|
|
188
|
+
When conflicts are detected:
|
|
189
|
+
|
|
190
|
+
1. **Warning is logged** to `.augment/php-conflicts.log`
|
|
191
|
+
2. **Category-specific rule takes precedence**
|
|
192
|
+
3. **Manual review recommended** for critical conflicts
|
|
193
|
+
|
|
194
|
+
**Example conflict log:**
|
|
195
|
+
```
|
|
196
|
+
[2024-01-15 10:30:00] CONFLICT: web-applications.md overrides naming-conventions.md
|
|
197
|
+
- Universal: Use camelCase for all functions
|
|
198
|
+
- Web: Use snake_case for WordPress hook functions
|
|
199
|
+
- Resolution: Applied web-applications.md rule
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Example Configurations
|
|
205
|
+
|
|
206
|
+
### Web Application
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"php_categories": ["web"],
|
|
211
|
+
"php_version": "8.2",
|
|
212
|
+
"strict_types": true,
|
|
213
|
+
"static_analysis": {
|
|
214
|
+
"tool": "phpstan",
|
|
215
|
+
"level": 6
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### RESTful API
|
|
221
|
+
|
|
222
|
+
```json
|
|
223
|
+
{
|
|
224
|
+
"php_categories": ["api"],
|
|
225
|
+
"psr_standards": ["PSR-1", "PSR-12", "PSR-4", "PSR-7"],
|
|
226
|
+
"php_version": "8.2",
|
|
227
|
+
"strict_types": true,
|
|
228
|
+
"static_analysis": {
|
|
229
|
+
"tool": "phpstan",
|
|
230
|
+
"level": 8
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### WordPress Plugin
|
|
236
|
+
|
|
237
|
+
```json
|
|
238
|
+
{
|
|
239
|
+
"php_categories": ["cms"],
|
|
240
|
+
"php_version": "7.4",
|
|
241
|
+
"strict_types": false,
|
|
242
|
+
"static_analysis": {
|
|
243
|
+
"tool": "phpstan",
|
|
244
|
+
"level": 4
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### WooCommerce Extension
|
|
250
|
+
|
|
251
|
+
```json
|
|
252
|
+
{
|
|
253
|
+
"php_categories": ["cms", "ecommerce"],
|
|
254
|
+
"php_version": "7.4",
|
|
255
|
+
"strict_types": false
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### CLI Tool
|
|
260
|
+
|
|
261
|
+
```json
|
|
262
|
+
{
|
|
263
|
+
"php_categories": ["cli"],
|
|
264
|
+
"php_version": "8.2",
|
|
265
|
+
"strict_types": true,
|
|
266
|
+
"static_analysis": {
|
|
267
|
+
"tool": "phpstan",
|
|
268
|
+
"level": 8
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Legacy Migration Project
|
|
274
|
+
|
|
275
|
+
```json
|
|
276
|
+
{
|
|
277
|
+
"php_categories": ["legacy"],
|
|
278
|
+
"php_version": "7.4",
|
|
279
|
+
"strict_types": false,
|
|
280
|
+
"static_analysis": {
|
|
281
|
+
"tool": "phpstan",
|
|
282
|
+
"level": 2
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Default Configuration
|
|
290
|
+
|
|
291
|
+
If no configuration file is found, the following defaults are applied:
|
|
292
|
+
|
|
293
|
+
```json
|
|
294
|
+
{
|
|
295
|
+
"php_categories": [],
|
|
296
|
+
"psr_standards": ["PSR-1", "PSR-12", "PSR-4"],
|
|
297
|
+
"php_version": "8.0",
|
|
298
|
+
"strict_types": true,
|
|
299
|
+
"static_analysis": {
|
|
300
|
+
"tool": "phpstan",
|
|
301
|
+
"level": 5
|
|
302
|
+
},
|
|
303
|
+
"code_style": {
|
|
304
|
+
"tool": "php-cs-fixer",
|
|
305
|
+
"ruleset": "PSR-12"
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Note:** With empty `php_categories`, only universal rules are applied.
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## Validation
|
|
315
|
+
|
|
316
|
+
### Configuration Validation
|
|
317
|
+
|
|
318
|
+
The configuration file is validated on load:
|
|
319
|
+
|
|
320
|
+
- `php_categories` must be an array of valid category identifiers
|
|
321
|
+
- `php_version` must be a valid PHP version string
|
|
322
|
+
- `static_analysis.level` must be within valid range
|
|
323
|
+
- All referenced tools must be available
|
|
324
|
+
|
|
325
|
+
### Error Handling
|
|
326
|
+
|
|
327
|
+
Invalid configurations result in:
|
|
328
|
+
|
|
329
|
+
1. **Error message** describing the issue
|
|
330
|
+
2. **Fallback to defaults** for invalid options
|
|
331
|
+
3. **Log entry** in `.augment/php-config-errors.log`
|
|
332
|
+
|