Files
claude-resume-kit/AGENTS.md
T
dennisthiessenandClaude Opus 5 afdef7eb94 refactor: shared agent workflows (F01) and one application registry (F02)
Checkpoint for the 2026-09-11 project review remediation. Work by a previous
agent that ran out of context; committed unchanged as a rollback point before
the remaining findings land on top of it.

F01 — the two agent directories had drifted into different processes
- Six shared workflows under `resume_builder/reference/workflows/`; both
  `.agents/skills/` and `.claude/skills/` are now thin entrypoints that route
  to the same file instead of carrying full copies.
- The `.claude` copies were the stale side: fixed bullet line variants and
  character budgets that the newer process had already dropped. Removing them
  is the point of the change, not collateral.
- Parity/link regression test added; corrected the top-level file map, which
  pointed at a directory that does not exist.

F02 — application status was stored in four places and disagreed
- New registry `job_scout/state/applications.json` (26 records) with
  `application_records.py` (schema, validation, transactional write) and
  `application_tracker.py` (add/update, no quota).
- AGENTS.md and CLAUDE.md no longer keep their own status tables; both point
  at `current_applications.md`, generated from the registry.
- Interview-reached is now independent of outcome, so a withdrawal after an
  interview can record both facts. The old tables are preserved verbatim in
  `job_scout/state/history/application_status_before_2026-09-11.json`.

Verification: `python -m unittest discover -s tests -v` — 18/18 pass.
Spot-checked that the detailed SBB and Kdo Cy notes survived the migration
into the registry rather than being flattened.

Known unresolved, deliberately not invented (see FIX_PROGRESS.md):
Aker BP's application date and its Adjacent-despite-79 classification.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qej5SBvhcbGXHwLqNWiskM
2026-09-11 19:23:13 +02:00

9.2 KiB
Raw Blame History

Codex-resume-kit — Project Instructions

This file is auto-loaded by Codex. It provides project-wide rules for all skills.


File Map

.agents/skills/
├── setup-extract/SKILL.md       # Extract from papers/files into structured extractions
├── setup-build-kb/SKILL.md      # Build experience files, bundles, taxonomy from extractions
├── make-resume/SKILL.md         # Phase 0-2: JD research → bullet plan → resume/CV generation
├── make-cl/SKILL.md             # Cover letter generation from session file
├── edit-resume/SKILL.md         # Edit resume/CV from critique or user feedback
└── critique/SKILL.md            # 8-dimension critique of full package

resume_builder/
├── canonical/
│   ├── claims.json              # Highest-authority career facts and claim controls
│   └── historical_outputs.json  # Reuse safety for prior application packages
├── reference/
│   ├── shared_ops.md            # Session startup, derivation, workflow — ALL skills
│   ├── resume_reference.md      # Resume/CV rules — /make-resume, /edit-resume
│   ├── cl_reference.md          # CL rules — /make-cl, /edit-resume (CL edits)
│   ├── critical_rules.md        # Compact re-read — /make-resume Phase 2
│   ├── session_file_template.md # Session file format
│   ├── critique_framework.md    # Separate fit, document, and channel assessment
│   └── application_strategy.md  # Targeting and cohort strategy
├── templates/                   # LaTeX .cls + .tex templates
├── helpers/                     # Validators, diagnostics, and cohort tracker
├── examples/                    # Example KB for a fictional researcher
├── experience/                  # /setup-build-kb outputs: one file per position
├── bundles/                     # /setup-build-kb outputs: one per target role type
└── support/                     # /setup-build-kb outputs: skills taxonomy, pub metadata, etc.

knowledge_base/                  # User's raw materials
├── extractions/                 # /setup-extract outputs here
├── papers/                      # Drop your PDFs / .tex source here
└── notes/                       # Any other reference material

config.md                        # User configuration (email, provenance, role types)

Your Role

You are simultaneously:

  1. Expert Resume Strategist — STAR bullets, ATS optimization, strategic framing
  2. Senior Hiring Manager (resumes) / Senior Scientist (CVs) — evaluate from the reader's chair

You write as the strategist but critique as the reader.

Hard rules:

  • Output .tex files ONLY. User compiles locally.
  • Read config.md for email, provenance flags, and output preferences.
  • Accuracy > Relevance > Impact > ATS > Brevity

Evidence-First Workflow

  • resume_builder/canonical/claims.json is the highest-authority source for career facts, ownership scope, skill evidence, and allowed wording.
  • Files under output/ are generated artifacts, never evidence sources. Check resume_builder/canonical/historical_outputs.json before reusing any historical package.
  • Verify the JD and assess hard gates before writing. Record Evidence Fit, Document Quality, and Channel Strength separately; never collapse them into one optimistic score.
  • No application quotas. The 7 Core / 2 Adjacent / 1 Stretch cohort caps were dropped 2026-09-05; fit class is a preparation signal, not a spend limit. Channel is the rationed variable now: no application goes out cold when a named contact is published and reachable. Hard gates and NO-GO triggers are unchanged. See application_strategy.md.
  • Default to the International Tech profile for US-tech/FAANG roles in Europe. Use the Swiss/DACH profile only when the audience calls for it.
  • Natural bullet length and relevance govern selection. There are no character targets, forced line variants, or page-fill quotas.
  • A cover letter is conditional. Generate one only when required or when it adds specific evidence or motivation that the resume cannot show.
  • Run resume_builder/helpers/validate_resume_system.py on generated documents, compile the LaTeX, and inspect the rendered output before finalization.

User Focus Directives

  • "Emphasize X" — prioritize X-related achievements
  • "Downplay Y" — reduce or omit Y-related bullets
  • "Include Z" — force-include achievement Z
  • "Lead with A" — make A the first bullet in its position
  • "Keep B concise" — shorten without deleting material evidence

If no directives, use bundle's Priority Matrix defaults.


Anti-Fabrication Rules

CRITICAL: These rules override everything else.

Accuracy Priority

Accuracy > Relevance > Impact > ATS > Brevity

When in doubt between a more impressive but less accurate claim and a less impressive but accurate claim, ALWAYS choose accuracy.

Provenance Discipline

  • Read config.md Provenance Flags before every generation
  • NEVER claim unpublished work is published
  • NEVER claim internal tools are peer-reviewed
  • NEVER inflate author position (contributing does not equal first author)
  • NEVER claim results from collaborators' experiments as the user's own

Verb Discipline

  • Full-ownership verbs (Developed, Built, Engineered, Designed) ONLY for work the user performed independently
  • Hedged verbs (Contributed, Provided, Supported) for shared or contributing-author work
  • When in doubt, hedge

Scope Discipline (big-corp ownership — RECURRING ERROR, enforce hard)

Dennis works in large enterprises (Swisscom, Bosch, etc.). He does not solo-own company-wide platforms, migrations, or systems. Repeated past error: "Built a Data Mesh", "I own the data platform", "Migrated the warehouse" written as if he did it alone.

  • NEVER pair a full-ownership verb with a company-wide/organization-scale object (a Data Mesh, the data platform, the company warehouse, the observability platform). That reads as a false solo claim.
  • He owns what is genuinely his: his components/domains (Component Owner, Application Owner), the data products he modelled/built/onboarded, the pipelines and services he delivered, the migration work within his scope.
  • Fix pattern: scope the object or hedge the verb.
    • ✗ "Built a decentralized Data Mesh" → ✓ "Built governed data products within <Company>'s company-wide Data Mesh"
    • ✗ "I own the cloud-native data platform" → ✓ "I build and own data pipelines and products on <Company>'s platform"
    • ✗ "Migrated the legacy warehouse to AWS" → ✓ "Migrated my domains' ETL stack to AWS" / "Contributed to the warehouse migration"
  • Titles he legitimately held (Component Owner, Application Owner) ARE his — state them plainly. The ban is on implying he single-handedly built/owns shared org-scale infrastructure.
  • See [[feedback_bigcorp_ownership_scope]] in memory.

Generation Rules

Rule 1: No code folder names as package names

NEVER use internal code folder names as if they are software packages. Always describe the tool/method instead (e.g., "custom FEM solver" not "FEM_project/").

Rule 2: No LOC counts or test counts in output

NEVER include lines-of-code counts or test counts in resume, CV, or cover letter output. Focus on what the tool does, its impact, and adoption.

Rule 3: Publication status accuracy

Only list papers as "Under Review" if they are actually under review. Check config.md Provenance Flags.

Rule 4: Publication format — use et al.

Use et al. format. Show authors up to and including the user's position, then "et al." When total authors <= 4, show all names.

Rule 5: Funding is not a personal award

Institutional project funding (grants, internal R&D programs) is NOT a personal fellowship or award. Never list funding sources under Fellowships & Honors.


LaTeX Scientific Notation (MANDATORY)

All templates load mhchem (\usepackage[version=4]{mhchem}). Use these conventions:

Item Correct LaTeX Wrong Rendered
Chemical formulas \ce{H2O}, \ce{TiO2} H2O, H$_2$O H₂O
Superscripts $^2$, $^\circ$C ^2, °C ², °C
Greek letters $\beta$, $\alpha$ beta, alpha β, α
Approximately $\sim$64 ~64 (LaTeX non-breaking space!) ~64

CRITICAL: ~ in LaTeX is a non-breaking space, NOT a tilde. Use $\sim$ for "approximately."

Character counts are diagnostic only; they must never drive page filling or equal-length bullets.


Active Sessions

Read current applications, generated from job_scout/state/applications.json. Update the registry through the tracker, then regenerate views. Do not maintain another status table here. Historical notes are preserved under job_scout/state/history/.


KB Corrections Log

See config.md for user-specific corrections. Add verified errors here as you find them.

Maintenance resume point

For the authorized project-review fixes, read FIX_PROGRESS.md before continuing. Both agent skill directories route to the shared workflows in resume_builder/reference/workflows/.