@vibecompass/vibecompass 0.1.0 → 0.2.1
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/README.md +70 -15
- package/package.json +1 -1
- package/src/cli.js +150 -5
- package/src/generators/agent-files/template.js +11 -2
- package/src/index.js +6 -1
- package/src/scaffold.js +71 -31
- package/src/session.js +424 -53
- package/src/setup.js +54 -0
- package/src/workflow.js +1 -1
package/src/scaffold.js
CHANGED
|
@@ -118,8 +118,18 @@ This workspace uses VibeCompass project memory rooted at \`${rootRelativePath}\`
|
|
|
118
118
|
## Derived and scratch files
|
|
119
119
|
- \`${rootRelativePath}/context.md\` — generated AI-facing workflow context
|
|
120
120
|
- \`${rootRelativePath}/state/manifest.json\` — machine-owned local state; do not hand-edit
|
|
121
|
-
- \`${rootRelativePath}/sessions/
|
|
122
|
-
- \`${rootRelativePath}/sessions/
|
|
121
|
+
- \`${rootRelativePath}/sessions/active/index.yaml\` — active session lane index and current lane pointer
|
|
122
|
+
- \`${rootRelativePath}/sessions/active/<lane-id>/session.yaml\` — lane metadata
|
|
123
|
+
- \`${rootRelativePath}/sessions/active/<lane-id>/wip.md\` — lane-local builder scratchpad
|
|
124
|
+
- \`${rootRelativePath}/sessions/active/<lane-id>/handoff.md\` — lane-local builder/reviewer relay
|
|
125
|
+
|
|
126
|
+
## Session model
|
|
127
|
+
- VibeCompass active builder sessions are named lanes. Use one lane per active feature or workstream.
|
|
128
|
+
- \`vibecompass start-session\` requires \`--id <lane-id>\` so each active lane has a meaningful feature or workstream name.
|
|
129
|
+
- The active lane scratch files live under \`${rootRelativePath}/sessions/active/<lane-id>/\`.
|
|
130
|
+
- \`${rootRelativePath}/sessions/active/index.yaml\` is the authoritative current lane pointer; the tool-specific Current session block is a human-readable continuity summary, not the lane-selection source of truth.
|
|
131
|
+
- Finalized sessions are append-only notes named \`${rootRelativePath}/sessions/YYYY-MM-DD-N-title.md\`; multiple sessions on the same day increment \`N\`.
|
|
132
|
+
- Decisions remain append-only and independent from session notes. A session note may reference decisions, but the decision entry in \`${rootRelativePath}/decisions/\` is the durable source of truth.
|
|
123
133
|
|
|
124
134
|
## Repos in scope
|
|
125
135
|
${repos}
|
|
@@ -133,11 +143,13 @@ ${repos}
|
|
|
133
143
|
## Session prompt commands
|
|
134
144
|
- \`start session\` — builder role trigger
|
|
135
145
|
- \`join as reviewer\` — reviewer role trigger
|
|
136
|
-
- \`
|
|
137
|
-
- \`
|
|
146
|
+
- \`planning mode\` — optional prompt-level mode for scoping work before implementation
|
|
147
|
+
- \`review handoff\` — reviewer reads the selected lane's \`wip.md\`, \`handoff.md\`, latest finalized note, and relevant diffs before appending findings
|
|
148
|
+
- \`address review\` — builder reads reviewer feedback in the selected lane's \`wip.md\` / \`handoff.md\`, responds inline, applies accepted changes, and refreshes the builder handoff
|
|
138
149
|
|
|
139
150
|
These are prompt commands for agent behavior, not \`vibecompass\` CLI subcommands.
|
|
140
|
-
Reviewer handback is explicit: the reviewer ends the pass by updating \`wip.md\` + \`handoff.md\` and then stopping. Builder close-out uses \`vibecompass close-session
|
|
151
|
+
Reviewer handback is explicit: the reviewer ends the pass by updating the selected lane's \`wip.md\` + \`handoff.md\` and then stopping. Builder close-out uses \`vibecompass close-session --session <lane-id>\`, which follows the workflow defaults recorded in \`${rootRelativePath}/project.yaml\`.
|
|
152
|
+
\`vibecompass end-session\` is also accepted as an alias for \`vibecompass close-session\`; the canonical command name remains \`close-session\`.
|
|
141
153
|
|
|
142
154
|
## Workflow defaults
|
|
143
155
|
${renderWorkflowDefaults(workflow)}
|
|
@@ -145,17 +157,20 @@ ${renderWorkflowDefaults(workflow)}
|
|
|
145
157
|
## Session startup
|
|
146
158
|
1. Read \`${rootRelativePath}/project.yaml\`.
|
|
147
159
|
2. Read the latest finalized session note in \`${rootRelativePath}/sessions/\`.
|
|
148
|
-
3. If present, read \`${rootRelativePath}/sessions/
|
|
149
|
-
4. If present, read \`${rootRelativePath}/sessions/
|
|
150
|
-
5.
|
|
160
|
+
3. If present, read \`${rootRelativePath}/sessions/active/index.yaml\` and choose the selected or current lane.
|
|
161
|
+
4. If present, read \`${rootRelativePath}/sessions/active/<lane-id>/wip.md\`.
|
|
162
|
+
5. If present, read \`${rootRelativePath}/sessions/active/<lane-id>/handoff.md\`.
|
|
163
|
+
6. Read the relevant docs under \`${rootRelativePath}/architecture/\` and \`${rootRelativePath}/decisions/\`.
|
|
151
164
|
|
|
152
165
|
## Builder workflow
|
|
153
|
-
At session start, prefer running \`vibecompass start-session --working-on "..." \`.
|
|
154
|
-
If you manage files manually, create \`${rootRelativePath}/sessions/wip.md\` if it does not exist:
|
|
166
|
+
At session start, prefer running \`vibecompass start-session --id <lane-id> --working-on "..." \`.
|
|
167
|
+
If you manage files manually, create \`${rootRelativePath}/sessions/active/<lane-id>/session.yaml\` and \`${rootRelativePath}/sessions/active/index.yaml\`, then create \`${rootRelativePath}/sessions/active/<lane-id>/wip.md\` if it does not exist:
|
|
155
168
|
|
|
156
169
|
\`\`\`md
|
|
157
170
|
# WIP — YYYY-MM-DD (session N)
|
|
158
171
|
|
|
172
|
+
Session lane: <lane-id>
|
|
173
|
+
|
|
159
174
|
## Working on
|
|
160
175
|
|
|
161
176
|
## Log
|
|
@@ -165,11 +180,13 @@ If you manage files manually, create \`${rootRelativePath}/sessions/wip.md\` if
|
|
|
165
180
|
## Review log
|
|
166
181
|
\`\`\`
|
|
167
182
|
|
|
168
|
-
Also create \`${rootRelativePath}/sessions/handoff.md\` if it does not exist:
|
|
183
|
+
Also create \`${rootRelativePath}/sessions/active/<lane-id>/handoff.md\` if it does not exist:
|
|
169
184
|
|
|
170
185
|
\`\`\`md
|
|
171
186
|
# Handoff — YYYY-MM-DD (session N)
|
|
172
187
|
|
|
188
|
+
Session lane: <lane-id>
|
|
189
|
+
|
|
173
190
|
## Builder → Reviewer
|
|
174
191
|
|
|
175
192
|
### What changed
|
|
@@ -188,20 +205,29 @@ Also create \`${rootRelativePath}/sessions/handoff.md\` if it does not exist:
|
|
|
188
205
|
During the session:
|
|
189
206
|
- append short summaries to \`wip.md\` after meaningful exchanges
|
|
190
207
|
- keep \`handoff.md\` current after substantive work blocks
|
|
191
|
-
- use \`
|
|
192
|
-
-
|
|
208
|
+
- use \`vibecompass list-sessions\` and \`vibecompass switch-session <lane-id>\` to inspect or change the current lane
|
|
209
|
+
- use \`address review\` when reviewer feedback lands so the builder resolves it from the selected lane's latest \`wip.md\` / \`handoff.md\`
|
|
210
|
+
- stay in builder role through close-out; resolve or explicitly defer reviewer feedback before running \`vibecompass close-session --session <lane-id>\`
|
|
193
211
|
- record architectural decisions in \`${rootRelativePath}/decisions/\` before implementing them
|
|
194
212
|
|
|
213
|
+
If \`vibecompass start-session\` reports stale scratch files, read the existing lane-local \`wip.md\` and \`handoff.md\` first. Either close that session normally, recover its useful notes into a finalized session note, or intentionally move/delete the stale scratch files before starting a new session.
|
|
214
|
+
|
|
215
|
+
## Optional planning mode
|
|
216
|
+
- Use planning mode for risky, ambiguous, cross-file, or architectural work before implementation.
|
|
217
|
+
- Planning mode reads the same startup context as builder mode and may update the selected lane's \`wip.md\` with agreed scope, constraints, and open questions.
|
|
218
|
+
- Planning mode should not finalize session notes, mutate decisions, or make broad code changes until the user approves the plan.
|
|
219
|
+
- If planning produces a real architectural decision, append it to \`${rootRelativePath}/decisions/\` before implementing.
|
|
220
|
+
|
|
195
221
|
At session close:
|
|
196
|
-
- prefer running \`vibecompass close-session --title "..." --completed "..." --model "..." --next-step "..."\`
|
|
222
|
+
- prefer running \`vibecompass close-session --session <lane-id> --title "..." --completed "..." --model "..." --next-step "..."\`; \`vibecompass end-session\` is a supported alias
|
|
197
223
|
- follow the stored close-session defaults from \`${rootRelativePath}/project.yaml\`
|
|
198
|
-
- finalize \`wip.md\` into \`${rootRelativePath}/sessions/YYYY-MM-DD-N-title.md\`
|
|
199
|
-
- delete
|
|
224
|
+
- finalize the lane-local \`wip.md\` into \`${rootRelativePath}/sessions/YYYY-MM-DD-N-title.md\`
|
|
225
|
+
- delete the closed lane directory under \`${rootRelativePath}/sessions/active/<lane-id>/\`
|
|
200
226
|
- refresh any affected architecture/decision docs
|
|
201
227
|
|
|
202
228
|
## Reviewer workflow
|
|
203
229
|
- use \`review handoff\` when you want the reviewer to run the next review pass
|
|
204
|
-
- read the latest finalized session note, then \`wip.md\`, then \`handoff.md\`
|
|
230
|
+
- read the latest finalized session note, then the selected lane's \`wip.md\`, then \`handoff.md\`
|
|
205
231
|
- inspect the relevant code/docs diffs
|
|
206
232
|
- append findings under \`## Review log\` in \`wip.md\`
|
|
207
233
|
- write a concise baton-pass summary into \`handoff.md\`
|
|
@@ -284,8 +310,10 @@ Finalized session notes for ${projectConfig.name} live here.
|
|
|
284
310
|
- \`## Next session should start with\`
|
|
285
311
|
|
|
286
312
|
## Active-session scratch files
|
|
287
|
-
- \`
|
|
288
|
-
- \`
|
|
313
|
+
- \`active/index.yaml\` — active lane index and current lane pointer
|
|
314
|
+
- \`active/<lane-id>/session.yaml\` — lane metadata
|
|
315
|
+
- \`active/<lane-id>/wip.md\` — builder scratchpad during an active lane
|
|
316
|
+
- \`active/<lane-id>/handoff.md\` — reviewer/builder baton-pass during an active lane
|
|
289
317
|
|
|
290
318
|
Those scratch files are session-scoped working artifacts, not finalized history.
|
|
291
319
|
`;
|
|
@@ -304,16 +332,19 @@ Read \`${options.contextRelativeToToolingRoot}\` before doing substantive work.
|
|
|
304
332
|
|---|---|---|
|
|
305
333
|
| "start session" | Builder | Yes |
|
|
306
334
|
| "join as reviewer" | Reviewer | No |
|
|
335
|
+
| "planning mode" | Planner | No — scopes work inside the selected active lane before implementation |
|
|
307
336
|
|
|
308
337
|
## Prompt commands
|
|
309
338
|
|
|
310
339
|
- \`start session\` — builder role trigger
|
|
311
340
|
- \`join as reviewer\` — reviewer role trigger
|
|
312
|
-
- \`
|
|
313
|
-
- \`
|
|
341
|
+
- \`planning mode\` — optional prompt-level mode for scoping risky or ambiguous work before implementation
|
|
342
|
+
- \`review handoff\` — reviewer reads the selected lane's \`wip.md\`, \`handoff.md\`, latest finalized note, and relevant diffs before appending findings
|
|
343
|
+
- \`address review\` — builder reads reviewer feedback in the selected lane's \`wip.md\` / \`handoff.md\`, responds inline, applies accepted changes, and refreshes the builder handoff
|
|
314
344
|
|
|
315
345
|
These are prompt commands for agent behavior, not \`vibecompass\` CLI subcommands.
|
|
316
|
-
Reviewer handback is explicit: the reviewer ends the pass by updating
|
|
346
|
+
Reviewer handback is explicit: the reviewer ends the pass by updating the selected lane's \`wip.md\` + \`handoff.md\` and then stopping. Builder close-out uses \`vibecompass close-session --session <lane-id>\`, which follows the workflow defaults recorded in \`${options.rootRelativePath}/project.yaml\`.
|
|
347
|
+
\`vibecompass end-session\` is accepted as an alias for \`vibecompass close-session\`; \`close-session\` remains the canonical command name.
|
|
317
348
|
|
|
318
349
|
## Current session
|
|
319
350
|
|
|
@@ -330,8 +361,11 @@ Next session should: Read \`${options.contextRelativeToToolingRoot}\`, then open
|
|
|
330
361
|
## Startup
|
|
331
362
|
- Read \`${options.contextRelativeToToolingRoot}\`
|
|
332
363
|
- Follow the builder/reviewer protocol defined there
|
|
333
|
-
- Use \`vibecompass start-session\` and \`vibecompass close-session
|
|
334
|
-
-
|
|
364
|
+
- Use \`vibecompass start-session --id <lane-id>\`, \`vibecompass list-sessions\`, \`vibecompass switch-session <lane-id>\`, and \`vibecompass close-session --session <lane-id>\` to manage active lanes when possible
|
|
365
|
+
- Treat \`${options.rootRelativePath}/sessions/active/index.yaml\` as the current lane source of truth; this Current session block is only a continuity summary
|
|
366
|
+
- Keep the selected lane's \`${options.rootRelativePath}/sessions/active/<lane-id>/wip.md\` and \`${options.rootRelativePath}/sessions/active/<lane-id>/handoff.md\` current during an active session
|
|
367
|
+
- Use planning mode when scope is unclear; record the agreed plan in the selected lane's \`wip.md\` before implementing
|
|
368
|
+
- If stale scratch files block \`start-session\`, read them first, then close, recover, move, or delete them intentionally before retrying
|
|
335
369
|
- Workflow defaults:
|
|
336
370
|
${renderWorkflowDefaults(workflow)}
|
|
337
371
|
`;
|
|
@@ -350,27 +384,33 @@ This workspace uses VibeCompass project memory rooted at \`${options.rootRelativ
|
|
|
350
384
|
|---|---|---|
|
|
351
385
|
| "start session" | Builder | Yes — opens and closes the session lifecycle |
|
|
352
386
|
| "join as reviewer" | Reviewer | No — reviews the builder's work and updates the handoff |
|
|
387
|
+
| "planning mode" | Planner | No — scopes work inside the selected active lane before implementation |
|
|
353
388
|
|
|
354
389
|
## Prompt commands
|
|
355
390
|
|
|
356
391
|
- \`start session\` — builder role trigger
|
|
357
392
|
- \`join as reviewer\` — reviewer role trigger
|
|
358
|
-
- \`
|
|
359
|
-
- \`
|
|
393
|
+
- \`planning mode\` — optional prompt-level mode for scoping risky or ambiguous work before implementation
|
|
394
|
+
- \`review handoff\` — reviewer reads the selected lane's \`wip.md\`, \`handoff.md\`, latest finalized note, and relevant diffs before appending findings
|
|
395
|
+
- \`address review\` — builder reads reviewer feedback in the selected lane's \`wip.md\` / \`handoff.md\`, responds inline, applies accepted changes, and refreshes the builder handoff
|
|
360
396
|
|
|
361
397
|
These are prompt commands for agent behavior, not \`vibecompass\` CLI subcommands.
|
|
362
|
-
Reviewer handback is explicit: the reviewer ends the pass by updating
|
|
398
|
+
Reviewer handback is explicit: the reviewer ends the pass by updating the selected lane's \`wip.md\` + \`handoff.md\` and then stopping. Builder close-out uses \`vibecompass close-session --session <lane-id>\`, which follows the workflow defaults recorded in \`${options.rootRelativePath}/project.yaml\`.
|
|
399
|
+
\`vibecompass end-session\` is accepted as an alias for \`vibecompass close-session\`; \`close-session\` remains the canonical command name.
|
|
363
400
|
|
|
364
401
|
## Startup
|
|
365
402
|
Before doing substantive work:
|
|
366
403
|
1. Read \`${options.contextRelativeToToolingRoot}\`.
|
|
367
404
|
2. Read the latest finalized session note under \`${options.rootRelativePath}/sessions/\`.
|
|
368
|
-
3. If present, read \`${options.rootRelativePath}/sessions/
|
|
369
|
-
4. If present, read \`${options.rootRelativePath}/sessions/
|
|
370
|
-
5.
|
|
405
|
+
3. If present, read \`${options.rootRelativePath}/sessions/active/index.yaml\` and choose the selected or current lane.
|
|
406
|
+
4. If present, read \`${options.rootRelativePath}/sessions/active/<lane-id>/wip.md\`.
|
|
407
|
+
5. If present, read \`${options.rootRelativePath}/sessions/active/<lane-id>/handoff.md\`.
|
|
408
|
+
6. Read the relevant docs under \`${options.rootRelativePath}/architecture/\` and \`${options.rootRelativePath}/decisions/\`.
|
|
371
409
|
|
|
372
410
|
## Working rule
|
|
373
411
|
Treat \`${options.contextRelativeToToolingRoot}\` as the local workflow source of truth for the builder/reviewer protocol and session scratch-file structure. When the package provides \`start-session\` / \`close-session\`, prefer those commands over hand-editing boilerplate.
|
|
412
|
+
Use planning mode when scope is unclear; record the agreed plan in the selected lane's \`wip.md\` before implementing.
|
|
413
|
+
If stale scratch files block \`start-session\`, read them first, then close, recover, move, or delete them intentionally before retrying.
|
|
374
414
|
- Workflow defaults:
|
|
375
415
|
${renderWorkflowDefaults(workflow)}
|
|
376
416
|
`;
|
|
@@ -397,7 +437,7 @@ function renderWorkflowDefaults(workflow) {
|
|
|
397
437
|
|
|
398
438
|
function describeReviewerHandback(workflow) {
|
|
399
439
|
if (workflow.reviewerHandback === 'handoff-file') {
|
|
400
|
-
return 'update sessions/wip.md and sessions/handoff.md, then stop the review pass';
|
|
440
|
+
return 'update sessions/active/<lane-id>/wip.md and sessions/active/<lane-id>/handoff.md, then stop the review pass';
|
|
401
441
|
}
|
|
402
442
|
|
|
403
443
|
return workflow.reviewerHandback;
|