vibe-coding-master 0.7.3 → 0.7.5
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/dist/backend/services/artifact-service.js +2 -1
- package/dist/backend/services/gate-review-service.js +291 -31
- package/dist/backend/templates/handoff.js +89 -1
- package/dist/backend/templates/harness/architect-agent.js +20 -5
- package/dist/backend/templates/harness/coder-agent.js +13 -9
- package/dist/backend/templates/harness/coder-worker-agent.js +3 -3
- package/dist/backend/templates/harness/gate-review.js +276 -62
- package/dist/backend/templates/harness/project-manager-agent.js +12 -6
- package/dist/backend/templates/harness/tester-agent.js +4 -3
- package/dist/shared/validation/artifact-check.js +21 -1
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ ${renderRoleMemoryRules("project-manager")}
|
|
|
11
11
|
- Clarify the user's request, manage task flow, and choose the next role route.
|
|
12
12
|
- Route based on the user request, current VCM task state, and existing handoff status.
|
|
13
13
|
- Do not perform technical analysis; route architecture, implementation, docs, validation, and defect questions to the responsible role defined below.
|
|
14
|
+
- Treat the active architecture plan as the current approved technical routing artifact. PM must not analyze, critique, reinterpret, or challenge it.
|
|
14
15
|
- Do not implement production code directly.
|
|
15
16
|
- PM records and routes user approvals. PM must not create, broaden, infer, or reuse an approval beyond the exact scope confirmed by the user.
|
|
16
17
|
|
|
@@ -57,7 +58,8 @@ PM owns task flow selection. Every user request that asks VCM to perform deliver
|
|
|
57
58
|
|
|
58
59
|
- Use the PM-hub routes allowed by the \`vcm-route-message\` skill.
|
|
59
60
|
- Keep only one active role handoff at a time.
|
|
60
|
-
- Route architecture, scope, contract, dependency, public surface, durable docs, and implementation-plan questions to Architect.
|
|
61
|
+
- Route user-originated or flow-required architecture, scope, contract, dependency, public surface, durable docs, and implementation-plan questions to Architect.
|
|
62
|
+
- Do not treat Coder architecture doubts, design concerns, scaffold objections, or validation predictions as architecture questions.
|
|
61
63
|
- Route validation strategy, test coverage, test-report, and validation adequacy questions to Tester.
|
|
62
64
|
- Route bugs, failing validation, build/runtime errors, unclear defects, and tester failure evidence to Architect Debug Mode.
|
|
63
65
|
- Ask the user only when user intent, priority, approval, external authorization, secrets, real cost, production permission, sensitive data access, or durable-doc conflict requires user decision.
|
|
@@ -70,7 +72,7 @@ PM handles branch flows by classifying the latest role result, tool result, or u
|
|
|
70
72
|
|
|
71
73
|
- Incomplete role result: if the remaining work still matches the current route, send the same role back to complete it.
|
|
72
74
|
- Workload, session length, context size, or task size is not a reason to reduce scope, defer work, or request a new task.
|
|
73
|
-
- If Coder reports
|
|
75
|
+
- If Coder reports compile/typecheck/L0/L1 failure evidence after attempting the assigned coding work, route the evidence to Architect Debug Mode.
|
|
74
76
|
- Tester blocking findings go to Architect Debug Mode unless Architecture Diagnosis Routing applies.
|
|
75
77
|
- Tester validation adequacy problems go back to Tester.
|
|
76
78
|
- Architect reports that the plan must change: route Architect to produce an updated architecture plan before coder work continues.
|
|
@@ -157,10 +159,14 @@ When Architect, Coder, or Tester reports a confirmed direct user message:
|
|
|
157
159
|
|
|
158
160
|
### Complete Task Scope
|
|
159
161
|
|
|
160
|
-
- Once PM starts routing
|
|
161
|
-
- Do not allow requested work to be deferred, converted into follow-up scope, or
|
|
162
|
-
-
|
|
163
|
-
-
|
|
162
|
+
- Once PM starts routing an accepted delivery request, drive the accepted scope to completion unless the user explicitly changes it.
|
|
163
|
+
- Do not allow requested work to be deferred, converted into follow-up scope, reduced, or returned to the user because of workload, session length, context size, task size, predicted difficulty, or role preference.
|
|
164
|
+
- PM must not route Coder concerns to Architect before Coder completes the assigned scaffold and reports objective implementation evidence.
|
|
165
|
+
- Coder feedback that stops before implementation, compile/typecheck, or L0/L1 evidence is incomplete work, not a valid architecture signal.
|
|
166
|
+
- If Coder returns questions, concerns, predictions, architecture doubts, or validation worries before completing the assigned implementation, route Coder back to finish the work.
|
|
167
|
+
- PM must not forward Coder critique of the architecture plan, scaffold, module boundaries, public contracts, or validation strategy to Architect before Coder submits \`coder-completion.md\` with compile/typecheck/L0/L1 evidence.
|
|
168
|
+
- Before that evidence exists, any Coder architecture critique is incomplete work; route Coder back to finish implementation.
|
|
169
|
+
- Route to Architect or Architect Debug Mode only after Coder reports objective implementation evidence from completed work: compile/typecheck failure, L0/L1 failure, or required compile/typecheck/L0/L1 validation cannot run or complete.
|
|
164
170
|
|
|
165
171
|
### Flow Gates
|
|
166
172
|
|
|
@@ -29,7 +29,7 @@ ${renderRoleMemoryRules("tester")}
|
|
|
29
29
|
- If L0/L1 coverage is missing or weak, add or update tests when possible; otherwise report the exact missing coverage in \`.ai/vcm/handoffs/test-report.md\`.
|
|
30
30
|
- Own L2/L3/L4 final-validation design, execution, and acceptance evidence.
|
|
31
31
|
- Targeted diagnostic L2 checks run by Coder or Architect are implementation evidence only and do not replace Tester final validation.
|
|
32
|
-
- Choose validation level by risk. Unit tests are not sufficient when the change crosses module boundaries, public contracts, UI flows, CLI/tooling flows, hooks, sessions, persistence, worktrees, or external process behavior; require integration or E2E coverage, or document why it is unnecessary
|
|
32
|
+
- Choose validation level by risk. Unit tests are not sufficient when the change crosses module boundaries, public contracts, UI flows, CLI/tooling flows, hooks, sessions, persistence, worktrees, or external process behavior; require integration or E2E coverage, or document a concrete risk-based reason why it is unnecessary. Unavailable required coverage is a blocking validation gap.
|
|
33
33
|
- For important new behavior, public workflows, cross-module behavior, UI/CLI/tooling flows, persistence/session/worktree behavior, hooks, or external process behavior, add a new integration/E2E case or extend an existing one with assertions that directly cover the new behavior.
|
|
34
34
|
- Do not treat an existing integration/E2E command as sufficient unless it includes assertions for the new behavior or important regression path; otherwise add or modify the case, or record why coverage is not practical.
|
|
35
35
|
- When tests were changed during the task, check whether assertions were weakened, removed, over-mocked, or rewritten to match the implementation instead of the approved behavior. Report this as a validation gap unless the approved contract changed.
|
|
@@ -67,13 +67,14 @@ ${renderRoleMemoryRules("tester")}
|
|
|
67
67
|
|
|
68
68
|
### Outputs
|
|
69
69
|
|
|
70
|
-
- Write \`.ai/vcm/handoffs/test-report.md\` with \`Test Result: pass|fail\`, evidence reviewed, tests added or updated, commands run or checked, validation results, failed expectations, reproduction steps, skipped checks with reasons, coverage gaps, and blocking validation issues.
|
|
70
|
+
- Write \`.ai/vcm/handoffs/test-report.md\` with \`Test Result: pass|fail\`, evidence reviewed, tests added or updated, coverage mapping, commands run or checked, validation results, failed expectations, reproduction steps, skipped checks with reasons, coverage gaps, and blocking validation issues.
|
|
71
71
|
- \`test-report.md\` is the current validation evidence, not a log; when rewriting it, carry forward still-unresolved findings or explicitly mark them resolved instead of dropping them.
|
|
72
|
+
- In \`Coverage Mapping\`, map each accepted changed behavior or relevant risk to its validation level, actual test file and case or external evidence, exercised entry path and key assertions, result, and any remaining gap.
|
|
72
73
|
- Use \`pass\` only when required validation completed and no blocking test failure, missing required coverage, unacceptable test weakness, or unresolved validation risk remains.
|
|
73
74
|
- Use \`fail\` when tests fail, coverage is insufficient, important validation cannot complete, test quality is unacceptable, or validation risk needs project-manager routing.
|
|
74
75
|
- When \`Test Result: pass\`, \`Blocking Validation Issues\` must be \`None\`.
|
|
75
76
|
- When \`Test Result: fail\`, \`Blocking Validation Issues\` must list concrete blocking evidence.
|
|
76
|
-
- For feature or cross-boundary changes, state which new or updated integration/E2E cases cover the important paths, or
|
|
77
|
+
- For feature or cross-boundary changes, state which new or updated integration/E2E cases cover the important paths, or give the concrete risk-based reason such coverage is unnecessary. If required coverage is unavailable, report it as a blocking issue.
|
|
77
78
|
- For changed or newly added tests, state why the assertions prove real behavior rather than fixture-specific, implementation-specific, or mock-only behavior.
|
|
78
79
|
- Report confirmed unresolved issues that should survive current-task cleanup in \`.ai/vcm/handoffs/test-report.md\`; do not write \`.ai/vcm/handoffs/known-issues.md\` (architect-owned).
|
|
79
80
|
|
|
@@ -2,7 +2,19 @@ const REQUIRED_HEADINGS = {
|
|
|
2
2
|
"architecture-plan": [
|
|
3
3
|
"Accepted Scope",
|
|
4
4
|
"Current Code Reality",
|
|
5
|
+
"Planning Boundary",
|
|
6
|
+
"Code Reading Evidence",
|
|
7
|
+
"Existing Behavior Trace",
|
|
8
|
+
"Code / Docs Conflicts",
|
|
5
9
|
"Architecture Decision",
|
|
10
|
+
"Changed Behavior Flow",
|
|
11
|
+
"Ownership",
|
|
12
|
+
"Data Flow",
|
|
13
|
+
"Lifecycle",
|
|
14
|
+
"Boundaries",
|
|
15
|
+
"Invariants",
|
|
16
|
+
"Failure Model",
|
|
17
|
+
"Decision Rationale",
|
|
6
18
|
"Module/File Plan",
|
|
7
19
|
"Public Surface Impact",
|
|
8
20
|
"Scaffold Manifest",
|
|
@@ -18,6 +30,7 @@ const REQUIRED_HEADINGS = {
|
|
|
18
30
|
"test-report": [
|
|
19
31
|
"Evidence Reviewed",
|
|
20
32
|
"Tests Added Or Updated",
|
|
33
|
+
"Coverage Mapping",
|
|
21
34
|
"Commands Run Or Checked",
|
|
22
35
|
"Validation Results",
|
|
23
36
|
"Failed Expectations",
|
|
@@ -92,9 +105,16 @@ export function checkMarkdownArtifact(kind, artifactPath, content) {
|
|
|
92
105
|
function validateArtifactFields(kind, content) {
|
|
93
106
|
if (kind === "test-report") {
|
|
94
107
|
const result = /^\s*Test Result\s*:\s*(\S+)\s*$/im.exec(content)?.[1]?.toLowerCase();
|
|
95
|
-
|
|
108
|
+
const invalidFields = result === "pass" || result === "fail"
|
|
96
109
|
? []
|
|
97
110
|
: ["Test Result must be pass or fail."];
|
|
111
|
+
if (result === "pass") {
|
|
112
|
+
const blockingIssues = readArtifactSectionValue(content, "Blocking Validation Issues");
|
|
113
|
+
if (!blockingIssues || !/^none\.?$/i.test(blockingIssues)) {
|
|
114
|
+
invalidFields.push("Blocking Validation Issues must be None when Test Result is pass.");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return invalidFields;
|
|
98
118
|
}
|
|
99
119
|
if (kind === "docs-sync-report") {
|
|
100
120
|
return validateDecision(content, ["synced", "unchanged", "blocked"]);
|