agile-context-engineering 0.3.0 → 0.5.1
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/.claude-plugin/marketplace.json +18 -0
- package/.claude-plugin/plugin.json +10 -0
- package/CHANGELOG.md +7 -1
- package/LICENSE +51 -51
- package/README.md +330 -318
- package/agents/ace-code-discovery-analyst.md +245 -245
- package/agents/ace-code-integration-analyst.md +248 -248
- package/agents/ace-code-reviewer.md +375 -375
- package/agents/ace-product-owner.md +365 -361
- package/agents/ace-project-researcher.md +606 -606
- package/agents/ace-research-synthesizer.md +228 -228
- package/agents/ace-technical-application-architect.md +315 -315
- package/agents/ace-wiki-mapper.md +449 -445
- package/bin/install.js +605 -195
- package/hooks/ace-check-update.js +71 -62
- package/hooks/ace-statusline.js +107 -89
- package/hooks/hooks.json +14 -0
- package/package.json +7 -5
- package/shared/lib/ace-core.js +361 -0
- package/shared/lib/ace-core.test.js +308 -0
- package/shared/lib/ace-github.js +753 -0
- package/shared/lib/ace-story.js +400 -0
- package/shared/lib/ace-story.test.js +250 -0
- package/{agile-context-engineering → shared}/utils/questioning.xml +110 -110
- package/{agile-context-engineering → shared}/utils/ui-formatting.md +299 -299
- package/{commands/ace/execute-story.md → skills/execute-story/SKILL.md} +116 -138
- package/skills/execute-story/script.js +291 -0
- package/skills/execute-story/script.test.js +261 -0
- package/{agile-context-engineering/templates/product/story.xml → skills/execute-story/story-template.xml} +451 -451
- package/skills/execute-story/walkthrough-template.xml +255 -0
- package/{agile-context-engineering/workflows/execute-story.xml → skills/execute-story/workflow.xml} +1221 -1219
- package/skills/help/SKILL.md +71 -0
- package/skills/help/script.js +315 -0
- package/skills/help/script.test.js +183 -0
- package/{agile-context-engineering/workflows/help.xml → skills/help/workflow.xml} +544 -533
- package/{commands/ace/init-coding-standards.md → skills/init-coding-standards/SKILL.md} +91 -83
- package/{agile-context-engineering/templates/wiki/coding-standards.xml → skills/init-coding-standards/coding-standards-template.xml} +531 -531
- package/skills/init-coding-standards/script.js +50 -0
- package/skills/init-coding-standards/script.test.js +70 -0
- package/{agile-context-engineering/workflows/init-coding-standards.xml → skills/init-coding-standards/workflow.xml} +381 -386
- package/skills/map-cross-cutting/SKILL.md +126 -0
- package/{agile-context-engineering/templates/wiki → skills/map-cross-cutting}/system-cross-cutting.xml +197 -197
- package/skills/map-cross-cutting/workflow.xml +330 -0
- package/skills/map-guide/SKILL.md +126 -0
- package/{agile-context-engineering/templates/wiki → skills/map-guide}/guide.xml +137 -137
- package/skills/map-guide/workflow.xml +320 -0
- package/skills/map-pattern/SKILL.md +125 -0
- package/{agile-context-engineering/templates/wiki → skills/map-pattern}/pattern.xml +159 -159
- package/skills/map-pattern/workflow.xml +331 -0
- package/{commands/ace/map-story.md → skills/map-story/SKILL.md} +180 -165
- package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/decizions.xml +115 -115
- package/skills/map-story/templates/guide.xml +137 -0
- package/skills/map-story/templates/pattern.xml +159 -0
- package/skills/map-story/templates/system-cross-cutting.xml +197 -0
- package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/system.xml +381 -381
- package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/tech-debt-index.xml +125 -125
- package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/walkthrough.xml +255 -255
- package/{agile-context-engineering/workflows/map-story.xml → skills/map-story/workflow.xml} +1046 -1046
- package/{commands/ace/map-subsystem.md → skills/map-subsystem/SKILL.md} +155 -140
- package/skills/map-subsystem/script.js +51 -0
- package/skills/map-subsystem/script.test.js +68 -0
- package/skills/map-subsystem/templates/decizions.xml +115 -0
- package/skills/map-subsystem/templates/guide.xml +137 -0
- package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/module-discovery.xml +174 -174
- package/skills/map-subsystem/templates/pattern.xml +159 -0
- package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-architecture.xml +343 -343
- package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-structure.xml +234 -234
- package/skills/map-subsystem/templates/system-cross-cutting.xml +197 -0
- package/skills/map-subsystem/templates/system.xml +381 -0
- package/skills/map-subsystem/templates/walkthrough.xml +255 -0
- package/{agile-context-engineering/workflows/map-subsystem.xml → skills/map-subsystem/workflow.xml} +1173 -1178
- package/skills/map-sys-doc/SKILL.md +125 -0
- package/skills/map-sys-doc/system.xml +381 -0
- package/skills/map-sys-doc/workflow.xml +336 -0
- package/{commands/ace/map-system.md → skills/map-system/SKILL.md} +103 -92
- package/skills/map-system/script.js +75 -0
- package/skills/map-system/script.test.js +73 -0
- package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-architecture.xml +254 -254
- package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-structure.xml +177 -177
- package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/testing-framework.xml +283 -283
- package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/wiki-readme.xml +296 -296
- package/{agile-context-engineering/workflows/map-system.xml → skills/map-system/workflow.xml} +667 -672
- package/{commands/ace/map-walkthrough.md → skills/map-walkthrough/SKILL.md} +140 -127
- package/skills/map-walkthrough/walkthrough.xml +255 -0
- package/{agile-context-engineering/workflows/map-walkthrough.xml → skills/map-walkthrough/workflow.xml} +457 -457
- package/{commands/ace/plan-backlog.md → skills/plan-backlog/SKILL.md} +93 -83
- package/{agile-context-engineering/templates/product/product-backlog.xml → skills/plan-backlog/product-backlog-template.xml} +231 -231
- package/skills/plan-backlog/script.js +121 -0
- package/skills/plan-backlog/script.test.js +83 -0
- package/{agile-context-engineering/workflows/plan-backlog.xml → skills/plan-backlog/workflow.xml} +1348 -1356
- package/{commands/ace/plan-feature.md → skills/plan-feature/SKILL.md} +99 -89
- package/{agile-context-engineering/templates/product/feature.xml → skills/plan-feature/feature-template.xml} +361 -361
- package/skills/plan-feature/script.js +131 -0
- package/skills/plan-feature/script.test.js +80 -0
- package/{agile-context-engineering/workflows/plan-feature.xml → skills/plan-feature/workflow.xml} +1487 -1495
- package/{commands/ace/plan-product-vision.md → skills/plan-product-vision/SKILL.md} +91 -81
- package/{agile-context-engineering/templates/product/product-vision.xml → skills/plan-product-vision/product-vision-template.xml} +227 -227
- package/skills/plan-product-vision/script.js +51 -0
- package/skills/plan-product-vision/script.test.js +69 -0
- package/{agile-context-engineering/workflows/plan-product-vision.xml → skills/plan-product-vision/workflow.xml} +337 -342
- package/{commands/ace/plan-story.md → skills/plan-story/SKILL.md} +139 -159
- package/skills/plan-story/script.js +295 -0
- package/skills/plan-story/script.test.js +240 -0
- package/skills/plan-story/story-template.xml +458 -0
- package/{agile-context-engineering/workflows/plan-story.xml → skills/plan-story/workflow.xml} +1301 -944
- package/{commands/ace/research-external-solution.md → skills/research-external-solution/SKILL.md} +120 -138
- package/{agile-context-engineering/templates/product/external-solution.xml → skills/research-external-solution/external-solution-template.xml} +832 -832
- package/skills/research-external-solution/script.js +229 -0
- package/skills/research-external-solution/script.test.js +134 -0
- package/{agile-context-engineering/workflows/research-external-solution.xml → skills/research-external-solution/workflow.xml} +657 -659
- package/{commands/ace/research-integration-solution.md → skills/research-integration-solution/SKILL.md} +121 -135
- package/{agile-context-engineering/templates/product/story-integration-solution.xml → skills/research-integration-solution/integration-solution-template.xml} +1015 -1015
- package/skills/research-integration-solution/script.js +223 -0
- package/skills/research-integration-solution/script.test.js +134 -0
- package/{agile-context-engineering/workflows/research-integration-solution.xml → skills/research-integration-solution/workflow.xml} +711 -713
- package/{commands/ace/research-story-wiki.md → skills/research-story-wiki/SKILL.md} +101 -116
- package/skills/research-story-wiki/script.js +223 -0
- package/skills/research-story-wiki/script.test.js +138 -0
- package/{agile-context-engineering/templates/product/story-wiki.xml → skills/research-story-wiki/story-wiki-template.xml} +194 -194
- package/{agile-context-engineering/workflows/research-story-wiki.xml → skills/research-story-wiki/workflow.xml} +473 -475
- package/{commands/ace/research-technical-solution.md → skills/research-technical-solution/SKILL.md} +131 -147
- package/skills/research-technical-solution/script.js +223 -0
- package/skills/research-technical-solution/script.test.js +134 -0
- package/{agile-context-engineering/templates/product/story-technical-solution.xml → skills/research-technical-solution/technical-solution-template.xml} +1025 -1025
- package/{agile-context-engineering/workflows/research-technical-solution.xml → skills/research-technical-solution/workflow.xml} +761 -763
- package/{commands/ace/review-story.md → skills/review-story/SKILL.md} +99 -109
- package/skills/review-story/script.js +249 -0
- package/skills/review-story/script.test.js +169 -0
- package/skills/review-story/story-template.xml +451 -0
- package/{agile-context-engineering/workflows/review-story.xml → skills/review-story/workflow.xml} +279 -281
- package/{commands/ace/update.md → skills/update/SKILL.md} +65 -56
- package/{agile-context-engineering/workflows/update.xml → skills/update/workflow.xml} +33 -18
- package/agile-context-engineering/src/ace-tools.js +0 -2881
- package/agile-context-engineering/src/ace-tools.test.js +0 -1089
- package/agile-context-engineering/templates/_command.md +0 -54
- package/agile-context-engineering/templates/_workflow.xml +0 -17
- package/agile-context-engineering/templates/config.json +0 -0
- package/agile-context-engineering/templates/product/integration-solution.xml +0 -0
- package/commands/ace/help.md +0 -93
|
@@ -1,178 +1,178 @@
|
|
|
1
|
-
<system-structure>
|
|
2
|
-
<purpose>
|
|
3
|
-
Template for `.docs/wiki/system-wide/system-structure.md` — the physical file organization
|
|
4
|
-
at the system level. Answers "what subsystems exist and where do they live?"
|
|
5
|
-
|
|
6
|
-
Complements system-architecture.md (which shows conceptual design and flows).
|
|
7
|
-
Complements per-subsystem structure docs (which go deep into each subsystem's internals).
|
|
8
|
-
|
|
9
|
-
A "subsystem" is any cohesive code unit with a clear responsibility boundary —
|
|
10
|
-
whether deployed as a microservice, a monolith module, or a library package.
|
|
11
|
-
|
|
12
|
-
**Monoliths have subsystems too.** A monolith with bounded contexts, feature modules,
|
|
13
|
-
or domain packages gets one subsystem-structure doc per module — same as microservices.
|
|
14
|
-
The only difference is deployment topology, not documentation structure.
|
|
15
|
-
</purpose>
|
|
16
|
-
|
|
17
|
-
<template>
|
|
18
|
-
<directory-layout>
|
|
19
|
-
## Directory Layout
|
|
20
|
-
|
|
21
|
-
[ASCII box-drawing tree of directories with purpose - use ├── └── │ characters for tree structure only]
|
|
22
|
-
|
|
23
|
-
Show enough depth to identify subsystems and shared code, but stop at subsystem
|
|
24
|
-
boundaries — internal detail belongs in per-subsystem docs.
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
[project-root]/
|
|
28
|
-
├── [dir]/ # [Purpose]
|
|
29
|
-
├── [dir]/ # [Purpose]
|
|
30
|
-
│ ├── [subdir]/ # [Purpose]
|
|
31
|
-
│ └── [subdir]/ # [Purpose]
|
|
32
|
-
├── [dir]/ # [Purpose]
|
|
33
|
-
└── [file] # [Purpose]
|
|
34
|
-
```
|
|
35
|
-
</directory-layout>
|
|
36
|
-
|
|
37
|
-
<subsystem-index>
|
|
38
|
-
## Subsystem Index
|
|
39
|
-
|
|
40
|
-
Quick reference — which directory is which subsystem.
|
|
41
|
-
|
|
42
|
-
| Directory | Subsystem | Purpose |
|
|
43
|
-
|-----------|-----------|---------|
|
|
44
|
-
| `[path]` | [Subsystem Name] | [One-line responsibility] |
|
|
45
|
-
| `[path]` | [Subsystem Name] | [One-line responsibility] |
|
|
46
|
-
|
|
47
|
-
Per-subsystem structure docs: `.docs/wiki/subsystems/[subsystem-name]/structure.md`
|
|
48
|
-
</subsystem-index>
|
|
49
|
-
|
|
50
|
-
<shared-directories>
|
|
51
|
-
## Shared Directories
|
|
52
|
-
|
|
53
|
-
Code, libraries, or infrastructure that spans multiple subsystems.
|
|
54
|
-
|
|
55
|
-
**[Directory Name]:**
|
|
56
|
-
- Path: `[path]`
|
|
57
|
-
- Purpose: [What it provides across subsystems]
|
|
58
|
-
- Contains: [Types of files]
|
|
59
|
-
- Used by: [Which subsystems depend on it]
|
|
60
|
-
|
|
61
|
-
**[Directory Name]:**
|
|
62
|
-
- Path: `[path]`
|
|
63
|
-
- Purpose: [What it provides]
|
|
64
|
-
- Contains: [Types of files]
|
|
65
|
-
- Used by: [Which subsystems]
|
|
66
|
-
</shared-directories>
|
|
67
|
-
|
|
68
|
-
<root-configuration>
|
|
69
|
-
## Root Configuration
|
|
70
|
-
|
|
71
|
-
Build configs, workspace setup, and infrastructure files at the project root.
|
|
72
|
-
|
|
73
|
-
**Workspace / Monorepo:**
|
|
74
|
-
- [Tool]: `[config file]` — [What it configures]
|
|
75
|
-
|
|
76
|
-
**Build / Dev:**
|
|
77
|
-
- `[path]`: [Purpose]
|
|
78
|
-
- `[path]`: [Purpose]
|
|
79
|
-
|
|
80
|
-
**CI/CD:**
|
|
81
|
-
- `[path]`: [Purpose]
|
|
82
|
-
|
|
83
|
-
**Environment:**
|
|
84
|
-
- `[path]`: [Purpose — e.g., "env template, actual values not committed"]
|
|
85
|
-
</root-configuration>
|
|
86
|
-
|
|
87
|
-
<naming-conventions>
|
|
88
|
-
## System-Wide Naming Conventions
|
|
89
|
-
|
|
90
|
-
Patterns that apply across all subsystems.
|
|
91
|
-
|
|
92
|
-
**Directories:**
|
|
93
|
-
- [Pattern]: [Example]
|
|
94
|
-
|
|
95
|
-
**Files:**
|
|
96
|
-
- [Pattern]: [Example]
|
|
97
|
-
|
|
98
|
-
**Special Patterns:**
|
|
99
|
-
- [Pattern]: [Example]
|
|
100
|
-
</naming-conventions>
|
|
101
|
-
|
|
102
|
-
<special-directories>
|
|
103
|
-
## Special Directories
|
|
104
|
-
|
|
105
|
-
Directories with special meaning — generated, build output, tooling.
|
|
106
|
-
|
|
107
|
-
**[Directory]:**
|
|
108
|
-
- Path: `[path]`
|
|
109
|
-
- Purpose: [e.g., "Build output", "Generated code", "Package cache"]
|
|
110
|
-
- Source: [e.g., "Auto-generated by X", "Build artifacts"]
|
|
111
|
-
- Committed: [Yes/No]
|
|
112
|
-
</special-directories>
|
|
113
|
-
</template>
|
|
114
|
-
|
|
115
|
-
<guidelines>
|
|
116
|
-
|
|
117
|
-
**Directory Layout:**
|
|
118
|
-
- Go deep enough to show where subsystems and shared code live, but stop at subsystem
|
|
119
|
-
boundaries. Internal subsystem structure belongs in per-subsystem docs
|
|
120
|
-
- Every directory gets a `# Purpose` comment
|
|
121
|
-
- Use ASCII box-drawing characters: `├── └── │`
|
|
122
|
-
- Do NOT list individual files except at root level (package.json, README, etc.)
|
|
123
|
-
|
|
124
|
-
**Subsystem Index:**
|
|
125
|
-
- One row per subsystem. This is the first thing agents scan
|
|
126
|
-
- Path should point to the subsystem root directory
|
|
127
|
-
- Purpose must be one line — if you need more, it goes in the subsystem doc
|
|
128
|
-
- Link to per-subsystem docs so agents know where to find detail
|
|
129
|
-
|
|
130
|
-
**Identifying subsystems by project type:**
|
|
131
|
-
- Microservices: each service directory = one subsystem
|
|
132
|
-
- Monolith modules: each bounded context / feature module = one subsystem
|
|
133
|
-
- Monorepo packages: each publishable package = one subsystem
|
|
134
|
-
- Hybrid: mix of all three — anything with a clear responsibility boundary
|
|
135
|
-
|
|
136
|
-
**Monolith examples:**
|
|
137
|
-
- Django app with `users/`, `orders/`, `payments/` apps → 3 subsystems
|
|
138
|
-
- .NET solution with `Auth.Module`, `Billing.Module`, `Notifications.Module` → 3 subsystems
|
|
139
|
-
- Express app with `src/features/auth/`, `src/features/checkout/` → 2 subsystems
|
|
140
|
-
- Small CLI tool with no clear modules → 1 subsystem (the whole app)
|
|
141
|
-
|
|
142
|
-
**Shared Directories:**
|
|
143
|
-
- Only list directories used by 2+ subsystems
|
|
144
|
-
- Common examples: shared libraries, generated clients, design tokens, DB migrations
|
|
145
|
-
- If a "shared" dir is only used by one subsystem, it belongs in that subsystem's doc
|
|
146
|
-
|
|
147
|
-
**Root Configuration:**
|
|
148
|
-
- Focus on files a developer needs to know about when setting up or building
|
|
149
|
-
- DO NOT list every dotfile. Focus on the ones that matter
|
|
150
|
-
- NEVER include contents of .env files — note existence only
|
|
151
|
-
|
|
152
|
-
**What does NOT belong here:**
|
|
153
|
-
- Conceptual architecture (that's system-architecture.md)
|
|
154
|
-
- Internal subsystem structure (that's subsystem-structure docs)
|
|
155
|
-
- Technology stack details (that's system-architecture.md tech-stack section)
|
|
156
|
-
- Code conventions (that's a separate conventions doc)
|
|
157
|
-
|
|
158
|
-
</guidelines>
|
|
159
|
-
|
|
160
|
-
<evolution>
|
|
161
|
-
|
|
162
|
-
Update when the physical organization of the system changes.
|
|
163
|
-
|
|
164
|
-
**Update triggers:**
|
|
165
|
-
- New subsystem added (new service, new module, new package)
|
|
166
|
-
- Subsystem removed, split, or merged
|
|
167
|
-
- Shared directory added or removed
|
|
168
|
-
- Workspace/monorepo configuration changed
|
|
169
|
-
- Root-level config files added or removed
|
|
170
|
-
|
|
171
|
-
**NOT an update trigger:**
|
|
172
|
-
- New files within an existing subsystem (per-subsystem docs)
|
|
173
|
-
- New features within existing structure
|
|
174
|
-
- Internal refactoring that doesn't change directory layout
|
|
175
|
-
|
|
176
|
-
</evolution>
|
|
177
|
-
|
|
1
|
+
<system-structure>
|
|
2
|
+
<purpose>
|
|
3
|
+
Template for `.docs/wiki/system-wide/system-structure.md` — the physical file organization
|
|
4
|
+
at the system level. Answers "what subsystems exist and where do they live?"
|
|
5
|
+
|
|
6
|
+
Complements system-architecture.md (which shows conceptual design and flows).
|
|
7
|
+
Complements per-subsystem structure docs (which go deep into each subsystem's internals).
|
|
8
|
+
|
|
9
|
+
A "subsystem" is any cohesive code unit with a clear responsibility boundary —
|
|
10
|
+
whether deployed as a microservice, a monolith module, or a library package.
|
|
11
|
+
|
|
12
|
+
**Monoliths have subsystems too.** A monolith with bounded contexts, feature modules,
|
|
13
|
+
or domain packages gets one subsystem-structure doc per module — same as microservices.
|
|
14
|
+
The only difference is deployment topology, not documentation structure.
|
|
15
|
+
</purpose>
|
|
16
|
+
|
|
17
|
+
<template>
|
|
18
|
+
<directory-layout>
|
|
19
|
+
## Directory Layout
|
|
20
|
+
|
|
21
|
+
[ASCII box-drawing tree of directories with purpose - use ├── └── │ characters for tree structure only]
|
|
22
|
+
|
|
23
|
+
Show enough depth to identify subsystems and shared code, but stop at subsystem
|
|
24
|
+
boundaries — internal detail belongs in per-subsystem docs.
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
[project-root]/
|
|
28
|
+
├── [dir]/ # [Purpose]
|
|
29
|
+
├── [dir]/ # [Purpose]
|
|
30
|
+
│ ├── [subdir]/ # [Purpose]
|
|
31
|
+
│ └── [subdir]/ # [Purpose]
|
|
32
|
+
├── [dir]/ # [Purpose]
|
|
33
|
+
└── [file] # [Purpose]
|
|
34
|
+
```
|
|
35
|
+
</directory-layout>
|
|
36
|
+
|
|
37
|
+
<subsystem-index>
|
|
38
|
+
## Subsystem Index
|
|
39
|
+
|
|
40
|
+
Quick reference — which directory is which subsystem.
|
|
41
|
+
|
|
42
|
+
| Directory | Subsystem | Purpose |
|
|
43
|
+
|-----------|-----------|---------|
|
|
44
|
+
| `[path]` | [Subsystem Name] | [One-line responsibility] |
|
|
45
|
+
| `[path]` | [Subsystem Name] | [One-line responsibility] |
|
|
46
|
+
|
|
47
|
+
Per-subsystem structure docs: `.docs/wiki/subsystems/[subsystem-name]/structure.md`
|
|
48
|
+
</subsystem-index>
|
|
49
|
+
|
|
50
|
+
<shared-directories>
|
|
51
|
+
## Shared Directories
|
|
52
|
+
|
|
53
|
+
Code, libraries, or infrastructure that spans multiple subsystems.
|
|
54
|
+
|
|
55
|
+
**[Directory Name]:**
|
|
56
|
+
- Path: `[path]`
|
|
57
|
+
- Purpose: [What it provides across subsystems]
|
|
58
|
+
- Contains: [Types of files]
|
|
59
|
+
- Used by: [Which subsystems depend on it]
|
|
60
|
+
|
|
61
|
+
**[Directory Name]:**
|
|
62
|
+
- Path: `[path]`
|
|
63
|
+
- Purpose: [What it provides]
|
|
64
|
+
- Contains: [Types of files]
|
|
65
|
+
- Used by: [Which subsystems]
|
|
66
|
+
</shared-directories>
|
|
67
|
+
|
|
68
|
+
<root-configuration>
|
|
69
|
+
## Root Configuration
|
|
70
|
+
|
|
71
|
+
Build configs, workspace setup, and infrastructure files at the project root.
|
|
72
|
+
|
|
73
|
+
**Workspace / Monorepo:**
|
|
74
|
+
- [Tool]: `[config file]` — [What it configures]
|
|
75
|
+
|
|
76
|
+
**Build / Dev:**
|
|
77
|
+
- `[path]`: [Purpose]
|
|
78
|
+
- `[path]`: [Purpose]
|
|
79
|
+
|
|
80
|
+
**CI/CD:**
|
|
81
|
+
- `[path]`: [Purpose]
|
|
82
|
+
|
|
83
|
+
**Environment:**
|
|
84
|
+
- `[path]`: [Purpose — e.g., "env template, actual values not committed"]
|
|
85
|
+
</root-configuration>
|
|
86
|
+
|
|
87
|
+
<naming-conventions>
|
|
88
|
+
## System-Wide Naming Conventions
|
|
89
|
+
|
|
90
|
+
Patterns that apply across all subsystems.
|
|
91
|
+
|
|
92
|
+
**Directories:**
|
|
93
|
+
- [Pattern]: [Example]
|
|
94
|
+
|
|
95
|
+
**Files:**
|
|
96
|
+
- [Pattern]: [Example]
|
|
97
|
+
|
|
98
|
+
**Special Patterns:**
|
|
99
|
+
- [Pattern]: [Example]
|
|
100
|
+
</naming-conventions>
|
|
101
|
+
|
|
102
|
+
<special-directories>
|
|
103
|
+
## Special Directories
|
|
104
|
+
|
|
105
|
+
Directories with special meaning — generated, build output, tooling.
|
|
106
|
+
|
|
107
|
+
**[Directory]:**
|
|
108
|
+
- Path: `[path]`
|
|
109
|
+
- Purpose: [e.g., "Build output", "Generated code", "Package cache"]
|
|
110
|
+
- Source: [e.g., "Auto-generated by X", "Build artifacts"]
|
|
111
|
+
- Committed: [Yes/No]
|
|
112
|
+
</special-directories>
|
|
113
|
+
</template>
|
|
114
|
+
|
|
115
|
+
<guidelines>
|
|
116
|
+
|
|
117
|
+
**Directory Layout:**
|
|
118
|
+
- Go deep enough to show where subsystems and shared code live, but stop at subsystem
|
|
119
|
+
boundaries. Internal subsystem structure belongs in per-subsystem docs
|
|
120
|
+
- Every directory gets a `# Purpose` comment
|
|
121
|
+
- Use ASCII box-drawing characters: `├── └── │`
|
|
122
|
+
- Do NOT list individual files except at root level (package.json, README, etc.)
|
|
123
|
+
|
|
124
|
+
**Subsystem Index:**
|
|
125
|
+
- One row per subsystem. This is the first thing agents scan
|
|
126
|
+
- Path should point to the subsystem root directory
|
|
127
|
+
- Purpose must be one line — if you need more, it goes in the subsystem doc
|
|
128
|
+
- Link to per-subsystem docs so agents know where to find detail
|
|
129
|
+
|
|
130
|
+
**Identifying subsystems by project type:**
|
|
131
|
+
- Microservices: each service directory = one subsystem
|
|
132
|
+
- Monolith modules: each bounded context / feature module = one subsystem
|
|
133
|
+
- Monorepo packages: each publishable package = one subsystem
|
|
134
|
+
- Hybrid: mix of all three — anything with a clear responsibility boundary
|
|
135
|
+
|
|
136
|
+
**Monolith examples:**
|
|
137
|
+
- Django app with `users/`, `orders/`, `payments/` apps → 3 subsystems
|
|
138
|
+
- .NET solution with `Auth.Module`, `Billing.Module`, `Notifications.Module` → 3 subsystems
|
|
139
|
+
- Express app with `src/features/auth/`, `src/features/checkout/` → 2 subsystems
|
|
140
|
+
- Small CLI tool with no clear modules → 1 subsystem (the whole app)
|
|
141
|
+
|
|
142
|
+
**Shared Directories:**
|
|
143
|
+
- Only list directories used by 2+ subsystems
|
|
144
|
+
- Common examples: shared libraries, generated clients, design tokens, DB migrations
|
|
145
|
+
- If a "shared" dir is only used by one subsystem, it belongs in that subsystem's doc
|
|
146
|
+
|
|
147
|
+
**Root Configuration:**
|
|
148
|
+
- Focus on files a developer needs to know about when setting up or building
|
|
149
|
+
- DO NOT list every dotfile. Focus on the ones that matter
|
|
150
|
+
- NEVER include contents of .env files — note existence only
|
|
151
|
+
|
|
152
|
+
**What does NOT belong here:**
|
|
153
|
+
- Conceptual architecture (that's system-architecture.md)
|
|
154
|
+
- Internal subsystem structure (that's subsystem-structure docs)
|
|
155
|
+
- Technology stack details (that's system-architecture.md tech-stack section)
|
|
156
|
+
- Code conventions (that's a separate conventions doc)
|
|
157
|
+
|
|
158
|
+
</guidelines>
|
|
159
|
+
|
|
160
|
+
<evolution>
|
|
161
|
+
|
|
162
|
+
Update when the physical organization of the system changes.
|
|
163
|
+
|
|
164
|
+
**Update triggers:**
|
|
165
|
+
- New subsystem added (new service, new module, new package)
|
|
166
|
+
- Subsystem removed, split, or merged
|
|
167
|
+
- Shared directory added or removed
|
|
168
|
+
- Workspace/monorepo configuration changed
|
|
169
|
+
- Root-level config files added or removed
|
|
170
|
+
|
|
171
|
+
**NOT an update trigger:**
|
|
172
|
+
- New files within an existing subsystem (per-subsystem docs)
|
|
173
|
+
- New features within existing structure
|
|
174
|
+
- Internal refactoring that doesn't change directory layout
|
|
175
|
+
|
|
176
|
+
</evolution>
|
|
177
|
+
|
|
178
178
|
</system-structure>
|