Skip to content

[Issue #154] T1 lane set: one qualified independent review (v2.1.3 P3) - #156

Merged
KHAEntertainment merged 1 commit into
mainfrom
feat/154-t1-lane-set
Oct 26, 2026
Merged

KHAEntertainment merged 1 commit into
mainfrom
feat/154-t1-lane-set

Conversation

@KHAEntertainment

Copy link
Copy Markdown
Owner

Closes #154

Rationale

v2.1.3 P3. T1 now runs one qualified independent review, and the QA (acceptance) lane only when a declared acceptance check applies. The P2 interim ("T1 keeps the current lanes") is retired. T2/T3 are unchanged.

What changed

  • external-review.md: new Qualified review for T1 section (qualification list, provider-state outcome table, multi-source required reviewers, ignored-source triage); intro and Mode off wording adjusted. Shipped breakpoint/substitution rule and Kilo head-bound summary rule untouched.
  • phase3.5.md: P2 interim sentence replaced by the T1 QA rule; QA-lane section scoped to when the lane runs.
  • phase4.md (Pre-Review Preparation dispatch text, Review Rating only): internal reviewer dispatched for T1 only per the new section.
  • backends/contract.md: "Worker → PR → QA → Review is unchanged" replaced by a tier-aware invariant; distinct-ID/read-only invariants kept ("When they run").
  • PROJECT_CONTEXT_TEMPLATE.md: Required reviewers guidance: one qualified independent source by default; more than one only when policy requires, each trusted and mapped.
  • SKILL.md: Phase 3.5 core-principle line only.
  • validate_skill.py: check_t1_lane_set, parse_required_reviewers, check_required_reviewer_policy (accepts multi-source); the Kilo pin is now list membership instead of the exact line.
  • tests/test_backend_contract.py: new T1LaneSetTests; one stale pin updated.
  • Recording (no new field): internal_review_status: not_dispatched, source in completed_reviewers, governing requirement in expected_reviewers.

Acceptance criteria

  • AC-1 ✓ qualified at head → internal reviewer not dispatched, source named (doc-assertion tests)
  • AC-2 ✓ rate-limited past breakpoint → substitute under the shipped rule, a record not a bypass
  • AC-3 ✓ other unqualified states → internal reviewer may review; required provider stays pending/incomplete, never clear; substitution not extended
  • AC-4 ✓ multi-source policy valid, each source tracked at head, record names governing requirement; validator accepts it (fixtures) and still rejects empty/duplicate/mixed-none/untrusted entries
  • AC-5 ✓ T1 QA only with a declared acceptance check; T2/T3 pins unchanged
  • AC-6 ✓ ignored removes tracking only; credible defects still lead-triaged

Focused checks (run at head cf43453)

  • python3 scripts/validate_skill.py → OK: validated …/skills/dev (exit 0)
  • python3 -m unittest tests.test_backend_contract → Ran 143 tests … OK (exit 0)
  • python3 -m unittest tests.test_validate_skill tests.test_skill_frontmatter → Ran 61 tests … OK (exit 0)
  • python3 -m py_compile scripts/validate_skill.py tests/test_backend_contract.py → exit 0
  • Verification Gate / full suite / installer suites: CI-owned, not run locally.

Coverage-path audit

Changed paths: tier table consumers (SKILL.md router ↔ phase3.5, still agreeing; RiskTierTests pass), check_t1_lane_set (live + 7 drift mutations fail), check_required_reviewer_policy (6 valid, 5 invalid fixtures), Kilo pin (membership). No inspector change (--required-reviewer already repeats).

Caller impact

Docs/validator only. PROJECT_CONTEXT.md not edited (its Required reviewers: kilo still validates). Graft: installed, repo not indexed → graph_evidence: unavailable; callers checked with rg.

🤖 Generated with Claude Code

…or a declared acceptance check (v2.1.3 P3)

Add the Qualified review for T1 gate to external-review.md (qualification list, provider-state outcome table, multi-source required reviewers, ignored-source triage), make the T1 lane set tier-aware in phase3.5/phase4/contract/template, retire the P2 interim wording, and add validator pins plus a multi-source Required reviewers parser with tests.

Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c59506c2-256b-480e-a69a-25750ae738ac

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kilo-code-bot

kilo-code-bot Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (8 files)
  • scripts/validate_skill.py - 0 issues
  • skills/dev/SKILL.md - 0 issues
  • skills/dev/backends/contract.md - 0 issues
  • skills/dev/phases/external-review.md - 0 issues
  • skills/dev/phases/phase3.5.md - 0 issues
  • skills/dev/phases/phase4.md - 0 issues
  • skills/dev/templates/PROJECT_CONTEXT_TEMPLATE.md - 0 issues
  • tests/test_backend_contract.py - 0 issues

Reviewed by nemotron-3.5-super-vl:free · Input: 199.3K · Output: 26K · Cached: 516K

Review guidance: REVIEW.md from base branch main

@KHAEntertainment
KHAEntertainment merged commit 0edcf5e into main Oct 26, 2026
5 checks passed
@KHAEntertainment
KHAEntertainment deleted the feat/154-t1-lane-set branch October 26, 2026 02:09
KHAEntertainment added a commit that referenced this pull request Oct 26, 2026
Conflicts in scripts/validate_skill.py and tests/test_backend_contract.py
resolved by keeping both sides: P3's check_t1_lane_set and T1LaneSetTests,
and P6's check_evidence_profile and EvidenceProfileTests.

Co-Authored-By: Claude Opus <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[v2.1.3 P3] T1 lane set: one qualified independent review; QA lane only for a declared acceptance check or tier ≥ T2

1 participant