{"id":"65280aad-d056-4e51-b50c-b0d1018bcb3c","shortId":"5U4sA8","kind":"skill","title":"debrief","tagline":"This skill should be used when the user asks to \"debrief\", \"debrief this task\", \"debrief the session\", \"save findings\", \"save analysis\", \"save this as a report\", \"create an HTML report from the transcript\", or wants to persist the current task's findings as a self-contained inter","description":"# Debrief\n\nPersist the current task's findings as a self-contained, interactive HTML debrief at `./.ai/reports/<slug>/index.html`. Pick a slug from the user's task, build the page using the [`playground`](https://github.com/anthropics/skills/tree/main/playground) skill's conventions, and pre-populate it with concrete findings drawn from the transcript. Pass `--md` to emit a plain Markdown report at `./.ai/reports/<slug>/index.md` instead; Markdown mode does not require the `playground` skill.\n\n## Arguments\n\n- `<slug>` (optional): kebab-case folder name, e.g. `auth-security-review`. If omitted, derive a topical slug from the task — short (3-5 words), lowercase, dash-separated.\n- `--md` (optional): emit a Markdown report at `<reports_dir>/index.md` instead of HTML. Disables the `playground` dependency.\n\n## Prerequisites\n\nThe [`playground`](https://github.com/anthropics/skills/tree/main/playground) skill is required only for HTML mode (the default). With `--md`, this skill has no external dependencies. `scripts/prepare.sh` probes for `playground` only when building HTML; if missing it prints the install command and exits non-zero. Manual install:\n\n```sh\nnpx skills add anthropics/skills --skill playground --global\n```\n\n## Workflow\n\n### 1. Resolve slug\n\n- Use `$ARGUMENTS` if provided.\n- Otherwise pick a topical kebab-case slug from the task: `auth-security-review`, `bundle-size-analysis`, `tailwind-v4-migration`, `lcp-regression-q1`. Avoid generic names (`report`, `findings`, `debrief`, `output`).\n- Reject slugs that don't match `^[a-z0-9]([a-z0-9-]*[a-z0-9])?$` — the helper script enforces this.\n\n### 2. Prepare and verify dependencies\n\nRun from the skill directory:\n\n```bash\nbash scripts/prepare.sh [--md] <slug>\n```\n\nThe script:\n\n- Validates the slug.\n- In HTML mode (default), probes `.agents/skills/playground`, `.claude/skills/playground`, `~/.agents/skills/playground`, `~/.claude/skills/playground`. In `--md` mode the probe is skipped entirely.\n- Exits `2` with the install command if `playground` is missing in HTML mode — relay the message verbatim and stop.\n- Creates `./.ai/reports/<slug>/`.\n- Prints five `KEY=VALUE` lines on stdout: `MODE`, `PLAYGROUND_DIR`, `REPORTS_DIR`, `REPORT_PATH`, `EXISTS`. `PLAYGROUND_DIR` is empty when `MODE=md`; `REPORT_PATH` ends in `index.md` instead of `index.html`.\n\nIf `EXISTS=true`, ask the user before continuing: overwrite or pick a new slug.\n\n### 3. Pick a playground template (HTML mode only)\n\nSkip this step when `--md` is set.\n\nRead `$PLAYGROUND_DIR/SKILL.md`, then load **one** template under `$PLAYGROUND_DIR/templates/` whose shape best fits the debrief:\n\n| Debrief shape                   | Template               |\n| ------------------------------- | ---------------------- |\n| Code review / audit findings    | `diff-review.md`       |\n| Document or spec critique       | `document-critique.md` |\n| Architecture / codebase tour    | `code-map.md`          |\n| Learning, scope, knowledge gaps | `concept-map.md`       |\n| Data / query exploration        | `data-explorer.md`     |\n| Visual / design decisions       | `design-playground.md` |\n\nRead only the chosen template — don't load all six. If nothing fits cleanly, pick the closest and adapt; do not invent a new template.\n\n### 4a. Build the debrief — HTML\n\nWrite a single HTML file to `$REPORT_PATH` that satisfies playground core requirements:\n\n- Single file. Inline all CSS and JS. No external dependencies, fonts, or CDNs.\n- Live preview updating on every control change. No \"Apply\" button.\n- Prompt output at the bottom — natural language, mentions only non-default choices, with a \"Copy\" button and brief \"Copied!\" feedback.\n- Sensible defaults plus 3-5 named presets that snap controls to a cohesive combination.\n- Dark theme. System font for UI, monospace for code/values.\n- **Pre-populate with the actual findings from the transcript** — concrete file paths, line numbers, severities, metrics, suggestions, code snippets. Not lorem ipsum. Not placeholders. If the transcript has no findings, ask the user for the source material before writing.\n\nFor larger payloads, embed findings as a JS array literal inside one inline `<script>` at the top of the file.\n\n### 4b. Build the debrief — Markdown (when `--md`)\n\nWrite a single Markdown file to `$REPORT_PATH`. Recommended skeleton:\n\n````md\n# <Slug in Title Case>\n\n<One- or two-sentence summary of what was investigated and the headline takeaway.>\n\n## Findings\n\n### <Finding title> — severity: high|medium|low\n\n- **File:** `path/to/file.ts:42`\n- **Issue:** <one-line description>\n\n```ts\n// minimal snippet showing the issue\n```\n\n**Suggestion:** <concrete fix>.\n\n## Next steps\n\n- [ ] <actionable item>\n````\n\nRules:\n\n- Pre-populate with concrete findings from the transcript — real paths, line numbers, severities, snippets. No placeholders, no lorem ipsum. If the transcript has no findings, ask the user before writing.\n- Keep it terse: one H3 per finding, fenced code only when the exact text matters.\n- No HTML, no embedded scripts, no inline assets. Adjacent files (images, data) may live alongside in `$REPORTS_DIR/` if needed.\n\n### 5. Open\n\nAfter writing `$REPORT_PATH`, open it in the user's default browser. Run this unconditionally — do not skip, prompt, or wait for confirmation:\n\n```bash\nopen \"$REPORT_PATH\"\n```\n\nThen print the absolute `$REPORT_PATH` so the user can locate it.\n\n## Output\n\nA self-contained HTML debrief at `./.ai/reports/<slug>/index.html` that:\n\n- Surfaces concrete findings from the user's task.\n- Lets the user explore, filter, or annotate them interactively.\n- Generates a copyable prompt to act on the selected items.\n\nWith `--md`, the output is instead a plain Markdown report at `./.ai/reports/<slug>/index.md` containing the same findings without the interactive UI.\n\n## Notes\n\n- Write only under `./.ai/reports/<slug>/`. Never write elsewhere.\n- The HTML must be self-contained — no external CSS, JS, fonts, or images.\n- Re-run with a different slug to keep parallel debriefs.\n- Suggest the user add `.ai/reports/` to `.gitignore` if debriefs shouldn't be committed.","tags":["debrief","agent","skills","paulrberg","agent-skills","ai-agents"],"capabilities":["skill","source-paulrberg","skill-debrief","topic-agent-skills","topic-ai-agents"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/PaulRBerg/agent-skills/debrief","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add PaulRBerg/agent-skills","source_repo":"https://github.com/PaulRBerg/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.478","qualityRationale":"deterministic score 0.48 from registry signals: · indexed on github topic:agent-skills · 56 github stars · SKILL.md body (6,097 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:57:36.282Z","embedding":null,"createdAt":"2026-05-09T18:56:41.718Z","updatedAt":"2026-05-18T18:57:36.282Z","lastSeenAt":"2026-05-18T18:57:36.282Z","tsv":"'-5':143,535 '/.agents/skills/playground':308 '/.ai/reports':66,109,338 '/.claude/skills/playground':309 '/anthropics/skills/tree/main/playground)':84,169 '/index.html':67 '/index.md':110,156 '1':218 '2':282,319 '3':142,383,534 '4a':469 '9':268,272,276 'a-z0':265,269,273 'actual':559 'adapt':462 'add':212 'agents/skills/playground':306 'analysi':22,243 'anthropics/skills':213 'appli':508 'architectur':427 'argument':120,222 'array':602 'ask':10,372,585 'audit':419 'auth':129,237 'auth-security-review':128,236 'avoid':252 'bash':292,293 'best':410 'bottom':514 'brief':528 'build':76,193,470 'bundl':241 'bundle-size-analysi':240 'button':509,526 'case':124,231 'cdns':499 'chang':506 'choic':522 'chosen':447 'claude/skills/playground':307 'clean':457 'closest':460 'code':417,572 'code-map.md':430 'code/values':553 'codebas':428 'cohes':543 'combin':544 'command':201,323 'concept-map.md':435 'concret':94,564 'contain':48,61 'continu':376 'control':505,540 'convent':87 'copi':525,529 'core':485 'creat':28,337 'critiqu':425 'css':491 'current':40,53 'dark':545 'dash':147 'dash-separ':146 'data':436 'data-explorer.md':439 'debrief':1,12,13,16,50,64,257,413,414,472 'decis':442 'default':178,304,521,532 'depend':163,186,286,496 'deriv':134 'design':441 'design-playground.md':443 'diff-review.md':421 'dir':348,350,355 'dir/skill.md':400 'dir/templates':407 'directori':291 'disabl':160 'document':422 'document-critique.md':426 'drawn':96 'e.g':127 'emb':597 'emit':103,151 'empti':357 'end':363 'enforc':280 'entir':317 'everi':504 'exist':353,370 'exit':203,318 'explor':438 'extern':185,495 'feedback':530 'file':478,488,565 'find':20,43,56,95,256,420,560,584,598 'fit':411,456 'five':340 'folder':125 'font':497,548 'gap':434 'generic':253 'github.com':83,168 'github.com/anthropics/skills/tree/main/playground)':82,167 'global':216 'helper':278 'html':30,63,159,175,194,302,329,388,473,477 'index.html':368 'index.md':365 'inlin':489,606 'insid':604 'instal':200,208,322 'instead':111,157,366 'inter':49 'interact':62 'invent':465 'ipsum':576 'js':493,601 'kebab':123,230 'kebab-cas':122,229 'key':341 'knowledg':433 'languag':516 'larger':595 'lcp':249 'lcp-regression-q1':248 'learn':431 'line':343,567 'liter':603 'live':500 'load':402,451 'lorem':575 'lowercas':145 'manual':207 'markdown':106,112,153 'match':264 'materi':591 'md':101,149,180,295,311,360,395 'mention':517 'messag':333 'metric':570 'migrat':247 'miss':196,327 'mode':113,176,303,312,330,346,359,389 'monospac':551 'name':126,254,536 'natur':515 'new':381,467 'non':205,520 'non-default':519 'non-zero':204 'noth':455 'npx':210 'number':568 'omit':133 'one':403,605 'option':121,150 'otherwis':225 'output':258,511 'overwrit':377 'page':78 'pass':100 'path':352,362,481,566 'payload':596 'persist':38,51 'pick':68,226,379,384,458 'placehold':578 'plain':105 'playground':81,118,162,166,190,215,325,347,354,386,399,406,484 'plus':533 'popul':91,556 'pre':90,555 'pre-popul':89,554 'prepar':283 'prerequisit':164 'preset':537 'preview':501 'print':198,339 'probe':188,305,314 'prompt':510 'provid':224 'q1':251 'queri':437 'read':398,444 'regress':250 'reject':259 'relay':331 'report':27,31,107,154,255,349,351,361,480 'requir':116,172,486 'resolv':219 'review':131,239,418 'run':287 'satisfi':483 'save':19,21,23 'scope':432 'script':279,297 'scripts/prepare.sh':187,294 'secur':130,238 'self':47,60 'self-contain':46,59 'sensibl':531 'separ':148 'session':18 'set':397 'sever':569 'sh':209 'shape':409,415 'short':141 'singl':476,487 'six':453 'size':242 'skill':3,85,119,170,182,211,214,290 'skill-debrief' 'skip':316,391 'slug':70,137,220,232,260,300,382 'snap':539 'snippet':573 'sourc':590 'source-paulrberg' 'spec':424 'stdout':345 'step':393 'stop':336 'suggest':571 'system':547 'tailwind':245 'tailwind-v4-migration':244 'task':15,41,54,75,140,235 'templat':387,404,416,448,468 'theme':546 'topic':136,228 'topic-agent-skills' 'topic-ai-agents' 'tour':429 'transcript':34,99,563,581 'true':371 'ui':550 'updat':502 'use':6,79,221 'user':9,73,374,587 'v4':246 'valid':298 'valu':342 'verbatim':334 'verifi':285 'visual':440 'want':36 'whose':408 'word':144 'workflow':217 'write':474,593 'z0':267,271,275 'zero':206","prices":[{"id":"4e929396-a2c7-48cb-8f88-b3e9a73f11d2","listingId":"65280aad-d056-4e51-b50c-b0d1018bcb3c","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"PaulRBerg","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-05-09T18:56:41.718Z"}],"sources":[{"listingId":"65280aad-d056-4e51-b50c-b0d1018bcb3c","source":"github","sourceId":"PaulRBerg/agent-skills/debrief","sourceUrl":"https://github.com/PaulRBerg/agent-skills/tree/main/skills/debrief","isPrimary":false,"firstSeenAt":"2026-05-09T18:56:41.718Z","lastSeenAt":"2026-05-18T18:57:36.282Z"}],"details":{"listingId":"65280aad-d056-4e51-b50c-b0d1018bcb3c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"PaulRBerg","slug":"debrief","github":{"repo":"PaulRBerg/agent-skills","stars":56,"topics":["agent-skills","ai-agents"],"license":"mit","html_url":"https://github.com/PaulRBerg/agent-skills","pushed_at":"2026-05-17T10:33:19Z","description":"PRB's collection of agent skills","skill_md_sha":"b2c89b04879eac2e48132de57c162b19f704a7d0","skill_md_path":"skills/debrief/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/PaulRBerg/agent-skills/tree/main/skills/debrief"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"debrief","description":"This skill should be used when the user asks to \"debrief\", \"debrief this task\", \"debrief the session\", \"save findings\", \"save analysis\", \"save this as a report\", \"create an HTML report from the transcript\", or wants to persist the current task's findings as a self-contained interactive HTML playground at `./.ai/reports/<slug>/index.html`. Flag: --md emits a plain Markdown report at `./.ai/reports/<slug>/index.md` and skips the playground dependency."},"skills_sh_url":"https://skills.sh/PaulRBerg/agent-skills/debrief"},"updatedAt":"2026-05-18T18:57:36.282Z"}}