@vibecompass/vibecompass 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/README.md +79 -697
- package/package.json +1 -1
- package/src/cli.js +50 -1
- package/src/docs-review.js +619 -8
- package/src/status.js +41 -1
- package/src/workflows/registry.js +9 -5
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -260,11 +260,32 @@ export async function runCli(argv, io = createDefaultIo(), runtime = {}) {
|
|
|
260
260
|
if (result.localReview) {
|
|
261
261
|
io.stdout.write(`Local review output: ${result.localReview.output_path}\n`);
|
|
262
262
|
}
|
|
263
|
+
if (result.rebuild) {
|
|
264
|
+
io.stdout.write(`Rebuild scope: ${result.rebuild.scope_path}\n`);
|
|
265
|
+
io.stdout.write(`Stale policy: ${result.rebuild.stale_policy}\n`);
|
|
266
|
+
io.stdout.write(`Architecture docs: ${result.rebuild.architecture_doc_count}\n`);
|
|
267
|
+
for (const entry of result.rebuild.architecture_docs) {
|
|
268
|
+
io.stdout.write(`- ${entry.path} (${entry.action}${entry.archive_path ? ` -> ${entry.archive_path}` : ''})\n`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
263
271
|
if (result.applied) {
|
|
264
272
|
io.stdout.write(`Applied architecture docs: ${result.applied.architecture_docs.length}\n`);
|
|
265
273
|
for (const entry of result.applied.architecture_docs) {
|
|
266
274
|
io.stdout.write(`- ${entry.path} (${entry.status})\n`);
|
|
267
275
|
}
|
|
276
|
+
if (result.applied.coverage) {
|
|
277
|
+
io.stdout.write(`Applied coverage plan: ${result.applied.coverage.area_count} areas`);
|
|
278
|
+
if (typeof result.applied.coverage.coverage_score === 'number') {
|
|
279
|
+
io.stdout.write(` (${Math.round(result.applied.coverage.coverage_score * 100)}% accepted)`);
|
|
280
|
+
}
|
|
281
|
+
io.stdout.write('\n');
|
|
282
|
+
}
|
|
283
|
+
if (Array.isArray(result.applied.decision_candidates) && result.applied.decision_candidates.length > 0) {
|
|
284
|
+
io.stdout.write(`Applied decision recommendations: ${result.applied.decision_candidates.length}\n`);
|
|
285
|
+
for (const entry of result.applied.decision_candidates) {
|
|
286
|
+
io.stdout.write(`- D-${String(entry.decision_id).padStart(3, '0')}: ${entry.title} (${entry.target_path})\n`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
268
289
|
}
|
|
269
290
|
if (result.appliedDecisionArtifact) {
|
|
270
291
|
io.stdout.write(`Applied decision artifact: ${result.appliedDecisionArtifact.artifact_id}\n`);
|
|
@@ -272,7 +293,9 @@ export async function runCli(argv, io = createDefaultIo(), runtime = {}) {
|
|
|
272
293
|
io.stdout.write(`Target: ${result.appliedDecisionArtifact.target_path}\n`);
|
|
273
294
|
}
|
|
274
295
|
writeWarnings(io, result.warnings);
|
|
275
|
-
|
|
296
|
+
if (result.recorded !== false) {
|
|
297
|
+
io.stdout.write(`Recorded ${result.statePath}\n`);
|
|
298
|
+
}
|
|
276
299
|
io.stdout.write(`${result.message}\n`);
|
|
277
300
|
if (result.reviewPrompt) {
|
|
278
301
|
io.stdout.write('Architecture review prompt:\n');
|
|
@@ -1042,6 +1065,21 @@ function parseDocsReviewArgs(argv) {
|
|
|
1042
1065
|
continue;
|
|
1043
1066
|
}
|
|
1044
1067
|
|
|
1068
|
+
if (token === '--rebuild') {
|
|
1069
|
+
parsed.rebuild = true;
|
|
1070
|
+
continue;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
if (token === '--dry-run') {
|
|
1074
|
+
parsed.dryRun = true;
|
|
1075
|
+
continue;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
if (token === '--apply') {
|
|
1079
|
+
parsed.apply = true;
|
|
1080
|
+
continue;
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1045
1083
|
if (token === '--apply-decision-artifact') {
|
|
1046
1084
|
parsed.applyDecisionArtifact = true;
|
|
1047
1085
|
continue;
|
|
@@ -1081,6 +1119,12 @@ function parseDocsReviewArgs(argv) {
|
|
|
1081
1119
|
case '--output':
|
|
1082
1120
|
parsed.outputPath = value;
|
|
1083
1121
|
break;
|
|
1122
|
+
case '--path':
|
|
1123
|
+
parsed.scopePath = value;
|
|
1124
|
+
break;
|
|
1125
|
+
case '--stale-policy':
|
|
1126
|
+
parsed.stalePolicy = value;
|
|
1127
|
+
break;
|
|
1084
1128
|
case '--artifact':
|
|
1085
1129
|
parsed.artifactId = value;
|
|
1086
1130
|
break;
|
|
@@ -1437,6 +1481,11 @@ function usageText() {
|
|
|
1437
1481
|
' --run-local-anthropic Compatibility alias for --run-local --provider anthropic',
|
|
1438
1482
|
' --apply-output Apply accepted architecture doc blocks from review output',
|
|
1439
1483
|
' --output <path> Review output path for --apply-output; defaults to state/docs-review-output.md',
|
|
1484
|
+
' --rebuild Preview or prepare an explicit architecture-doc rebuild',
|
|
1485
|
+
' --dry-run Preview docs-review rebuild changes; default with --rebuild',
|
|
1486
|
+
' --apply Apply docs-review rebuild preparation; only valid with --rebuild',
|
|
1487
|
+
' --path <architecture/path> Scope --rebuild to an architecture directory',
|
|
1488
|
+
' --stale-policy <keep|archive> Rebuild stale-doc handling; defaults to keep',
|
|
1440
1489
|
' --apply-decision-artifact Append an accepted hosted decision artifact locally',
|
|
1441
1490
|
' --artifact <id> Artifact ID for --apply-decision-artifact',
|
|
1442
1491
|
' --refresh-index Also regenerate decisions/INDEX.md after applying a decision artifact',
|