@vibecompass/vibecompass 0.9.1 → 0.9.2

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.2 - 2026-06-14
4
+
5
+ - Clarify docs-review acceptance gates so agents state when no architecture docs have been applied yet and only report completion after apply succeeds.
6
+ - Render local folder repo sources correctly in generated agent files instead of showing `null`.
7
+ - Fix false agent-file drift in `status` after `sync-agents` when managed files are already current.
8
+
3
9
  ## 0.9.1 - 2026-06-14
4
10
 
5
11
  - Make local docs-review prompts self-contained by printing the accepted output file, root-scoped apply command, and same-version `npx` fallback the agent should run after user acceptance.
package/README.md CHANGED
@@ -46,7 +46,11 @@ Please set it up in this project:
46
46
  2. Initialize project memory with guided setup.
47
47
  3. If this folder is not a Git repo, use a local folder source.
48
48
  4. Start a named session lane for this setup work.
49
- 5. Tell me which files changed and what I should review.
49
+ 5. If you run docs review, continue until either architecture docs are applied
50
+ or you are waiting for my explicit coverage-plan approval. Do not call docs
51
+ review done just because the marker was created.
52
+ 6. Tell me which files changed, whether docs were actually applied, and what I
53
+ should review next.
50
54
 
51
55
  Do not ask me to paste secret tokens into chat.
52
56
  ```
@@ -58,8 +62,9 @@ docs review
58
62
  ```
59
63
 
60
64
  That asks the AI to inspect your code and create the first real architecture
61
- docs. The package prints the output file and the exact apply command when the
62
- docs are ready for you to accept.
65
+ docs. If it asks you to approve a coverage plan, approve it or ask for changes;
66
+ the package prints the output file and exact apply command after the accepted
67
+ docs are ready.
63
68
 
64
69
  ### Terminal path
65
70
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibecompass/vibecompass",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Local-first project-memory core for VibeCompass",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1722,7 +1722,7 @@ function renderReviewPrompt(options) {
1722
1722
  '- Prioritize entry points, user-flow/gating relationships, data ownership, external integrations, jobs/async boundaries, auth/security boundaries, and test surfaces.',
1723
1723
  '- Mark each proposed doc as `comprehensive`, `partial`, or `initial`, with the reason and blindspots.',
1724
1724
  '- Emit the accepted plan as one `vibecompass-coverage-plan version=1` JSON fence before architecture-doc blocks.',
1725
- '- Ask for user acceptance before emitting fenced architecture-doc blocks.',
1725
+ '- Ask for user acceptance before emitting fenced architecture-doc blocks. When you stop for acceptance, state plainly that no architecture docs have been applied yet.',
1726
1726
  '',
1727
1727
  'Stage 3 — Bounded doc generation:',
1728
1728
  '- Generate only accepted docs, one complete fenced block per architecture path.',
@@ -1735,7 +1735,7 @@ function renderReviewPrompt(options) {
1735
1735
  `- After the user accepts Stage 2, write the complete accepted fenced output verbatim to \`${outputPath}\`.`,
1736
1736
  `- Then run \`${applyCommand}\` to validate and apply the accepted blocks.`,
1737
1737
  `- If \`vibecompass\` is not installed on PATH, run \`${npxApplyCommand}\` instead.`,
1738
- '- Surface any parser warnings, especially oversized docs, so the user can decide whether to compact or accept the output.',
1738
+ '- Only report docs-review as applied after the apply command succeeds. Surface any parser warnings, especially oversized docs, so the user can decide whether to compact or accept the output.',
1739
1739
  '',
1740
1740
  '## Architecture Doc Contract',
1741
1741
  'When creating or updating architecture docs, use the existing VibeCompass structure:',
@@ -46,7 +46,8 @@ export function applyManagedBlock(existingContent, generatedContent, options = {
46
46
  }
47
47
 
48
48
  const before = existingContent.slice(0, startIndex);
49
- const after = existingContent.slice(endIndex + END_MARKER.length);
49
+ const rawAfter = existingContent.slice(endIndex + END_MARKER.length);
50
+ const after = rawAfter.trim() === '' ? '' : rawAfter;
50
51
  const beforeSeparator = before === '' || before.endsWith('\n') ? '' : '\n';
51
52
  const afterSeparator = after === '' || after.startsWith('\n') ? '' : '\n';
52
53
 
@@ -63,7 +63,7 @@ function renderProjectSnapshot(context) {
63
63
  }
64
64
 
65
65
  for (const repo of context.repos) {
66
- lines.push(`- Repo \`${repo.id}\`: ${repo.remote}`);
66
+ lines.push(`- Repo \`${repo.id}\`: ${formatRepoDescriptor(repo)}`);
67
67
  }
68
68
 
69
69
  const domainCount = context.domains.length;
@@ -82,6 +82,18 @@ function renderProjectSnapshot(context) {
82
82
  return lines.length > 0 ? lines : ['- No project details recorded yet.'];
83
83
  }
84
84
 
85
+ function formatRepoDescriptor(repo) {
86
+ if (repo?.source === 'local' || repo?.path) {
87
+ return `local folder ${repo.path ?? '.'}`;
88
+ }
89
+
90
+ if (repo?.remote) {
91
+ return repo.remote;
92
+ }
93
+
94
+ return 'source not recorded';
95
+ }
96
+
85
97
  function renderDecisionLine(decision) {
86
98
  return `D-${String(decision.decision_id).padStart(3, '0')} — ${decision.title}`;
87
99
  }
package/src/scaffold.js CHANGED
@@ -459,11 +459,11 @@ ${repoLines}
459
459
  }
460
460
 
461
461
  function formatRepoDescriptor(repo) {
462
- if (repo.source === 'local') {
462
+ if (repo.source === 'local' || repo.path) {
463
463
  return `local folder ${repo.path}`;
464
464
  }
465
465
 
466
- return repo.remote;
466
+ return repo.remote ?? 'source not recorded';
467
467
  }
468
468
 
469
469
  function generateArchitectureGuide(projectConfig) {
package/src/status.js CHANGED
@@ -281,7 +281,7 @@ async function readAgentFileStatus(rootDir, toolingRootDir) {
281
281
  results: result.results.map((item) => ({
282
282
  format: item.format,
283
283
  relativePath: item.relativePath,
284
- status: item.status,
284
+ status: item.changed || item.warning ? item.status : 'current',
285
285
  warning: item.warning,
286
286
  changed: item.changed,
287
287
  conflicts: item.conflicts ?? [],
@@ -90,8 +90,8 @@ function renderDocsReviewWorkflow(options = {}) {
90
90
  const decisionsPath = joinRootRelative(rootRelativePath, 'decisions/');
91
91
  const sessionsPath = joinRootRelative(rootRelativePath, 'sessions/');
92
92
  const outputPath = joinRootRelative(rootRelativePath, 'state/docs-review-output.md');
93
- const applyCommand = `vibecompass docs-review --root ${rootRelativePath} --apply-output`;
94
- const npxApplyCommand = `npx -y @vibecompass/vibecompass@${PACKAGE_VERSION} docs-review --root ${rootRelativePath} --apply-output`;
93
+ const applyCommand = `vibecompass docs-review --root ${rootRelativePath} --apply-output --output ${outputPath}`;
94
+ const npxApplyCommand = `npx -y @vibecompass/vibecompass@${PACKAGE_VERSION} docs-review --root ${rootRelativePath} --apply-output --output ${outputPath}`;
95
95
 
96
96
  return `# VibeCompass Workflow — docs review
97
97
 
@@ -113,11 +113,11 @@ Turn starter project memory into evidence-backed architecture docs under \`archi
113
113
  - produce a coverage plan before reading broad source bodies
114
114
  - read targeted source files only when the coverage plan needs evidence
115
115
  3. Run \`vibecompass docs-review --guided --llm <tool-name> --model <model-name>\` to record the review marker and print the canonical docs-review contract. Use the current AI tool name and model when known.
116
- 4. Present the evidence inventory, coverage plan, user journey, project/system map, proposed architecture docs, blindspots, token-budget risks, and any decision candidates before generating accepted output.
116
+ 4. Present the evidence inventory, coverage plan, user journey, project/system map, proposed architecture docs, blindspots, token-budget risks, and any decision candidates before generating accepted output. If you stop here for user approval, state clearly that no architecture docs have been applied yet.
117
117
  5. Draft only output the user accepts. The accepted plan must be fenced as \`vibecompass-coverage-plan version=1\`. Accepted architecture docs must be fenced as \`vibecompass-architecture-doc path=architecture/domain/feature/component.md\` blocks and must include required frontmatter: \`domain\`, \`feature\`, \`component\`, and \`status\`. The accepted \`architecture/overview/project-shape.md\` doc should include exactly one \`vibecompass-project-map version=1\` JSON block with journey-facing features, entry points, and evidence-backed relationships. Accepted local decisions may be fenced as \`vibecompass-decision-recommendation target=decisions/domain.md\` blocks without D-numbers.
118
118
  6. Keep each generated architecture doc focused and retrieval-oriented. Soft budget: under 12000 bytes per doc unless the extra detail is necessary and called out in review metadata or retrieval guidance.
119
119
  7. Write the accepted fenced blocks verbatim to \`${outputPath}\`.
120
- 8. Run \`${applyCommand}\` to validate and apply the accepted blocks. If \`vibecompass\` is not installed on PATH, run \`${npxApplyCommand}\` instead. If accepted docs were written manually outside the output file, run \`vibecompass docs-review --root ${rootRelativePath} --complete\` after confirming the marker should be completed.
120
+ 8. Run \`${applyCommand}\` to validate and apply the accepted blocks. If \`vibecompass\` is not installed on PATH, run \`${npxApplyCommand}\` instead. Only report docs-review as applied after this command succeeds. If accepted docs were written manually outside the output file, run \`vibecompass docs-review --root ${rootRelativePath} --complete\` after confirming the marker should be completed.
121
121
  9. Run \`vibecompass status\` to confirm the docs-review marker is complete and not drifted. Report the applied architecture paths, coverage projection, decision recommendations, parser warnings such as oversized docs or missing review metadata, and any blindspots documented in the accepted docs-review output.
122
122
 
123
123
  ## Rebuild option