RDLC Configuration

June 9, 2026 · View on GitHub

This document is installed by claude-rdlc-wizard into the consumer repo. It is the canonical for "what RDLC enforces here." Edit it freely — update-wizard preserves your customizations and only touches the metadata header.

Wizard Version Tracking

PropertyValue
Wizard Version0.3.2
Last Updated2026-05-06
Claude Code Baselinev2.1.154+ (required for claude-opus-4-6[1m])
Recommended Modelclaude-opus-4-6[1m] (Opus 4.6 max) for primary work, gpt-5.5 xhigh (Codex) for cross-model review
Recommended Effortmax for research drafting, xhigh for review and verification

RDLC Enforcement

This repository uses the RDLC Wizard to enforce:

1. Source Discipline

  • Every claim has a citation or URL
  • Sources ranked by tier (see "Source Hierarchy" below)
  • Source-at-first-mention; subsequent references inherit

2. Confidence Classification

  • Every claim labeled VERIFIED / SUPPORTED / INFERRED / UNVERIFIED
  • Labels are not optional; the hook blocks Write/Edit on research files without one
  • Confidence escalates only when new sources land — never silently

3. Cross-Model Review

  • Claude (primary author) drafts; a second model (Codex GPT-5.4 xhigh recommended) reviews
  • Mission-first prompt structure: mission, success, failure, audience, stakes
  • Convergence: 2 rounds is the sweet spot, 3 max

4. AI Slop Gate

  • Banned phrase list scanned via grep -E before commit
  • Hard fail (rewrite immediately) and soft warn (check context) tiers
  • Zero hits = pass

5. Audience-Firewall

  • Multi-deliverable repos enforce per-audience content boundaries
  • Private content (interview salary, internal mock questions) cannot leak to public deliverables
  • Enforced in the deliverable generator, not just the source pages

6. Fact Regression Tests

  • Every defect found becomes a permanent regression check
  • Test format: check_present and check_absent bash assertions on output files
  • The ratchet only turns forward — gates get stricter, never looser

Hooks Installed

HookTriggerPurpose
rdlc-prompt-check.shEvery promptRDLC baseline reminder
rdlc-instructions-check.shSession startValidates RDLC.md exists; prompts setup if missing
slop-scan-pretool.shBefore Write/EditBlocks AI slop additions
confidence-required.shBefore Write/Edit on research/, evidence/Requires confidence label on new claims
source-required.shBefore Write/Edit on research filesRequires source-at-first-mention
audience-firewall.shBefore Write to output/Blocks audience-private content from public deliverables

Skills Available

SkillInvocationPurpose
RDLC/rdlcFull research workflow guidance
Setup/setup-rdlcConfidence-driven project setup
Update/update-rdlcSmart update with drift detection
Feedback/feedback-rdlcPrivacy-first contribution loop

Source Hierarchy

Higher tiers carry more weight when claims conflict.

TierSource TypeWeight
1Primary databases (DrugBank, ChEMBL, PubChem, openFDA, EDGAR, USPTO, FEC)Highest — authoritative
2Government records, legislative archives, court filingsHighest — authoritative
3Peer-reviewed papers (PubMed, arXiv with peer review)High
4Established news outlets with editorial standardsHigh
5Official organizational sites (statesproject.org, anthropic.com)High
6Professional profiles (LinkedIn, TheOrg, Crunchbase)Moderate
7Watchdog/advocacy sites (note bias)Moderate
8Podcasts/interviews with primary subjectsModerate (primary source)
9Wikipedia, secondary aggregatorsLow — verify upstream
10Social media, anonymous posts, screenshotsLowest — attribute, do not assert

Confidence Vocabulary

LabelMeaningRequired Evidence
VERIFIEDMultiple independent sources confirm≥2 tier 1-5 sources OR 1 tier 1-2 with cross-check
SUPPORTEDSingle reliable source, no contradictions1 tier 1-5 source
INFERREDLogical deduction from verified premisesReasoning chain documented; flag in text
UNVERIFIEDSource exists but not yet checked, or conflicting sourcesNote "needs confirmation" in text
GAP (alt)No source located, structurally unknowable (use for investigation domains)Note "no source located" in text

Pick one alt for the fourth slot per project: UNVERIFIED if sources should exist, GAP if some facts cannot be recovered. Document the choice here.

AI Slop Gate

Every content change must pass a slop scan before commit.

Hard fail (rewrite immediately): deep dive, game-changer, cutting-edge, elevate, delve, tapestry, holistic, robust, paradigm, groundbreaking, streamline, empower, harness, unleash, unpack, pivotal, crucial, bigger picture, smoking gun, synergy, arguably, it's worth noting, at the end of the day, in today's world, needless to say

Soft warn (check context — legitimate use OK): leverage (as verb meaning "use"), comprehensive (as filler), landscape (filler vs "competitive landscape"), stakeholder (when generic), navigate (meaning "deal with"), facilitate (filler), best practices (generic), fundamentally, inherently

How to run:

bash scripts/slop_scan.sh

Zero hits = pass. Any hit = review and rewrite.

Allowlist: project-specific proper nouns (mission pillar names, direct quotes) can be added to .rdlc/slop-allowlist.txt to suppress false positives. Lines in that file are excluded from the scan.

Audience Firewall

Multi-deliverable repos must enforce per-audience boundaries. Each deliverable has its own assertion list of forbidden patterns.

Example mapping:

DeliverableAudienceForbidden Content
output/private_*.htmlInternal(none — full content)
output/public_*.htmlExternalSalary figures, mock-interview content, private contact info, internal review notes
output/clinical_*.pdfMedicalLitigation language, manufacturer marketing claims

The check belongs in the generator (Python/script that builds the deliverable), not just the source markdown. PDFs and HTML get forwarded without their context — the boundary must hold at render time.

Cross-Model Review Protocol

For high-stakes deliverables (anything published, anything legally adjacent, anything tone-sensitive):

  1. Pre-flight self-review. /code-review equivalent for prose. Document every check at .reviews/preflight-{review_id}.md. Don't waste a Codex round on issues you could catch yourself.
  2. Mission-first handoff. Write .reviews/handoff.json with: mission (2-3 sentences), success criteria, failure criteria, audience profile, stakes, files_changed, verification_checklist (file:line specific).
  3. Run the reviewer. Codex CLI at model_reasoning_effort=xhigh. Always xhigh — lower settings miss subtle errors.
  4. Dialogue loop. Per-finding response, increment round, status PENDING_RECHECK. Convergence: 2 rounds is the sweet spot, 3 max. After 3 still NOT CERTIFIED → escalate.
  5. Audience-as-reviewer variant. For tone-sensitive content, prompt the reviewer to adopt the audience's mindset: "If you were [audience], when do you stop reading?" — flushes out check-out moments document-level review never finds.

Full protocol: ~/xdlc/docs/cross-model-review.md.

Fact Regression Tests

Every defect becomes a permanent check. Test format:

check_present "Claim X exists" "expected pattern" "$DOC"
check_absent "No fabrication Y" "forbidden pattern" "$DOC"
check_absent_excl_review "No overclaim Z outside review section" "pattern" "$DOC"

Run: bash scripts/regression_test.sh

The test count grows monotonically. Test counts in docs go stale — verify dynamically or guard with a count assertion.

Confidence Levels (For Tasks)

LevelMeaningAction
HIGH (90%+)Know exactly what to doProceed after approval
MEDIUM (60-89%)Solid approach, some unknownsHighlight uncertainties
LOW (<60%)Not sureASK before proceeding
FAILED 2xSomething's wrongSTOP and ask for help

Configuration Files

.claude/
├── settings.json
├── hooks/
│   ├── _find-rdlc-root.sh
│   ├── rdlc-prompt-check.sh
│   ├── rdlc-instructions-check.sh
│   ├── slop-scan-pretool.sh
│   ├── confidence-required.sh
│   ├── source-required.sh
│   └── audience-firewall.sh
└── skills/
    ├── rdlc/SKILL.md
    ├── setup/SKILL.md
    ├── update/SKILL.md
    └── feedback/SKILL.md

scripts/
├── regression_test.sh        # Fact regression suite
├── slop_scan.sh              # Banned-phrase grep
└── generate_deliverable.py   # Multi-document HTML generator (audience-firewalled)

research/                     # Topic-specific research files (lowercase_with_underscores.md)
evidence/
├── sources/                  # Raw source material with URLs
└── ...                       # Domain-specific subdirs
output/                       # Final deliverables (HTML, PDF)
.reviews/                     # Review artifacts (handoff.json, preflight-*.md)
.rdlc/
└── slop-allowlist.txt        # Project-specific exclusions from slop scan

Lessons Learned

(Empty at install. Populate as the project earns rules. Format mirrors ~/sdlc-wizard/SDLC.md "Lessons Learned" — one bullet per gotcha, cite the originating PR or incident date.)