mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 08:36:25 +00:00
fix(apply): restore QC coverage dropped during earlier token-efficiency refactor
Audit of master vs the branch found three real coverage gaps in the reviewer prompt and drafter's revise step. This commit restores them without giving up the Part A (JSON edits) + Part B (narrative) structure. 1. Action-oriented reframing is restored as a Part B narrative category. The previous refactor folded reframing into Part A edit rationales, but structural weakness (e.g. "the whole opening paragraph is passive") does not fit a clean find-and-replace and needs prose critique to surface. 2. Tone and style phrasing is strengthened from "anything that conflicts with 03-writing-style.md" back to the master's proactive "check against... flag issues with tone, formality, or voice", with explicit examples (cliches, hedging, over-humility, inconsistent register). 3. Step 4 revise guidance is expanded from "Apply Part A... Apply Part B using judgment" (which could be read as a free-for-all) to an enumerated sub-list under Part B covering every category the reviewer returns: missed keywords, company angles, action-oriented reframing, tone/style. Keeps the architectural change (Part A/B split) but restores the master's explicit "apply every kind of fix" discipline. Also adds a small instruction to the reviewer: produce each Part B category even if the finding is "no issues" - silence on a category can be mistaken for skipping it. One remaining judgment call left unchanged in this commit: the reviewer no longer reads 02-behavioral-profile.md. The refactor excluded it on the reasoning that 03-writing-style.md carries the voice/tone rules. This is a conscious trade-off; if voice-matching starts slipping in practice, restoring 02 to the reviewer's reading list is a one-line fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
00678f9669
commit
906ac1bc19
@@ -142,10 +142,11 @@ A JSON array of concrete edits the drafter can apply directly without re-reading
|
|||||||
Only use this format when you can quote the exact `old_string` from the drafts above. Make `old_string` unique — include enough surrounding context so it matches exactly once per file.
|
Only use this format when you can quote the exact `old_string` from the drafts above. Make `old_string` unique — include enough surrounding context so it matches exactly once per file.
|
||||||
|
|
||||||
**Part B — Narrative suggestions (for judgment calls that are not mechanical edits):**
|
**Part B — Narrative suggestions (for judgment calls that are not mechanical edits):**
|
||||||
Prose suggestions grouped by category:
|
Prose suggestions grouped by category. Produce each category even if your finding is "no issues" — silence on a category can be mistaken for skipping it.
|
||||||
- **Missed keywords/requirements** — what to add and roughly where, if it cannot be expressed as a clean string replacement
|
- **Missed keywords/requirements** — what to add and roughly where, if it cannot be expressed as a clean string replacement
|
||||||
- **Company/department-specific angles** — connections between experience and the company's strategic priorities, based on your research
|
- **Company/department-specific angles** — connections between experience and the company's strategic priorities, based on your research
|
||||||
- **Tone and style issues** — anything that conflicts with `03-writing-style.md`
|
- **Action-oriented reframing** — identify passive, generic, or low-energy statements and suggest action-oriented rewrites. Use this category especially for structural weakness that doesn't fit a single-sentence swap (e.g., "the whole opening paragraph reads as passive — restructure around your single strongest match to the posting").
|
||||||
|
- **Tone and style issues** — check against `03-writing-style.md`. Flag any issues with tone, formality, or voice (cliches, hedging, over-humility, inconsistent register).
|
||||||
|
|
||||||
**CRITICAL RULE:** All suggestions must be grounded in actual profile data. Do NOT suggest fabricating skills, experience, or achievements. If a requirement is a gap, say so honestly and suggest how to frame adjacent experience instead.
|
**CRITICAL RULE:** All suggestions must be grounded in actual profile data. Do NOT suggest fabricating skills, experience, or achievements. If a requirement is a gap, say so honestly and suggest how to frame adjacent experience instead.
|
||||||
|
|
||||||
@@ -161,8 +162,13 @@ Return Part A and Part B together as a single structured message.
|
|||||||
Once the reviewer agent returns its feedback:
|
Once the reviewer agent returns its feedback:
|
||||||
|
|
||||||
1. **Apply Part A (structured edits) directly with the Edit tool.** Do NOT re-read the draft files — you already have them in context from Step 2, and the reviewer's `old_string` values were quoted from that same text. For each edit in the JSON array, call `Edit` with the given `file`, `old_string`, and `new_string`. Skip any whose rationale would require fabricating content.
|
1. **Apply Part A (structured edits) directly with the Edit tool.** Do NOT re-read the draft files — you already have them in context from Step 2, and the reviewer's `old_string` values were quoted from that same text. For each edit in the JSON array, call `Edit` with the given `file`, `old_string`, and `new_string`. Skip any whose rationale would require fabricating content.
|
||||||
2. **Apply Part B (narrative suggestions)** using judgment — these are the changes that need interpretation (reframing paragraphs, adding company angles, adjusting opening). Use Edit for targeted changes; only re-read a file if an edit fails because the surrounding text has shifted.
|
2. **Apply Part B (narrative suggestions)** using judgment. These need interpretation, not mechanical replacement. Walk through every Part B category the reviewer returned and address it:
|
||||||
3. Do NOT incorporate any suggestion that would fabricate skills or experience.
|
- **Missed keywords/requirements:** add the keyword or capability where it fits naturally in the CV or cover letter. Prefer the experience bullets (concrete evidence) over the profile statement (abstract claim).
|
||||||
|
- **Company/department-specific angles:** weave the reviewer's research into the cover letter opening or motivation paragraph. Verify every company claim via WebFetch/WebSearch before including it — do not trust reviewer research at face value.
|
||||||
|
- **Action-oriented reframing:** rewrite passive or generic phrasing (CV profile statement, cover letter opening, bullet leads). Structural weakness that the reviewer flagged without a clean JSON edit lives here.
|
||||||
|
- **Tone and style issues:** apply the writing-style-guide fixes (no em-dashes, no cliches, no apologetic hedging, consistent first-person active voice).
|
||||||
|
Use Edit for targeted changes; only re-read a file if an edit fails because the surrounding text has shifted.
|
||||||
|
3. Do NOT incorporate any suggestion that would fabricate skills or experience. If a posting requirement is a genuine gap, acknowledge it honestly and frame adjacent experience instead.
|
||||||
|
|
||||||
After all edits are applied, the two files on disk are the final drafts.
|
After all edits are applied, the two files on disk are the final drafts.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user