--- name: skill-debrief description: > Debrief an AI agent skill (SKILL.md) after using it — capture session feedback or a retrospective and fold it back into the skill. Use whenever the user says: "debrief the X skill", "let's debrief X", "retrospective on X", "feedback on X skill", "improve the X skill", "update the X skill", "let's revise X based on what we just did", "the X skill should also handle Y", "X didn't trigger when it should have", or otherwise wants to capture lessons from a session back into the skill that drove it. Handles in-repo skills (under skills/) by editing the source, committing, and re-installing via `agr upgrade`. Handles remote/upstream skills by offering to fork them in-repo or to file a GitHub issue via `gh`. Do NOT use for greenfield skill authoring (a separate concern — see `anthropics/skills/skill-creator`) or for installing / syncing / removing skills (use the `agr` CLI directly). --- # Skill Debrief Capture lessons from a session into the skill that drove it. The default shape is **listen → propose → align → apply → re-install**. ## When to use Trigger when the user wants to debrief an existing SKILL.md based on what happened in the session. Examples: - "debrief the X skill" / "let's debrief X" - "retrospective on X" / "feedback on X" - "improve the X skill" / "let's update X based on what we learned" - "X skill should also handle …" - "X didn't trigger when it should have" Do NOT use this skill for: - **Greenfield skill authoring.** Use `agr init` to scaffold a SKILL.md and defer the body content to the user — or to a dedicated authoring skill such as `anthropics/skills/skill-creator` (`agr add anthropics/skills/skill-creator`). - **Installing / syncing / removing skills.** That's plain `agr` CLI work (`agr add`, `agr sync`, `agr upgrade`, `agr remove`). ## Step 1: Identify the skill Ask which skill is being improved if it isn't obvious from context. Then locate the source: ```bash agr list # see installed deps and short names ls skills/ # in-repo source if present cat agr.toml # see whether the dep is local-path or remote ``` Two cases — they have different update paths: | Case | Source location | Update path | |---|---|---| | **In-repo** (`{path = "./skills/", type = "skill"}` in `agr.toml`) | `skills//` | Edit source → commit → `agr upgrade ` | | **Remote** (`{handle = "user/repo/", …}`) | Upstream GitHub repo | Cannot edit directly — see Step 5 | If the skill isn't installed at all but the user wants to improve it, ask whether to add it first (and which case applies). ## Step 2: Receive feedback **Listen.** The user invoked this skill because they have something to say — let them say it. Do not interrogate. Do not run a checklist of questions at them. Take in whatever they offer, in whatever shape they offer it. Only ask a clarifying question if you genuinely cannot proceed without one (e.g. the user named a skill that doesn't exist, or two skills share the name and you need to disambiguate). Even then, ask the minimum. Be **dynamic**. The user may surface things in any shape — a single sentence ("the description should also fire on X"), a structured list, or a ramble that you need to distill. They may also surface things outside the standard buckets below (rename a section, restructure `references/`, change output format, drop a deprecated workflow, fix a typo). Apply whatever the user actually says. The buckets below are a mental map for *you* when distilling what you heard, not a checklist to recite at the user: - **`description` / triggers** — under-fired or over-fired - **Gotchas / boundaries** — a foot-gun the skill didn't warn about - **Workflow steps** — missing, wrong, or out of order - **References** — a topic kept needing more depth → new `references/.md` - **Examples / output format** — vague where it should be concrete - **Pruning** — outdated content that misled ## Step 3: Propose changes Summarize what you heard, then propose specific edits. Format: > **Proposed changes to `skills//SKILL.md`** (and any references): > > 1. **Description** — add trigger phrase "…" (because: …) > 2. **Boundaries** — add: never X (because: discovered this in session) > 3. **New section "Y"** — describes the workflow that was missing > > Want me to apply these, revise, or add more? For small edits, show the exact diff inline. For larger changes, summarize first and apply section by section. **Wait for explicit user approval before editing.** "yes" / "go ahead" / similar. If the user revises, loop back to Step 2 or 3. ## Step 4: Apply (in-repo case) Edit the source file(s) under `skills//`. Then: ```bash git status # confirm only the intended files changed git add skills// git commit -m "skill(): " agr upgrade # re-installs into all configured tools, refreshes agr.lock git add agr.lock git commit --amend --no-edit # or commit separately; match the repo's style ``` **Do not push.** Stop after the commit and let the user push when ready. ### Commit message style Use a conventional-commits-style scope: ``` skill(): ``` Examples: ``` skill(agr-cli): clarify upgrade vs sync for local paths skill(agr-cli): add gotcha for same-repo siblings skill(code-review): drop outdated linter pre-check ``` If the repo's commit style differs (check `git log --oneline -20`), match it. ### Why `agr upgrade` and not `agr sync`? `agr sync` only installs **missing** deps — it does NOT re-copy a local-path skill that's already installed. `agr upgrade ` re-copies it and refreshes `agr.lock`. Use `agr upgrade`. (Equivalent: `agr add ./skills/ --overwrite`. Pick `upgrade` for consistency — it's the same verb used to refresh remote skills.) ## Step 5: Apply (remote case) If the skill is a remote dep, the change cannot be applied directly. Ask the user which path they want: ### Option A — File an issue upstream via `gh` Best when the change benefits everyone (a real bug or universal improvement in someone else's published skill). Resolve the upstream repo from the handle: - `anthropics/skills/pdf` → `--repo anthropics/skills` - `user/myrepo/skill` → `--repo user/myrepo` Confirm the title and body with the user, then: ```bash gh issue create \ --repo / \ --title "[] " \ --body "$(cat <<'EOF' ## What I observed ## Suggested change ## Why EOF )" ``` `gh issue create` posts publicly — treat it the same as any other shared- state action. **Always confirm before running.** If the user has push access and a local clone, also offer to open a PR instead of (or alongside) the issue. ### Option B — Fork to in-repo Best when the change is project-specific or unlikely to be accepted upstream. Copies the skill into `skills//` so future retros work the in-repo way. Suggested flow: ```bash # 1. Find the upstream commit (agr.lock has it) agr list # 2. Sparse-checkout or full clone, then copy the folder: mkdir -p skills cp -r /tmp/upstream-clone/ skills/ # 3. Swap the dep agr remove anthropics/skills/ agr add ./skills/ ``` Tell the user this **forks** the skill — they're now responsible for keeping it current with upstream. Then continue from Step 3 with the in-repo flow. ### Both A and B Offer Option A first when the change is generally useful. Offer Option B when upstream is unlikely to accept, or when the user wants the change *now* without waiting on upstream. ## Step 6: Verify After re-installing (in-repo case): ```bash agr list # status should be `installed` diff skills//SKILL.md .claude/skills//SKILL.md # should be empty ``` For remote case (issue filed): confirm the issue URL with the user. Tell the user what's done and what's pending (commit done, push pending; or issue filed, awaiting response). ## Boundaries - **Don't edit a skill without explicit user approval of the proposed changes.** Skills are user-owned content — never silently revise. - **Don't push.** Commit only; the user pushes when ready. - **Don't open issues or PRs without confirming the title and body** with the user first. `gh issue create` is publicly visible — treat it as shared-state. - **Don't edit `agr.lock` by hand** — `agr upgrade` regenerates it. - **Don't broaden the scope of the edit** beyond what was discussed. If the user asked to fix one gotcha, don't also restructure the file. - **Don't write a skill from scratch** — that's a separate workflow. ## See also - `anthropics/skills/skill-creator` — canonical greenfield skill authoring (install with `agr add anthropics/skills/skill-creator` if needed)