Skip to content

feat(interview/debrief): correct contradicted facts in the prep file in place#2127

Open
Schlaflied wants to merge 2 commits into
santifer:mainfrom
Schlaflied:feat/debrief-correct-contradicted-facts
Open

feat(interview/debrief): correct contradicted facts in the prep file in place#2127
Schlaflied wants to merge 2 commits into
santifer:mainfrom
Schlaflied:feat/debrief-correct-contradicted-facts

Conversation

@Schlaflied

@Schlaflied Schlaflied commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Problem

modes/interview/debrief.md is append-only against the role-specific prep file — its own Inputs section says "append debrief notes." Every concrete instruction in the mode follows that shape: add a "Gaps to Close Before Round N" section, add stories to interview-prep/story-bank.md, log retractions to interview-prep/retracted-claims.md. Nothing handles the case where a live interview reveals that a specific fact already stated in the prep file is simply wrong — not a new gap, a correction to something already asserted (location, comp range, team size, reporting structure, tech/system stack).

Concrete example: a prep file's header said a role was "Metro Hall, on-site" (inferred from an expired posting, tagged as such). The actual recruiter call revealed it's hybrid. The correct fix was editing that header line in place, not appending a new note under an unchanged, now-wrong claim.

Solution

Adds a new Step 1b — Check for Contradicted Facts to modes/interview/debrief.md, running alongside Step 1's capture phase:

  • Flags when the interview directly contradicts a specific existing fact in the role-specific prep file (as opposed to surfacing new information, which still appends via the existing Steps 4/5/8, unchanged).
  • Instructs correcting the original line in place with a strikethrough-plus-correction format:
    ~~Metro Hall, on-site~~ **Metro Hall — hybrid** (confirmed on the {date} call)
    
  • Instructs resolving any inference tag ([inferred from JD], or prose noting an expired/inaccessible source) once the interview confirms or corrects it — replacing the marker with the confirmed fact and its real source, rather than leaving a settled fact permanently marked uncertain.

The Inputs section (item 9) and the Rules section both get a one-line pointer to this new step for reinforcement. No existing step's behavior changes — this is additive only.

Added test-all.mjs section 63 (following the same mode-doc pinning convention as section 62's stated-comp wiring check) asserting: the new step exists, the append-vs-correct distinction is documented, the strikethrough-correction example format is present verbatim, and the inference-tag resolution instruction is present.

node test-all.mjs: 2048 passed, 0 failed, 2 pre-existing warnings (unrelated to this change).

Coordination note

Overlaps file-wise with #2122 (also touches modes/interview/debrief.md, different section — that PR adds a transcript-input path to Step 1/Step 9, this PR adds a fact-correction step elsewhere in the mode). No content conflict expected; a mechanical rebase may be needed on whichever of the two merges second.

Closes #2125

Summary by CodeRabbit

  • Documentation

    • Updated the interview debrief workflow with a new Contradicted Facts sub-step to correct existing role prep-file claims when interviews directly contradict them.
    • Added clear guidance to distinguish new information (append) from contradictions (correct in place).
    • Documented the required in-place correction format and added instructions for resolving inference tags after contradiction/confirmation.
    • Clarified boundaries to avoid touching retracted-claims, and not updating the story bank or rewriting gap additions.
  • Tests

    • Added an end-of-suite check to enforce the contradicted-facts workflow requirements.

…in place

debrief.md was append-only against the role-specific prep file — it could
add gaps, stories, and retractions, but had no path for the case where a
live interview reveals that an existing prep-file fact (location, comp,
team size, stack, reporting line) is simply wrong. Adds a new Step 1b that
runs alongside Step 1's capture phase: flag direct contradictions of
existing facts (distinct from new information, which still appends via
the existing Steps 4/5/8), correct the original line in place using a
strikethrough-plus-correction format, and resolve any inference tag
(e.g. [inferred from JD]) the corrected/confirmed line was carrying.

Adds test-all.mjs section 63 pinning the new step, the append-vs-correct
distinction, the strikethrough-correction example, and the inference-tag
resolution instruction.

Closes santifer#2125
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 514c9c0d-6335-4747-a6d3-5f487e25a14f

📥 Commits

Reviewing files that changed from the base of the PR and between 28d243b and 6f9e30c.

📒 Files selected for processing (1)
  • test-all.mjs

📝 Walkthrough

Walkthrough

The debrief workflow adds Step 1b for correcting interview-contradicted prep-file facts in place, resolving inference markers, and preserving append-only handling for unrelated information. Tests verify the new documentation contract.

Changes

Debrief contradicted-fact handling

Layer / File(s) Summary
Contradicted-fact workflow rules
modes/interview/debrief.md
Inputs and rules now require in-place correction of directly contradicted facts, with strikethrough-plus-confirmed-value formatting, inference resolution, and defined scope boundaries.
Contract validation
test-all.mjs
Adds checks for the dedicated step, append-versus-correct distinction, Metro Hall correction example, and inference-tag resolution instructions.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: 📄 docs

Suggested reviewers: luochen211, santifer

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: correcting contradicted prep-file facts in place during interview debrief.
Linked Issues check ✅ Passed The PR implements Step 1b, in-place contradiction fixes, and inference-tag resolution, matching issue #2125's requirements.
Out of Scope Changes check ✅ Passed The changes stay focused on the debrief workflow and its corresponding test coverage, with no clear unrelated additions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test-all.mjs`:
- Around line 8999-9020: Strengthen the three debrief assertions around the
visible pass/fail checks: replace independent debriefMode.includes() conditions
with scoped regular expressions or exact combined phrases that require the
correction example to contain both the strikethrough and corrected Metro Hall
details, and require “[inferred from JD]” together with its resolve instruction.
Keep the assertions focused on the documented contract so unrelated text cannot
satisfy them.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 46571bbe-e16e-4c8b-8649-9be674156973

📥 Commits

Reviewing files that changed from the base of the PR and between e11f90f and 28d243b.

📒 Files selected for processing (2)
  • modes/interview/debrief.md
  • test-all.mjs

Comment thread test-all.mjs Outdated
CodeRabbit flagged the santifer#2125 self-test's independent .includes() checks
as satisfiable by unrelated text anywhere in the file. Replace them with
scoped regexes that pin the append-vs-correct bullets to the same
decision paragraph, the Metro Hall example's strikethrough+correction+
confirmation-date together on one line, and the inference-tag resolution
instruction to its own guidance rather than any occurrence of the tag.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(interview/debrief): correct contradicted facts in the prep file in place, not just append new notes

1 participant