vibe-coding-master 0.7.4 → 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.
@@ -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 or unavailable.
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 why such coverage is not needed or not available.
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
- return result === "pass" || result === "fail"
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"]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-coding-master",
3
- "version": "0.7.4",
3
+ "version": "0.7.5",
4
4
  "description": "Local GUI session cockpit for Claude Code role sessions.",
5
5
  "type": "module",
6
6
  "files": [