ace-docs 0.31.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.
- checksums.yaml +7 -0
- data/.ace-defaults/docs/config.yml +169 -0
- data/.ace-defaults/docs/multi-subject-example.md +130 -0
- data/.ace-defaults/docs/single-subject-example.md +150 -0
- data/.ace-defaults/nav/protocols/guide-sources/ace-docs.yml +10 -0
- data/.ace-defaults/nav/protocols/prompt-sources/ace-docs.yml +34 -0
- data/.ace-defaults/nav/protocols/tmpl-sources/ace-docs.yml +10 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-docs.yml +19 -0
- data/CHANGELOG.md +1082 -0
- data/LICENSE +21 -0
- data/README.md +40 -0
- data/Rakefile +14 -0
- data/exe/ace-docs +14 -0
- data/handbook/guides/documentation/ruby.md +16 -0
- data/handbook/guides/documentation/rust.md +35 -0
- data/handbook/guides/documentation/typescript.md +18 -0
- data/handbook/guides/documentation.g.md +437 -0
- data/handbook/guides/documents-embedded-sync.g.md +473 -0
- data/handbook/guides/documents-embedding.g.md +276 -0
- data/handbook/guides/markdown-style.g.md +290 -0
- data/handbook/prompts/ace-change-analyzer.system.md +113 -0
- data/handbook/prompts/ace-change-analyzer.user.md +95 -0
- data/handbook/prompts/document-analysis.md +74 -0
- data/handbook/prompts/document-analysis.system.md +129 -0
- data/handbook/prompts/markdown-style.system.md +113 -0
- data/handbook/skills/as-docs-create-adr/SKILL.md +35 -0
- data/handbook/skills/as-docs-create-api/SKILL.md +35 -0
- data/handbook/skills/as-docs-create-user/SKILL.md +35 -0
- data/handbook/skills/as-docs-maintain-adrs/SKILL.md +35 -0
- data/handbook/skills/as-docs-squash-changelog/SKILL.md +42 -0
- data/handbook/skills/as-docs-update/SKILL.md +36 -0
- data/handbook/skills/as-docs-update-blueprint/SKILL.md +28 -0
- data/handbook/skills/as-docs-update-roadmap/SKILL.md +24 -0
- data/handbook/skills/as-docs-update-tools/SKILL.md +36 -0
- data/handbook/skills/as-docs-update-usage/SKILL.md +26 -0
- data/handbook/templates/code-docs/javascript-jsdoc.template.md +102 -0
- data/handbook/templates/code-docs/ruby-yard.template.md +85 -0
- data/handbook/templates/project-docs/README.template.md +73 -0
- data/handbook/templates/project-docs/architecture.template.md +300 -0
- data/handbook/templates/project-docs/blueprint.template.md +165 -0
- data/handbook/templates/project-docs/context/ownership.yml +160 -0
- data/handbook/templates/project-docs/decisions/adr.template.md +60 -0
- data/handbook/templates/project-docs/prd.template.md +144 -0
- data/handbook/templates/project-docs/roadmap/roadmap.template.md +47 -0
- data/handbook/templates/project-docs/vision.template.md +233 -0
- data/handbook/templates/user-docs/user-guide.template.md +107 -0
- data/handbook/workflow-instructions/docs/create-adr.wf.md +334 -0
- data/handbook/workflow-instructions/docs/create-api.wf.md +448 -0
- data/handbook/workflow-instructions/docs/create-cookbook.wf.md +434 -0
- data/handbook/workflow-instructions/docs/create-user.wf.md +399 -0
- data/handbook/workflow-instructions/docs/maintain-adrs.wf.md +589 -0
- data/handbook/workflow-instructions/docs/squash-changelog.wf.md +246 -0
- data/handbook/workflow-instructions/docs/update-blueprint.wf.md +361 -0
- data/handbook/workflow-instructions/docs/update-context.wf.md +336 -0
- data/handbook/workflow-instructions/docs/update-roadmap.wf.md +421 -0
- data/handbook/workflow-instructions/docs/update-tools.wf.md +307 -0
- data/handbook/workflow-instructions/docs/update-usage.wf.md +710 -0
- data/handbook/workflow-instructions/docs/update.wf.md +418 -0
- data/lib/ace/docs/atoms/diff_filterer.rb +131 -0
- data/lib/ace/docs/atoms/frontmatter_free_matcher.rb +20 -0
- data/lib/ace/docs/atoms/git_date_resolver.rb +16 -0
- data/lib/ace/docs/atoms/readme_metadata_inferrer.rb +60 -0
- data/lib/ace/docs/atoms/terminology_extractor.rb +308 -0
- data/lib/ace/docs/atoms/time_range_calculator.rb +96 -0
- data/lib/ace/docs/atoms/timestamp_parser.rb +106 -0
- data/lib/ace/docs/atoms/type_inferrer.rb +70 -0
- data/lib/ace/docs/cli/commands/analyze.rb +351 -0
- data/lib/ace/docs/cli/commands/analyze_consistency.rb +185 -0
- data/lib/ace/docs/cli/commands/discover.rb +75 -0
- data/lib/ace/docs/cli/commands/scope_options.rb +71 -0
- data/lib/ace/docs/cli/commands/status.rb +241 -0
- data/lib/ace/docs/cli/commands/update.rb +198 -0
- data/lib/ace/docs/cli/commands/validate.rb +225 -0
- data/lib/ace/docs/cli.rb +60 -0
- data/lib/ace/docs/models/analysis_report.rb +120 -0
- data/lib/ace/docs/models/consistency_report.rb +259 -0
- data/lib/ace/docs/models/document.rb +354 -0
- data/lib/ace/docs/molecules/change_detector.rb +389 -0
- data/lib/ace/docs/molecules/document_loader.rb +133 -0
- data/lib/ace/docs/molecules/frontmatter_manager.rb +85 -0
- data/lib/ace/docs/molecules/git_date_resolver.rb +30 -0
- data/lib/ace/docs/organisms/cross_document_analyzer.rb +274 -0
- data/lib/ace/docs/organisms/document_registry.rb +318 -0
- data/lib/ace/docs/organisms/validator.rb +164 -0
- data/lib/ace/docs/prompts/compact_diff_prompt.rb +119 -0
- data/lib/ace/docs/prompts/consistency_prompt.rb +286 -0
- data/lib/ace/docs/prompts/document_analysis_prompt.rb +389 -0
- data/lib/ace/docs/version.rb +7 -0
- data/lib/ace/docs.rb +82 -0
- data/lib/test.rb +4 -0
- metadata +347 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: workflow
|
|
3
|
+
title: Squash Changelog Entries Workflow
|
|
4
|
+
purpose: changelog management workflow instruction
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-02-22
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Squash Changelog Entries Workflow
|
|
11
|
+
|
|
12
|
+
Consolidate multiple CHANGELOG.md version entries added on a feature branch into a single entry before merging to the target branch.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
On feature branches with multiple `ace-release` cycles that each added a version entry to root `CHANGELOG.md`. Before merging the PR, squash these into one entry using the **lowest** version number.
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
- On a feature branch (not main/master)
|
|
21
|
+
- Root `CHANGELOG.md` exists with entries added during this branch's lifecycle
|
|
22
|
+
- Entries follow [Keep a Changelog](https://keepachangelog.com/) format
|
|
23
|
+
|
|
24
|
+
## Steps
|
|
25
|
+
|
|
26
|
+
### 1. Safety Check
|
|
27
|
+
|
|
28
|
+
Verify you are NOT on main/master:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
BRANCH=$(git branch --show-current)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
If on `main` or `master`, **STOP** unless `--force` was passed. Squashing on main would alter published history.
|
|
35
|
+
|
|
36
|
+
### 2. Determine Target Branch
|
|
37
|
+
|
|
38
|
+
Use this priority order to find the branch this PR targets:
|
|
39
|
+
|
|
40
|
+
1. **Embedded context** — check `<current_repository_status>` for "Current PR → Target: X"
|
|
41
|
+
2. **Explicit argument** — if user passed a branch name, use it
|
|
42
|
+
3. **GitHub CLI** — `gh pr view --json baseRefName --jq '.baseRefName'`
|
|
43
|
+
4. **Fallback** — `main`
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
TARGET=$(gh pr view --json baseRefName --jq '.baseRefName' 2>/dev/null || echo main)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 3. Detect New Entries
|
|
50
|
+
|
|
51
|
+
Use the embedded `<changelog_diff>` section if available. Otherwise:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git diff "$TARGET" -- CHANGELOG.md
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Extract all new `## [X.Y.Z]` version headers that were **added** (lines starting with `+## [`).
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
git diff "$TARGET" -- CHANGELOG.md | grep -E '^\+## \[[0-9]+\.[0-9]+\.[0-9]+\]' | sed 's/^\+//'
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. Validate Entry Count
|
|
64
|
+
|
|
65
|
+
| Count | Action |
|
|
66
|
+
|-------|--------|
|
|
67
|
+
| 0 | Report "No new changelog entries found — nothing to squash." **STOP.** |
|
|
68
|
+
| 1 | Report "Only one entry found — already consolidated, nothing to squash." **STOP.** |
|
|
69
|
+
| 2+ | Proceed to squash. |
|
|
70
|
+
|
|
71
|
+
### 5. Parse Entries
|
|
72
|
+
|
|
73
|
+
Read `CHANGELOG.md` and extract each new entry's content:
|
|
74
|
+
|
|
75
|
+
- For each detected version header, capture everything from `## [X.Y.Z]` down to (but not including) the next `## [` header
|
|
76
|
+
- Parse into categories: Fixed, Added, Removed, Changed, Technical
|
|
77
|
+
- Preserve individual line items with their package version prefixes (e.g., `**ace-foo v1.2.3**:`)
|
|
78
|
+
|
|
79
|
+
### 6. Select Version
|
|
80
|
+
|
|
81
|
+
Use the **LOWEST** version number from the detected entries (numeric comparison, not lexicographic).
|
|
82
|
+
|
|
83
|
+
**Numeric comparison**: Compare major, then minor, then patch as integers.
|
|
84
|
+
- `0.9.496` < `0.9.497` < `0.9.498` → select `0.9.496`
|
|
85
|
+
|
|
86
|
+
Keep the **date** from the lowest version entry (it was the first release on this branch).
|
|
87
|
+
|
|
88
|
+
### 7. Merge Categories
|
|
89
|
+
|
|
90
|
+
Combine all items across entries by category, following this canonical order:
|
|
91
|
+
|
|
92
|
+
1. **Fixed**
|
|
93
|
+
2. **Added**
|
|
94
|
+
3. **Removed**
|
|
95
|
+
4. **Changed**
|
|
96
|
+
5. **Technical**
|
|
97
|
+
|
|
98
|
+
Rules:
|
|
99
|
+
- **Dedup similar items**: If two entries describe the same fix/feature with slightly different wording, keep the more descriptive one
|
|
100
|
+
- **Preserve package prefixes**: Keep `**ace-foo vX.Y.Z**:` prefixes for traceability
|
|
101
|
+
- **Skip empty categories**: Only include categories that have items after merging
|
|
102
|
+
- **Within each category**: Order items by package name, then by version (ascending)
|
|
103
|
+
|
|
104
|
+
### 8. Preview
|
|
105
|
+
|
|
106
|
+
Show the squashed entry to the user. Format:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
--- Squashed changelog entry ---
|
|
110
|
+
Merging N entries ([highest]...[lowest]) into single [lowest] entry:
|
|
111
|
+
|
|
112
|
+
## [X.Y.Z] - YYYY-MM-DD
|
|
113
|
+
|
|
114
|
+
### Fixed
|
|
115
|
+
- item 1
|
|
116
|
+
- item 2
|
|
117
|
+
|
|
118
|
+
### Added
|
|
119
|
+
- item 3
|
|
120
|
+
|
|
121
|
+
...
|
|
122
|
+
--- End preview ---
|
|
123
|
+
|
|
124
|
+
Confirm: Replace N entries with this single entry? (Y/n)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Wait for user confirmation before proceeding.
|
|
128
|
+
|
|
129
|
+
### 9. Replace
|
|
130
|
+
|
|
131
|
+
Use the **Edit** tool to replace the multi-entry block in `CHANGELOG.md`:
|
|
132
|
+
|
|
133
|
+
- `old_string`: The entire block from the first (highest version) `## [X.Y.Z]` header through the last line of the last (lowest version) entry, up to but not including the next pre-existing `## [` header
|
|
134
|
+
- `new_string`: The single squashed entry from step 8
|
|
135
|
+
|
|
136
|
+
### 10. Verify
|
|
137
|
+
|
|
138
|
+
After replacement, confirm correctness:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Old versions should be gone
|
|
142
|
+
grep -E "## \[OLD_VERSION\]" CHANGELOG.md
|
|
143
|
+
# Should return no results for removed versions
|
|
144
|
+
|
|
145
|
+
# New version should be present
|
|
146
|
+
grep -E "## \[LOWEST_VERSION\]" CHANGELOG.md
|
|
147
|
+
# Should return exactly one match
|
|
148
|
+
|
|
149
|
+
# Unreleased section should be intact
|
|
150
|
+
grep "## \[Unreleased\]" CHANGELOG.md
|
|
151
|
+
# Should return one match
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 11. Report
|
|
155
|
+
|
|
156
|
+
Print a summary:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Squashed N changelog entries into one:
|
|
160
|
+
Removed: [0.9.498], [0.9.497]
|
|
161
|
+
Kept: [0.9.496] (with all 13 items merged)
|
|
162
|
+
|
|
163
|
+
Changes are NOT committed. Review and commit when ready.
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Edge Cases
|
|
167
|
+
|
|
168
|
+
### Different Dates Across Entries
|
|
169
|
+
|
|
170
|
+
Use the date from the **lowest** version (earliest release on this branch). The squashed entry represents the cumulative work starting from that point.
|
|
171
|
+
|
|
172
|
+
### Multiple Packages in Same Category
|
|
173
|
+
|
|
174
|
+
Keep all items — each has its own package prefix for disambiguation:
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
### Fixed
|
|
178
|
+
- **ace-assign v0.7.3**: Fix A
|
|
179
|
+
- **ace-assign v0.7.5**: Fix B
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Dirty Working Tree
|
|
183
|
+
|
|
184
|
+
If there are uncommitted changes to `CHANGELOG.md`, warn the user:
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
Warning: CHANGELOG.md has uncommitted changes. These will be included in the squash result.
|
|
188
|
+
Proceed anyway? (y/N)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Version Comparison
|
|
192
|
+
|
|
193
|
+
Always compare versions **numerically**, not as strings:
|
|
194
|
+
- `0.9.10` > `0.9.9` (numeric: 10 > 9)
|
|
195
|
+
- String comparison would incorrectly say `0.9.9` > `0.9.10`
|
|
196
|
+
|
|
197
|
+
Split on `.`, compare each segment as integers.
|
|
198
|
+
|
|
199
|
+
## Examples
|
|
200
|
+
|
|
201
|
+
### Example 1: Three Entries on Feature Branch
|
|
202
|
+
|
|
203
|
+
Before:
|
|
204
|
+
```markdown
|
|
205
|
+
## [Unreleased]
|
|
206
|
+
|
|
207
|
+
## [0.9.498] - 2026-02-13
|
|
208
|
+
### Fixed
|
|
209
|
+
- **ace-assign v0.7.5**: Fix A
|
|
210
|
+
### Changed
|
|
211
|
+
- **ace-assign v0.7.5**: Change B
|
|
212
|
+
|
|
213
|
+
## [0.9.497] - 2026-02-13
|
|
214
|
+
### Fixed
|
|
215
|
+
- **ace-assign v0.7.4**: Fix C
|
|
216
|
+
### Added
|
|
217
|
+
- **ace-assign v0.7.4**: Feature D
|
|
218
|
+
|
|
219
|
+
## [0.9.496] - 2026-02-13
|
|
220
|
+
### Added
|
|
221
|
+
- **ace-assign v0.7.3**: Feature E
|
|
222
|
+
### Fixed
|
|
223
|
+
- **ace-assign v0.7.3**: Fix F
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
After squash:
|
|
227
|
+
```markdown
|
|
228
|
+
## [Unreleased]
|
|
229
|
+
|
|
230
|
+
## [0.9.496] - 2026-02-13
|
|
231
|
+
### Fixed
|
|
232
|
+
- **ace-assign v0.7.3**: Fix F
|
|
233
|
+
- **ace-assign v0.7.4**: Fix C
|
|
234
|
+
- **ace-assign v0.7.5**: Fix A
|
|
235
|
+
### Added
|
|
236
|
+
- **ace-assign v0.7.3**: Feature E
|
|
237
|
+
- **ace-assign v0.7.4**: Feature D
|
|
238
|
+
### Changed
|
|
239
|
+
- **ace-assign v0.7.5**: Change B
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Example 2: Already Squashed
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
Only one entry found ([0.9.496]) — already consolidated, nothing to squash.
|
|
246
|
+
```
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: workflow
|
|
3
|
+
title: Update Project Blueprint Workflow Instruction
|
|
4
|
+
purpose: Documentation for ace-docs/handbook/workflow-instructions/docs/update-blueprint.wf.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-02-23
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Update Project Blueprint Workflow Instruction
|
|
11
|
+
|
|
12
|
+
## Goal
|
|
13
|
+
|
|
14
|
+
Update the `docs/blueprint.md` file with a concise summary of the current project structure, key files, and links to
|
|
15
|
+
core project documents. The blueprint provides essential orientation for developers and AI agents to quickly understand
|
|
16
|
+
the project organization.
|
|
17
|
+
|
|
18
|
+
## Definition
|
|
19
|
+
|
|
20
|
+
A "blueprint" in this context is a concise overview document that provides orientation to the project's structure and
|
|
21
|
+
organization, highlighting key directories and files to help developers (especially AI assistants) quickly understand
|
|
22
|
+
how to navigate the codebase.
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
* Project structure should be relatively stable
|
|
27
|
+
* Core documents (`vision.md`, `architecture.md`) should exist and be reasonably up-to-date
|
|
28
|
+
* Write access to `dev-taskflow/` directory
|
|
29
|
+
|
|
30
|
+
## Project Context Loading
|
|
31
|
+
|
|
32
|
+
* Read and follow: `ace-bundle wfi://bundle`
|
|
33
|
+
|
|
34
|
+
## High-Level Execution Plan
|
|
35
|
+
|
|
36
|
+
### Planning Phase
|
|
37
|
+
|
|
38
|
+
* Analyze current project structure
|
|
39
|
+
* Identify key directories and files
|
|
40
|
+
* Check for existing specialized
|
|
41
|
+
documentation (tools.md, etc.)
|
|
42
|
+
* Determine what has changed since last
|
|
43
|
+
update
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Execution Phase
|
|
47
|
+
|
|
48
|
+
* Generate updated directory structure
|
|
49
|
+
overview
|
|
50
|
+
* Update key file descriptions
|
|
51
|
+
* Verify and update document links
|
|
52
|
+
* Add read-only and ignored paths sections
|
|
53
|
+
* Save updated blueprint
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## Process Steps
|
|
57
|
+
|
|
58
|
+
1. **Identify Core Project Documents:**
|
|
59
|
+
* Verify `docs/vision.md` and `docs/architecture.md` are present
|
|
60
|
+
* Check for any additional core documentation files
|
|
61
|
+
2. **Generate Blueprint Structure:**
|
|
62
|
+
|
|
63
|
+
Use the blueprint template:
|
|
64
|
+
|
|
65
|
+
3. **Analyze Project Structure:**
|
|
66
|
+
* Use enhanced tree navigation to get current structure:
|
|
67
|
+
|
|
68
|
+
nav-tree --project-structure --filter source
|
|
69
|
+
{: .language-bash}
|
|
70
|
+
|
|
71
|
+
* Identify main source directories with enhanced navigation: nav-ls --long src/ app/ lib/
|
|
72
|
+
{: .language-bash}
|
|
73
|
+
|
|
74
|
+
* Note test directory location and submodules with context awareness
|
|
75
|
+
* Document any submodules if present
|
|
76
|
+
4. **Update Directory Descriptions:**
|
|
77
|
+
* Replace placeholder directories with actual project structure
|
|
78
|
+
* Add brief descriptions for each major directory
|
|
79
|
+
* Include relationship between directories if relevant
|
|
80
|
+
5. **Identify Key Project-Specific Files:**
|
|
81
|
+
* List critical configuration files
|
|
82
|
+
* Include entry points and main modules
|
|
83
|
+
* Focus on files unique to this project
|
|
84
|
+
* Add version/build files (package.json, Gemfile, etc.)
|
|
85
|
+
* **For tools**: If `docs/tools.md` exists, reference it instead of duplicating tool lists
|
|
86
|
+
6. **Extract Technology Stack:**
|
|
87
|
+
* Read from architecture.md or analyze project files
|
|
88
|
+
* Identify primary language and version
|
|
89
|
+
* List main framework and key libraries
|
|
90
|
+
* Include database and external services
|
|
91
|
+
7. **Define Agent Guidelines:**
|
|
92
|
+
* Specify read-only paths (archived releases, etc.)
|
|
93
|
+
* List ignored paths (dependencies, logs, etc.)
|
|
94
|
+
* Add project-specific restrictions
|
|
95
|
+
8. **Update Links and Save:**
|
|
96
|
+
* Ensure all internal document links are correct
|
|
97
|
+
* Verify file paths are relative to blueprint location
|
|
98
|
+
* Save the updated `docs/blueprint.md` file
|
|
99
|
+
|
|
100
|
+
## Common Directory Patterns
|
|
101
|
+
|
|
102
|
+
### Web Applications
|
|
103
|
+
|
|
104
|
+
app/ # Application code
|
|
105
|
+
config/ # Configuration files
|
|
106
|
+
public/ # Static assets
|
|
107
|
+
views/ # Templates
|
|
108
|
+
|
|
109
|
+
### Libraries/Packages
|
|
110
|
+
|
|
111
|
+
lib/ # Library source code
|
|
112
|
+
examples/ # Usage examples
|
|
113
|
+
benchmarks/ # Performance tests
|
|
114
|
+
|
|
115
|
+
### Microservices
|
|
116
|
+
|
|
117
|
+
services/ # Individual services
|
|
118
|
+
shared/ # Shared code
|
|
119
|
+
infra/ # Infrastructure config
|
|
120
|
+
|
|
121
|
+
## Technology Stack Detection
|
|
122
|
+
|
|
123
|
+
### Node.js
|
|
124
|
+
|
|
125
|
+
* Look for: `package.json`, `node_modules/`
|
|
126
|
+
* Key files: `index.js`, `server.js`, `app.js`
|
|
127
|
+
|
|
128
|
+
### Ruby
|
|
129
|
+
|
|
130
|
+
* Look for: `Gemfile`, `Rakefile`, `.ruby-version`
|
|
131
|
+
* Key files: `config.ru`, `app.rb`
|
|
132
|
+
|
|
133
|
+
### Python
|
|
134
|
+
|
|
135
|
+
* Look for: `requirements.txt`, `setup.py`, `pyproject.toml`
|
|
136
|
+
* Key files: `__main__.py`, `app.py`, `main.py`
|
|
137
|
+
|
|
138
|
+
### Rust
|
|
139
|
+
|
|
140
|
+
* Look for: `Cargo.toml`, `Cargo.lock`
|
|
141
|
+
* Key files: `main.rs`, `lib.rs`
|
|
142
|
+
|
|
143
|
+
## Output / Success Criteria
|
|
144
|
+
|
|
145
|
+
* `docs/blueprint.md` file is created or updated
|
|
146
|
+
* Contains accurate directory structure representation
|
|
147
|
+
* Technology stack is correctly identified
|
|
148
|
+
* Key files are listed with descriptions
|
|
149
|
+
* Read-only and ignored paths are specified
|
|
150
|
+
* All document links are valid and relative
|
|
151
|
+
* Information complements (not duplicates) other docs
|
|
152
|
+
* Tools information references `docs/tools.md` if it exists rather than duplicating
|
|
153
|
+
|
|
154
|
+
## Usage Example
|
|
155
|
+
|
|
156
|
+
Invoke this workflow when:
|
|
157
|
+
|
|
158
|
+
* Significant structural changes have occurred
|
|
159
|
+
* Before starting a major planning phase
|
|
160
|
+
* When onboarding new team members or AI agents
|
|
161
|
+
* After major refactoring or reorganization
|
|
162
|
+
|
|
163
|
+
Example:
|
|
164
|
+
|
|
165
|
+
> "Update the blueprint to reflect our new microservices structure"
|
|
166
|
+
|
|
167
|
+
## Best Practices
|
|
168
|
+
|
|
169
|
+
**DO:**
|
|
170
|
+
|
|
171
|
+
* Keep descriptions concise and focused
|
|
172
|
+
* Update after major structural changes
|
|
173
|
+
* Include technology versions when known
|
|
174
|
+
* Specify AI agent guidelines clearly
|
|
175
|
+
* Use relative paths for all links
|
|
176
|
+
|
|
177
|
+
**DON'T:**
|
|
178
|
+
|
|
179
|
+
* Include temporary or generated files
|
|
180
|
+
* Duplicate architecture documentation
|
|
181
|
+
* Duplicate detailed tools information (if `docs/tools.md` exists, reference it instead)
|
|
182
|
+
* List every single file
|
|
183
|
+
* Include sensitive information
|
|
184
|
+
* Use absolute file paths
|
|
185
|
+
|
|
186
|
+
<documents>
|
|
187
|
+
<template name="blueprint" markdown="1"># Project Blueprint: [Project Name]
|
|
188
|
+
|
|
189
|
+
## What is a Blueprint?
|
|
190
|
+
|
|
191
|
+
This document provides a concise overview of the project's structure and organization, highlighting key directories and files to help developers (especially AI assistants) quickly understand how to navigate the codebase. It should be updated periodically using the `update-blueprint` workflow.
|
|
192
|
+
|
|
193
|
+
## Core Project Documents
|
|
194
|
+
|
|
195
|
+
- [What We Build](docs/vision.md) - Project vision and goals
|
|
196
|
+
- [Architecture](docs/architecture.md) - System design and implementation principles
|
|
197
|
+
- [Blueprint](docs/blueprint.md) - Project structure and organization
|
|
198
|
+
|
|
199
|
+
## Project Organization
|
|
200
|
+
|
|
201
|
+
<!-- Describe your project's main directory structure -->
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
This project follows a documentation-first approach with these primary directories:
|
|
206
|
+
|
|
207
|
+
- **docs/** - Project documentation
|
|
208
|
+
- **guides/** - Best practices and development standards
|
|
209
|
+
- **architecture/** - System design and decisions
|
|
210
|
+
- **workflow-instructions/** - Structured commands for AI agents
|
|
211
|
+
- **zed/** - Editor integration (if applicable)
|
|
212
|
+
|
|
213
|
+
- **dev-taskflow/** - Project-specific documentation
|
|
214
|
+
- **current/** - Active release cycle work
|
|
215
|
+
- **backlog/** - Pending tasks for future releases
|
|
216
|
+
- **done/** - Completed releases and tasks
|
|
217
|
+
- **decisions/** - Architecture Decision Records (ADRs)
|
|
218
|
+
|
|
219
|
+
- **bin/** - Executable scripts for project management and automation
|
|
220
|
+
|
|
221
|
+
- **src/** - Source code (adjust directory names as needed)
|
|
222
|
+
- **[component1]/** - Core functionality
|
|
223
|
+
- **[component2]/** - Additional features
|
|
224
|
+
- **utils/** - Shared utilities
|
|
225
|
+
|
|
226
|
+
- **tests/** - Test files and test utilities
|
|
227
|
+
|
|
228
|
+
- **config/** - Configuration files
|
|
229
|
+
|
|
230
|
+
<!-- Add your project-specific directories here -->
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
## View Complete Directory Structure
|
|
235
|
+
|
|
236
|
+
To see the complete filtered directory structure, run:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
nav-tree
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
This will show all project files while filtering out temporary files, session logs, and other non-essential directories.
|
|
243
|
+
|
|
244
|
+
## Key Project-Specific Files
|
|
245
|
+
|
|
246
|
+
<!-- List important files that developers should know about -->
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
- [Documentation](docs/README.md) - Project documentation hub
|
|
251
|
+
- [Development Guides](docs/guides/README.md) - Development standards and best practices
|
|
252
|
+
- [Configuration](README.md) - Configuration documentation (if applicable)
|
|
253
|
+
|
|
254
|
+
## Technology Stack
|
|
255
|
+
|
|
256
|
+
<!-- Summarize the main technologies used -->
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
- **Primary Language**: [e.g., JavaScript, Python, Rust]
|
|
261
|
+
- **Framework**: [e.g., React, Django, Axum]
|
|
262
|
+
- **Database**: [e.g., PostgreSQL, MongoDB, SQLite]
|
|
263
|
+
- **Key Libraries**: [List important dependencies]
|
|
264
|
+
- **Development Tools**: [e.g., Docker, Webpack, Cargo]
|
|
265
|
+
|
|
266
|
+
## Read-Only Paths
|
|
267
|
+
|
|
268
|
+
This section lists files and directories that the agent should treat as read-only. Attempts to modify these paths should be flagged or prevented.
|
|
269
|
+
|
|
270
|
+
<!-- Add project-specific read-only paths -->
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
- `docs/decisions/**/*`
|
|
274
|
+
- `dev-taskflow/done/**/*`
|
|
275
|
+
- `*.lock` # Dependency lock files
|
|
276
|
+
- `dist/**/*` # Built artifacts
|
|
277
|
+
- `build/**/*` # Build output
|
|
278
|
+
|
|
279
|
+
## Ignored Paths
|
|
280
|
+
|
|
281
|
+
This section lists files, directories, or glob patterns that the agent should ignore entirely during its operations (e.g., when searching, reading, or editing files).
|
|
282
|
+
|
|
283
|
+
- `dev-taskflow/done/**/*` # Default: Protects completed tasks and releases
|
|
284
|
+
- `**/node_modules/**`
|
|
285
|
+
- `**/.git/**`
|
|
286
|
+
- `**/__pycache__/**`
|
|
287
|
+
- `**/target/**` # Rust build artifacts
|
|
288
|
+
- `**/dist/**` # Built distributions
|
|
289
|
+
- `**/build/**` # Build artifacts
|
|
290
|
+
- `**/.env` # Environment files
|
|
291
|
+
- `**/.env.*` # Environment variants
|
|
292
|
+
- `*.session.log`
|
|
293
|
+
- `*.lock`
|
|
294
|
+
- `*.tmp`
|
|
295
|
+
- `*~` # Backup files
|
|
296
|
+
- `**/.DS_Store` # macOS system files
|
|
297
|
+
- `**/Thumbs.db` # Windows system files
|
|
298
|
+
|
|
299
|
+
## Entry Points
|
|
300
|
+
|
|
301
|
+
<!-- Document the main ways to start or interact with the project -->
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
### Development
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
# Start development server
|
|
309
|
+
bin/run
|
|
310
|
+
|
|
311
|
+
# Run tests
|
|
312
|
+
# Run project-specific test command
|
|
313
|
+
|
|
314
|
+
# Build for production
|
|
315
|
+
bin/build
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Common Workflows
|
|
319
|
+
|
|
320
|
+
- **New Feature**: Use `task-manager next` to find next task, follow task workflow
|
|
321
|
+
- **Bug Fix**: Create task in backlog, prioritize, implement
|
|
322
|
+
- **Documentation**: Update relevant files in `dev-taskflow/`
|
|
323
|
+
|
|
324
|
+
## Dependencies
|
|
325
|
+
|
|
326
|
+
<!-- List major external dependencies and their purposes -->
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
### Runtime Dependencies
|
|
331
|
+
|
|
332
|
+
- [Library 1]: Purpose and version constraints
|
|
333
|
+
- [Library 2]: Purpose and version constraints
|
|
334
|
+
|
|
335
|
+
### Development Dependencies
|
|
336
|
+
|
|
337
|
+
## Submodules
|
|
338
|
+
|
|
339
|
+
<!-- Document any Git submodules used -->
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
### docs-dev (if applicable)
|
|
344
|
+
|
|
345
|
+
- Path: `docs-dev`
|
|
346
|
+
- Repository: [Repository URL]
|
|
347
|
+
- Purpose: Development workflows and guides
|
|
348
|
+
- **Important**: Commits for this submodule must be made from within the submodule directory
|
|
349
|
+
|
|
350
|
+
### [Other Submodules]
|
|
351
|
+
|
|
352
|
+
- Path: `[path]`
|
|
353
|
+
- Repository: [Repository URL]
|
|
354
|
+
- Purpose: [Description]
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
*This blueprint should be updated when significant structural changes are made to the project. Use the `update-blueprint` workflow to keep it current.*
|
|
359
|
+
</template>
|
|
360
|
+
</documents>
|
|
361
|
+
|