Skip to content

Phase B — verification instead of reading#13

Merged
alejandro-nexcade merged 9 commits into
mainfrom
alejandro/phase-b-verification
Jul 2, 2026
Merged

Phase B — verification instead of reading#13
alejandro-nexcade merged 9 commits into
mainfrom
alejandro/phase-b-verification

Conversation

@alejandro-nexcade

Copy link
Copy Markdown
Collaborator

What (ROADMAP Phase B; realizes SPEC §8 step 1's ci_delta/test_count_delta)

  • Evidence strip above the diff: CI x/y with failing job named, test delta, size class, risk-path chips (migrations/lockfiles/CI config/auth/deps), agent-ran ✓/✗ slot (filled by Phase D) — all deterministic signals from a new pure diff_signals core engine.
  • Test-weakening detector: seven heuristics (deleted assertions, #[ignore], || true, .skip/.only, deleted test fns/files, snapshot rewrites) as danger chips with jump-to-hunk.
  • Advisory reviewer pre-pass (AgentMode::Review): explicit Pre-review button spawns a reviewer agent whose JSON findings render as dismissible severity pins on parallel zone machinery. Never touches the gate, never counts as comments, cleared when the head advances (even if the diff re-fetch fails). Tolerant findings parser (junk-wrapped agent output survives), review prompt with golden.
  • Full-file diff context: Hunks/Full-file toggle backed by git2 blob reads with gh api contents fallback, identity line maps, per-head cache, honest full:false degradation.
  • Foundational shapes for phases C–E (ci_summary, conversation, last_reviewed_sha, notify_poll_secs) land here per the one-shape-commit convention.
  • Docs: research round 2 synthesis (RESEARCH_INTERACTION_PATTERNS.md) + ROADMAP Phase F.

Research constraints honored

Findings are a triage layer, never a verdict (AI reviewers cap at ~58% critical-bug catch even in vendor benchmarks); evidence strip is deterministic only — no model confidence displays (trust-miscalibration hazard, arXiv:2602.16844).

Verified

cargo fmt/clippy -D warnings/test --all (427+ green) · tsc strict · vitest 149 · vite build · reviewer-agent pass: ship-ready, zero blocking (6 minors: 1 fixed here, base-SHA pinning folds into Phase C's enrich unit, rest documented).

🤖 Generated with Claude Code

LifeLex and others added 9 commits July 2, 2026 02:35
- CiSummary moves to model (domain rollup); AgentMode::Review (advisory
  pre-pass, never advances the gate); FindingSeverity/ReviewFinding;
  ConversationKind/ConversationItem (read-only GitHub context, distinct
  from ephemeral Comments per §0.4)
- Review gains ci_summary, review_findings, conversation,
  last_reviewed_sha (all serde-default; legacy state loads clean)
- AgentPrompts.review override; Config.notify_poll_secs; REVIEW_INSTRUCTION
- bindings regenerated; FE exhaustive switches extended

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…se F

Verified competitor teardowns (Graphite taxonomy/downvote/rules model,
CodeRabbit price band + review/rework collapse, the ~58% critical-bug
ceiling), HCI evidence for the gated loop (four oversight surfaces,
2.1-steps-per-prompt chunking, zero-of-99 autonomy trust), the
trust-miscalibration hazard binding our evidence/trajectory UI, and Cisco
sizing mechanics. Locks 10 design decisions; adds roadmap Phase F.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
git2 blob reads at a revision (binary/oversize/missing-path -> None, bad
rev -> Err) and a gh api contents fallback with pure, tested response
parsing. 512 KiB cap guards Monaco full-file rendering.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Tolerant JSON-array extraction (string-aware balanced scan, junk-wrapped
agent output survives), skip-malformed entries, stable content-hashed ids,
200-finding cap. assemble_review_prompt mirrors the plan prompt sections
with a golden; findings_file_path shares the plan slug sanitizer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…, weakening

Pure single-pass unified-diff analysis: size classes at documented
boundaries, priority-ordered per-file risk flags, assertion counting, and
seven test-weakening detectors with jump targets. 16 tests + regenerated
bindings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- get_evidence: deterministic signals + CI rollup (trajectory slot ready
  for Phase D)
- pre_review: explicit reviewer-agent spawn (AgentMode::Review); findings
  ingested on completion, file deleted after transport, gate state never
  touched; findings cleared when the head advances
- get_file_pair: worktree git2 reads with gh contents fallback and honest
  full:false degradation

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…le view

EvidenceStrip (CI/size/test-delta/risk/weakening chips with jump-to-hunk),
advisory finding pins on parallel zone machinery (dashed severity rail,
local dismiss, never counted as comments), Pre-review button, full-file
toggle with identity line maps + per-head cache, TS signal mirror with
Rust-fixture parity tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ails

Stale pins on changed content mislead; the head has moved regardless of
whether the gh re-fetch succeeded (reviewer minor #6).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@alejandro-nexcade alejandro-nexcade merged commit ef5dd0d into main Jul 2, 2026
2 checks passed
LifeLex added a commit that referenced this pull request Jul 2, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
alejandro-nexcade added a commit that referenced this pull request Jul 2, 2026
* core+app: Phase E backend — conversation ingest, teammate interdiff, Linear intent

fetch_conversation merges reviews/review-comments/issue-comments (three
concurrent gh reads, fixture-tested parsers, state-only approvals kept);
submit_github_review records last_reviewed_sha; get_teammate_interdiff
compares it to the pinned head; Linear descriptions seed review intent
and capped plan-issue gists (goldens byte-identical).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* app(fe): Phase E — conversation band, teammate re-review on push

Read-only GitHub conversation context for review-requested PRs (state-
aware labels, plain-text bodies, external links); the interdiff toggle
gains a teammate source driven by last_reviewed_sha vs pinned head with
a 'pushed since your review' header note. Authored (dispatch_snapshot)
and teammate paths are mutually exclusive by construction.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* app: bound Linear API calls with a 15s timeout

A stalled Linear response was the one un-timed await in plan generation
and kickoff; errors already degrade gracefully, now hangs do too.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs: mark roadmap phases B-E implemented (PRs #13-#16)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Alejandro Perez <alejandro.perez.gancedo@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@LifeLex LifeLex deleted the alejandro/phase-b-verification branch July 2, 2026 04:39
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.

2 participants