vibe-coding-master 0.2.13 → 0.3.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 +9 -6
- package/dist/backend/adapters/claude-adapter.js +4 -1
- package/dist/backend/api/codex-hook-routes.js +9 -0
- package/dist/backend/api/codex-review-routes.js +58 -0
- package/dist/backend/api/translation-routes.js +2 -2
- package/dist/backend/cli/install-vcm-harness.js +68 -0
- package/dist/backend/gateway/gateway-service.js +4 -3
- package/dist/backend/server.js +25 -0
- package/dist/backend/services/app-settings-service.js +12 -4
- package/dist/backend/services/artifact-service.js +2 -1
- package/dist/backend/services/claude-hook-service.js +3 -3
- package/dist/backend/services/codex-hook-service.js +87 -0
- package/dist/backend/services/codex-review-service.js +850 -0
- package/dist/backend/services/harness-service.js +90 -3
- package/dist/backend/services/message-service.js +8 -7
- package/dist/backend/services/project-service.js +2 -2
- package/dist/backend/services/round-service.js +29 -25
- package/dist/backend/services/session-service.js +141 -12
- package/dist/backend/services/task-service.js +2 -0
- package/dist/backend/templates/harness/claude-root.js +2 -0
- package/dist/backend/templates/harness/codex-review.js +605 -0
- package/dist/backend/templates/harness/project-manager-agent.js +13 -3
- package/dist/backend/templates/harness/vcm-final-acceptance-skill.js +6 -1
- package/dist/shared/constants.js +15 -1
- package/dist/shared/types/app-settings.js +4 -3
- package/dist/shared/types/codex-hook.js +1 -0
- package/dist/shared/types/codex-review.js +5 -0
- package/dist/shared/types/session.js +44 -0
- package/dist-frontend/assets/index-BavJjWQY.js +92 -0
- package/dist-frontend/assets/index-CR1EOe-w.css +32 -0
- package/dist-frontend/index.html +2 -2
- package/docs/ARCHITECTURE.md +1 -0
- package/docs/TESTING.md +82 -0
- package/docs/codex-review-gates.md +553 -0
- package/docs/gateway-design.md +5 -4
- package/docs/known-issues.md +1 -0
- package/docs/product-design.md +55 -10
- package/package.json +1 -1
- package/scripts/verify-package.mjs +4 -0
- package/dist-frontend/assets/index-CT20u9Fk.js +0 -92
- package/dist-frontend/assets/index-DC9-SB7F.css +0 -32
package/docs/product-design.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# VibeCodingMaster Product Design
|
|
2
2
|
|
|
3
|
-
Last updated: 2026-06-
|
|
3
|
+
Last updated: 2026-06-13
|
|
4
4
|
|
|
5
5
|
This document describes the current product direction and implemented V1 behavior for VCM.
|
|
6
6
|
|
|
@@ -82,7 +82,45 @@ project-manager
|
|
|
82
82
|
-> project-manager final acceptance, commit, and PR
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
### 4.1
|
|
85
|
+
### 4.1 Codex Review Gates
|
|
86
|
+
|
|
87
|
+
For complex tasks, VCM supports optional Codex Review Gates as an independent
|
|
88
|
+
cross-model review layer. Claude Code remains the role execution engine, but
|
|
89
|
+
Codex reviews three high-value handoff points:
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
architect architecture plan
|
|
93
|
+
-> Codex reviews plan quality before coder starts
|
|
94
|
+
|
|
95
|
+
reviewer review-report
|
|
96
|
+
-> Codex reviews validation adequacy before final acceptance
|
|
97
|
+
|
|
98
|
+
final task diff
|
|
99
|
+
-> Codex reviews code and PR readiness before PR preparation
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Each gate returns `approve` or `request_changes`. PM triggers gates through the
|
|
103
|
+
`vcm-codex-review-gate` skill at the three workflow points; VCM owns the Codex
|
|
104
|
+
Review sidebar toggles, gate state, Codex CLI / adapter execution, and PM
|
|
105
|
+
callback after review completes. Codex writes reports under
|
|
106
|
+
`.ai/vcm/codex-reviews/`. All three gate toggles default to off.
|
|
107
|
+
When any gate is on, or when a Codex Reviewer session already exists, the task
|
|
108
|
+
workspace shows `Codex Reviewer` as a fifth terminal role with Codex model and
|
|
109
|
+
effort selection. VCM sends gate prompts into this long-lived terminal session
|
|
110
|
+
so the review can be challenged or clarified afterward; the role remains
|
|
111
|
+
outside PM routing and Claude Code auto orchestration. Codex Reviewer
|
|
112
|
+
`UserPromptSubmit` and `Stop` hooks post back to VCM from
|
|
113
|
+
`.ai/codex/.codex/hooks.json`, so the fifth role participates in session and
|
|
114
|
+
Round state while a gate is running.
|
|
115
|
+
Architecture-plan findings return to architect, validation-adequacy findings
|
|
116
|
+
return to reviewer, and final-diff findings go to architect first for
|
|
117
|
+
assessment. Codex reviewer role configuration lives under `.ai/codex/`,
|
|
118
|
+
including `.ai/codex/AGENTS.md` and `.ai/codex/config.toml`, so VCM does not
|
|
119
|
+
require a root-level `AGENTS.md`.
|
|
120
|
+
|
|
121
|
+
The detailed design lives in `docs/codex-review-gates.md`.
|
|
122
|
+
|
|
123
|
+
### 4.2 Task Worktree Model
|
|
86
124
|
|
|
87
125
|
Task-level worktree management is the recommended default model for multi-task parallelism:
|
|
88
126
|
|
|
@@ -250,7 +288,7 @@ Sections:
|
|
|
250
288
|
- `New Task`
|
|
251
289
|
- `Tasks`
|
|
252
290
|
|
|
253
|
-
The connected active task also has a bottom status dock. It is not a collapsible sidebar section. It stays at the bottom of the sidebar and shows the active VCM Session title, task status, Session start time, total elapsed time, total Round count, and
|
|
291
|
+
The connected active task also has a bottom status dock. It is not a collapsible sidebar section. It stays at the bottom of the sidebar and shows the active VCM Session title, task status, Session start time, total elapsed time, total Round count, and role active runtime. When the current Round is running, it also shows the Current Round start time, total elapsed time, role active runtime, and Turn count.
|
|
254
292
|
|
|
255
293
|
`Repository Path` layout:
|
|
256
294
|
|
|
@@ -363,13 +401,13 @@ The split should stay close to 50/50 width. Both panes expand vertically to fill
|
|
|
363
401
|
|
|
364
402
|
## 8. Flow Pause Detection
|
|
365
403
|
|
|
366
|
-
VCM detects flow pauses from
|
|
404
|
+
VCM detects flow pauses from role hook events, not from terminal silence, message history, or pending route files. Claude Code roles report through `.claude/settings.json`; Codex Reviewer reports through `.ai/codex/.codex/hooks.json`.
|
|
367
405
|
|
|
368
406
|
Backend role state:
|
|
369
407
|
|
|
370
408
|
- VCM terminal submit: role becomes `running`.
|
|
371
409
|
- `Stop`: role becomes `idle` and records `lastTurnEndedAt`.
|
|
372
|
-
- The role tab and flow pause state both react to Claude Code hook events.
|
|
410
|
+
- The role tab and flow pause state both react to Claude Code and Codex Reviewer hook events.
|
|
373
411
|
|
|
374
412
|
Task-level Round state:
|
|
375
413
|
|
|
@@ -380,8 +418,8 @@ Task-level Round state:
|
|
|
380
418
|
- If no new prompt is accepted before the deadline, the Round becomes `stopped`.
|
|
381
419
|
- The stop transition is timer-driven from the `Stop` event. Round-state reads do not end a Round.
|
|
382
420
|
- Before stopping, VCM checks `.ai/vcm/handoffs/messages`; if a pending route message exists and can be delivered, VCM retries delivery and extends the stop window instead of alerting.
|
|
383
|
-
- The same Round state stores total Round count, Turn count, completed Turn count, and
|
|
384
|
-
- The Current Round dock shows both wall-clock Round duration and
|
|
421
|
+
- The same Round state stores total Round count, Turn count, completed Turn count, and role active runtime. Active runtime is measured only between `UserPromptSubmit` and `Stop`, not during the stop window.
|
|
422
|
+
- The Current Round dock shows both wall-clock Round duration and role active runtime. `Total` is `now - Round.startedAt`; `Role runtime` is the accumulated active runtime across Turns in that Round; `Turn count` is the number of accepted prompts in the Round.
|
|
385
423
|
|
|
386
424
|
The frontend polls this task-level Round state and deduplicates each stopped Round so the same stopped state does not alert on every poll. Flow duration is measured from the first `UserPromptSubmit` to `stoppedAt`, falling back to the last `Stop` when needed. Runs under 2 minutes trigger the weak 3-chime reminder at 1.4 second intervals. Runs at or above 2 minutes trigger the strong alert dialog and repeating sound until confirmation.
|
|
387
425
|
|
|
@@ -521,11 +559,11 @@ Default route policy:
|
|
|
521
559
|
- Peer routes such as `coder-reviewer.md` may exist for explicit task designs, but VCM still serializes delivery per target role.
|
|
522
560
|
- `user` talks to `project-manager` through the normal active terminal or translation composer, not through a route file.
|
|
523
561
|
|
|
524
|
-
Stop-triggered scan:
|
|
562
|
+
Claude Stop-triggered scan:
|
|
525
563
|
|
|
526
564
|
- VCM injects Claude Code `UserPromptSubmit`, `Stop`, and `PermissionRequest` hooks into `.claude/settings.json`.
|
|
527
565
|
- The hooks do not call `vcmctl`; they POST directly to the local VCM backend.
|
|
528
|
-
- When
|
|
566
|
+
- When a Claude Code role stops, VCM marks that role idle, then scans pending route files.
|
|
529
567
|
- VCM scans the stopped role's outgoing files and also any pending files targeting newly idle roles, so messages that were blocked by a busy target can be delivered after that target stops.
|
|
530
568
|
- VCM reads only stable, non-empty files and ignores blank files.
|
|
531
569
|
- VCM delivers at most one message to a target role per scan.
|
|
@@ -561,11 +599,18 @@ VCM Harness injects Claude Code hooks into `.claude/settings.json`:
|
|
|
561
599
|
|
|
562
600
|
VCM uses `UserPromptSubmit` as the Claude Code acceptance signal. A successful PTY write only proves VCM delivered text to the embedded terminal; `UserPromptSubmit` proves Claude Code accepted the prompt.
|
|
563
601
|
|
|
602
|
+
VCM Harness also injects Codex Reviewer hooks into `.ai/codex/.codex/hooks.json`:
|
|
603
|
+
|
|
604
|
+
- `UserPromptSubmit`: posts directly to `/api/hooks/codex-reviewer`, marks the fifth role running, and starts or continues the shared Round state
|
|
605
|
+
- `Stop`: posts directly to `/api/hooks/codex-reviewer/stop`, marks the fifth role idle, and lets the Round settle normally
|
|
606
|
+
|
|
607
|
+
Codex Reviewer hooks do not dispatch route files. PM receives Codex review completion through the Codex Review Gate callback managed by VCM.
|
|
608
|
+
|
|
564
609
|
The injected role rules require asynchronous file messaging: after writing or updating a route file, the role must end the current Claude Code turn and wait for VCM to deliver a later reply. Roles should use `.claude/skills/vcm-route-message/SKILL.md` to author route files. Roles must not poll files, start shell loops, keep the turn open waiting for another role to answer, paste directly into another role terminal, or use Claude Code Task/Subagent for VCM role delegation.
|
|
565
610
|
|
|
566
611
|
Roles must not run background Bash; a `PreToolUse` hook (`.ai/tools/vcm-bash-guard`) denies `run_in_background`, `nohup`, `setsid`, `disown`, and trailing `&`. The only sanctioned long-running mechanism is `.ai/tools/run-long-check` plus `.ai/tools/watch-job` through `vcm-long-running-validation`: the detached job worker enforces the 60 minute ceiling and a supervision lease that kills unwatched jobs, `watch-job` renews the lease in foreground windows of up to 8 minutes (exit `125` means call it again in the same turn), and the VCM backend blocks a role's turn-end while one of its validation jobs is still running.
|
|
567
612
|
|
|
568
|
-
There is no `vcmctl` in the target design. Hook entrypoints are direct HTTP from Claude Code hooks to the local VCM backend.
|
|
613
|
+
There is no `vcmctl` in the target design. Hook entrypoints are direct HTTP from Claude Code and Codex Reviewer hooks to the local VCM backend.
|
|
569
614
|
|
|
570
615
|
## 13. Translation
|
|
571
616
|
|
package/package.json
CHANGED
|
@@ -16,8 +16,10 @@ const requiredFiles = [
|
|
|
16
16
|
"dist/main.js",
|
|
17
17
|
"dist/backend/server.js",
|
|
18
18
|
"dist/backend/api/harness-routes.js",
|
|
19
|
+
"dist/backend/api/codex-review-routes.js",
|
|
19
20
|
"dist/backend/runtime/node-pty-runtime.js",
|
|
20
21
|
"dist/backend/ws/terminal-ws.js",
|
|
22
|
+
"dist/backend/services/codex-review-service.js",
|
|
21
23
|
"dist/backend/services/harness-service.js",
|
|
22
24
|
"dist/backend/services/session-service.js",
|
|
23
25
|
"dist/backend/services/project-service.js",
|
|
@@ -27,7 +29,9 @@ const requiredFiles = [
|
|
|
27
29
|
"dist/backend/templates/harness/architect-agent.js",
|
|
28
30
|
"dist/backend/templates/harness/coder-agent.js",
|
|
29
31
|
"dist/backend/templates/harness/reviewer-agent.js",
|
|
32
|
+
"dist/backend/templates/harness/codex-review.js",
|
|
30
33
|
"dist/shared/constants.js",
|
|
34
|
+
"dist/shared/types/codex-review.js",
|
|
31
35
|
"dist/shared/types/harness.js",
|
|
32
36
|
"dist/shared/validation/slug-check.js",
|
|
33
37
|
"dist/shared/validation/artifact-check.js",
|