Resume Report(优化复盘 · 环节三)
Overview
The closing stage of the three-stage resume pipeline (diagnosis → optimization →
report). The deliverable is a standalone before/after comparison report page
(report.html) showing six-dimension score changes, key edits, and objective signals
measured by the script.
Artifact Handoff
Reads the outputs of stages one and two. Lookup order: user-named path →
./resume-output/ → ask the user.
resume.html(the optimized resume) — required. If missing, ask the user for
the optimized resume path, or suggest running stage one/two first.before.<ext>— the original resume (may be absent for a brand-new resume).diagnosis.json— the committed score baseline from stage one (may be absent).
before-score baseline (in priority order):
- If
diagnosis.jsonis present → copy each dimension'sbeforefrom itsscore,
and pass--diagnosis diagnosis.jsontorenderso the script enforces equality. - If
diagnosis.jsonis absent butbefore.*exists → judge thebeforescores
honestly against the rubric and tell the user this is a degraded baseline. - If no
before.*exists → set"mode": "after_only"and omit everybeforefield;
do not pass--diagnosis.
Quick Routing
- User wants only diagnosis → use
resume-diagnosis. - No optimized resume yet → use
resume-optimizationfirst. - If the target role is missing and cannot be inferred, ask one concise question.
Runtime Compatibility
- Use only relative paths from this skill folder when loading references, templates, or scripts.
- Treat
agents/openai.yamlas optional Codex/OpenAI UI metadata; Claude Code can ignore it. - Avoid relying on product-specific tools unless the user explicitly asks for that runtime's integration.
- Prefer shell commands that work in both Claude Code and Codex:
python3, local scripts, and local file paths.
Required Workflow
- Locate the three inputs above and decide the
before-baseline path. - Read
references/hr-scorecard.mdandreferences/report-guide.md. - Run
python3 scripts/score_resume.py measure resume.html --before before.<ext>to read objective signals. When a target role is known, add--keywords "<逗号分隔关键词>"— reuse the keyword list the diagnosis stage measured with (including any|-joined variants, so the before/after comparison stays on the same keyword list), or re-extract it from the JD / role playbook when no diagnosis exists. - Judge the six
afterscores; setbeforescores per the baseline path above. - Write
./resume-output/report.json(schema inreferences/report-guide.md). - Render:
python3 scripts/score_resume.py render report.json --after resume.html --before before.<ext> -o report.html(add--diagnosis diagnosis.jsonwhen present, plus the same--keywordsas step 3 so the signal table shows keyword coverage before/after). - Deliver: the report path and the overall score change (e.g. 2.6 → 4.3). State the before scores honestly and confirm they match the diagnosis page when a baseline was pinned.
Fairness Rules
- The
beforescore must reflect the original resume honestly; do not deflate it to exaggerate the gain. - Target Fit and Keyword Fit are holistic judgments; anchor them to the target role, not raw counts.
- If a dimension did not change, keep
beforeandafterequal. - Every displayed number is script-computed; never hand-write signal counts or overall scores.
Output Shape
- Single artifact:
report.html(+ optional PDF viaexport_resume_pdf.py). - The overall score change and a short note per improved dimension.
- The report path.
- A closing set of options (see below) — there is no next stage.
Closing
This stage ends the pipeline. Proactively offer next steps: a variant resume for
another target role (→ resume-optimization), exporting the report to PDF, or
iterating after gathering the facts listed in the report's gaps.