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
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,1082 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to ace-docs will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.31.0] - 2026-03-23
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Sharpened README "How It Works" steps with bold labels and inline command names matching the current package layout pattern.
|
|
14
|
+
- Removed negative claim about non-existent `diff` command from usage guide.
|
|
15
|
+
- Normalized frontmatter date quoting in usage guide for consistency.
|
|
16
|
+
|
|
17
|
+
## [0.30.3] - 2026-03-23
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- Classify root README as `root_readme` doc-type, separate from package READMEs.
|
|
21
|
+
- Add timeout guard around `ace-nav resolve` subprocess in `DocumentAnalysisPrompt`.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- Update docs config defaults and project override for `root_readme` classification.
|
|
25
|
+
- Refresh documentation guide to reflect `root_readme` handling.
|
|
26
|
+
|
|
27
|
+
## [0.30.2] - 2026-03-23
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- Aligned README handling to the dedicated `readme` doc type by updating README inference and frontmatter-free README metadata inference from `user` to `readme`.
|
|
31
|
+
- Fixed document analysis type reference resolution to call `ace-nav resolve` so template/guide protocol URLs are resolved correctly.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
- Narrowed `readme` path matching to package-level `*/README.md` so the repository root README is not treated as a package README.
|
|
35
|
+
|
|
36
|
+
## [0.30.1] - 2026-03-23
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
- Refreshed `README.md` to the current package layout pattern with quick-link navigation, use-case framing, and standardized section flow.
|
|
40
|
+
|
|
41
|
+
## [0.30.0] - 2026-03-23
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
- Template and guide references in document type config (`template`, `guide` fields) enabling `ace-docs analyze` to embed the correct template/guide when reviewing a document.
|
|
45
|
+
- New `readme` document type with narrow `README.md`/`*/README.md` paths, split from the broad `user` type to avoid applying the README template to architecture, vision, and blueprint docs.
|
|
46
|
+
- Template/guide verification instructions in the document analysis prompt so the LLM checks documents against their template structure and guide conventions.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
- Rewrote `README.template.md` to match the proven ace-task pattern: logo block, pipe-separated nav row above demo, intro paragraph instead of Problem/Solution, Use Cases section with inline `/as-` skill refs and linked CLI commands.
|
|
50
|
+
- Updated documentation guide README section with new structure table, nav row guidance, Use Cases format, skill reference convention, implementation rule, and expanded anti-patterns list.
|
|
51
|
+
- Narrowed `user` document type paths to `*/docs/**/*.md` only (READMEs now use dedicated `readme` type).
|
|
52
|
+
|
|
53
|
+
## [0.29.3] - 2026-03-22
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
- Replaced placeholder commands in `docs/demo/ace-docs-getting-started.tape.yml` with real `ace-docs` onboarding workflow commands.
|
|
57
|
+
|
|
58
|
+
## [0.29.2] - 2026-03-22
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
- Clarified frontmatter-free documentation contract in `docs/usage.md` to state README-focused metadata inference and removed the non-README example.
|
|
62
|
+
|
|
63
|
+
## [0.29.1] - 2026-03-22
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
- Reused shared `Ace::Core::Molecules::FrontmatterFreePolicy` through `FrontmatterFreeMatcher` to align frontmatter-free matching behavior across packages.
|
|
67
|
+
- Moved git-backed README last-updated resolution into molecule layer and injected the resolved date into `ReadmeMetadataInferrer`.
|
|
68
|
+
- Updated `TypeInferrer` precedence so configured `pattern_type` wins before README basename fallback.
|
|
69
|
+
- Narrowed default `frontmatter_free` patterns from `**/README.md` to `README.md` and `*/README.md` to avoid nested fixture/test README auto-discovery.
|
|
70
|
+
|
|
71
|
+
## [0.29.0] - 2026-03-22
|
|
72
|
+
|
|
73
|
+
### Added
|
|
74
|
+
- Configurable frontmatter-free document support via `frontmatter_free` config key (default: `**/README.md`).
|
|
75
|
+
- New `FrontmatterFreeMatcher` atom for centralized glob matching of frontmatter-free paths.
|
|
76
|
+
- New `ReadmeMetadataInferrer` atom to infer doc-type, purpose, and title from README file path and content.
|
|
77
|
+
- New `GitDateResolver` atom to resolve `last-updated` from git history with nil-safe fallback.
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
- `DocumentLoader` now loads frontmatter-free files as managed documents with inferred metadata.
|
|
81
|
+
- `TypeInferrer` infers `user` doc-type for README files without explicit frontmatter.
|
|
82
|
+
- `Update` command skips frontmatter writes for frontmatter-free files with explicit skip message.
|
|
83
|
+
- Removed YAML frontmatter blocks from all package `README.md` files.
|
|
84
|
+
|
|
85
|
+
## [0.28.0] - 2026-03-22
|
|
86
|
+
|
|
87
|
+
### Changed
|
|
88
|
+
- Rewrote `README.md` into a value-first landing page and split reference material into dedicated `docs/getting-started.md`, `docs/usage.md`, and `docs/handbook.md` documents.
|
|
89
|
+
- Added demo artifacts under `docs/demo/` (`ace-docs-getting-started.tape` and `ace-docs-getting-started.gif`) and aligned gemspec summary/description messaging with the new landing-page tagline.
|
|
90
|
+
|
|
91
|
+
## [0.27.1] - 2026-03-21
|
|
92
|
+
|
|
93
|
+
### Fixed
|
|
94
|
+
- Restored `Document#last_checked` compatibility with current frontmatter writes by reading `ace-docs.last-checked` before falling back to the legacy `update.last-checked` field.
|
|
95
|
+
|
|
96
|
+
## [0.27.0] - 2026-03-20
|
|
97
|
+
|
|
98
|
+
### Changed
|
|
99
|
+
- Expanded `TS-DOCS-001` E2E coverage with a new `TC-004` update-command goal and tightened discover/validate/status runner/verifier evidence contracts.
|
|
100
|
+
|
|
101
|
+
## [0.26.1] - 2026-03-18
|
|
102
|
+
|
|
103
|
+
### Changed
|
|
104
|
+
- Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
## [0.26.0] - 2026-03-18
|
|
108
|
+
|
|
109
|
+
### Changed
|
|
110
|
+
- Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
## [0.25.6] - 2026-03-17
|
|
114
|
+
|
|
115
|
+
### Fixed
|
|
116
|
+
- Updated CLI routing tests to match current `ace-support-cli` help rendering and avoid false regressions.
|
|
117
|
+
|
|
118
|
+
## [0.25.5] - 2026-03-15
|
|
119
|
+
|
|
120
|
+
### Changed
|
|
121
|
+
- Migrated CLI framework from dry-cli to ace-support-cli
|
|
122
|
+
|
|
123
|
+
## [0.25.4] - 2026-03-13
|
|
124
|
+
|
|
125
|
+
### Technical
|
|
126
|
+
- Updated canonical docs skills to align with shared workflow execution standards.
|
|
127
|
+
|
|
128
|
+
## [0.25.3] - 2026-03-13
|
|
129
|
+
|
|
130
|
+
### Changed
|
|
131
|
+
- Updated canonical docs skills to explicitly run bundled workflows in the current project and execute them end-to-end.
|
|
132
|
+
|
|
133
|
+
## [0.25.2] - 2026-03-13
|
|
134
|
+
|
|
135
|
+
### Changed
|
|
136
|
+
- Removed the Codex-specific delegated execution metadata from the canonical `as-docs-squash-changelog` skill so provider projections now inherit the canonical skill body unchanged.
|
|
137
|
+
|
|
138
|
+
## [0.25.1] - 2026-03-12
|
|
139
|
+
|
|
140
|
+
### Changed
|
|
141
|
+
- Updated documentation guides and README examples to use current gem-scoped handbook paths and bundle-first workflow references.
|
|
142
|
+
|
|
143
|
+
## [0.25.0] - 2026-03-12
|
|
144
|
+
|
|
145
|
+
### Added
|
|
146
|
+
- Added Codex-specific delegated execution metadata to the canonical `as-docs-squash-changelog` skill so the generated Codex skill runs in fork context on `gpt-5.3-codex-spark`.
|
|
147
|
+
|
|
148
|
+
## [0.24.1] - 2026-03-12
|
|
149
|
+
|
|
150
|
+
### Fixed
|
|
151
|
+
- Updated shipped prompt-source override guidance to use `.ace-handbook` and `~/.ace-handbook` instead of the old `.ace/handbook` locations.
|
|
152
|
+
|
|
153
|
+
## [0.24.0] - 2026-03-10
|
|
154
|
+
|
|
155
|
+
### Added
|
|
156
|
+
- Added canonical handbook-owned documentation skills for ADR, API, user-doc, update, and changelog maintenance workflows.
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
## [0.23.0] - 2026-03-08
|
|
160
|
+
|
|
161
|
+
### Added
|
|
162
|
+
- Added repeatable document scope options across core doc-selection commands:
|
|
163
|
+
- `--package <ace-package>` for package-root scoping
|
|
164
|
+
- `--glob <pattern>` for explicit glob scoping, including bare-path normalization (for example, `--glob ace-assign` -> `ace-assign/**/*.md`)
|
|
165
|
+
|
|
166
|
+
### Changed
|
|
167
|
+
- Scoped selection is now applied during registry discovery, reducing out-of-scope traversal for status/discover/update/validate/analyze-consistency command flows.
|
|
168
|
+
- Updated docs/update workflow guidance and user-facing usage examples to include package/glob scoped operations.
|
|
169
|
+
|
|
170
|
+
### Technical
|
|
171
|
+
- Added command/integration/registry regression coverage for scope normalization and scoped selection behavior.
|
|
172
|
+
- Suppressed expected loader noise for markdown files without frontmatter (`No frontmatter found`) to keep scoped command output readable.
|
|
173
|
+
|
|
174
|
+
## [0.22.4] - 2026-03-04
|
|
175
|
+
|
|
176
|
+
### Changed
|
|
177
|
+
- Default docs cache directory now uses `.ace-local/docs`.
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
## [0.22.3] - 2026-03-04
|
|
181
|
+
|
|
182
|
+
### Fixed
|
|
183
|
+
- `docs/update.wf.md` workflow instruction corrected to short-name path convention (`.ace-local/docs/` not `.ace-local/ace-docs/`)
|
|
184
|
+
|
|
185
|
+
## [0.22.2] - 2026-03-04
|
|
186
|
+
|
|
187
|
+
### Fixed
|
|
188
|
+
- Usage docs corrected to short-name convention (`.ace-local/docs/` not `.ace-local/ace-docs/`)
|
|
189
|
+
|
|
190
|
+
## [0.22.1] - 2026-03-04
|
|
191
|
+
|
|
192
|
+
### Fixed
|
|
193
|
+
- README `cache_dir` example corrected to short-name convention (`.ace-local/docs` not `.ace-local/ace-docs`)
|
|
194
|
+
|
|
195
|
+
## [0.22.0] - 2026-03-04
|
|
196
|
+
|
|
197
|
+
### Changed
|
|
198
|
+
- Default cache directories migrated from `.cache/ace-docs` to `.ace-local/docs`
|
|
199
|
+
|
|
200
|
+
## [0.21.1] - 2026-02-23
|
|
201
|
+
|
|
202
|
+
### Technical
|
|
203
|
+
- Updated internal dependency version constraints to current releases
|
|
204
|
+
|
|
205
|
+
## [0.21.0] - 2026-02-22
|
|
206
|
+
|
|
207
|
+
### Added
|
|
208
|
+
- Standard help pattern with `HELP_EXAMPLES` constant and formatted help output
|
|
209
|
+
- No-args behavior now shows help (consistent with other ace-* CLIs)
|
|
210
|
+
|
|
211
|
+
### Changed
|
|
212
|
+
- Migrate from DWIM DefaultRouting to standard dry-cli help pattern
|
|
213
|
+
- Remove `KNOWN_COMMANDS`, `BUILTIN_COMMANDS`, `DEFAULT_COMMAND` constants
|
|
214
|
+
- CLI invocation now uses `Dry::CLI.new().call()` pattern
|
|
215
|
+
|
|
216
|
+
## [0.20.3] - 2026-02-22
|
|
217
|
+
|
|
218
|
+
### Technical
|
|
219
|
+
- Update `ace-bundle project` → `ace-bundle load project` in markdown-style guide
|
|
220
|
+
|
|
221
|
+
## [0.20.1] - 2026-02-19
|
|
222
|
+
|
|
223
|
+
### Technical
|
|
224
|
+
- Namespace workflow instructions into docs/ subdirectory with updated wfi:// URIs
|
|
225
|
+
- Migrate update-usage and update-roadmap workflows from ace-taskflow
|
|
226
|
+
|
|
227
|
+
## [0.20.0] - 2026-02-13
|
|
228
|
+
|
|
229
|
+
### Added
|
|
230
|
+
- Squash-changelog workflow instruction for consolidating multiple CHANGELOG.md entries on feature branches before merge
|
|
231
|
+
|
|
232
|
+
## [0.19.2] - 2026-02-12
|
|
233
|
+
|
|
234
|
+
### Fixed
|
|
235
|
+
- Anchor ignore patterns to project root in `DocumentRegistry` to prevent matching system paths (e.g., `/tmp/` no longer matches project ignore rule `**/tmp/**`)
|
|
236
|
+
- `glob_to_regex` now anchors converted patterns to `@project_root`, distinguishing `**/` (anywhere under project) from bare patterns (at project root)
|
|
237
|
+
|
|
238
|
+
## [0.19.1] - 2026-01-31
|
|
239
|
+
|
|
240
|
+
### Technical
|
|
241
|
+
- Stub ace-nav subprocess calls in document_analysis_prompt tests (3.4s → 0.7s, 80% faster)
|
|
242
|
+
|
|
243
|
+
## [0.19.0] - 2026-01-22
|
|
244
|
+
|
|
245
|
+
### Changed
|
|
246
|
+
- Move embedded-testing-guide to ace-test package
|
|
247
|
+
- Guide now available via ace-test package
|
|
248
|
+
|
|
249
|
+
## [0.18.1] - 2026-01-16
|
|
250
|
+
|
|
251
|
+
### Changed
|
|
252
|
+
- Rename context: to bundle: keys in configuration files
|
|
253
|
+
|
|
254
|
+
## [0.18.0] - 2025-01-14
|
|
255
|
+
|
|
256
|
+
### Added
|
|
257
|
+
- Migrate CLI commands to Hanami pattern (task 213)
|
|
258
|
+
- Move all command logic into `CLI::Commands::*` namespace under `cli/commands/` directory
|
|
259
|
+
- Remove separate `Commands::` wrapper classes - business logic now integrated into CLI commands
|
|
260
|
+
- Update command file naming to match class names (remove `_command` suffix)
|
|
261
|
+
- Delete legacy `commands/` directory
|
|
262
|
+
- Full implementation for all 6 commands: analyze, analyze_consistency, discover, status, update, validate
|
|
263
|
+
|
|
264
|
+
### Changed
|
|
265
|
+
- Consolidate CLI structure following Hanami/dry-cli authoritative pattern
|
|
266
|
+
- Use `CLI::Commands::*` namespace throughout
|
|
267
|
+
- Clean up require paths for proper module resolution
|
|
268
|
+
|
|
269
|
+
### Technical
|
|
270
|
+
- Remove obsolete unit tests for deleted `Commands::*` classes
|
|
271
|
+
- Remove obsolete integration test for `StatusCommand`
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
## [0.17.2] - 2026-01-10
|
|
275
|
+
|
|
276
|
+
### Changed
|
|
277
|
+
- Use shared `Ace::Core::CLI::DryCli::DefaultRouting` module for CLI routing
|
|
278
|
+
- Removed duplicate routing code in favor of shared implementation
|
|
279
|
+
- Maintains same behavior with less code duplication
|
|
280
|
+
|
|
281
|
+
## [0.17.1] - 2026-01-10
|
|
282
|
+
|
|
283
|
+
### Fixed
|
|
284
|
+
- Fix CLI default command routing to properly handle flags
|
|
285
|
+
- Added complete default routing infrastructure with REGISTERED_COMMANDS, BUILTIN_COMMANDS, KNOWN_COMMANDS, DEFAULT_COMMAND constants
|
|
286
|
+
- Added `known_command?` helper method for routing logic
|
|
287
|
+
- Flags now correctly route to default `status` command
|
|
288
|
+
- Built-in flags (`--help`, `--version`) continue working via KNOWN_COMMANDS
|
|
289
|
+
|
|
290
|
+
## [0.17.0] - 2026-01-07
|
|
291
|
+
|
|
292
|
+
### Changed
|
|
293
|
+
- **BREAKING**: Migrated CLI framework from Thor to dry-cli (task 179.10)
|
|
294
|
+
- Replaced `thor` dependency with `dry-cli ~> 1.0`
|
|
295
|
+
- Created dry-cli command classes (analyze, analyze_consistency, discover, status, update, validate)
|
|
296
|
+
|
|
297
|
+
## [0.16.0] - 2026-01-07
|
|
298
|
+
|
|
299
|
+
### Changed
|
|
300
|
+
- **BREAKING**: Session and analysis filenames changed from 14-character timestamps to 6-character Base36 compact IDs
|
|
301
|
+
- Session directories: `analyze-20251129-143000` → `analyze-i50jj3`
|
|
302
|
+
- Analysis reports: `analysis-20251129-143000.md` → `analysis-i50jj3.md`
|
|
303
|
+
- Migrate to Base36 compact IDs for session and file naming (via ace-timestamp)
|
|
304
|
+
|
|
305
|
+
### Added
|
|
306
|
+
- Dependency on ace-timestamp for compact ID generation
|
|
307
|
+
|
|
308
|
+
## [0.15.0] - 2026-01-05
|
|
309
|
+
|
|
310
|
+
### Added
|
|
311
|
+
- Thor CLI migration with standardized command structure
|
|
312
|
+
- ConfigSummary display for effective configuration with sensitive key filtering
|
|
313
|
+
- Comprehensive CLI help documentation across all commands
|
|
314
|
+
|
|
315
|
+
### Changed
|
|
316
|
+
- Adopted Ace::Core::CLI::Base for standardized options (--quiet, --verbose, --debug)
|
|
317
|
+
- Migrated from OptionParser to Thor framework
|
|
318
|
+
- Added method_missing for default subcommand support
|
|
319
|
+
|
|
320
|
+
## [0.14.1] - 2026-01-03
|
|
321
|
+
|
|
322
|
+
### Changed
|
|
323
|
+
|
|
324
|
+
- Migrated 7 workflow instructions from `ace-nav wfi://` to `ace-bundle wfi://` for consistency
|
|
325
|
+
- Updated workflows: create-adr, create-api-docs, create-cookbook, create-user-docs, maintain-adrs, update-blueprint, update-context-docs
|
|
326
|
+
|
|
327
|
+
## [0.14.0] - 2026-01-03
|
|
328
|
+
|
|
329
|
+
### Changed
|
|
330
|
+
- **BREAKING**: Minimum Ruby version raised to 3.3.0 (was 3.1.0)
|
|
331
|
+
- Standardized gemspec file patterns with deterministic Dir.glob
|
|
332
|
+
- Added MIT LICENSE file
|
|
333
|
+
|
|
334
|
+
## [0.13.3] - 2026-01-03
|
|
335
|
+
|
|
336
|
+
### Fixed
|
|
337
|
+
|
|
338
|
+
- Mock correct git operations in ChangeDetector tests - stub `DiffOrchestrator.generate` instead of `execute_git_command` to avoid real git I/O (89% test performance improvement: 14s → 1.5s)
|
|
339
|
+
|
|
340
|
+
### Technical
|
|
341
|
+
|
|
342
|
+
- Extract `with_empty_git_diff` test helper to reduce duplication (6 instances)
|
|
343
|
+
- Add benchmark command and Lessons Learned section to task documentation
|
|
344
|
+
|
|
345
|
+
## [0.13.2] - 2026-01-01
|
|
346
|
+
|
|
347
|
+
### Fixed
|
|
348
|
+
|
|
349
|
+
- Restore historical freshness thresholds for monthly documents (30/45 days instead of 14/30)
|
|
350
|
+
- Add frequency-specific threshold configuration in `.ace-defaults/docs/config.yml`
|
|
351
|
+
- Migrate DocumentRegistry to use ace-config cascade for configuration loading
|
|
352
|
+
|
|
353
|
+
## [0.13.1] - 2025-12-30
|
|
354
|
+
|
|
355
|
+
### Changed
|
|
356
|
+
|
|
357
|
+
- Add ace-config dependency for configuration cascade management
|
|
358
|
+
- Migrate from Ace::Core to Ace::Config.create() API
|
|
359
|
+
- Migrate from `resolve_for` to `resolve_namespace` for cleaner config loading
|
|
360
|
+
|
|
361
|
+
## [0.13.0] - 2025-12-30
|
|
362
|
+
|
|
363
|
+
### Changed
|
|
364
|
+
|
|
365
|
+
* Rename `.ace.example/` to `.ace-defaults/` for gem defaults directory
|
|
366
|
+
|
|
367
|
+
## [0.12.0] - 2025-12-29
|
|
368
|
+
|
|
369
|
+
### Changed
|
|
370
|
+
- Migrate ProjectRootFinder dependency from `Ace::Core::Molecules` to `Ace::Support::Fs::Molecules` for direct ace-support-fs usage
|
|
371
|
+
|
|
372
|
+
## [0.11.0] - 2025-12-28
|
|
373
|
+
|
|
374
|
+
### Added
|
|
375
|
+
- **ADR-022 Configuration Pattern**: Migrate to gem defaults from `.ace.example/` with user override support
|
|
376
|
+
- Load defaults from `.ace.example/docs/config.yml` at runtime
|
|
377
|
+
- Deep merge with user config via ace-core cascade
|
|
378
|
+
- Follows "gem defaults < user config" priority
|
|
379
|
+
|
|
380
|
+
### Changed
|
|
381
|
+
- **Dependency Migration**: Migrated from `ace-git-diff` to `ace-git` for unified git operations
|
|
382
|
+
|
|
383
|
+
## [0.10.1] - 2025-12-27
|
|
384
|
+
|
|
385
|
+
### Fixed
|
|
386
|
+
|
|
387
|
+
- **CLI Option Mapping Regression**: Fixed `--exclude-renames`/`--exclude-moves` flags being silently ignored
|
|
388
|
+
- AnalyzeCommand.build_diff_options was emitting legacy `include_*` keys instead of new `exclude_*` keys
|
|
389
|
+
- CLI flags now correctly propagate to ace-git DiffOrchestrator
|
|
390
|
+
|
|
391
|
+
### Changed
|
|
392
|
+
|
|
393
|
+
- **Deprecation Warning for Legacy Option Keys**: Added warning when using `include_renames`/`include_moves`
|
|
394
|
+
- Callers should migrate to `exclude_renames`/`exclude_moves` keys
|
|
395
|
+
- Warning: `[DEPRECATED] Use exclude_renames/exclude_moves instead of include_renames/include_moves`
|
|
396
|
+
|
|
397
|
+
- **Centralized Option Construction**: Extracted `build_diff_options` helper method in ChangeDetector
|
|
398
|
+
- Centralizes ace-git option mapping logic
|
|
399
|
+
- Improves maintainability and reduces duplication
|
|
400
|
+
|
|
401
|
+
### Technical
|
|
402
|
+
|
|
403
|
+
- Added 5 command-level tests for CLI option propagation (analyze_command_test.rb)
|
|
404
|
+
- Added 3 tests for legacy option key deprecation warnings
|
|
405
|
+
- Updated test using legacy `include_renames` key to use new `exclude_renames` key
|
|
406
|
+
|
|
407
|
+
## [0.10.0] - 2025-12-27
|
|
408
|
+
|
|
409
|
+
### Changed
|
|
410
|
+
|
|
411
|
+
- **Dependency Migration**: Migrated from ace-git-diff to ace-git
|
|
412
|
+
- Updated dependency from `ace-git-diff (~> 0.1)` to `ace-git (~> 0.3)`
|
|
413
|
+
- Changed `require "ace/git_diff"` to `require "ace/git"`
|
|
414
|
+
- Updated namespace from `Ace::GitDiff::*` to `Ace::Git::*`
|
|
415
|
+
- Part of ace-git consolidation (ace-git-diff merged into ace-git)
|
|
416
|
+
|
|
417
|
+
### Fixed
|
|
418
|
+
|
|
419
|
+
- **Option Mapping for ace-git API**: Fixed incorrect option names passed to DiffOrchestrator
|
|
420
|
+
- Changed `detect_moves` (invalid) to `exclude_moves` (ace-git API)
|
|
421
|
+
- Fixed `exclude_renames` default to `false` (was inverting caller intent when nil)
|
|
422
|
+
- Renames and moves are now correctly included by default
|
|
423
|
+
|
|
424
|
+
- **Test Isolation**: Fixed DocumentRegistry and StatusCommand test failures caused by ProjectRootFinder discovering actual project files
|
|
425
|
+
- Added `project_root` parameter to DocumentRegistry.new and StatusCommand.new for test isolation
|
|
426
|
+
- DocumentRegistry tests now pass `project_root: @temp_dir` to ensure isolation
|
|
427
|
+
- StatusCommand integration tests now pass `project_root: @temp_dir` to ensure isolation
|
|
428
|
+
- All 15 document_registry tests now pass (was 13 failures, 1 error)
|
|
429
|
+
- All 5 status_command_integration tests now pass (was 5 failures)
|
|
430
|
+
- Root cause: Tests were discovering real ace-docs handbook files instead of temp directory files
|
|
431
|
+
|
|
432
|
+
- **Test Correctness**: Fixed DocumentAnalysisPromptTest assertions to match actual output format
|
|
433
|
+
- Multi-subject scope section uses backtick-wrapped subject names (e.g., "`code`:" not "code:")
|
|
434
|
+
- Fixed tests to properly create Document instances instead of using instance_variable_set
|
|
435
|
+
- All 7 prompt tests now pass (was 3 failures)
|
|
436
|
+
- Root cause: Tests were modifying @frontmatter without updating @ace_docs_config
|
|
437
|
+
|
|
438
|
+
### Technical
|
|
439
|
+
|
|
440
|
+
- Integrated standardized prompt caching system from ace-support-core
|
|
441
|
+
- Added 5 tests for ace-git option mapping (exclude_renames, exclude_moves, paths)
|
|
442
|
+
|
|
443
|
+
## [0.9.0] - 2025-11-16
|
|
444
|
+
|
|
445
|
+
### Changed
|
|
446
|
+
|
|
447
|
+
- **Standardized Prompt Cache Management**: Migrated to use PromptCacheManager from ace-support-core
|
|
448
|
+
- Cache location now: `.cache/ace-docs/sessions/analyze-consistency-{timestamp}/`
|
|
449
|
+
- System prompt file: `prompt-system.md` → `system.prompt.md`
|
|
450
|
+
- User prompt file: `prompt-user.md` → `user.prompt.md`
|
|
451
|
+
- Uses ProjectRootFinder for git worktree support (via PromptCacheManager)
|
|
452
|
+
- Consistent with ace-review and future ace-* gems
|
|
453
|
+
- **BREAKING**: Old cache file names no longer used (cache files are session-specific, not persistent)
|
|
454
|
+
|
|
455
|
+
### Dependencies
|
|
456
|
+
|
|
457
|
+
- Updated ace-support-core to `~> 0.11` (requires PromptCacheManager)
|
|
458
|
+
|
|
459
|
+
## [0.8.0] - 2025-11-15
|
|
460
|
+
|
|
461
|
+
### BREAKING CHANGE: ISO 8601 UTC Timestamp Format
|
|
462
|
+
|
|
463
|
+
- **Migrated timestamp format to ISO 8601 UTC standard**
|
|
464
|
+
- New format: `YYYY-MM-DDTHH:MM:SSZ` (e.g., `2025-11-15T08:30:45Z`)
|
|
465
|
+
- `"now"` special value now generates ISO 8601 UTC format (was local time)
|
|
466
|
+
- All timestamps are stored and displayed in UTC
|
|
467
|
+
- Aligns with industry standards (GitHub API, Git commits, ISO 8601)
|
|
468
|
+
- Eliminates timezone ambiguity and DST issues
|
|
469
|
+
|
|
470
|
+
### Added
|
|
471
|
+
|
|
472
|
+
- **ISO 8601 UTC Timestamp Support**: Industry-standard timestamp format
|
|
473
|
+
- Format: `YYYY-MM-DDTHH:MM:SSZ` with explicit UTC timezone
|
|
474
|
+
- Unambiguous - `Z` suffix means UTC
|
|
475
|
+
- Universal - Same timestamp for all users globally
|
|
476
|
+
- Sortable - Lexicographic sorting works correctly
|
|
477
|
+
- Parse-able - Standard format works with all datetime libraries
|
|
478
|
+
- Special value `"now"` generates current UTC time
|
|
479
|
+
- Special value `"today"` continues to generate date-only format
|
|
480
|
+
|
|
481
|
+
- **TimestampParser Atom**: Enhanced with ISO 8601 support
|
|
482
|
+
- Parses ISO 8601 UTC strings → Time objects (UTC)
|
|
483
|
+
- Parses date-only strings → Date objects
|
|
484
|
+
- Parses legacy datetime strings → Time objects (converted to UTC)
|
|
485
|
+
- Validates all three formats with regex patterns
|
|
486
|
+
- Comprehensive error handling with migration guidance
|
|
487
|
+
|
|
488
|
+
- **Command-Level Tests**: New test coverage for CLI commands
|
|
489
|
+
- `StatusCommand` tests for Date/Time polymorphic handling
|
|
490
|
+
- Tests prevent regression bugs in CLI layer
|
|
491
|
+
- Validates proper ISO 8601 display in UI
|
|
492
|
+
|
|
493
|
+
### Enhanced
|
|
494
|
+
|
|
495
|
+
- **FrontmatterManager**: Generates ISO 8601 UTC timestamps
|
|
496
|
+
- `"now"` generates ISO 8601 UTC format
|
|
497
|
+
- `"today"` generates date-only format
|
|
498
|
+
- Converts legacy format to ISO 8601 automatically
|
|
499
|
+
|
|
500
|
+
- **Document Model**: UTC timezone handling
|
|
501
|
+
- All Time objects converted to UTC
|
|
502
|
+
- Maintains polymorphic return types (Date/Time)
|
|
503
|
+
- Proper comparison and calculation with UTC times
|
|
504
|
+
|
|
505
|
+
- **StatusCommand**: Fixed crash and improved display
|
|
506
|
+
- Fixed TypeError crash when handling Time objects
|
|
507
|
+
- Displays full ISO 8601 timestamp for Time objects
|
|
508
|
+
- Displays date-only for Date objects
|
|
509
|
+
- No information loss - time component always visible
|
|
510
|
+
|
|
511
|
+
### Backward Compatibility
|
|
512
|
+
|
|
513
|
+
- **Legacy format fully supported**: `YYYY-MM-DD HH:MM` format still parsed
|
|
514
|
+
- Interpreted as local time, converted to UTC internally
|
|
515
|
+
- Will be deprecated in future major version
|
|
516
|
+
- Provides clear migration path
|
|
517
|
+
|
|
518
|
+
### Documentation
|
|
519
|
+
|
|
520
|
+
- Updated README.md with ISO 8601 examples and format details
|
|
521
|
+
- Added comprehensive timestamp format reference
|
|
522
|
+
- Documented benefits of ISO 8601 UTC format
|
|
523
|
+
- Provided migration guide from legacy format
|
|
524
|
+
- Updated all examples to use ISO 8601
|
|
525
|
+
|
|
526
|
+
### Testing
|
|
527
|
+
|
|
528
|
+
- Added 85+ new tests with 200+ assertions for ISO 8601
|
|
529
|
+
- ISO 8601 parsing and formatting tests
|
|
530
|
+
- UTC conversion accuracy tests
|
|
531
|
+
- Backward compatibility tests
|
|
532
|
+
- Command-level integration tests
|
|
533
|
+
- Edge case tests (year boundaries, leap seconds awareness)
|
|
534
|
+
- Edge case tests for year boundaries, month boundaries, leap years
|
|
535
|
+
- Integration tests for frontmatter preservation
|
|
536
|
+
- All tests passing with no regressions
|
|
537
|
+
|
|
538
|
+
## [0.7.0] - 2025-11-12
|
|
539
|
+
|
|
540
|
+
### Added
|
|
541
|
+
|
|
542
|
+
- **Workflow Migration**: Migrated 5 documentation generation workflows from dev-handbook
|
|
543
|
+
- `create-api-docs.wf.md` - Generate API documentation from code structure
|
|
544
|
+
- `create-user-docs.wf.md` - Create user-facing guides and tutorials
|
|
545
|
+
- `update-blueprint.wf.md` - Maintain architectural documentation
|
|
546
|
+
- `update-context-docs.wf.md` - Update project context documentation
|
|
547
|
+
- `create-cookbook.wf.md` - Generate practical how-to guides
|
|
548
|
+
- Consolidates all documentation workflows in ace-docs gem
|
|
549
|
+
- Workflows accessible via `ace-nav wfi://workflow-name` protocol
|
|
550
|
+
|
|
551
|
+
### Changed
|
|
552
|
+
|
|
553
|
+
- **Path Modernization**: Updated all workflow references to use protocol-based paths
|
|
554
|
+
- Replaced hardcoded `dev-handbook/workflow-instructions/load-project-context.wf.md` with `ace-nav wfi://load-context`
|
|
555
|
+
- Updated existing workflows (create-adr, maintain-adrs) for consistency
|
|
556
|
+
- All workflows now project-agnostic without hardcoded legacy paths
|
|
557
|
+
|
|
558
|
+
### Fixed
|
|
559
|
+
|
|
560
|
+
- **Frontmatter Corruption**: Restored proper YAML frontmatter in create-adr and maintain-adrs workflows
|
|
561
|
+
- Fixed ace-lint formatting issue that collapsed multi-line YAML
|
|
562
|
+
|
|
563
|
+
## [0.6.2] - 2025-11-01
|
|
564
|
+
|
|
565
|
+
### Changed
|
|
566
|
+
|
|
567
|
+
- **Dependency Migration**: Updated to use renamed infrastructure gems
|
|
568
|
+
- Changed dependency from `ace-core` to `ace-support-core`
|
|
569
|
+
- Part of ecosystem-wide naming convention alignment for infrastructure gems
|
|
570
|
+
|
|
571
|
+
|
|
572
|
+
## [0.6.1] - 2025-10-24
|
|
573
|
+
|
|
574
|
+
### Technical
|
|
575
|
+
- Standardize diff/diffs API documentation to ace-git-diff format
|
|
576
|
+
- Update usage documentation to use `paths:` instead of `filters:` for consistency
|
|
577
|
+
- Update workflow instructions with standardized diff format
|
|
578
|
+
|
|
579
|
+
## [0.6.0] - 2025-10-23
|
|
580
|
+
|
|
581
|
+
### Changed
|
|
582
|
+
- Integrated with ace-git-diff for unified diff operations
|
|
583
|
+
- ChangeDetector now delegates generate_git_diff() to ace-git-diff
|
|
584
|
+
- Added ace-git-diff (~> 0.1.0) as runtime dependency
|
|
585
|
+
- Example configs updated with diff filtering notes
|
|
586
|
+
|
|
587
|
+
### Fixed
|
|
588
|
+
- Updated test mocks to work with ace-git-diff DiffResult objects
|
|
589
|
+
- All ChangeDetector tests passing (17 tests, 66 assertions)
|
|
590
|
+
|
|
591
|
+
## [0.5.3] - 2025-10-23
|
|
592
|
+
|
|
593
|
+
### Fixed
|
|
594
|
+
|
|
595
|
+
- **Configuration reading**: Now properly respects config file settings
|
|
596
|
+
- Reads `llm.model` from config.yml in addition to `llm_model`
|
|
597
|
+
- Configuration cascade now works correctly with nested config values
|
|
598
|
+
- Model selection respects user configuration instead of ignoring it
|
|
599
|
+
- **Performance dramatically improved**: Changed default model from gflash to glite
|
|
600
|
+
- Reduced analysis time from 2m28s to ~4-10s for typical document sets
|
|
601
|
+
- Default model changed to "glite" for better performance
|
|
602
|
+
- Still allows override via --model CLI option
|
|
603
|
+
- **Output handling**: Only displays report path, not content
|
|
604
|
+
- Returns report file path instead of content from execute_llm_query
|
|
605
|
+
- Prevents duplicate output to stdout
|
|
606
|
+
- Cleaner command output showing only where report was saved
|
|
607
|
+
|
|
608
|
+
## [0.5.2] - 2025-10-23
|
|
609
|
+
|
|
610
|
+
### Fixed
|
|
611
|
+
|
|
612
|
+
- **Simplified analyze-consistency implementation**: Major refactoring for cleaner design
|
|
613
|
+
- Now uses ace-llm's native `output:` option to save report directly as `report.md`
|
|
614
|
+
- Removed redundant report processing and ConsistencyReport parsing
|
|
615
|
+
- Eliminated duplicate file generation (no more separate `llm-response.json` and `report.json`)
|
|
616
|
+
- Report is displayed directly as returned by LLM without reformatting
|
|
617
|
+
- **Fixed cache directory path**: Now uses git root for absolute paths
|
|
618
|
+
- Prevents nested `.cache/ace-docs/.cache/ace-docs/...` directory creation
|
|
619
|
+
- Cache directory is always created from project root regardless of where command is run
|
|
620
|
+
- Consistent path handling across all commands
|
|
621
|
+
|
|
622
|
+
### Changed
|
|
623
|
+
|
|
624
|
+
- **Cleaner session directory**: Simplified output structure
|
|
625
|
+
- Only saves `report.md` (the actual LLM response)
|
|
626
|
+
- Removed redundant `save_report` and `save_llm_response` methods
|
|
627
|
+
- Less files, clearer purpose
|
|
628
|
+
|
|
629
|
+
## [0.5.1] - 2025-10-21
|
|
630
|
+
|
|
631
|
+
### Fixed
|
|
632
|
+
|
|
633
|
+
- **Critical bug in analyze-consistency command**: Fixed LLM response handling
|
|
634
|
+
- Changed from checking non-existent `result[:success]` to using `result[:text]` directly
|
|
635
|
+
- Now uses ace-llm's native `output:` option to save responses immediately
|
|
636
|
+
- Prevents loss of LLM compute when errors occur
|
|
637
|
+
- Response saved to `llm-response.json` before any validation
|
|
638
|
+
- **Removed unnecessary document copying**: Uses real file paths instead of copying to temp files
|
|
639
|
+
- Session directory now only contains metadata and prompts, not document copies
|
|
640
|
+
- ace-bundle loads documents directly from their actual locations
|
|
641
|
+
- Cleaner session directory structure and better path references in analysis
|
|
642
|
+
- **Better error messages**: Shows actual API errors instead of generic "Unknown error"
|
|
643
|
+
- **Added progress indicators**: Shows detailed progress during analysis phases
|
|
644
|
+
|
|
645
|
+
## [0.5.0] - 2025-10-21
|
|
646
|
+
|
|
647
|
+
### Added
|
|
648
|
+
|
|
649
|
+
- **Cross-document consistency analysis command** (`analyze-consistency`)
|
|
650
|
+
- Detects terminology conflicts across documents (e.g., "gem" vs "package")
|
|
651
|
+
- Identifies duplicate content with configurable similarity threshold
|
|
652
|
+
- Finds version number inconsistencies
|
|
653
|
+
- Suggests content consolidation opportunities
|
|
654
|
+
- LLM-powered semantic analysis using ace-llm Ruby library
|
|
655
|
+
- Multiple output formats: markdown, json, text
|
|
656
|
+
- Caching support for historical comparison
|
|
657
|
+
- Configurable analysis focus (--terminology, --duplicates, --versions)
|
|
658
|
+
- Strict mode for CI/CD integration (exit code 1 if issues found)
|
|
659
|
+
|
|
660
|
+
### Fixed
|
|
661
|
+
|
|
662
|
+
- Use ace-llm Ruby library directly instead of subprocess for better performance
|
|
663
|
+
- Test failures and improved test performance
|
|
664
|
+
|
|
665
|
+
### Technical
|
|
666
|
+
|
|
667
|
+
- New prompts module for consistency analysis
|
|
668
|
+
- New models for consistency report handling
|
|
669
|
+
- New organisms for cross-document analysis orchestration
|
|
670
|
+
- New command implementation for analyze-consistency
|
|
671
|
+
- Updated README with comprehensive examples
|
|
672
|
+
- Added architecture documentation with flow diagrams
|
|
673
|
+
|
|
674
|
+
## [0.4.7] - 2025-10-20
|
|
675
|
+
|
|
676
|
+
### Added
|
|
677
|
+
|
|
678
|
+
- **Comprehensive test coverage for multi-subject configuration**
|
|
679
|
+
- Added 4 unit tests for Document model multi-subject parsing
|
|
680
|
+
- Added 5 integration tests for ChangeDetector multi-diff generation
|
|
681
|
+
- Added 7 tests for DocumentAnalysisPrompt multi-subject handling
|
|
682
|
+
- All tests ensure backward compatibility with single-subject format
|
|
683
|
+
|
|
684
|
+
### Documentation
|
|
685
|
+
|
|
686
|
+
- **Example documents for multi-subject configuration**
|
|
687
|
+
- Created detailed multi-subject example showing code/config/docs separation
|
|
688
|
+
- Created single-subject example with migration guide
|
|
689
|
+
- Both examples include comprehensive usage instructions and best practices
|
|
690
|
+
|
|
691
|
+
### Technical
|
|
692
|
+
|
|
693
|
+
- Enhanced analyze command and multi-subject support documentation in usage.md
|
|
694
|
+
- Updated README with new analyze command and features documentation
|
|
695
|
+
|
|
696
|
+
## [0.4.6] - 2025-10-18
|
|
697
|
+
|
|
698
|
+
### Fixed
|
|
699
|
+
|
|
700
|
+
- **LLM timeout issue in analyze command** - Requests no longer timeout after 60 seconds
|
|
701
|
+
- Added configurable `llm_timeout` setting with default of 300 seconds (5 minutes)
|
|
702
|
+
- Timeout can be customized in `.ace/docs/config.yml`
|
|
703
|
+
- Prevents `Net::ReadTimeout` errors for complex document analyses
|
|
704
|
+
- Example config updated with timeout documentation
|
|
705
|
+
|
|
706
|
+
### Added
|
|
707
|
+
|
|
708
|
+
- New configuration option `llm_timeout` in seconds (default: 300)
|
|
709
|
+
|
|
710
|
+
## [0.4.5] - 2025-10-18
|
|
711
|
+
|
|
712
|
+
### Changed
|
|
713
|
+
|
|
714
|
+
- **Optimized workflow for specific file updates** in update-docs.wf.md
|
|
715
|
+
- Workflow now skips status check when specific files are provided, going directly to analysis
|
|
716
|
+
- Added clear decision logic: specific files → direct analysis, bulk operations → status-first
|
|
717
|
+
- Restructured Quick Start section with two distinct paths (Direct Path vs Status-First)
|
|
718
|
+
- Updated Workflow Steps with conditional flow - Step 1 (Status Check) marked as "Bulk Operations Only"
|
|
719
|
+
- Enhanced Usage Examples with dedicated "Update specific document (Direct Path)" example
|
|
720
|
+
- Improved efficiency for common use case: `/ace:update-docs ace-docs/README.md`
|
|
721
|
+
|
|
722
|
+
## [0.4.4] - 2025-10-18
|
|
723
|
+
|
|
724
|
+
### Fixed
|
|
725
|
+
|
|
726
|
+
- Critical shell expansion bug in ChangeDetector causing incorrect glob pattern matching
|
|
727
|
+
- Date resolution to check ace-docs namespace before legacy update namespace
|
|
728
|
+
- Multi-subject handling in build_analysis_scope_section to prevent TypeError
|
|
729
|
+
- Diff file paths now use absolute paths for proper ace-bundle loading
|
|
730
|
+
|
|
731
|
+
### Changed
|
|
732
|
+
|
|
733
|
+
- Updated workflow instructions (update-docs.wf.md) to use `analyze` instead of deprecated `diff` command
|
|
734
|
+
- Workflow now emphasizes analysis.md as primary output for LLM recommendations
|
|
735
|
+
- Added documentation for multi-subject configuration in workflows
|
|
736
|
+
|
|
737
|
+
### Added
|
|
738
|
+
|
|
739
|
+
- **Multi-subject configuration support** for categorizing different types of changes
|
|
740
|
+
- Define multiple subjects in document frontmatter (e.g., code, config, docs)
|
|
741
|
+
- Each subject generates its own diff file (code.diff, config.diff, docs.diff)
|
|
742
|
+
- Maintains backward compatibility with single-subject configuration
|
|
743
|
+
- Improved dual-mode analysis prompts for separating code from docs/config changes
|
|
744
|
+
|
|
745
|
+
- New analysis prompts in `handbook/prompts/`:
|
|
746
|
+
- `ace-change-analyzer.system.md` - Dual analysis system prompt (v3.0)
|
|
747
|
+
- `ace-change-analyzer.user.md` - User instructions for dual analysis
|
|
748
|
+
|
|
749
|
+
### Changed
|
|
750
|
+
|
|
751
|
+
- Document model now supports both single and multi-subject configurations
|
|
752
|
+
- Added `multi_subject?` method to check for multi-subject configuration
|
|
753
|
+
- Added `subject_configurations` method returning structured subject data
|
|
754
|
+
- Single subject returns `{ name: "default", filters: [...] }`
|
|
755
|
+
|
|
756
|
+
- ChangeDetector enhanced for multiple diff generation
|
|
757
|
+
- New `get_diffs_for_subjects` method generates separate diffs per subject
|
|
758
|
+
- Returns hash of `{subject_name => diff_content}` for multi-subject
|
|
759
|
+
- Single subject behavior unchanged for backward compatibility
|
|
760
|
+
|
|
761
|
+
- DocumentAnalysisPrompt updated to handle multiple diff files
|
|
762
|
+
- Accepts either single diff string or hash of diffs
|
|
763
|
+
- Saves each diff with subject name (e.g., "code.diff", "docs.diff")
|
|
764
|
+
- Adds all diff files to context.md files array
|
|
765
|
+
|
|
766
|
+
- AnalyzeCommand improved display for multi-subject
|
|
767
|
+
- Shows configured subjects with their filters
|
|
768
|
+
- Displays diff statistics per subject
|
|
769
|
+
- Clear progress messages for multi-subject processing
|
|
770
|
+
|
|
771
|
+
### Documentation
|
|
772
|
+
|
|
773
|
+
- Updated README.md with multi-subject configuration examples
|
|
774
|
+
- Added multi-subject example to `.ace.example/docs/config.yml`
|
|
775
|
+
- Example usage in ace-docs README.md frontmatter
|
|
776
|
+
|
|
777
|
+
## [0.4.3] - 2025-10-18
|
|
778
|
+
|
|
779
|
+
### Fixed
|
|
780
|
+
|
|
781
|
+
- Save prompts (prompt-system.md, prompt-user.md) before calling LLM instead of after
|
|
782
|
+
- Ensures prompts available for debugging even if LLM call fails
|
|
783
|
+
- Can reproduce exact inputs sent to LLM
|
|
784
|
+
- Matches pattern for context.md and repo-diff.diff (already saved early)
|
|
785
|
+
|
|
786
|
+
## [0.4.2] - 2025-10-16
|
|
787
|
+
|
|
788
|
+
### Changed
|
|
789
|
+
|
|
790
|
+
- Refactored `ace-docs analyze` from document-centric to general-purpose change analyzer
|
|
791
|
+
- Removed document embedding and ace-bundle integration from analysis workflow
|
|
792
|
+
- Simplified analysis prompts to focus on diff summarization without doc-update assumptions
|
|
793
|
+
- Updated system prompt to output general change analysis instead of doc recommendations
|
|
794
|
+
|
|
795
|
+
### Technical
|
|
796
|
+
|
|
797
|
+
- Removed `create_context_markdown` and `load_context_md` methods from DocumentAnalysisPrompt
|
|
798
|
+
- Cleaned up metadata to remove context_saved references
|
|
799
|
+
- Simplified prompt structure for better performance and clarity
|
|
800
|
+
|
|
801
|
+
## [0.4.1] - 2025-10-16
|
|
802
|
+
|
|
803
|
+
### Added
|
|
804
|
+
|
|
805
|
+
- **Enhanced System Prompt**: Improved prompt engineering following best practices
|
|
806
|
+
- Added ACE Documentation Diff Analyzer role definition
|
|
807
|
+
- Self-check requirement for unmapped diff hunks
|
|
808
|
+
- Uncertainty handling and guardrails against hallucination
|
|
809
|
+
- Table format for Recommended Updates section
|
|
810
|
+
- Output length constraints (≤ 2 lines per change)
|
|
811
|
+
- Prompt versioning (v1.1 — 2025-10-16)
|
|
812
|
+
- Concrete example showing expected output format
|
|
813
|
+
|
|
814
|
+
- **User Prompt Template**: New documentation file `handbook/prompts/document-analysis.md`
|
|
815
|
+
- Documents prompt structure with examples
|
|
816
|
+
- Explains XML embedding format for context
|
|
817
|
+
- Shows ace-bundle integration patterns
|
|
818
|
+
|
|
819
|
+
- **ace-bundle Integration**: Optional structured context embedding
|
|
820
|
+
- Uses `Ace::Context.load_auto()` with markdown-xml format
|
|
821
|
+
- Embeds document and related files using XML tags (`<file path="...">`)
|
|
822
|
+
- Creates `context.yml` configuration in analyze cache directory
|
|
823
|
+
- Graceful fallback when ace-bundle unavailable (optional dependency)
|
|
824
|
+
|
|
825
|
+
### Changed
|
|
826
|
+
|
|
827
|
+
- **Cache Structure**: Now includes `context.yml` for full reproducibility
|
|
828
|
+
```
|
|
829
|
+
.cache/ace-docs/analyze-{timestamp}/
|
|
830
|
+
├── repo-diff.diff # Filtered raw diff
|
|
831
|
+
├── context.yml # ace-bundle configuration (NEW)
|
|
832
|
+
├── prompt-system.md # System prompt used
|
|
833
|
+
├── prompt-user.md # User prompt with embedded context
|
|
834
|
+
├── analysis.md # LLM analysis
|
|
835
|
+
└── metadata.yml # Session info + context config reference
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
- **Prompt Builder**: Modified `DocumentAnalysisPrompt.build()` to accept `cache_dir` parameter
|
|
839
|
+
- **Analyze Command**: Creates session directory before LLM analysis for context.yml generation
|
|
840
|
+
|
|
841
|
+
### Technical
|
|
842
|
+
|
|
843
|
+
- Added `Ace::Docs.debug?` method for debug mode detection
|
|
844
|
+
- Enhanced metadata.yml to track context configuration
|
|
845
|
+
- ace-bundle is optional (graceful degradation when unavailable)
|
|
846
|
+
|
|
847
|
+
## [0.4.0] - 2025-10-16
|
|
848
|
+
|
|
849
|
+
### Added
|
|
850
|
+
|
|
851
|
+
- **Unified Analyze Command**: Replaced separate diff/analyze commands with single focused analyze command
|
|
852
|
+
- Real LLM-powered analysis (not just formatted diff)
|
|
853
|
+
- Uses `Ace::LLM::QueryInterface` directly (no subprocess overhead)
|
|
854
|
+
- Extracts subject.diff.filters from frontmatter automatically
|
|
855
|
+
- Uses document context (keywords, preset, type, purpose) for intelligent analysis
|
|
856
|
+
- Generates structured recommendations: Summary, Changes by Priority, Recommended Updates
|
|
857
|
+
|
|
858
|
+
- **ace-nav Protocol Integration**: Externalized prompts using ace-nav protocol
|
|
859
|
+
- System prompt: `handbook/prompts/document-analysis.system.md`
|
|
860
|
+
- Loadable via `ace-nav prompt://document-analysis.system --content`
|
|
861
|
+
- Users can override at project (`.ace/`) or user (`~/.ace/`) level
|
|
862
|
+
- Protocol configuration in `.ace.example/nav/protocols/prompt-sources/ace-docs.yml`
|
|
863
|
+
|
|
864
|
+
- **Prompt Transparency**: Both prompts saved to analyze cache
|
|
865
|
+
- `prompt-system.md` - System prompt sent to LLM
|
|
866
|
+
- `prompt-user.md` - User prompt with document context
|
|
867
|
+
- Full reproducibility and debugging support
|
|
868
|
+
- Metadata tracks which prompts were used
|
|
869
|
+
|
|
870
|
+
### Changed
|
|
871
|
+
|
|
872
|
+
- **File Extensions**: Renamed `.patch` → `.diff` for git diff files
|
|
873
|
+
- **Prompt Architecture**: Split into system + user prompts
|
|
874
|
+
- System prompt: Role, instructions, output format
|
|
875
|
+
- User prompt: Document metadata, context, diff content
|
|
876
|
+
- Better LLM behavior (system prompts weighted differently)
|
|
877
|
+
|
|
878
|
+
- **Cache Structure**: New analyze session format
|
|
879
|
+
```
|
|
880
|
+
.cache/ace-docs/analyze-{timestamp}/
|
|
881
|
+
├── repo-diff.diff # Filtered raw diff
|
|
882
|
+
├── prompt-system.md # System prompt used
|
|
883
|
+
├── prompt-user.md # User prompt used
|
|
884
|
+
├── analysis.md # LLM analysis
|
|
885
|
+
└── metadata.yml # Session info + prompt references
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
### Removed
|
|
889
|
+
|
|
890
|
+
- **Old diff Command**: Removed misleading diff command (created "analysis.md" with just formatted diff)
|
|
891
|
+
- **Old analyze Command**: Removed incomplete batch analyze command
|
|
892
|
+
- **Obsolete Molecules**: Removed `diff_analyzer.rb`, `report_formatter.rb`, `time_range_finder.rb`
|
|
893
|
+
|
|
894
|
+
### Technical
|
|
895
|
+
|
|
896
|
+
- Added `ace-llm` as runtime dependency
|
|
897
|
+
- Simplified codebase: 307 insertions, 561 deletions (net reduction)
|
|
898
|
+
- Consistent with ace-review and ace-git-commit prompt patterns
|
|
899
|
+
|
|
900
|
+
## [0.3.3] - 2025-10-16
|
|
901
|
+
|
|
902
|
+
### Added
|
|
903
|
+
|
|
904
|
+
- **Subject Diff Filtering**: Filter git diffs by relevant document paths via `ace-docs.subject.diff.filters` frontmatter
|
|
905
|
+
- Configure which files/directories each document cares about
|
|
906
|
+
- Uses git native path filtering for efficiency (git diff -- path1 path2)
|
|
907
|
+
- Dramatically reduces diff noise for documentation review
|
|
908
|
+
- Example: README.md only shows changes in ace-docs/ and CHANGELOG.md
|
|
909
|
+
|
|
910
|
+
- **Semantic Validation**: LLM-powered documentation accuracy validation
|
|
911
|
+
- New `validate --semantic` flag for content validation
|
|
912
|
+
- Checks if content matches stated purpose, identifies contradictions
|
|
913
|
+
- Uses ace-llm subprocess with gflash model (temperature 0.3)
|
|
914
|
+
- Returns specific issues and inconsistencies found
|
|
915
|
+
- Example: `ace-docs validate docs/architecture.md --semantic`
|
|
916
|
+
|
|
917
|
+
- **ace-docs Namespace Structure**: Unified configuration organization
|
|
918
|
+
- New `ace-docs:` namespace for all ace-docs configuration (subject, context, rules)
|
|
919
|
+
- Aligns with ace-review's subject/context architecture pattern
|
|
920
|
+
- Fields: `ace-docs.subject.diff.filters`, `ace-docs.context.keywords`, `ace-docs.context.preset`, `ace-docs.rules`
|
|
921
|
+
- Backward compatible: old `update.focus.paths` format still supported via fallback
|
|
922
|
+
|
|
923
|
+
### Changed
|
|
924
|
+
|
|
925
|
+
- **Document Model**: Added ace-docs namespace accessors
|
|
926
|
+
- `subject_diff_filters()` - Extract filters with legacy format fallback
|
|
927
|
+
- `context_keywords()` - Extract LLM relevance hints
|
|
928
|
+
- `ace_docs_config()` - Access full ace-docs namespace
|
|
929
|
+
|
|
930
|
+
- **ChangeDetector**: Integrated subject diff filtering
|
|
931
|
+
- `get_diff_for_document()` now uses `subject_diff_filters` for path filtering
|
|
932
|
+
- `get_diff_for_documents()` applies filters per-document
|
|
933
|
+
- Removed obsolete `filter_relevant_changes()` method
|
|
934
|
+
|
|
935
|
+
- **Validator**: Implemented semantic validation
|
|
936
|
+
- `validate_semantic()` now calls ace-llm subprocess
|
|
937
|
+
- Builds semantic validation prompt from document metadata
|
|
938
|
+
- Parses LLM response for validation status and issues
|
|
939
|
+
- Graceful error handling for missing ace-llm
|
|
940
|
+
|
|
941
|
+
### Fixed
|
|
942
|
+
|
|
943
|
+
- Removed stale TODO comment from `update_command.rb` (preset selection already implemented)
|
|
944
|
+
|
|
945
|
+
### Documentation
|
|
946
|
+
|
|
947
|
+
- Updated README.md with ace-docs namespace schema and examples
|
|
948
|
+
- Created comprehensive usage guide in task 073
|
|
949
|
+
- Created validation scenario VS-073-001 for subject diff filtering
|
|
950
|
+
|
|
951
|
+
## [0.3.2] - 2025-10-15
|
|
952
|
+
|
|
953
|
+
### Fixed
|
|
954
|
+
|
|
955
|
+
- **Date to Commit Resolution**: Fixed critical bug where `diff` command couldn't resolve dates to git commit SHAs
|
|
956
|
+
- `git diff 2025-10-14..HEAD` (bad revision) → now resolves to proper commit SHA
|
|
957
|
+
- Added `resolve_since_to_commit()` to convert dates to commit references
|
|
958
|
+
- Uses parent of first commit since date for inclusive diffs
|
|
959
|
+
|
|
960
|
+
- **Git Root Path Resolution**: All git commands now execute from repository root
|
|
961
|
+
- Fixes path resolution issues when running from subdirectories
|
|
962
|
+
- Added `git_root` helper with proper `chdir` handling
|
|
963
|
+
|
|
964
|
+
- **Folder Structure for Diff Sessions**: Each diff now gets organized session folder
|
|
965
|
+
- Structure: `.cache/ace-docs/diff-{timestamp}/`
|
|
966
|
+
- Contains: `repo-diff.patch` (raw diff), `analysis.md` (report), `metadata.yml` (session info)
|
|
967
|
+
- Better artifact organization for large diffs
|
|
968
|
+
|
|
969
|
+
## [0.3.1] - 2025-10-15
|
|
970
|
+
|
|
971
|
+
### Added
|
|
972
|
+
|
|
973
|
+
- **Frontmatter Initialization**: `ace-docs update` now creates frontmatter on files without it
|
|
974
|
+
- Auto-infers `doc-type` from file path (README.md → reference, *.wf.md → workflow, etc.)
|
|
975
|
+
- Requires `purpose` field for new frontmatter
|
|
976
|
+
- Seamless workflow: initialize and update in single command
|
|
977
|
+
|
|
978
|
+
### Fixed
|
|
979
|
+
|
|
980
|
+
- **YAML Formatting**: Removed duplicate `---` markers in frontmatter output
|
|
981
|
+
- **Update Command**: Now handles files without existing frontmatter
|
|
982
|
+
|
|
983
|
+
### Changed
|
|
984
|
+
|
|
985
|
+
- **Documentation**: Comprehensive updates to usage.md
|
|
986
|
+
- Added `version` command documentation
|
|
987
|
+
- Detailed `analyze` command section with all options
|
|
988
|
+
- Enhanced `validate` command with `--semantic` flag documentation
|
|
989
|
+
- Fixed `update` command syntax examples (--set key:value)
|
|
990
|
+
- Updated configuration section with LLM and ace-lint settings
|
|
991
|
+
- Enhanced troubleshooting with analyze-specific issues
|
|
992
|
+
- Added complete workflow examples
|
|
993
|
+
|
|
994
|
+
## [0.3.0] - 2025-10-14
|
|
995
|
+
|
|
996
|
+
### Added
|
|
997
|
+
|
|
998
|
+
- **Batch Analysis Command**: New `ace-docs analyze` command for LLM-powered documentation analysis
|
|
999
|
+
- Accepts file lists and filter options (--needs-update, --type, --freshness)
|
|
1000
|
+
- Automatic time range detection from document staleness
|
|
1001
|
+
- LLM compaction via ace-llm subprocess integration
|
|
1002
|
+
- Markdown reports organized by impact level (HIGH/MEDIUM/LOW)
|
|
1003
|
+
- Cache management with timestamped analysis reports
|
|
1004
|
+
- Support for exclude-renames and exclude-moves options
|
|
1005
|
+
|
|
1006
|
+
- **Command Architecture Refactoring**: Extracted all CLI commands to testable classes
|
|
1007
|
+
- DiffCommand, UpdateCommand, ValidateCommand, AnalyzeCommand
|
|
1008
|
+
- Improved separation of concerns and testability
|
|
1009
|
+
- Return proper exit codes for all commands
|
|
1010
|
+
|
|
1011
|
+
- **ace-lint Integration**: Validation now delegates to ace-lint when available
|
|
1012
|
+
- Subprocess integration with graceful fallback
|
|
1013
|
+
- Parse and display ace-lint output properly
|
|
1014
|
+
|
|
1015
|
+
- **Configuration System**: Integrated with ace-core config cascade
|
|
1016
|
+
- Added Ace::Docs.config method with defaults
|
|
1017
|
+
- Flat configuration structure following ACE standards
|
|
1018
|
+
- Example config with all available settings
|
|
1019
|
+
|
|
1020
|
+
### Changed
|
|
1021
|
+
|
|
1022
|
+
- **CLI Structure**: Refactored to delegate all commands to separate command classes
|
|
1023
|
+
- **Documentation**: Updated README with batch analysis examples and new features
|
|
1024
|
+
|
|
1025
|
+
### Technical
|
|
1026
|
+
|
|
1027
|
+
- Added comprehensive ATOM architecture components (atoms, molecules, models)
|
|
1028
|
+
- TimeRangeCalculator and DiffFilterer atoms for date and diff handling
|
|
1029
|
+
- TimeRangeFinder, DiffAnalyzer, ReportFormatter molecules
|
|
1030
|
+
- AnalysisReport model for structured report data
|
|
1031
|
+
- CompactDiffPrompt for LLM prompt generation
|
|
1032
|
+
|
|
1033
|
+
## [0.2.0] - 2025-10-14
|
|
1034
|
+
|
|
1035
|
+
### Added
|
|
1036
|
+
|
|
1037
|
+
- **ADR Lifecycle Workflows**: Comprehensive workflow instructions for complete ADR lifecycle management
|
|
1038
|
+
- `create-adr.wf.md`: Guide for creating new Architecture Decision Records
|
|
1039
|
+
- `maintain-adrs.wf.md`: Workflow for evolution, archival, and synchronization of existing ADRs
|
|
1040
|
+
- Embedded templates for ADR creation, deprecation notices, evolution sections, and archive README
|
|
1041
|
+
- Cross-references between workflows for seamless lifecycle management
|
|
1042
|
+
- Real examples from October 2025 ADR archival session
|
|
1043
|
+
- Decision criteria for archive vs evolve vs scope update actions
|
|
1044
|
+
- Research process guidance using grep to verify pattern usage
|
|
1045
|
+
- Integration with ace-docs validation tools
|
|
1046
|
+
|
|
1047
|
+
### Changed
|
|
1048
|
+
|
|
1049
|
+
- **update-docs.wf.md**: Added "Architecture Decision Records" section with references to both ADR workflows
|
|
1050
|
+
|
|
1051
|
+
## [0.1.1] - 2025-10-14
|
|
1052
|
+
|
|
1053
|
+
### Added
|
|
1054
|
+
- Implement proper document type inference hierarchy
|
|
1055
|
+
- Standardize Rakefile test commands and add CI fallback
|
|
1056
|
+
|
|
1057
|
+
### Fixed
|
|
1058
|
+
- Resolve symlink paths correctly on macOS
|
|
1059
|
+
- Fix document discovery and ignore patterns
|
|
1060
|
+
|
|
1061
|
+
### Technical
|
|
1062
|
+
- Add document-specific guidelines to update-docs workflow
|
|
1063
|
+
- Add missing usage.md and document remaining work as future enhancements
|
|
1064
|
+
- Add proper frontmatter with git dates to all managed documents
|
|
1065
|
+
|
|
1066
|
+
## [0.1.0] - 2025-10-13
|
|
1067
|
+
|
|
1068
|
+
### Added
|
|
1069
|
+
- Initial release of ace-docs gem
|
|
1070
|
+
- Document status tracking with YAML frontmatter
|
|
1071
|
+
- Document type classification (guide, architecture, reference, etc.)
|
|
1072
|
+
- Batch analysis and reporting capabilities
|
|
1073
|
+
- Integration with ace-core for configuration management
|
|
1074
|
+
- CLI commands for status checking and document updates
|
|
1075
|
+
- Support for automatic document updates based on frontmatter metadata
|
|
1076
|
+
|
|
1077
|
+
|
|
1078
|
+
## [0.20.2] - 2026-02-22
|
|
1079
|
+
|
|
1080
|
+
### Fixed
|
|
1081
|
+
- Stripped duplicate command name prefixes from example strings
|
|
1082
|
+
- Standardized quiet, verbose, debug option descriptions to canonical strings
|