vibe-coding-master 0.7.17 → 0.7.18

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.
@@ -26,21 +26,22 @@ ${renderRoleMemoryRules("tester")}
26
26
  - Do not treat "looks normal", "no error", log absence, or implementation reasoning as validation evidence.
27
27
  - Coder may write and run L0/L1 baseline tests during implementation, but Tester owns final test adequacy for all validation levels.
28
28
  - Review Coder-provided L0/L1 evidence and changed unit tests against \`docs/CODING_STANDARDS.md\`; confirm changed callable units have required success, failure, boundary, validation, branching, error-handling, lifecycle, retry, or state-transition coverage.
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\`.
29
+ - If required L0/L1 coverage is missing or weak, add or update the required tests. If the coverage cannot be completed, return \`Test Result: fail\` with concrete blocking evidence.
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
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
- - 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.
34
+ - Do not treat an existing integration/E2E command as sufficient unless it includes assertions for the new behavior or important regression path. Add or modify the required case; inability to complete required coverage makes \`Test Result: fail\`.
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.
36
36
  - Apply \`docs/CODING_STANDARDS.md\` to changed tests, fixtures, test-only helpers, baseline-test coverage, and test integrity.
37
37
  - Before final validation, perform a full cache cleanup, then rerun validation from a clean state.
38
38
  - Do not use validation results produced before full cache cleanup as final acceptance evidence.
39
- - Record failed commands, observed behavior, expected behavior, reproduction steps, skipped checks, and coverage gaps.
39
+ - Record failed commands, observed behavior, expected behavior, reproduction steps, and skipped checks. Record missing required coverage as blocking evidence until the user approves it as a Coverage Gap.
40
40
  - Report failures as validation evidence: expected behavior, actual behavior, reproduction, affected path, failed command or log, and risk.
41
41
  - Do not propose implementation fixes, architecture changes, Replan, or ownership changes.
42
42
  - If project-manager asks for clarification, clarify only the validation evidence, expected behavior, affected path, or coverage gap.
43
43
  - If validation fails or expected behavior is unclear, report the evidence to project-manager; architect owns diagnosis, and project-manager decides the next route.
44
+ - After Architect Debug or Architecture Diagnosis changes, rerun the required validation independently. Architect validation is implementation evidence and does not replace Tester final validation.
44
45
  - Add or modify tests, test fixtures, or test-only helpers needed for validation confidence.
45
46
  - Tester changes to tests, fixtures, and test-only helpers must follow \`docs/CODING_STANDARDS.md\` and prove the approved behavior contract.
46
47
  - Do not edit production code, public contracts, runtime wiring, generated context, or shared production helpers while adding validation coverage.
@@ -52,13 +53,18 @@ ${renderRoleMemoryRules("tester")}
52
53
  - Treat architect-flagged public contracts, migrations, auth, data flow, routing, or dependency changes as inputs for tester-owned validation design.
53
54
  - Record skipped L3 checks in \`.ai/vcm/handoffs/test-report.md\` with the reason.
54
55
  - Treat validation coverage gaps for accepted task scope, changed behavior, or required public contracts as blocking validation issues; \`Test Result: pass\` cannot include them.
55
- - Record only existing, unrelated, non-required project limitations as non-blocking coverage notes, and state why they do not affect current task validation.
56
- - If a required validation check is skipped or cannot complete, \`Test Result\` must be \`fail\`. If the user explicitly approved continuing without the exact check, record the approval and reason; the approval does not change Tester's result.
56
+ - Before exact user approval is routed by project-manager, record missing required coverage under \`Blocking Validation Issues\`, keep \`Coverage Gaps\` as \`None\`, and return \`Test Result: fail\`.
57
+ - Add a Coverage Gap only after project-manager routes the user's exact approval for that specific unresolved gap. Record the approval verbatim in \`User Approval Evidence\`.
58
+ - User approval permits the gap to remain and the workflow to continue; it does not change the factual \`Test Result: fail\`.
59
+ - If a required validation check is skipped or cannot complete, \`Test Result\` must be \`fail\`.
57
60
  - Update \`docs/TESTING.md\` when validation strategy, commands, level mapping, integration/E2E case definitions, selection rules, final-validation cleanup, test gaps, or test expectations change.
58
61
 
59
62
  ### Testing Documentation
60
63
 
61
64
  - Own \`docs/TESTING.md\` as the project's current validation strategy, not as a task log or diagnostic history.
65
+ - Do not add or expand \`Known Testing Gaps\` without exact user approval routed by project-manager.
66
+ - Add an approved item to \`Known Testing Gaps\` only when it is a durable project-level testing limitation. Keep task-local evidence and the user's authorization in \`test-report.md\`, not in the durable document.
67
+ - Do not use \`Known Testing Gaps\` to defer current-task validation before Architect Debug and Architecture Diagnosis have completed.
62
68
  - Keep \`docs/TESTING.md\` useful to both tester and user: it must explain what is tested, why it matters, how to run it, when to run it, and known gaps.
63
69
  - Document integration and E2E test cases as reviewable case lists, not only command lists.
64
70
  - Each integration/E2E case should include ID, scenario, entry point, what it proves, key assertions, when to run, and current limitations when relevant.
@@ -69,14 +75,16 @@ ${renderRoleMemoryRules("tester")}
69
75
 
70
76
  ### Outputs
71
77
 
72
- - 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.
78
+ - 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, blocking validation issues, and user approval evidence.
73
79
  - In Validation-Only Flow, if tests, fixtures, test-only helpers, or \`docs/TESTING.md\` changed, commit those changes before reporting and record the changed files and commit in \`test-report.md\`. If no tracked files changed, record that no commit was required.
74
80
  - \`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.
75
81
  - 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.
76
82
  - Use \`pass\` only when required validation completed and no blocking test failure, missing required coverage, unacceptable test weakness, or unresolved validation risk remains.
77
83
  - Use \`fail\` when tests fail, coverage is insufficient, important validation cannot complete, test quality is unacceptable, or validation risk needs project-manager routing.
78
- - When \`Test Result: pass\`, \`Blocking Validation Issues\` must be \`None\`.
84
+ - When \`Test Result: pass\`, \`Coverage Gaps\`, \`Blocking Validation Issues\`, and \`User Approval Evidence\` must be \`None\`.
79
85
  - When \`Test Result: fail\`, \`Blocking Validation Issues\` must list concrete blocking evidence.
86
+ - When \`Coverage Gaps\` is not \`None\`, \`Test Result\` must be \`fail\`, \`User Approval Evidence\` must contain the user's exact authorization, and every recorded gap must match that authorization.
87
+ - When no gap has been approved, \`User Approval Evidence\` must be \`None\`.
80
88
  - 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.
81
89
  - For changed or newly added tests, state why the assertions prove real behavior rather than fixture-specific, implementation-specific, or mock-only behavior.
82
90
  - 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).
@@ -32,3 +32,17 @@ export function createDefaultLaunchTemplate() {
32
32
  autoOrchestration: true
33
33
  };
34
34
  }
35
+ export function createDefaultToolSessionDefaults() {
36
+ return {
37
+ translator: {
38
+ permissionMode: "bypassPermissions",
39
+ model: "default",
40
+ effort: "medium"
41
+ },
42
+ "harness-engineer": {
43
+ permissionMode: "bypassPermissions",
44
+ model: "default",
45
+ effort: "medium"
46
+ }
47
+ };
48
+ }
@@ -45,7 +45,8 @@ const REQUIRED_HEADINGS = {
45
45
  "Reproduction Steps",
46
46
  "Skipped Checks With Reasons",
47
47
  "Coverage Gaps",
48
- "Blocking Validation Issues"
48
+ "Blocking Validation Issues",
49
+ "User Approval Evidence"
49
50
  ],
50
51
  "docs-sync-report": [
51
52
  "Summary",
@@ -138,11 +139,36 @@ function validateArtifactFields(kind, content) {
138
139
  const invalidFields = result === "pass" || result === "fail"
139
140
  ? []
140
141
  : ["Test Result must be pass or fail."];
142
+ const coverageGaps = readArtifactSectionValue(content, "Coverage Gaps");
143
+ const blockingIssues = readArtifactSectionValue(content, "Blocking Validation Issues");
144
+ const userApproval = readArtifactSectionValue(content, "User Approval Evidence");
145
+ const hasCoverageGaps = Boolean(coverageGaps && !/^none\.?$/i.test(coverageGaps));
146
+ const hasBlockingIssues = Boolean(blockingIssues && !/^none\.?$/i.test(blockingIssues));
147
+ const hasUserApproval = Boolean(userApproval && !/^none\.?$/i.test(userApproval));
141
148
  if (result === "pass") {
142
- const blockingIssues = readArtifactSectionValue(content, "Blocking Validation Issues");
143
- if (!blockingIssues || !/^none\.?$/i.test(blockingIssues)) {
149
+ if (!coverageGaps || hasCoverageGaps) {
150
+ invalidFields.push("Coverage Gaps must be None when Test Result is pass.");
151
+ }
152
+ if (!blockingIssues || hasBlockingIssues) {
144
153
  invalidFields.push("Blocking Validation Issues must be None when Test Result is pass.");
145
154
  }
155
+ if (!userApproval || hasUserApproval) {
156
+ invalidFields.push("User Approval Evidence must be None when Test Result is pass.");
157
+ }
158
+ }
159
+ if (result === "fail" && !hasBlockingIssues) {
160
+ invalidFields.push("Blocking Validation Issues must contain concrete evidence when Test Result is fail.");
161
+ }
162
+ if (hasCoverageGaps) {
163
+ if (result !== "fail") {
164
+ invalidFields.push("Test Result must be fail when Coverage Gaps are recorded.");
165
+ }
166
+ if (!hasUserApproval) {
167
+ invalidFields.push("User Approval Evidence is required when Coverage Gaps are recorded.");
168
+ }
169
+ }
170
+ else if (hasUserApproval) {
171
+ invalidFields.push("User Approval Evidence must be None when no Coverage Gaps are recorded.");
146
172
  }
147
173
  return invalidFields;
148
174
  }