Files
claude-resume-kit/resume_builder/reference/critical_rules.md
T
dennisthiessenandClaude Opus 5 92a81a7dcb feat(resume): check bullet cadence variety, warn-only
An audit of all 18 packages in output/ (368 bullets) found one rhythm
running through every document: 45% of bullets used the same "X, Y and
Z" triple, and the SBB package reached 85% - 11 of 13 bullets, every
Swisscom and Bosch line - plus two adjacent bullets both opening
"Build and...".

This is a style finding, not a truth finding. Every bullet was accurate.
The corpus is clean on the axes that actually signal generated text: no
AI vocabulary (0 hits for leverage/spearheaded/robust/passionate and 56
others across 35 documents), prose em-dashes at 0.08/bullet, and PDF
metadata carrying nothing but MiKTeX pdfTeX with empty Author/Title
(0 AI tokens and 0 generator-term leaks across 69 PDFs). What is left is
cadence: ten bullets sharing one three-beat rhythm read as machine-made
even when nothing in them is false.

Guarded deliberately so it cannot do harm. cadence_checks() emits WARN
and never ERROR, the critique deduction caps at 1 point, and both the
reference and the docstring state that no claim, scope or hedged verb
may be bent to satisfy rhythm. An anti-monotony rule with teeth would be
worse than the problem - it would pressure a future run into loosening a
scoped claim to vary a sentence.

Thresholds are calibrated on the corpus, not guessed. Position length
spreads are bimodal (1-9 words, then 15-17), so the check flags a spread
of <=4, the tight tail at ~28% of positions; the first draft used <=6
and flagged the median. Also fixed the opening-verb extractor, which
read \textbf{Owned ...} as the word "textbf" and produced six false
positives on one document. Per-package warnings now run 0-3.

Docs: resume_reference.md 7a + verification step, critical_rules.md 7a,
critique_framework.md mechanics row, CLAUDE.md corrections log.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MHtzyTKBcg6BWhD5qFegtK
2026-08-25 09:38:19 +02:00

18 lines
1.3 KiB
Markdown

# Critical Rules — Generation Preflight
1. Read `resume_builder/canonical/claims.json`; it overrides every narrative source.
2. Run `python resume_builder/helpers/validate_resume_system.py` before generation.
3. Never use an `output/` resume or cover letter as source material.
4. Choose International Tech by default; use Swiss/DACH only for an appropriate employer.
5. Put employer, formal title and dates before any narrative framing.
6. Use an optional 2--3 line summary, 4--6 skills lines and normally 11--14 evidence-led bullets.
7. Mix natural bullet lengths. There is no character target and no page-fill quota.
7a. Vary bullet cadence: keep "X, Y and Z" triples under about half the bullets, avoid two
adjacent bullets opening with the same verb, and vary length *within* each position.
Style only — never bend a claim, a scope or a hedged verb to fix rhythm (see §7a).
8. Do not list unverified skills, metrics, customers, scale or causal impact.
9. Scope Swisscom migration and Data Mesh claims to Dennis's domains, components and products.
10. Security Champion means the 2025/2026 team role only; omit by default.
11. LLM evidence is configuration/integration level; no LangChain, fine-tuning, formal evaluation or production LLM ownership.
12. Run the canonical document validator, compile, inspect and test extracted text before presenting.