@mytechtoday/augment-extensions 1.2.1 → 1.3.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/AGENTS.md +33 -1
- package/README.md +3 -3
- package/augment-extensions/domain-rules/software-architecture/README.md +143 -0
- package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -0
- package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -0
- package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -0
- package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -0
- package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -0
- package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -0
- package/augment-extensions/domain-rules/software-architecture/module.json +119 -0
- package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -0
- package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -0
- package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -0
- package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -0
- package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -0
- package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -0
- package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -0
- package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -0
- package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -0
- package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -0
- package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -0
- package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -0
- package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -0
- package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -0
- package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -0
- package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -0
- package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -0
- package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -0
- package/augment-extensions/visual-design/CHANGELOG.md +132 -0
- package/augment-extensions/visual-design/README.md +255 -0
- package/augment-extensions/visual-design/__tests__/README.md +119 -0
- package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -0
- package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -0
- package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -0
- package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -0
- package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -0
- package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -0
- package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -0
- package/augment-extensions/visual-design/domains/other/os-application.ts +156 -0
- package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -0
- package/augment-extensions/visual-design/domains/other/web-app.ts +157 -0
- package/augment-extensions/visual-design/domains/other/website.ts +161 -0
- package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -0
- package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -0
- package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -0
- package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -0
- package/augment-extensions/visual-design/examples/README.md +97 -0
- package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -0
- package/augment-extensions/visual-design/examples/basic-usage.md +216 -0
- package/augment-extensions/visual-design/examples/domain-workflows.md +257 -0
- package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -0
- package/augment-extensions/visual-design/module.json +78 -0
- package/augment-extensions/visual-design/style-selector.ts +177 -0
- package/augment-extensions/visual-design/types.ts +302 -0
- package/augment-extensions/visual-design/visual-design-core.ts +469 -0
- package/augment-extensions/workflows/adr-support/README.md +227 -0
- package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -0
- package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -0
- package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -0
- package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -0
- package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -0
- package/augment-extensions/workflows/adr-support/module.json +112 -0
- package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -0
- package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -0
- package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -0
- package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -0
- package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -0
- package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -0
- package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -0
- package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -0
- package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -0
- package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -0
- package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -0
- package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -0
- package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -0
- package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -0
- package/augment-extensions/workflows/beads/rules/workflow.md +1 -1
- package/cli/dist/utils/__tests__/adr-validator.example.d.ts +6 -0
- package/cli/dist/utils/__tests__/adr-validator.example.d.ts.map +1 -0
- package/cli/dist/utils/__tests__/adr-validator.example.js +148 -0
- package/cli/dist/utils/__tests__/adr-validator.example.js.map +1 -0
- package/cli/dist/utils/adr-validator.d.ts +65 -0
- package/cli/dist/utils/adr-validator.d.ts.map +1 -0
- package/cli/dist/utils/adr-validator.js +203 -0
- package/cli/dist/utils/adr-validator.js.map +1 -0
- package/modules.md +40 -3
- package/package.json +1 -1
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ADR Validation Module
|
|
4
|
+
* Implements validation logic for Architecture Decision Records (ADRs)
|
|
5
|
+
* Based on augment-extensions/workflows/adr-support/rules/validation-rules.md
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.isValidISO8601 = isValidISO8601;
|
|
9
|
+
exports.validateMetadata = validateMetadata;
|
|
10
|
+
exports.validateOptionalFields = validateOptionalFields;
|
|
11
|
+
exports.validateFileName = validateFileName;
|
|
12
|
+
exports.validateADRReferences = validateADRReferences;
|
|
13
|
+
exports.validateContentQuality = validateContentQuality;
|
|
14
|
+
exports.validateContext = validateContext;
|
|
15
|
+
exports.validateADR = validateADR;
|
|
16
|
+
/**
|
|
17
|
+
* Validates ISO 8601 date format (YYYY-MM-DD)
|
|
18
|
+
*/
|
|
19
|
+
function isValidISO8601(date) {
|
|
20
|
+
const iso8601Pattern = /^\d{4}-\d{2}-\d{2}$/;
|
|
21
|
+
if (!iso8601Pattern.test(date)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const parsedDate = new Date(date);
|
|
25
|
+
return parsedDate instanceof Date && !isNaN(parsedDate.getTime());
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validates required metadata fields
|
|
29
|
+
* Level 1: Structural Validation (Required)
|
|
30
|
+
*/
|
|
31
|
+
function validateMetadata(adr) {
|
|
32
|
+
const errors = [];
|
|
33
|
+
// ID validation
|
|
34
|
+
if (!adr.id) {
|
|
35
|
+
errors.push("Missing required field: id");
|
|
36
|
+
}
|
|
37
|
+
else if (!/^adr-\d{4}$/.test(adr.id)) {
|
|
38
|
+
errors.push("Invalid ID format. Must be adr-NNNN (e.g., adr-0001)");
|
|
39
|
+
}
|
|
40
|
+
// Title validation
|
|
41
|
+
if (!adr.title) {
|
|
42
|
+
errors.push("Missing required field: title");
|
|
43
|
+
}
|
|
44
|
+
else if (adr.title.length < 10 || adr.title.length > 100) {
|
|
45
|
+
errors.push("Title must be 10-100 characters");
|
|
46
|
+
}
|
|
47
|
+
// Status validation
|
|
48
|
+
const validStatuses = ['draft', 'proposed', 'approved', 'implemented', 'maintained', 'superseded', 'sunset'];
|
|
49
|
+
if (!adr.status) {
|
|
50
|
+
errors.push("Missing required field: status");
|
|
51
|
+
}
|
|
52
|
+
else if (!validStatuses.includes(adr.status)) {
|
|
53
|
+
errors.push(`Invalid status. Must be one of: ${validStatuses.join(', ')}`);
|
|
54
|
+
}
|
|
55
|
+
// Date validation
|
|
56
|
+
if (!adr.date) {
|
|
57
|
+
errors.push("Missing required field: date");
|
|
58
|
+
}
|
|
59
|
+
else if (!isValidISO8601(adr.date)) {
|
|
60
|
+
errors.push("Invalid date format. Must be ISO 8601 (YYYY-MM-DD)");
|
|
61
|
+
}
|
|
62
|
+
// Deciders validation
|
|
63
|
+
if (!adr.deciders || adr.deciders.length === 0) {
|
|
64
|
+
errors.push("At least one decider must be specified");
|
|
65
|
+
}
|
|
66
|
+
return { valid: errors.length === 0, errors };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Validates optional metadata fields
|
|
70
|
+
* Level 2: Content Validation (Warning)
|
|
71
|
+
*/
|
|
72
|
+
function validateOptionalFields(adr) {
|
|
73
|
+
const warnings = [];
|
|
74
|
+
// Tags validation
|
|
75
|
+
if (adr.tags && !Array.isArray(adr.tags)) {
|
|
76
|
+
warnings.push("Tags must be an array");
|
|
77
|
+
}
|
|
78
|
+
// Supersedes validation
|
|
79
|
+
if (adr.supersedes) {
|
|
80
|
+
if (!Array.isArray(adr.supersedes)) {
|
|
81
|
+
warnings.push("Supersedes must be an array");
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
adr.supersedes.forEach(id => {
|
|
85
|
+
if (!/^adr-\d{4}$/.test(id)) {
|
|
86
|
+
warnings.push(`Invalid ADR ID in supersedes: ${id}`);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Superseded_by validation
|
|
92
|
+
if (adr.superseded_by && !/^adr-\d{4}$/.test(adr.superseded_by)) {
|
|
93
|
+
warnings.push(`Invalid ADR ID in superseded_by: ${adr.superseded_by}`);
|
|
94
|
+
}
|
|
95
|
+
return { valid: warnings.length === 0, warnings };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Validates file naming convention
|
|
99
|
+
* Format: adr/NNNN-brief-title.md
|
|
100
|
+
*/
|
|
101
|
+
function validateFileName(filePath) {
|
|
102
|
+
const errors = [];
|
|
103
|
+
const pattern = /^adr\/\d{4}-[a-z0-9-]+\.md$/;
|
|
104
|
+
if (!pattern.test(filePath)) {
|
|
105
|
+
errors.push("Invalid file name. Must be adr/NNNN-brief-title.md");
|
|
106
|
+
}
|
|
107
|
+
return { valid: errors.length === 0, errors };
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Validates ADR references
|
|
111
|
+
* Level 3: Reference Validation (Warning)
|
|
112
|
+
*/
|
|
113
|
+
function validateADRReferences(adr, allADRs) {
|
|
114
|
+
const warnings = [];
|
|
115
|
+
const adrIds = new Set(allADRs.map(a => a.id));
|
|
116
|
+
// Validate supersedes references
|
|
117
|
+
if (adr.supersedes) {
|
|
118
|
+
adr.supersedes.forEach(id => {
|
|
119
|
+
if (!adrIds.has(id)) {
|
|
120
|
+
warnings.push(`Referenced ADR does not exist: ${id}`);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// Validate superseded_by reference
|
|
125
|
+
if (adr.superseded_by && !adrIds.has(adr.superseded_by)) {
|
|
126
|
+
warnings.push(`Referenced ADR does not exist: ${adr.superseded_by}`);
|
|
127
|
+
}
|
|
128
|
+
// Validate related_decisions
|
|
129
|
+
if (adr.related_decisions) {
|
|
130
|
+
adr.related_decisions.forEach(id => {
|
|
131
|
+
if (!adrIds.has(id)) {
|
|
132
|
+
warnings.push(`Related ADR does not exist: ${id}`);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return { valid: warnings.length === 0, warnings };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Validates content quality
|
|
140
|
+
* Checks for placeholder text and minimum content length
|
|
141
|
+
*/
|
|
142
|
+
function validateContentQuality(content) {
|
|
143
|
+
const warnings = [];
|
|
144
|
+
// Check for placeholder text
|
|
145
|
+
const placeholders = ['TODO', 'TBD', 'FIXME', 'XXX', '[Insert', 'Lorem ipsum'];
|
|
146
|
+
placeholders.forEach(placeholder => {
|
|
147
|
+
if (content.includes(placeholder)) {
|
|
148
|
+
warnings.push(`Contains placeholder text: ${placeholder}`);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
return { valid: warnings.length === 0, warnings };
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Validates context section content
|
|
155
|
+
* Ensures context explains "why" not "how"
|
|
156
|
+
*/
|
|
157
|
+
function validateContext(context) {
|
|
158
|
+
const warnings = [];
|
|
159
|
+
// Should contain problem statement
|
|
160
|
+
const problemIndicators = ['problem', 'issue', 'challenge', 'need', 'requirement'];
|
|
161
|
+
const hasProblem = problemIndicators.some(word => context.toLowerCase().includes(word));
|
|
162
|
+
if (!hasProblem) {
|
|
163
|
+
warnings.push("Context should clearly state the problem or need");
|
|
164
|
+
}
|
|
165
|
+
// Should not be too implementation-focused
|
|
166
|
+
const implDetails = ['function', 'class', 'variable', 'line', 'file'];
|
|
167
|
+
const tooDetailed = implDetails.filter(word => context.toLowerCase().includes(word)).length > 2;
|
|
168
|
+
if (tooDetailed) {
|
|
169
|
+
warnings.push("Context contains too many implementation details. Focus on 'why' not 'how'");
|
|
170
|
+
}
|
|
171
|
+
return { valid: warnings.length === 0, warnings };
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Comprehensive ADR validation
|
|
175
|
+
* Runs all validation checks and aggregates results
|
|
176
|
+
*/
|
|
177
|
+
function validateADR(adr, allADRs = []) {
|
|
178
|
+
const errors = [];
|
|
179
|
+
const warnings = [];
|
|
180
|
+
// Level 1: Structural validation (required)
|
|
181
|
+
const metadataResult = validateMetadata(adr);
|
|
182
|
+
if (metadataResult.errors) {
|
|
183
|
+
errors.push(...metadataResult.errors);
|
|
184
|
+
}
|
|
185
|
+
// Level 2: Content validation (warnings)
|
|
186
|
+
const optionalResult = validateOptionalFields(adr);
|
|
187
|
+
if (optionalResult.warnings) {
|
|
188
|
+
warnings.push(...optionalResult.warnings);
|
|
189
|
+
}
|
|
190
|
+
// Level 3: Reference validation (warnings)
|
|
191
|
+
if (allADRs.length > 0) {
|
|
192
|
+
const refResult = validateADRReferences(adr, allADRs);
|
|
193
|
+
if (refResult.warnings) {
|
|
194
|
+
warnings.push(...refResult.warnings);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
valid: errors.length === 0,
|
|
199
|
+
errors: errors.length > 0 ? errors : undefined,
|
|
200
|
+
warnings: warnings.length > 0 ? warnings : undefined
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=adr-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adr-validator.js","sourceRoot":"","sources":["../../src/utils/adr-validator.ts"],"names":[],"mappings":"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"}
|
package/modules.md
CHANGED
|
@@ -395,6 +395,43 @@ augx link domain-rules/security
|
|
|
395
395
|
augx link domain-rules/seo-sales-marketing
|
|
396
396
|
```
|
|
397
397
|
|
|
398
|
+
### Software Architecture Design
|
|
399
|
+
- **Module**: `domain-rules/software-architecture`
|
|
400
|
+
- **Version**: 1.0.0
|
|
401
|
+
- **Character Count**: 508,000
|
|
402
|
+
- **Description**: Comprehensive software architecture design patterns, principles, and best practices covering monolithic, microservices, event-driven, serverless, and industry-specific architectures
|
|
403
|
+
- **Contents**:
|
|
404
|
+
- **Fundamentals**: Core architectural elements (ISO/IEC 42010), definitions and terminology, architectural views (4+1 model), quality attributes
|
|
405
|
+
- **Principles**: Modularity, separation of concerns, coupling, cohesion, SOLID principles, DRY, KISS
|
|
406
|
+
- **Architecture Patterns**:
|
|
407
|
+
- Monolithic architecture patterns and modular monoliths
|
|
408
|
+
- Microservices patterns, service discovery, API gateways, distributed systems
|
|
409
|
+
- Event-driven architecture, pub/sub, CQRS, event sourcing, saga pattern
|
|
410
|
+
- Serverless patterns, FaaS, stateless functions, cloud-native
|
|
411
|
+
- Layered architecture, MVC, hexagonal architecture, pipe-and-filter
|
|
412
|
+
- **Quality Attributes**: Performance, reliability, maintainability, scalability, security
|
|
413
|
+
- **Security Architecture**: Threat modeling, zero-trust, RBAC, defense in depth (OWASP)
|
|
414
|
+
- **Scalability & Performance**: Horizontal/vertical scaling, caching strategies, load balancing, database sharding
|
|
415
|
+
- **Best Practices**:
|
|
416
|
+
- Tools and methodologies (TOGAF, CI/CD, DDD frameworks)
|
|
417
|
+
- Modeling and documentation (4+1 views, UML, C4 model, ADRs)
|
|
418
|
+
- Evaluation and testing (ATAM, chaos engineering, architecture reviews)
|
|
419
|
+
- **Specialized Architectures**: IoT, AI/ML systems, blockchain, edge computing
|
|
420
|
+
- **Migration & Challenges**: Strangler Fig Pattern, technical debt management, monolith-to-microservices migration
|
|
421
|
+
- **Skills Development**: Technical and soft skills for architects
|
|
422
|
+
- **Examples**:
|
|
423
|
+
- E-commerce microservices platform
|
|
424
|
+
- IoT event-driven sensor network
|
|
425
|
+
- Stock trading event-driven system
|
|
426
|
+
- Serverless image processing pipeline
|
|
427
|
+
- Banking layered architecture application
|
|
428
|
+
- Monolith-to-microservices migration strategy
|
|
429
|
+
|
|
430
|
+
**Usage**:
|
|
431
|
+
```bash
|
|
432
|
+
augx link domain-rules/software-architecture
|
|
433
|
+
```
|
|
434
|
+
|
|
398
435
|
### WordPress Development Standards
|
|
399
436
|
- **Module**: `domain-rules/wordpress`
|
|
400
437
|
- **Version**: 1.0.0
|
|
@@ -657,11 +694,11 @@ augx mcp wrap github-mcp search-repos github-search --category retrieval
|
|
|
657
694
|
|
|
658
695
|
## Statistics
|
|
659
696
|
|
|
660
|
-
- **Total Modules**:
|
|
697
|
+
- **Total Modules**: 20
|
|
661
698
|
- **Coding Standards**: 5
|
|
662
699
|
- **Writing Standards**: 1
|
|
663
|
-
- **Domain Rules**:
|
|
700
|
+
- **Domain Rules**: 6
|
|
664
701
|
- **Workflows**: 2
|
|
665
702
|
- **Examples**: 4
|
|
666
703
|
- **Total Skills**: 4
|
|
667
|
-
- **Total Character Count**: ~
|
|
704
|
+
- **Total Character Count**: ~2,446,192
|