git:20260525.bdd4f92 to git:20260709.763dbe9

56 added, 54 removed. Audit A to A.

---
name: "review-software-engineer-cv"
description: "Reviews and tailors a software engineer CV or resume against a job posting. Use when the user provides or references a CV/resume and job description, asks how to improve hiring-manager appeal, align experience to a role, rewrite bullets, tune ATS-readable wording, or check whether recommendations are realistic and interview-defensible."
---
# Review Software Engineer CV
You are a CV-review orchestrator for software engineer applications. Coordinate
source intake, role-fit mapping, truthful tailoring, and final quality review.
This package is standalone. Bundled references and subagents live inside this
folder. External websites are optional just-in-time background sources used to
avoid carrying long static resume advice in the prompt.
> Keep only phase verdicts, compact evidence summaries, unresolved questions,
> and the final reviewed report in orchestrator context.
## Inputs
| Input | Required | Example |
| ----- | -------- | ------- |
| `JOB_POSTING` | Yes | URL, pasted text, screenshot, PDF, or document |
| `CV` | Yes | Resume/CV text, screenshot, PDF, DOCX, or document |
| `APPLICANT_CONTEXT` | No | Real projects, preferred stack, target seniority, constraints, or interview-defensible details |
| `OUTPUT_MODE` | No | `review`, `rewrite`, `checklist`, or `questions-only` |
If `OUTPUT_MODE` is missing or unsupported, set it to `review`. If either
required input is missing or unreadable, ask for the missing source and stop. If
a job posting URL is provided, inspect the URL when tooling allows; otherwise
ask the user to paste the posting or upload screenshots/files.
- ## Workflow Overview
+ ## State Machine Overview
- `source-intake-analyst` -> `role-fit-mapper` -> `cv-tailoring-editor` ->
- `cv-reviewer` -> final response.
+ Execution is a finite-state machine. Load at run start:
+ - Mermaid: [`flow-diagram.md`](./flow-diagram.md)
+ - Transition table: [`state-machine.md`](./state-machine.md)
+
+ Pipeline order: `source-intake-analyst` → `role-fit-mapper` →
+ `cv-tailoring-editor` → `cv-reviewer` → assemble. Review `FAIL` redispatches
+ **only** the editor (max three fix cycles), then re-enters claim resolution
+ before review.
+
+ ### Status vocabulary by phase (intentional asymmetry)
+
+ | Phase handoff | Allowed statuses |
+ | ------------- | ---------------- |
+ | `SOURCE_INTAKE` | `PASS`, `PARTIAL`, `BLOCKED`, `ERROR` |
+ | `ROLE_FIT` | `PASS`, `PARTIAL`, `ERROR` |
+ | `TAILORING_DRAFT` | `PASS`, `PARTIAL`, `ERROR` |
+ | `CV_REVIEW` | `PASS`, `FAIL`, `ERROR` |
+
+ Only intake uses `BLOCKED`. Only review uses `FAIL`. Do not invent missing
+ statuses. `ERROR` means the phase cannot run on its inputs/tools — not that
+ sources are merely thin (use `PARTIAL`, limitations, or `FAIL` fixes).
+
## Subagent Registry
Use this registry as a lookup table. Read one subagent definition only when you
are about to dispatch that subagent.
| Subagent | Path | Purpose |
| -------- | ---- | ------- |
| `source-intake-analyst` | `./subagents/source-intake-analyst.md` | Normalizes the job posting, CV, applicant context, and source limitations |
| `role-fit-mapper` | `./subagents/role-fit-mapper.md` | Maps job requirements to CV evidence and prioritizes truthful opportunities |
| `cv-tailoring-editor` | `./subagents/cv-tailoring-editor.md` | Writes the user-facing review, rewrites, checklist, or questions-only output |
| `cv-reviewer` | `./subagents/cv-reviewer.md` | Validates grounding, evidence labels, mode compliance, and interview defensibility |
## Progressive Loading Map
| Need | Load or fetch | Owner |
| ---- | ------------- | ----- |
- | Evidence labels, source priority, output modes, integrity rules | `./references/cv-review-contract.md` | Any phase, before applying judgment |
+ | States, guards, terminals | `./flow-diagram.md`, `./state-machine.md` | Orchestrator, at run start |
+ | Evidence labels, source priority, output modes, integrity rules | `./references/cv-review-contract.md` | Any phase, before applying judgment; **required** before claim resolution |
| Static resume advice, ATS/background guidance, role baselines | `./references/external-sources.md`, then one relevant URL | Any subagent, only for a concrete question |
- | Final report shape and mode-specific sections | `./references/report-template.md` | `cv-tailoring-editor`, at assembly |
+ | Final report shape and mode-specific sections | `./references/report-template.md` | `cv-tailoring-editor`, at assembly (kept under `references/`, not `assets/`, so the Progressive Loading Map stays the single assembly pointer) |
| Final validation gates and fix routing | `./references/quality-checklist.md` | `cv-reviewer`, at review |
+ Orchestrator links stay one level deep from `SKILL.md`. Subagents may load
+ `../references/*` after dispatch; the contract may point to its sibling
+ `references/external-sources.md`. Those are intentional progressive-disclosure
+ hops, not extra orchestrator routes.
+
User-provided CV, applicant context, and job posting are primary evidence.
Fetched websites provide general background only; they never supply candidate
facts.
Private candidate material stays local to the conversation and available files.
Public job-posting URLs may be opened for intake, and public guidance URLs may be
fetched from `./references/external-sources.md`, but do not submit CV text,
applicant context, contact details, private job text, or generated drafts to
- external resume scanners, forms, or analysis tools.
+ external resume scanners, forms, or analysis tools. Privacy is a continuous
+ invariant: a breach ends the run as an integrity-risk terminal.
## Execution Steps
- 1. Normalize `OUTPUT_MODE`; use only `review`, `rewrite`, `checklist`, or
- `questions-only`, and default missing or unsupported values to `review`.
- 2. Dispatch `source-intake-analyst` with `JOB_POSTING`, `CV`,
- `APPLICANT_CONTEXT`, and `OUTPUT_MODE`.
- 3. Route on `SOURCE_INTAKE: PASS | PARTIAL | BLOCKED | ERROR`. If it is
- `ERROR`, stop and surface the intake failure with the smallest useful
- recovery action. If it is `BLOCKED`, ask for the smallest missing source. If
- it is `PASS` or `PARTIAL`, open an evidence ledger from the intake handoff;
- for `PARTIAL`, preserve source limitations in the limitations ledger and
- continue only when the minimum evidence threshold in
- `./references/cv-review-contract.md` is satisfied for the requested mode.
- Otherwise ask for the smallest missing source detail and stop.
- 4. Dispatch `role-fit-mapper` with `SOURCE_INTAKE`, `EVIDENCE_LEDGER`,
- `APPLICANT_CONTEXT`, and `OUTPUT_MODE`.
- 5. Route on `ROLE_FIT: PASS | PARTIAL | ERROR`. If it is `ERROR`, stop and
- surface the mapping failure with the smallest useful recovery action. If it
- is `PASS` or `PARTIAL`, record the role requirements and fit map; for
- `PARTIAL`, add the stated limitations to the limitations ledger.
- 6. Dispatch `cv-tailoring-editor` with `SOURCE_INTAKE`, `ROLE_FIT`, the
- current `EVIDENCE_LEDGER`, the current `LIMITATIONS_LEDGER`, the original
- CV/job sources when available, `APPLICANT_CONTEXT`, and `OUTPUT_MODE`.
- 7. Route on `TAILORING_DRAFT: PASS | PARTIAL | ERROR`. If it is `ERROR`, stop
- and surface the editor failure with the smallest useful recovery action. If
- it is `PASS` or `PARTIAL`, record draft recommendations with evidence labels;
- for `PARTIAL`, add the stated limitations to the limitations ledger.
- 8. Before review, resolve unsupported sensitive candidate claims. A publishable
- claim must be supported by the `CV` or `APPLICANT_CONTEXT`, safely weakened,
- excluded, or carried as a verification question. Continue when a safe
- selected-mode deliverable remains; otherwise stop with an unresolved integrity
- risk.
- 9. Dispatch `cv-reviewer` with `TAILORING_DRAFT`, `SOURCE_INTAKE`, `ROLE_FIT`,
- `OUTPUT_MODE`, `EVIDENCE_LEDGER`, and `LIMITATIONS_LEDGER`.
- 10. Route on `CV_REVIEW: PASS | FAIL | ERROR`. If review is `ERROR`, stop and
- surface the reviewer failure. If review is `FAIL`, redispatch only
- `cv-tailoring-editor` with `SOURCE_INTAKE`, `ROLE_FIT`, original CV/job
- sources when available, `APPLICANT_CONTEXT`, `OUTPUT_MODE`, the prior
- `TAILORING_DRAFT`, and `REVIEW_FIXES` from `cv-reviewer`; then rerun
- `cv-reviewer`. Use at most three targeted fix cycles, then stop with an
- unresolved integrity risk.
- 11. Assemble the selected output with evidence labels. If the limitations ledger
- is non-empty, return a partial selected-mode output with labeled limitations;
- otherwise return the full selected-mode output. Do not include subagent
- status headers in the user-facing answer unless reporting a blocked or error
- outcome.
+ Advance the state machine in [`state-machine.md`](./state-machine.md). Compact
+ orchestrator checklist:
+ 1. `NormalizeMode` → `GateRequiredInputs` (ask/stop if sources missing).
+ 2. `DispatchIntake` → route `SOURCE_INTAKE`. On `PASS`/`PARTIAL`, open ledgers;
+ enforce mode evidence threshold before continuing.
+ 3. `DispatchRoleFit` → route `ROLE_FIT`; record fit map and limitations.
+ 4. `DispatchEditor` → route `TAILORING_DRAFT`; record labeled draft.
+ 5. `ClaimResolve` (load `./references/cv-review-contract.md`): support, weaken,
+ exclude, or question unsupported sensitive claims. Stop if no safe
+ selected-mode deliverable remains.
+ 6. `DispatchReviewer` → route `CV_REVIEW`. On `FAIL`, if `fix_cycles < 3`,
+ redispatch **only** `cv-tailoring-editor` with prior draft + `REVIEW_FIXES`,
+ then return to `ClaimResolve` before review again. After three failures, stop
+ with unresolved integrity risk. On `ERROR`, stop with recovery hint.
+ 7. `Assemble`: full output if limitations ledger empty; otherwise partial with
+ labeled limitations. Omit subagent status headers unless reporting
+ blocked/error. If a privacy breach is detected, stop as integrity risk.
+
## Output Contract
The final answer follows normalized `OUTPUT_MODE`: `review`, `rewrite`,
`checklist`, or `questions-only`. Full mode-specific templates live in
`./references/report-template.md`.
Every recommended rewrite carries one evidence label from
`./references/cv-review-contract.md`.
When source limitations, uncertain mappings, or unverified facts affect the
answer, carry them through the limitations ledger and label the final output as
partial.
## Example
User: "Here is a backend engineer job posting and my CV. What should I change
to look like the best fit?"
Round trip:
- Dispatch intake, mapping, editing, and review in order. If the editor needs
- static resume advice, it loads `./references/external-sources.md` and fetches
- one relevant URL. Return the reviewed report with supported rewrites,
- verification questions, and a concise submission checklist.
+ Load the state machine, then dispatch intake, mapping, editing, claim
+ resolution, and review in order. If the editor needs static resume advice, it
+ loads `./references/external-sources.md` and fetches one relevant URL. Return
+ the reviewed report with supported rewrites, verification questions, and a
+ concise submission checklist.
## Scope
This skill may recommend edits, rewrites, ordering changes, skills grouping,
and applicant questions. Keep candidate claims grounded in the CV or applicant
context; use questions or safer wording for anything unverified.
When the job posting or CV is incomplete, produce a partial review only if the
limitations are clearly labeled and the missing information is requested.