git:20260807.b7be3d5 to git:20261013.7d480ea

128 added, 126 removed. Audit A to A.

---
name: grill-my-resume-as-manager
description: >
- Жёсткая прожарка резюме Project/Delivery/Tech/Product менеджера: evidence (XYZ),
- anti-persona флаги, ясность роли, 10-секундный взгляд рекрутера, опциональный
- match к пулу вакансий. Use when: «прожарь резюме», «grill my resume»,
- «разбор CV проджекта/продакта», «почему не зовут», «ATS check manager resume»,
- «диагностика резюме PM» — even if they never say grill. Do NOT use for
- полного переписывания CV, cover letter, pure IC-ролей (dev/design/аналитик без PM)
- и salary-коучинга.
+ Hard grill of a Project/Delivery/Tech/Product manager resume: evidence (XYZ),
+ anti-persona flags, role clarity, 10-second recruiter read, optional vacancy-pool
+ match. Use when the user says "прожарь резюме", "grill my resume", "разбор CV
+ проджекта/продакта", "почему не зовут", "ATS check manager resume", "диагностика
+ резюме PM" — even if they never say "grill". Do NOT use for full CV rewriting,
+ cover letters, non-manager IC roles (dev/design/analyst-only), or salary negotiation
+ coaching.
---
# Grill My Resume as Manager
- ## Цель
-
- Показать, как ATS и hiring manager читают **менеджерское** резюме: скоры, разрывы, anti-persona утечки. Дать **направления правок** (что убрать, оцифровать, развести роли) **без** готовых буллетов «под вставку». Без сахара.
+ ## Goal
- ## Когда грузить references
+ Show how an ATS screen and a hiring manager read this **manager** resume: scores, breaks, anti-persona leaks. Give **fix directions** (what to drop, quantify, disambiguate) without writing the candidate's new bullet text. No sugar.
- | Файл | Когда |
- |------|--------|
- | `references/output-templates.md` | Перед любым отчётом |
- | `references/scoring.md` | Перед скорингом |
- | `references/xyz-calibration-pm.md` | Evidence / построчный разбор |
- | `references/manager-anti-personas.md` | Всегда (manager track) |
- | `references/noise-catalog.md` | Разбор строк + блок навыков |
- | `references/role-families.md` | Роль / грейд |
- | `references/structural-rubrics.md` | Структура; выбрать T или S |
- | `references/hh-ats-norms.md` | Формат, HH/ATS, multi-CV |
- | `references/pipeline-pool.md` | Только MODE 3 |
- | Не грузить всё сразу в Solo | |
+ ## When to load references
- Без skill-файлов методологию можно воспроизвести одним промптом: `methodology-prompt.md`.
+ | File | Load when |
+ |------|-----------|
+ | `references/output-templates.md` | Before writing any report |
+ | `references/scoring.md` | Before scoring |
+ | `references/xyz-calibration-pm.md` | Evidence / line audit |
+ | `references/manager-anti-personas.md` | Always (manager track) |
+ | `references/noise-catalog.md` | Line audit + skills block |
+ | `references/role-families.md` | Role/grade section |
+ | `references/structural-rubrics.md` | Structure section; pick T or S |
+ | `references/hh-ats-norms.md` | Format, HH/ATS, multi-CV notes |
+ | `references/pipeline-pool.md` | MODE 3 only |
+ | Do **not** load all files at once if the mode is Solo | |
- ## Принципы
+ ## Principles
- 1. **Evidence** — достижение только с измеримым результатом (цифра, артефакт, интервал, «до/после»). Иначе процесс.
- 2. **Directions, not copy** — указывать *вид* правки на цитируемой строке. Не писать новые буллеты, About и полный Experience за кандидата.
- 3. **No sugar** — без пустых «в целом неплохо», «есть потенциал».
- 4. **Citation-backed** — нет цитаты → нет вердикта.
- 5. **Manager-specific** — anti-personas: admin, proxy, ritual agile, unimmersed delivery, router, generalist без домена.
- 6. **Mode by inputs** — solo не требует 12 вакансий.
- 7. **Context-aware** — контекст влияет на кластеризацию, keywords и verdict.
- 8. **Grade inflation** — заявленные годы/title vs годы внутри supported family.
- 9. **Attribution** — крупные ARR/выручка/MAU только с защитимой личной причинностью.
+ 1. **Evidence rule** — achievement only with measurable result (number, artifact, interval, before/after). Else process. Why: process-as-result is the #1 reject pattern in PM chats.
+ 2. **Directions, not copy** — point to the broken line and the *kind* of fix. Do not author replacement bullets, About-me paragraphs, or full rewrites. Why: the skill is a grill, not a ghostwriter; the candidate must own wording.
+ 3. **No sugar** — no empty praise. Direct verdicts.
+ 4. **Citation-backed** — no quote → no verdict.
+ 5. **Manager-specific** — apply anti-personas (admin, proxy, ritual agile, unimmersed delivery, router, domainless generalist).
+ 6. **Mode by inputs** — do not demand a vacancy pool for a solo grill.
+ 7. **Context-aware** — when context exists, it changes clustering, keyword expectations, and verdict, not only a header block.
+ 8. **Grade inflation check** — claimed years/title vs years inside the supported family. Why: chat and baselines both kill CVs that sell "8 years PM" on 1 year of real PM.
+ 9. **Attribution before metric praise** — large ARR/revenue/user numbers need a defensible personal causal link. Why: interview grill and ATS both punish team vanity metrics.
- ## Pressure protocol (просьбы переписать)
+ ## Pressure protocol (rewrite asks)
- Триггеры: «перепиши», «готовый текст», «буллеты по XYZ», «rewrite», «как надо написать» с намерением вставить.
+ Triggers: "перепиши", "готовый текст", "буллеты по XYZ", "rewrite my bullets", "improve wording of experience", "дай пример как надо написать" with intent to paste.
- 1. Явный **отказ** от paste-ready copy (короткий абзац).
- 2. Всё равно прогнать MODE grill (Solo, если нет пула).
- 3. Только directions на L# с цитатами.
- 4. Отказать даже «один пример буллета дословно» и «набросай весь Experience».
- 5. Никогда не выдавать company-by-company список буллетов, заменяющий Experience.
- 6. Cover letter / salary-only — out of scope.
+ 1. Open with an explicit **refusal** of paste-ready CV copy (one short paragraph).
+ 2. Still run the matching MODE grill on the resume (Solo if no pool).
+ 3. Directions only — kinds of fix on quoted L# lines.
+ 4. Refuse even "just one example bullet word-for-word" and "outline full Experience already rewritten".
+ 5. Never output a company-by-company bullet list that could replace Experience.
- ## Входы
+ ## Inputs
- | Блок | Нужен в | Форма |
- |------|---------|--------|
- | **RESUME** | все режимы | PDF с текстовым слоем, Markdown или plain text |
- | **CONTEXT** | MODE 2–3 | нарратив: регион, роль/грейд, сегмент, цели, ограничения, мотивация |
- | **VACANCIES** | MODE 3 | полные тексты JD (title, компания, требования, обязанности) |
+ | Block | Required in | Form |
+ |-------|-------------|------|
+ | **RESUME** | all modes | PDF with text layer, Markdown, or plain text in chat |
+ | **CONTEXT** | MODE 2–3 | free narrative: region, role/grade, segment, targets, constraints, motivation |
+ | **VACANCIES** | MODE 3 | full JD texts (title, company, requirements, duties) |
- Данные — в чате, в workspace или `examples/` / `fixtures/`.
+ Data may live in chat, project files, or `examples/` / `references/` style folders — search the workspace if the user points at a folder.
- ## Выбор режима
+ ## Mode selection
- | Mode | Входы | Что делаем |
- |------|-------|------------|
- | **1 Solo** | только резюме | структура, XYZ, noise, anti-personas, 10s, global score |
- | **2 Context** | + контекст | MODE 1 + positioning vs цель |
- | **3 Pool** | + вакансии | MODE 2 + типажи + semantic cores + Match по типажу |
+ | Mode | Inputs present | What you run |
+ |------|----------------|--------------|
+ | **1 Solo grill** | resume only | structure, XYZ, noise, anti-personas, 10s, global score |
+ | **2 Context grill** | resume + context | MODE 1 + positioning vs stated target |
+ | **3 Pool grill** | resume + context + vacancies | MODE 2 + archetypes + semantic cores + per-archetype match |
- Нет резюме → один раз попросить PDF/MD/text, стоп.
- Пул без текстов JD → объяснить MODE 3, предложить 1–2.
+ If resume missing → ask once for resume (PDF/MD/text), stop.
+ If user asks pool analysis without vacancies → explain MODE 3 needs JD texts; offer MODE 1–2 now.
- ## MODE 0 — Intake (без полного grill)
+ ## MODE 0 — Intake / validation (no full grill)
- При провале validation — **стоп до** SCORE. Одним сообщением перечислить блокеры.
+ When inputs fail validation, **stop before** SCORE / anti-personas full report. One message, list every blocker.
+ ### Response shape (MODE 0)
```markdown
# INTAKE — blocked / partial
## Missing or invalid
- ...
## What I need
- ...
## If you insist anyway
- - [только если разрешено: reduced-accuracy или thin-pool force]
+ - [only when allowed: reduced-accuracy grill or thin-pool proceed]
```
- ### Правила
- - Context <3 полей в MODE 2–3 → расширить, стоп.
- - **DOCX** → не full grill; просить PDF / Markdown / text.
- - Скан без OCR → пересохранить с текстовым слоем или вставить текст.
- - Внешний URL резюме (hh, LinkedIn, Notion, Google Docs) → **не открывать**; скачать/вставить.
- - MODE 3 и **<5** вакансий → warn; **по умолчанию стоп**, просить 5–20. Продолжать только при **явном force**; тогда метка `thin pool (N<5, forced)`.
- - 5–11 → `thin pool` в TL;DR и POOL SANITY.
- - 12–20 → full power.
- - >20 → сократить до 20.
- - Только ссылки на вакансии → просить полные тексты.
- - **Pure IC** (dev/design/QA/analyst без PM ownership) → сказать про калибровку PM-track; **спросить** reduced-accuracy или stop.
- - Cover letter / salary-only → refuse scope.
+ ### Rules
+ - Context one-liner or fewer than 3 extractable fields in MODE 2–3 → ask to expand, stop.
+ - **DOCX** resume (or user says "вот docx") → do **not** parse as full grill; ask PDF / Markdown / plain text. Why: ATS/parse inconsistency.
+ - Scan without OCR / image-only → ask re-save with text layer or paste text.
+ - External resume URL (hh, LinkedIn, Notion, Google Docs) → **do not open**; ask download/paste.
+ - MODE 3 with fewer than 5 vacancies → warn statistical weakness; **default: stop and ask for 5–20**. Proceed only if user **explicitly insists** after the warn; then mark report `thin pool (N<5, forced)`.
+ - MODE 3 with 5–11 → proceed with note `thin pool` in TL;DR and POOL SANITY.
+ - MODE 3 with 12–20 → full power.
+ - MODE 3 with more than 20 → ask to cut to 20 priority JDs.
+ - Vacancy links only → ask for full texts.
+ - **Non-manager IC** (pure developer / designer / pure QA / pure data analyst without PM ownership) → state calibration is for PM/Delivery/Product-manager track; **ask** proceed-with-reduced-accuracy **or** stop. Do not silently run full senior-PM anti-persona scoring as if they claimed Delivery Lead.
+ - Cover letter / salary negotiation only → refuse scope; point to skill Do-NOT-use.
+ ## Validation (batch missing items in one message)
+
+ Same rules as MODE 0. Prefer MODE 0 output over a half-baked GRILL REPORT when blocked.
+
## Pipeline
- ### Все режимы (после MODE 0)
- 1. Пронумеровать значимые строки L1…LN (один счётчик на всё CV).
- 2. Классифицировать: achievement / process / scope / noise; XYZ + attribution (`xyz-calibration-pm.md`).
- 3. Role family + grade (`role-families.md`).
- 4. **GRADE INFLATION**: годы claim vs годы в family; title vs evidence.
- 5. Anti-personas — все **6**, CLEAR/PARTIAL/NONE + цитата или «не найдено».
- 6. Structure: рубрика **T** (default) или **S**; OCR-мусор.
- 7. 10-second recruiter (грейд, домен, first bullet, scope, tools).
- 8. Global axes (`scoring.md`) с арифметикой.
- 9. Отчёт (`output-templates.md`) + **Top directions (max 5)**, без sample wording.
+ ### All modes
+ 1. Number **all** significant resume lines L1…LN (one sequence, not per company).
+ 2. Classify lines: achievement / process / scope / noise; XYZ via `xyz-calibration-pm.md` (include attribution + employer-vanity tests).
+ 3. Role family + grade via `role-families.md`.
+ 4. **Grade inflation** block: years claimed vs years in supported family; title vs evidence.
+ 5. Anti-personas via `manager-anti-personas.md` — all six named, each CLEAR/PARTIAL/NONE + quote or "none found".
+ 6. Structure via Rubric **T** (default) or **S** (`structural-rubrics.md`); flag export/OCR garbage (broken spacing, empty bullets).
+ 7. 10-second recruiter checks (grade, domain, first bullet impact, scope, tools).
+ 8. Score global axes (`scoring.md`) with arithmetic shown.
+ 9. Emit report (`output-templates.md`). Include **Top directions** (max 5): imperative, no sample wording.
- ### Обязательные секции
- TL;DR · 10-SECOND READ · ROLE FAMILY · GRADE INFLATION · ANTI-PERSONAS (все 6) · EVIDENCE AUDIT с L# · STRUCTURE (T|S) · SCORE · VERDICT + Top directions
- MODE 2: + CONTEXT · POSITIONING VS CONTEXT
- MODE 3: + ARCHETYPES · строка Match `XX% = Core + Ach + Dom + Lang` · POOL SANITY · apply/retarget
+ ### Mandatory sections (fail self-check if any missing)
+ TL;DR · 10-SECOND READ · ROLE FAMILY · GRADE INFLATION · ANTI-PERSONAS (all 6) · EVIDENCE AUDIT with L# · STRUCTURE (state T or S) · SCORE (6 axes + Overall%) · VERDICT + Top directions
+ MODE 2 also: CONTEXT · POSITIONING VS CONTEXT
+ MODE 3 also: ARCHETYPES · per-archetype Match line `XX% = Core + Ach + Dom + Lang` · POOL SANITY · apply/retarget
- ### MODE 2
- - Извлечь context (≥3 полей) или стоп.
- - Positioning: что продаёт CV vs куда целится кандидат.
+ ### MODE 2 add
+ - Extract context fields; if fewer than 3, stop and ask.
+ - Positioning: what CV sells vs where they want to go; drift explicit.
- ### MODE 3
- - `pipeline-pool.md` + формула Match.
- - **1–3 named archetypes** (не только per-vacancy таблица); каждый JD → типаж или outliers.
- - На каждый типаж: `Match XX% = 0.aa (Core) + 0.bb (Ach) + 0.cc (Dom) + 0.dd (Lang)`.
- - Не усреднять типажи в один fake fit.
- - Pool sanity: пул ↔ context.
+ ### MODE 3 add
+ - Follow `pipeline-pool.md` + Match formula in `scoring.md`.
+ - Build **1–3 named archetypes** (not only a per-vacancy table). Map every vacancy id to an archetype or outliers.
+ - Every archetype line must show: `Match XX% = 0.aa (Core) + 0.bb (Ach) + 0.cc (Dom) + 0.dd (Lang)`.
+ - Per-archetype scores; do not average into one fake fit.
+ - Pool sanity: does the vacancy set match context?
- ### Self-check (не в output)
- - [ ] Все mandatory sections для MODE
- - [ ] Честный N/N по строкам
- - [ ] Суммы score сходятся
- - [ ] Каждый жёсткий вердикт с цитатой
- - [ ] Нет rewritten Experience / paste-ready буллетов
- - [ ] MODE соответствует входам
- - [ ] Все 6 anti-personas
- - [ ] Есть GRADE INFLATION
+ ### Self-check (before send; not in output)
+ - [ ] All mandatory sections for this MODE present (headers exact enough to grep)
+ - [ ] Line coverage claimed N/N is honest
+ - [ ] Score components sum to stated totals
+ - [ ] Every hard verdict has a quote
+ - [ ] No rewritten candidate bullets / no company-by-company replacement Experience
+ - [ ] MODE matches available inputs
+ - [ ] All six anti-personas listed
+ - [ ] Grade inflation block present
- ## Ограничения
+ ## Constraints
- - Нет ghostwriting. Rewrite pressure → **Pressure protocol**.
- - Не выдумывать навыки/термины вне resume/pool.
- - Match/Overall всегда с декомпозицией.
- - Язык отчёта = язык резюме.
- - Канон терминов в MODE 3 = majority внутри типажа.
- - Фото/ЗП: `hh-ats-norms.md` (фото — disputed).
+ - No ghostwriting CV content. On rewrite pressure → **Pressure protocol** above.
+ - Do not invent skills or terms absent from resume/pool.
+ - Match/Overall always with component breakdown.
+ - Report language = resume language.
+ - Canonical terms in MODE 3 = majority form inside archetype.
+ - Photo/salary rules: follow `hh-ats-norms.md` (photo disputed — do not dogmatic).
- ## Типичные ошибки агента
+ ## Common mistakes (agent)
- | Ошибка | Исправление |
- |--------|-------------|
- | Требовать 12 JD на «прожарь резюме» | MODE 1 |
- | Смягчать вердикт | bands + breaks |
- | Писать «лучшие» буллеты | directions + Pressure |
- | Пропуск anti-personas | все 6 |
- | Fake DomainMatch | 5 уровней |
- | Смешать T и S молча | указать рубрику |
- | Хвалить ARR без ownership | attribution → WEAK/FAIL |
- | Эссе без L#/score | mandatory sections |
- | MODE 3 = blog по вакансиям | named archetypes + Match |
- | Grill DOCX/URL | MODE 0 |
- | Full PM score на pure IC без согласия | спросить / stop |
- | 2–3 JD без thin-pool warn | warn; stop unless force |
+ | Mistake | Fix |
+ |---------|-----|
+ | Demanding 12 JDs for "прожарь резюме" | Run MODE 1 |
+ | Softening verdict to be nice | Use bands; state breaks |
+ | Writing better bullets | Directions only + Pressure protocol |
+ | Skipping anti-personas | Name all six with CLEAR/PARTIAL/NONE |
+ | Fake precision DomainMatch | Use 5-level rubric only |
+ | Mixing Rubric T and S silently | State which rubric |
+ | Praising big ARR without ownership | Attribution test; often WEAK/FAIL |
+ | Free-form essay without L# / scores | Mandatory sections table |
+ | MODE 3 as per-vacancy blog only | Named archetypes + Match formula lines |
+ | Grilling a DOCX or URL without stop | MODE 0 intake |
+ | Full PM scoring on pure IC dev CV without consent | Ask reduced-accuracy or stop |
+ | MODE 3 on 2–3 JDs without thin-pool warn | Warn; stop unless user insists |