ace-review 0.49.0 → 0.51.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 +4 -4
- data/CHANGELOG.md +40 -0
- data/README.md +1 -1
- data/handbook/skills/as-review-package/SKILL.md +11 -10
- data/handbook/workflow-instructions/review/package.wf.md +470 -6
- data/lib/ace/review/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 668a87bf537497e9b355bdd43874f45616fa7f07fd1fe7ebbf1c03479d57db73
|
|
4
|
+
data.tar.gz: c33804be4e90e6d806f383da65dc550eaffbca014ad153994203ca4375f9a4a9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 63851c725b131594c27d4b5edd8b9596d2a0f5461ec3976ddda3118169493ec2f6ee2af5e4b7099761e35375ef4e5b8e0047dbb57380c637a6d1c986cee2a606
|
|
7
|
+
data.tar.gz: 9fb857c6a77358fb8efc4aba526f8af6e7ad7d64a2db6b6ef8be5521bbd5074d4ff9075ecd77ae6112d9bf07c0d6b1b308b0c1315bac08c6291d7e07c33a88c2
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.51.0] - 2026-03-28
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Standardized package review output handling in `review/package` to persist full markdown reports in `.ace-local/review/package/`, with optional `ace-idea` creation for report attachment flow.
|
|
15
|
+
|
|
16
|
+
## [0.50.3] - 2026-03-28
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
- Corrected non-runnable `ace-search` examples in `review/package` for hyphen-prefixed flag discovery and help-text checks.
|
|
20
|
+
- Updated maintainability lint examples to target Ruby implementation files (`$1/lib/**/*.rb`) instead of unsupported directory-only lint targets.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- Standardized quick-reference `ace-search` snippets to match executable command forms used in the workflow body.
|
|
24
|
+
- Clarified that Step 1 shell blocks are reference execution snippets, reduced duplicated evidence-collection instructions, and narrowed D2 usage-doc scanning to `docs/usage.md` when available (with fallback to `docs/`).
|
|
25
|
+
|
|
26
|
+
## [0.50.2] - 2026-03-28
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- Replaced unsupported glob-style `ace-search` file inventory examples in `review/package` with path-scoped commands that execute correctly.
|
|
30
|
+
- Corrected the I5 help-text evidence command to search a real package path instead of a glob-resolved commands path.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
- Made Step 1 package input checks fail-fast (with explicit stop behavior) to prevent downstream review execution on invalid targets.
|
|
34
|
+
- Reworked maintainability checks to reduce duplicate lint noise and clarified that duplication scans are heuristic signals requiring manual confirmation.
|
|
35
|
+
|
|
36
|
+
## [0.50.1] - 2026-03-28
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
- Corrected `review/package` workflow command examples to avoid invalid `ace-bundle` preset usage and path-incompatible `ace-search` patterns.
|
|
40
|
+
- Added argument terminators for hyphen-prefixed search patterns and tightened performance/doc-drift checks to reduce noisy or ambiguous output.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- Aligned package review workflow to executable `ace-*` command surfaces and simplified maintainability checks to use deterministic lint/search evidence.
|
|
44
|
+
|
|
45
|
+
## [0.50.0] - 2026-03-28
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
- Expanded `review/package` workflow from placeholder instructions to a comprehensive evidence-first package review protocol spanning maintainability, interface quality, and documentation fidelity checks with required reporting templates.
|
|
49
|
+
|
|
10
50
|
## [0.49.0] - 2026-03-24
|
|
11
51
|
|
|
12
52
|
### Fixed
|
data/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Multi-model code review with preset-based analysis for PRs, tasks, and packages.
|
|
5
5
|
|
|
6
|
-
<img src="
|
|
6
|
+
<img src="../docs/brand/AgenticCodingEnvironment.Logo.XS.jpg" alt="ACE Logo" width="480">
|
|
7
7
|
<br><br>
|
|
8
8
|
|
|
9
9
|
<a href="https://rubygems.org/gems/ace-review"><img alt="Gem Version" src="https://img.shields.io/gem/v/ace-review.svg" /></a>
|
|
@@ -6,16 +6,17 @@ description: Review Package - Comprehensive code, docs, UX/DX review with recomm
|
|
|
6
6
|
# agent: Explore
|
|
7
7
|
user-invocable: true
|
|
8
8
|
allowed-tools:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
- Bash(ace-bundle:*)
|
|
10
|
+
- Bash(ace-git:*)
|
|
11
|
+
- Bash(gh:*)
|
|
12
|
+
- Bash(ace-idea:*)
|
|
13
|
+
- Read
|
|
14
|
+
- Glob
|
|
15
|
+
- Grep
|
|
16
|
+
- Write
|
|
17
|
+
- Edit
|
|
18
|
+
- TodoWrite
|
|
19
|
+
- Skill
|
|
19
20
|
argument-hint: [package-name]
|
|
20
21
|
last_modified: 2026-01-10
|
|
21
22
|
source: ace-review
|
|
@@ -1,16 +1,480 @@
|
|
|
1
1
|
---
|
|
2
2
|
doc-type: workflow
|
|
3
|
+
name: review-package
|
|
4
|
+
description: Structured package review workflow with deterministic evidence checks and prioritized findings output
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Bash(ace-bundle:*)
|
|
7
|
+
- Bash(ace-search:*)
|
|
8
|
+
- Bash(ace-lint:*)
|
|
9
|
+
- Bash(ace-idea:*)
|
|
3
10
|
title: Review Package Workflow
|
|
4
|
-
purpose: package
|
|
11
|
+
purpose: Run evidence-first package reviews across maintainability, interface quality, and documentation fidelity
|
|
5
12
|
ace-docs:
|
|
6
|
-
last-updated: 2026-03-
|
|
7
|
-
last-checked: 2026-03-
|
|
13
|
+
last-updated: 2026-03-28
|
|
14
|
+
last-checked: 2026-03-28
|
|
8
15
|
---
|
|
9
16
|
|
|
10
17
|
# Review Package Workflow
|
|
11
18
|
|
|
19
|
+
## Goal
|
|
20
|
+
|
|
21
|
+
Review a package with a repeatable, evidence-first process that combines deterministic checks and agent judgment, then output prioritized findings and concrete recommendations.
|
|
22
|
+
|
|
23
|
+
## Arguments
|
|
24
|
+
|
|
25
|
+
- `$1`: Package name (required), for example `ace-review`
|
|
26
|
+
|
|
27
|
+
## Prerequisites
|
|
28
|
+
|
|
29
|
+
- Target package directory exists in repository root
|
|
30
|
+
- `ace-bundle` and `ace-search` available
|
|
31
|
+
- `ace-idea` is optional for persisting the full report as an idea attachment
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Priority Model
|
|
35
|
+
|
|
36
|
+
Use these severity markers in findings:
|
|
37
|
+
|
|
38
|
+
- `🔴 Immediate`: must address now (correctness, security, severe maintainability risk)
|
|
39
|
+
- `🟡 Next Release`: should address in the next release cycle
|
|
40
|
+
- `🟢 Backlog`: useful improvements with lower urgency
|
|
41
|
+
- `🔵 Advisory`: informational guidance
|
|
42
|
+
|
|
43
|
+
## Findings Tables
|
|
44
|
+
|
|
45
|
+
Per-finding table:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
| # | Dimension | Check | Priority | Evidence | File(s) | Recommendation | Tool |
|
|
49
|
+
|---|-----------|-------|----------|----------|---------|----------------|------|
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Summary counts table:
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
| Dimension | Immediate | Next Release | Backlog | Advisory | Total |
|
|
56
|
+
|-----------|-----------|--------------|---------|----------|-------|
|
|
57
|
+
```
|
|
58
|
+
|
|
12
59
|
## Instructions
|
|
13
60
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
61
|
+
### Step 1: Validate Package Input
|
|
62
|
+
|
|
63
|
+
1. Ensure package argument is present:
|
|
64
|
+
These shell blocks are reference command snippets for agent execution flow checks; they are not intended to be run as a standalone script.
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
if [ -z "$1" ]; then
|
|
68
|
+
echo "Usage: /as-review-package <package-name>"
|
|
69
|
+
ace-search "^ace-" "." --files
|
|
70
|
+
exit 1
|
|
71
|
+
fi
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
2. Ensure target path exists:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
if [ ! -d "$1" ]; then
|
|
78
|
+
echo "Package not found: $1"
|
|
79
|
+
ace-search "^ace-" "." --files
|
|
80
|
+
exit 1
|
|
81
|
+
fi
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
3. If missing, list candidate packages and stop:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
ace-search "^ace-" "." --files
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Step 2: Load Review Context
|
|
91
|
+
|
|
92
|
+
1. Load baseline project context:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
ace-bundle project
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
2. Gather package-specific context directly:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
ace-search "." "$1" --files
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
3. Continue with project context and direct package inspection.
|
|
105
|
+
|
|
106
|
+
4. Initialize deterministic report output target:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
package_slug="$(printf '%s' "$1" | tr '/ ' '-')"
|
|
110
|
+
review_timestamp="$(date -u +%Y%m%dT%H%M%SZ)"
|
|
111
|
+
report_dir=".ace-local/review/package/${package_slug}"
|
|
112
|
+
report_path="${report_dir}/raw-review-${review_timestamp}.md"
|
|
113
|
+
mkdir -p "$report_dir"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Step 3: Build Evidence Inventory
|
|
117
|
+
|
|
118
|
+
Collect key files for later cross-checking:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Reuse the file inventory collected in Step 2.
|
|
122
|
+
ace-search "^#|^##|class |module |desc " "$1" --content
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Minimum evidence set:
|
|
126
|
+
|
|
127
|
+
- `README.md` and package `docs/usage.md` (if present)
|
|
128
|
+
- `CHANGELOG.md`
|
|
129
|
+
- `exe/*` and CLI command files
|
|
130
|
+
- `lib/**` implementation files
|
|
131
|
+
- `test/**` test files
|
|
132
|
+
- `.ace-defaults/**` configuration defaults
|
|
133
|
+
- `handbook/**` workflows and guides
|
|
134
|
+
|
|
135
|
+
### Step 4: Maintainability Review (Deterministic)
|
|
136
|
+
|
|
137
|
+
Run these checks first. Record evidence and thresholds.
|
|
138
|
+
|
|
139
|
+
#### M1. Test Coverage Ratio
|
|
140
|
+
|
|
141
|
+
Goal: test file count to implementation file count at or above `0.8:1`.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
ace-search "\\.rb$" "$1/lib" --files
|
|
145
|
+
ace-search "_test\\.rb$" "$1/test" --files
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Thresholds:
|
|
149
|
+
|
|
150
|
+
- `🔴`: ratio `< 0.5`
|
|
151
|
+
- `🟡`: ratio `>= 0.5` and `< 0.8`
|
|
152
|
+
- `🟢`: ratio `>= 0.8`
|
|
153
|
+
|
|
154
|
+
If SimpleCov artifact exists, include coverage percentage as supporting evidence. If absent, note "coverage artifact unavailable".
|
|
155
|
+
|
|
156
|
+
#### M2. File Size Compliance
|
|
157
|
+
|
|
158
|
+
Target: identify oversized implementation hotspots with lint + structure evidence.
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
ace-search "\\.rb$" "$1/lib" --files
|
|
162
|
+
ace-lint "$1/lib/**/*.rb"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Thresholds:
|
|
166
|
+
|
|
167
|
+
- `🔴`: repeated severe lint hotspots in core files (for example excessive method/class complexity with large files)
|
|
168
|
+
- `🟡`: moderate lint hotspots concentrated in a few files
|
|
169
|
+
- `🟢`: no major lint hotspots reported
|
|
170
|
+
|
|
171
|
+
#### M3. Code Duplication
|
|
172
|
+
|
|
173
|
+
Heuristic scan (not deterministic):
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
ace-search "def " "$1/lib" --content
|
|
177
|
+
ace-search "TODO: duplicate|duplicate" "$1/lib" --content
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Interpretation:
|
|
181
|
+
|
|
182
|
+
- Treat matches as hints and confirm true duplication by reading candidate methods side-by-side before escalating priority.
|
|
183
|
+
|
|
184
|
+
#### M4. Complexity Hotspots
|
|
185
|
+
|
|
186
|
+
Baseline:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# Reuse M2 lint output as baseline; rerun only if the file set changed.
|
|
190
|
+
ace-lint "$1/lib/**/*.rb"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
#### M5. Code Smells
|
|
194
|
+
|
|
195
|
+
Evidence scan:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
ace-search "TODO|FIXME|HACK|XXX|rescue StandardError|puts\\(|binding\\.pry" "$1/lib" --content
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Use this check for smell-specific signals; rely on M4's `ace-lint` output for complexity hotspots.
|
|
202
|
+
|
|
203
|
+
#### M6. ATOM Architecture Compliance
|
|
204
|
+
|
|
205
|
+
Check expected layering and cross-layer imports.
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
ace-search "atoms" "$1/lib" --files
|
|
209
|
+
ace-search "molecules" "$1/lib" --files
|
|
210
|
+
ace-search "organisms" "$1/lib" --files
|
|
211
|
+
ace-search "require .*organisms" "$1/lib" --content
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Flag atom-to-organism or atom-to-cli coupling as maintainability risk.
|
|
215
|
+
|
|
216
|
+
#### M7. Dead Code and Technical Debt
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
ace-search "TODO|FIXME|HACK|XXX" "$1" --content
|
|
220
|
+
ace-search "deprecated|obsolete|legacy" "$1/lib" --content
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Score by density and stale markers without owners.
|
|
224
|
+
|
|
225
|
+
#### M8. Dependency Hygiene
|
|
226
|
+
|
|
227
|
+
Compare gemspec dependencies with runtime requires.
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
ace-search "add_dependency|add_runtime_dependency" "$1" --content
|
|
231
|
+
ace-search "^require " "$1/lib" --content
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Flag missing or unused dependencies and hidden runtime dependencies.
|
|
235
|
+
|
|
236
|
+
#### M9. Changelog Maintenance
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
[ -f "$1/CHANGELOG.md" ] && ace-search "^## \[" "$1" --content || echo "CHANGELOG.md not found"
|
|
240
|
+
[ -f "$1/CHANGELOG.md" ] && ace-search "Added|Changed|Fixed|Security" "$1" --content || echo "CHANGELOG.md not found"
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Check format consistency and recency relative to recent commits.
|
|
244
|
+
|
|
245
|
+
### Step 5: Interface Quality Review (Evidence Then Judgment)
|
|
246
|
+
|
|
247
|
+
Gather evidence first, then evaluate.
|
|
248
|
+
|
|
249
|
+
#### I1. CLI Flag Consistency
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
ace-search "option .*aliases:" "$1/lib" --content
|
|
253
|
+
ace-search "(-v|-q|-d|-h|--help)" "$1/lib" --content
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Evaluate reserved-flag usage and naming consistency.
|
|
257
|
+
|
|
258
|
+
#### I2. Error Message Quality
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
ace-search "raise|error|fail" "$1/lib" --content
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Check messages for actionability and recovery guidance.
|
|
265
|
+
|
|
266
|
+
#### I3. Exit Code Documentation
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
ace-search "exit code|Exit codes|status code" "$1" --content
|
|
270
|
+
ace-search "Ace::Core::CLI::Error|exit" "$1/lib" --content
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Evaluate documentation-to-implementation alignment.
|
|
274
|
+
|
|
275
|
+
#### I4. API Surface Consistency
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
ace-search "module Ace::|class .*Command" "$1/lib" --content
|
|
279
|
+
ace-search "public|private" "$1/lib" --content
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Assess naming cohesion and public API boundaries.
|
|
283
|
+
|
|
284
|
+
#### I5. Help Text Quality
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
ace-search "desc \"|argument :|option :" "$1/lib" --content
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Evaluate completeness, examples, and clarity.
|
|
291
|
+
|
|
292
|
+
#### I6. Extensibility
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
ace-search "hook|plugin|adapter|strategy|provider" "$1/lib" --content
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
Evaluate extension points and coupling tradeoffs.
|
|
299
|
+
|
|
300
|
+
#### I7. Performance Characteristics
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
ace-search "File\\.read|IO\\.read|YAML\\.load|JSON\\.parse|each_slice|each_cons|nested loop|while .*each" "$1/lib" --content
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Assess patterns for large inputs (streaming vs full load) and potential hotspots.
|
|
307
|
+
|
|
308
|
+
### Step 6: Documentation Fidelity Review
|
|
309
|
+
|
|
310
|
+
Cross-check docs against implementation behavior.
|
|
311
|
+
|
|
312
|
+
#### D1. README Accuracy
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
ace-search "ace-" "$1" --content
|
|
316
|
+
ace-search "desc \"" "$1/lib" --content
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Compare documented commands/flags with actual CLI definitions.
|
|
320
|
+
|
|
321
|
+
#### D2. Usage Docs Drift
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
[ -f "$1/docs/usage.md" ] && ace-search "usage|example|command|option" "$1/docs/usage.md" --content || ([ -d "$1/docs" ] && ace-search "usage|example|command|option" "$1/docs" --content || echo "docs/ directory not found")
|
|
325
|
+
ace-search "class .*Command|desc \"|option :" "$1/lib" --content
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
If `docs/usage.md` is missing, note as advisory unless required by package conventions. The docs search above intentionally gathers usage context from `docs/` when present.
|
|
329
|
+
|
|
330
|
+
#### D3. CHANGELOG Completeness
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
[ -f "$1/CHANGELOG.md" ] && ace-search "^## \[" "$1" --content || echo "CHANGELOG.md not found"
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Check whether notable changes appear in changelog entries.
|
|
337
|
+
|
|
338
|
+
#### D4. Help Text Accuracy
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
ace-search "(--help|-h)" "$1" --content
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
Compare docs to command definitions and expected help output.
|
|
345
|
+
|
|
346
|
+
#### D5. Config Documentation Fidelity
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
ace-search "\.ace-defaults|config.yml|resolve_namespace" "$1" --content
|
|
350
|
+
ace-search "config|\.ace/" "$1" --content
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Cross-check config keys and precedence explanations.
|
|
354
|
+
|
|
355
|
+
#### D6. ADR and Standards Alignment
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
ace-search "ADR-|ATOM|workflow|ace-bundle" "$1" --content
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Verify references point to real practices and files.
|
|
362
|
+
|
|
363
|
+
### Step 7: Handle Optional Tool Availability
|
|
364
|
+
|
|
365
|
+
If optional tooling is not installed:
|
|
366
|
+
|
|
367
|
+
1. Record the tool as unavailable.
|
|
368
|
+
2. Record fallback command(s) used.
|
|
369
|
+
3. Continue review without failing the workflow.
|
|
370
|
+
4. Add advisory recommendation with install guidance where useful.
|
|
371
|
+
|
|
372
|
+
### Step 8: Compile Findings
|
|
373
|
+
|
|
374
|
+
1. Build one findings row per issue using the required columns:
|
|
375
|
+
|
|
376
|
+
- `Dimension`: Maintainability, Interface Quality, or Documentation Fidelity
|
|
377
|
+
- `Check`: check id/name (for example `M4 Complexity Hotspots`)
|
|
378
|
+
- `Priority`: one of `🔴/🟡/🟢/🔵`
|
|
379
|
+
- `Evidence`: concrete command result summary
|
|
380
|
+
- `File(s)`: exact file paths
|
|
381
|
+
- `Recommendation`: action with scope
|
|
382
|
+
- `Tool`: command/tool used (or fallback)
|
|
383
|
+
|
|
384
|
+
2. Produce summary count table by dimension and priority.
|
|
385
|
+
|
|
386
|
+
### Step 9: Prioritize Recommendations
|
|
387
|
+
|
|
388
|
+
Group actions into buckets:
|
|
389
|
+
|
|
390
|
+
1. `Immediate`: correctness/security/severe quality risks
|
|
391
|
+
2. `Next Release`: high-value improvements with moderate risk
|
|
392
|
+
3. `Backlog`: incremental maintainability improvements
|
|
393
|
+
4. `Advisory`: non-blocking guidance
|
|
394
|
+
|
|
395
|
+
Add rough effort tags where possible (`S`, `M`, `L`).
|
|
396
|
+
|
|
397
|
+
### Step 10: Final Review Output and Report Artifact
|
|
398
|
+
|
|
399
|
+
Your final package review output should contain, in order:
|
|
400
|
+
|
|
401
|
+
1. Scope and package reviewed
|
|
402
|
+
2. Tool availability notes
|
|
403
|
+
3. Findings table
|
|
404
|
+
4. Summary table
|
|
405
|
+
5. Prioritized recommendation list
|
|
406
|
+
6. Brief closing note with follow-up suggestion
|
|
407
|
+
|
|
408
|
+
Use the same content to create a full markdown report file:
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
cat <<EOF > "$report_path"
|
|
412
|
+
# Package Review Report: $1
|
|
413
|
+
|
|
414
|
+
Scope and package reviewed: $1
|
|
415
|
+
|
|
416
|
+
## Tool Availability
|
|
417
|
+
|
|
418
|
+
## Findings
|
|
419
|
+
|
|
420
|
+
| # | Dimension | Check | Priority | Evidence | File(s) | Recommendation | Tool |
|
|
421
|
+
|---|-----------|-------|----------|----------|---------|----------------|------|
|
|
422
|
+
|
|
423
|
+
## Summary
|
|
424
|
+
|
|
425
|
+
| Dimension | Immediate | Next Release | Backlog | Advisory | Total |
|
|
426
|
+
|-----------|-----------|--------------|---------|----------|-------|
|
|
427
|
+
|
|
428
|
+
## Prioritized Recommendations
|
|
429
|
+
|
|
430
|
+
## Closing Note
|
|
431
|
+
EOF
|
|
432
|
+
|
|
433
|
+
echo "Full report saved to: $report_path"
|
|
434
|
+
|
|
435
|
+
if command -v ace-idea >/dev/null 2>&1; then
|
|
436
|
+
ace-idea create "Package review report for ${1}. Full report is attached as full-report.md in the idea folder." --title "Review package ${1}" --tags review,package --move-to maybe
|
|
437
|
+
echo "Use the output Path above to attach report artifact:"
|
|
438
|
+
echo "Set idea_file_path to the \"Path:\" value above and run:"
|
|
439
|
+
echo "cp \"$report_path\" \"\$(dirname \"$idea_file_path\")/full-report.md\""
|
|
440
|
+
else
|
|
441
|
+
echo "ace-idea not available; full report available at: $report_path"
|
|
442
|
+
fi
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
## Error Handling
|
|
446
|
+
|
|
447
|
+
- Package not found: show clear error and available package list
|
|
448
|
+
- Package-specific bundle unavailable: continue with project bundle and direct inspection
|
|
449
|
+
- Optional tool missing: continue with fallback and document limitation
|
|
450
|
+
- Coverage artifact unavailable: report coverage metric as unavailable (do not block)
|
|
451
|
+
|
|
452
|
+
## Quick Reference
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
# Load context
|
|
456
|
+
ace-bundle project
|
|
457
|
+
ace-search "\\.rb$" "<package>/lib" --files
|
|
458
|
+
|
|
459
|
+
# Core evidence scans
|
|
460
|
+
ace-search "<pattern>" <package> --content
|
|
461
|
+
ace-search "\\.rb$" <package> --files
|
|
462
|
+
|
|
463
|
+
# Protocol load check for this workflow
|
|
464
|
+
ace-bundle wfi://review/package
|
|
465
|
+
|
|
466
|
+
# Lint this workflow file
|
|
467
|
+
ace-lint ace-review/handbook/workflow-instructions/review/package.wf.md
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
## Success Criteria
|
|
471
|
+
|
|
472
|
+
- [ ] `package.wf.md` is expanded from placeholder instructions to a comprehensive workflow
|
|
473
|
+
- [ ] Maintainability section defines 9 deterministic checks with thresholds or clear fallbacks
|
|
474
|
+
- [ ] Interface Quality section defines 7 evidence-first checks
|
|
475
|
+
- [ ] Documentation Fidelity section defines 6 doc-vs-code cross-checks
|
|
476
|
+
- [ ] Findings output includes required per-finding table format
|
|
477
|
+
- [ ] Summary output includes required dimension/priority counts table
|
|
478
|
+
- [ ] Missing optional tools are handled as non-blocking with explicit notes
|
|
479
|
+
- [ ] Workflow loads with `ace-bundle wfi://review/package`
|
|
480
|
+
- [ ] File passes `ace-lint`
|
data/lib/ace/review/version.rb
CHANGED