This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-steward.git
The following commit(s) were added to refs/heads/main by this push:
new 86f96d2 docs: prefix framework skill slash-command suggestions with
magpie- (#451)
86f96d2 is described below
commit 86f96d2f3fa3475324a59a7ea2747fe8f4fd17d6
Author: Jarek Potiuk <[email protected]>
AuthorDate: Fri Jun 5 05:32:54 2026 +0200
docs: prefix framework skill slash-command suggestions with magpie- (#451)
Every framework skill is installed under the `magpie-` prefix (setup
golden rule 6), so a suggestion like `/security-cve-allocate` is not a
command an adopter can actually type — the invocable form is
`/magpie-security-cve-allocate`. Rewrite all slash-command suggestions
for real skills (both backtick-wrapped and bare-prose forms) to the
`magpie-` prefix across skills/, docs/, CONTRIBUTING.md, and tool
READMEs.
Driven by the canonical skill list (skills/* directory names), matched
longest-first with a word-boundary check so prefixes never shadow longer
names. Markdown cross-links ([name](../name/SKILL.md)) and non-skill
paths (/api, /tmp, <project-config>/...) are deliberately untouched.
Out of scope (left as-is): eval golden fixtures under tools/skill-evals/
(test data needing coordinated updates) and the not-yet-implemented
/release-* skills described in docs/release-management/spec.md.
---
CONTRIBUTING.md | 4 +--
docs/mentoring/spec.md | 6 ++--
docs/setup/privacy-llm.md | 6 ++--
docs/setup/secure-agent-setup.md | 10 +++---
projects/_template/mentoring-config.md | 2 +-
skills/issue-reassess-stats/SKILL.md | 2 +-
skills/issue-reassess-stats/aggregate.md | 2 +-
skills/issue-reassess-stats/render.md | 8 ++---
skills/issue-reassess/verdict-aggregation.md | 4 +--
skills/issue-triage/SKILL.md | 6 ++--
skills/pr-management-code-review/SKILL.md | 38 +++++++++++-----------
skills/pr-management-code-review/adversarial.md | 2 +-
skills/pr-management-code-review/prerequisites.md | 2 +-
skills/pr-management-code-review/selectors.md | 2 +-
skills/pr-management-stats/SKILL.md | 2 +-
skills/pr-management-stats/render.md | 26 +++++++--------
.../security-issue-import-via-forwarder/SKILL.md | 2 +-
skills/security-issue-triage/SKILL.md | 36 ++++++++++----------
skills/setup-isolated-setup-verify/SKILL.md | 10 +++---
skills/setup/adopt.md | 6 ++--
skills/setup/upgrade.md | 6 ++--
skills/setup/verify.md | 8 ++---
skills/setup/worktree-init.md | 2 +-
tools/dashboard-generator/README.md | 2 +-
.../evals/security-issue-triage/README.md | 4 +--
25 files changed, 99 insertions(+), 99 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e7bb846..bd654fa 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -739,7 +739,7 @@ feedback is faster. When working on a Python bridge:
**Concrete first moves.** The framework provides agent entry
points for the two most common authoring tasks:
-- **New skill** — invoke [`/write-skill`](skills/write-skill/SKILL.md).
+- **New skill** — invoke [`/magpie-write-skill`](skills/write-skill/SKILL.md).
The meta-skill walks you through the framework's skill shape
(frontmatter, resources, placeholder convention, prompt-injection
defences, privacy-LLM gate-check), scaffolds the directory, and
@@ -913,7 +913,7 @@ Good entry points, in rough order of ramp-up cost:
[`tools/skill-evals/README.md`](tools/skill-evals/README.md)
for the fixture format.
-4. **A new skill via [`/write-skill`](skills/write-skill/SKILL.md).**
+4. **A new skill via [`/magpie-write-skill`](skills/write-skill/SKILL.md).**
The meta-skill walks you through the framework's skill shape
(frontmatter, resources, placeholder convention, prompt-injection
defences, privacy-LLM gate-check) and validates via
diff --git a/docs/mentoring/spec.md b/docs/mentoring/spec.md
index 7c41c2f..f871656 100644
--- a/docs/mentoring/spec.md
+++ b/docs/mentoring/spec.md
@@ -74,7 +74,7 @@ invoked on. The skill is opt-in per invocation. Three trigger
paths:
1. **Maintainer-on-demand**. A maintainer runs
- `/pr-management-mentor <pr-number>` (working name). The skill
+ `/magpie-pr-management-mentor <pr-number>` (working name). The skill
reads the thread, decides whether a mentoring intervention is
warranted, drafts the comment, and waits for the maintainer
to confirm before posting.
@@ -82,7 +82,7 @@ paths:
[`pr-management-triage`](../../skills/pr-management-triage/SKILL.md)
classifies a PR as "first contributor, missing repro" (or
equivalent triage flag), the maintainer can chain
- `/pr-management-mentor` on that PR. The two skills compose;
+ `/magpie-pr-management-mentor` on that PR. The two skills compose;
Mentoring does not run inside Triage by default.
3. **Issue-thread invocation**. Same opt-in, on issues rather
than PRs, for the "missing version / missing repro" case.
@@ -178,7 +178,7 @@ Required keys:
| Key | Purpose |
|---|---|
-| `mentoring_invocation_command` | Slash-command name (e.g.
`/pr-management-mentor`). |
+| `mentoring_invocation_command` | Slash-command name (e.g.
`/magpie-pr-management-mentor`). |
| `maintainer_team_handle` | `@<org>/<team>` mentioned on hand-off. |
| `ai_attribution_footer` | Literal footer markdown. Mirrors the triage-footer
convention. |
| `convention_pointers` | Table of `{trigger phrase} → {docs link, one-line
label}` so the agent links rather than paraphrases. |
diff --git a/docs/setup/privacy-llm.md b/docs/setup/privacy-llm.md
index 3e37199..1abb442 100644
--- a/docs/setup/privacy-llm.md
+++ b/docs/setup/privacy-llm.md
@@ -25,7 +25,7 @@
How to configure the framework's privacy-aware LLM routing for
your adopting project. Pick a variant below; copy the matching
`<project-config>/privacy-llm.md` block into your project; verify
-with `/setup-isolated-setup-verify` (or the privacy-llm-specific
+with `/magpie-setup-isolated-setup-verify` (or the privacy-llm-specific
check once PR-3 lands the gate-call wiring).
The contract behind these recipes lives in
@@ -107,7 +107,7 @@ substitute `<private-list>` for your project's actual list):
adopter repo (alongside `project.md`).
2. Commit it. The file is project-config — it travels with the
repo, not per-machine.
-3. Run `/setup-isolated-setup-verify` to confirm the existing
+3. Run `/magpie-setup-isolated-setup-verify` to confirm the existing
secure-agent setup is in place — no new secure-setup steps
are needed for Variant 1.
@@ -330,7 +330,7 @@ gate as incomplete.
Once `<project-config>/privacy-llm.md` is in place:
-1. Run `/setup-isolated-setup-verify` to confirm the underlying
+1. Run `/magpie-setup-isolated-setup-verify` to confirm the underlying
secure-agent setup is unchanged.
2. (PR-3) Run the privacy-llm-specific check:
diff --git a/docs/setup/secure-agent-setup.md b/docs/setup/secure-agent-setup.md
index a3287b3..e352144 100644
--- a/docs/setup/secure-agent-setup.md
+++ b/docs/setup/secure-agent-setup.md
@@ -110,23 +110,23 @@ privilege-elevating runs without you saying so.
`.apache-magpie/`, the committed `.apache-magpie.lock`, and
the project-config files are wired correctly. Read-only —
surfaces gaps, never auto-fixes.
-3. Run /setup-isolated-setup-install — guided first-time install of
+3. Run /magpie-setup-isolated-setup-install — guided first-time install of
the secure-agent setup (sandbox, hooks, status line,
clean-env wrapper).
-4. Run /setup-isolated-setup-verify — confirms ✓/✗/⚠ for every piece
+4. Run /magpie-setup-isolated-setup-verify — confirms ✓/✗/⚠ for every piece
of the secure-agent setup.
5. When you want to be on the framework's latest, run
`/magpie-setup upgrade` — pulls your local airflow-steward
checkout to origin/main with --ff-only, refuses to touch a
dirty working tree, surfaces what arrived. Then run
- /setup-isolated-setup-update to surface user-side drift the
+ /magpie-setup-isolated-setup-update to surface user-side drift the
upgrade introduced (new permissions.deny entries,
user-scope script copies older than the framework, pinned
tool bumps that warrant a host install).
6. Optional: if you maintain a private dotfile-style sync repo
per
[Syncing user-scope config across
machines](#syncing-user-scope-config-across-machines),
- run /setup-shared-config-sync to push local edits to the remote
+ run /magpie-setup-shared-config-sync to push local edits to the remote
so other machines pick them up.
```
@@ -963,7 +963,7 @@ automatically. Three classes of failure are recognised
today:
| `127.0.0.1 … Permission denied` / `Operation not permitted … bind` / `Errno
49 … assign requested address` / `Connection refused … 127.0.0.1` | [Localhost
port-bind
blocked](sandbox-troubleshooting.md#test-cannot-bind-to-a-localhost-port) |
The hint also tells the user to run
-`/setup-isolated-setup-doctor` for a structured probe of all
+`/magpie-setup-isolated-setup-doctor` for a structured probe of all
three failure modes, so a single mid-flow failure can lead to a
broader sandbox health-check.
diff --git a/projects/_template/mentoring-config.md
b/projects/_template/mentoring-config.md
index 880a9f7..a0a0ce8 100644
--- a/projects/_template/mentoring-config.md
+++ b/projects/_template/mentoring-config.md
@@ -30,7 +30,7 @@ Copy this file into your own
| Key | Value | Notes |
|---|---|---|
-| `mentoring_invocation_command` | `/pr-management-mentor` | Slash command the
mentoring sweep invokes. Leave as-is unless your project has renamed the skill.
|
+| `mentoring_invocation_command` | `/magpie-pr-management-mentor` | Slash
command the mentoring sweep invokes. Leave as-is unless your project has
renamed the skill. |
| `maintainer_team_handle` | `@<github-org>/<maintainer-team-slug>` | GitHub
team the skill `@`-mentions when handing off. Example:
`@apache/airflow-committers`. |
| `max_agent_turns` | `2` | Hard cap on automated reply turns before forced
hand-off. Tune up only if your project has a verified-low false-positive rate
on the trigger heuristics. |
diff --git a/skills/issue-reassess-stats/SKILL.md
b/skills/issue-reassess-stats/SKILL.md
index a939195..98c7e56 100644
--- a/skills/issue-reassess-stats/SKILL.md
+++ b/skills/issue-reassess-stats/SKILL.md
@@ -209,7 +209,7 @@ Surface to the user:
- Headline numbers (count of still-failing, count of new-issue
candidates).
- Recommended next actions:
- - For each still-failing candidate: `/issue-fix-workflow <KEY>`.
+ - For each still-failing candidate: `/magpie-issue-fix-workflow <KEY>`.
- For each closure candidate: a manual close via the tracker.
- For each new-issue candidate: a manual file via the tracker.
diff --git a/skills/issue-reassess-stats/aggregate.md
b/skills/issue-reassess-stats/aggregate.md
index 7584da0..9f9cc58 100644
--- a/skills/issue-reassess-stats/aggregate.md
+++ b/skills/issue-reassess-stats/aggregate.md
@@ -67,7 +67,7 @@ Each action carries:
- One-line title (from description.md when available, key alone
otherwise).
- The recommended next slash command:
- - `/issue-fix-workflow <KEY>` for direct fixes
+ - `/magpie-issue-fix-workflow <KEY>` for direct fixes
- manual close for closure candidates
- manual file-new-issue for new-issue candidates
- manual re-type for tracker-hygiene
diff --git a/skills/issue-reassess-stats/render.md
b/skills/issue-reassess-stats/render.md
index 87433db..79612be 100644
--- a/skills/issue-reassess-stats/render.md
+++ b/skills/issue-reassess-stats/render.md
@@ -57,12 +57,12 @@ The dashboard's most important section. List ordered by
priority
- Type: Direct fix (still-failing × bug-as-advertised)
- Age: 4 years
- Reproducer: present at <path>
- - Next: /issue-fix-workflow <KEY>-9999
+ - Next: /magpie-issue-fix-workflow <KEY>-9999
2. [<KEY>-8888] Another one
- Type: Partial fix (8/10 cases pass)
- Age: 6 years
- - Next: /issue-fix-workflow <KEY>-8888
+ - Next: /magpie-issue-fix-workflow <KEY>-8888
...
```
@@ -209,8 +209,8 @@ per candidate; one candidate appears once):
| Rule | Condition | Action prefix |
|---|---|---|
-| 1 | still-fails-same × bug-as-advertised, has reproducer | "Direct fix:" +
`/issue-fix-workflow` |
-| 2 | still-fails-same × bug-as-advertised-partial-fix | "Partial fix:" +
`/issue-fix-workflow` |
+| 1 | still-fails-same × bug-as-advertised, has reproducer | "Direct fix:" +
`/magpie-issue-fix-workflow` |
+| 2 | still-fails-same × bug-as-advertised-partial-fix | "Partial fix:" +
`/magpie-issue-fix-workflow` |
| 3 | still-fails-same × feature-request-disguised-as-bug | "Tracker hygiene:"
+ re-type to Improvement |
| 4 | new-issue candidate from probe | "New issue:" + file in tracker |
| 5 | fixed-on-master × bug-as-advertised, clean evidence | "Closure:" +
confirm and close |
diff --git a/skills/issue-reassess/verdict-aggregation.md
b/skills/issue-reassess/verdict-aggregation.md
index d52cc9e..524ab36 100644
--- a/skills/issue-reassess/verdict-aggregation.md
+++ b/skills/issue-reassess/verdict-aggregation.md
@@ -167,7 +167,7 @@ report:
## Ready for fix-workflow
These candidates have adapted reproducers ready as regression-test
-starting points. Invoke `/issue-fix-workflow <KEY>` to draft a fix:
+starting points. Invoke `/magpie-issue-fix-workflow <KEY>` to draft a fix:
- <KEY>-9999 — <one-line>; reproducer at <path>
- ...
@@ -186,7 +186,7 @@ When the campaign completes, surface to the user:
```text
Campaign aggregate written to <scratch>/<campaign-id>/report.md
-Dashboard view: /issue-reassess-stats <scratch>/<campaign-id>/
+Dashboard view: /magpie-issue-reassess-stats <scratch>/<campaign-id>/
```
## Cross-references
diff --git a/skills/issue-triage/SKILL.md b/skills/issue-triage/SKILL.md
index e9ba48d..d6333f1 100644
--- a/skills/issue-triage/SKILL.md
+++ b/skills/issue-triage/SKILL.md
@@ -14,7 +14,7 @@ when_to_use: |
dispositions for the unsorted queue". Also appropriate after
a batch import or as a periodic sweep on stale candidates.
Skip when team consensus has landed — invoke
- `/issue-fix-workflow` for confirmed bugs or the appropriate
+ `/magpie-issue-fix-workflow` for confirmed bugs or the appropriate
closure flow directly.
capability: capability:triage
license: Apache-2.0
@@ -88,7 +88,7 @@ the discussion rather than starting it.
| Class | When to propose | Sibling skill / action |
|---|---|---|
-| `BUG` | Confirmed actionable bug; reproduces or has compelling evidence |
[`/issue-fix-workflow`](../issue-fix-workflow/SKILL.md) |
+| `BUG` | Confirmed actionable bug; reproduces or has compelling evidence |
[`/magpie-issue-fix-workflow`](../issue-fix-workflow/SKILL.md) |
| `FEATURE-REQUEST` | Valid improvement or new-feature request; not a bug |
Re-type as Improvement; route to project's roadmap |
| `NEEDS-INFO` | Missing repro steps, environment, version, or other
actionable detail | Request info from reporter |
| `DUPLICATE` | Substantive overlap with an existing tracker issue (open or
closed) | Link to canonical issue |
@@ -661,7 +661,7 @@ After the post loop, print a recap with:
NEEDS-INFO, 1 DUPLICATE, 0 INVALID, 1 ALREADY-FIXED"*).
- Per-issue line: clickable issue link, class, comment URL.
- The set of sibling-skill next-step recommendations, grouped:
- - [`/issue-fix-workflow <KEY>`](../issue-fix-workflow/SKILL.md)
+ - [`/magpie-issue-fix-workflow <KEY>`](../issue-fix-workflow/SKILL.md)
for each `BUG` or `FEATURE-REQUEST` ready to draft.
- Closure-flow recommendations for `INVALID` / `DUPLICATE` /
`ALREADY-FIXED`.
diff --git a/skills/pr-management-code-review/SKILL.md
b/skills/pr-management-code-review/SKILL.md
index 1325890..930513d 100644
--- a/skills/pr-management-code-review/SKILL.md
+++ b/skills/pr-management-code-review/SKILL.md
@@ -233,7 +233,7 @@ reviewers, or rerun CI. Those are
discovers during review that a PR needs a triage action (e.g. it
should really be drafted because of merge conflicts that
appeared), the skill says so explicitly and points them at
-`/pr-management-triage pr:<N>`. It does not silently invoke triage actions.
+`/magpie-pr-management-triage pr:<N>`. It does not silently invoke triage
actions.
**Golden rule 10 — every PR number is rendered as its full
URL.** A bare `#65981` is unclickable in most terminals; the
@@ -294,7 +294,7 @@ headline-confirm gate anyway).
Before running, resolve the maintainer's selector into a concrete
query.
-The **default selector** — what `/pr-management-code-review` with no
+The **default selector** — what `/magpie-pr-management-code-review` with no
arguments resolves to — is the working list called
**"my reviews"**: every open PR on `<repo>` that matches at
least one of the five signals below, all rooted on
@@ -354,26 +354,26 @@ labels (the skill warns and degrades gracefully — see
## How to invoke — examples
-The slash command is `/pr-management-code-review`. A few worked
+The slash command is `/magpie-pr-management-code-review`. A few worked
examples a maintainer can paste:
| Goal | Invocation |
|---|---|
-| Walk through everything in **"my reviews"**, newest first |
`/pr-management-code-review` |
-| Review a single PR (the most common ad-hoc trigger) |
`/pr-management-code-review pr:65981` |
-| Just the PRs where I'm a CODEOWNER, ignore the rest |
`/pr-management-code-review codeowner-only` |
-| PRs that explicitly `@`-mention me, skip the noise |
`/pr-management-code-review mentioned-only` |
-| Re-look at the PRs I already reviewed (follow-ups after author push) |
`/pr-management-code-review reviewed-before-only` |
-| My-reviews **but** drop touching-mine (too noisy this morning) |
`/pr-management-code-review no-touching-mine` |
-| My-reviews limited to scheduler-area, max 5 | `/pr-management-code-review
area:scheduler max:5` |
-| My-reviews scoped to non-collaborator authors (extra-careful pass) |
`/pr-management-code-review collab:false` |
-| The team queue (PRs where `<upstream>-<team-name>` is requested) |
`/pr-management-code-review team:project-team-name` |
-| The wider curated queue triage already promoted |
`/pr-management-code-review ready` |
-| Stay body-only this session (no inline picker) | `/pr-management-code-review
inline:off` |
-| Dry-run the queue — draft everything, post nothing |
`/pr-management-code-review dry-run` |
-| Same, against a different repo | `/pr-management-code-review dry-run
repo:<upstream>-site` |
-| Pair with an adversarial reviewer for a second read on each PR |
`/pr-management-code-review with-reviewer:/codex-plugin:adversarial-review` |
-| Skip background analysis subagents (tiny queue, prefetch is wasted) |
`/pr-management-code-review max:1 no-prefetch` |
+| Walk through everything in **"my reviews"**, newest first |
`/magpie-pr-management-code-review` |
+| Review a single PR (the most common ad-hoc trigger) |
`/magpie-pr-management-code-review pr:65981` |
+| Just the PRs where I'm a CODEOWNER, ignore the rest |
`/magpie-pr-management-code-review codeowner-only` |
+| PRs that explicitly `@`-mention me, skip the noise |
`/magpie-pr-management-code-review mentioned-only` |
+| Re-look at the PRs I already reviewed (follow-ups after author push) |
`/magpie-pr-management-code-review reviewed-before-only` |
+| My-reviews **but** drop touching-mine (too noisy this morning) |
`/magpie-pr-management-code-review no-touching-mine` |
+| My-reviews limited to scheduler-area, max 5 |
`/magpie-pr-management-code-review area:scheduler max:5` |
+| My-reviews scoped to non-collaborator authors (extra-careful pass) |
`/magpie-pr-management-code-review collab:false` |
+| The team queue (PRs where `<upstream>-<team-name>` is requested) |
`/magpie-pr-management-code-review team:project-team-name` |
+| The wider curated queue triage already promoted |
`/magpie-pr-management-code-review ready` |
+| Stay body-only this session (no inline picker) |
`/magpie-pr-management-code-review inline:off` |
+| Dry-run the queue — draft everything, post nothing |
`/magpie-pr-management-code-review dry-run` |
+| Same, against a different repo | `/magpie-pr-management-code-review dry-run
repo:<upstream>-site` |
+| Pair with an adversarial reviewer for a second read on each PR |
`/magpie-pr-management-code-review
with-reviewer:/codex-plugin:adversarial-review` |
+| Skip background analysis subagents (tiny queue, prefetch is wasted) |
`/magpie-pr-management-code-review max:1 no-prefetch` |
Selectors compose freely. Most flags carry through cleanly:
`area:scheduler reviewed-before-only since:7d` is "PRs in
@@ -525,7 +525,7 @@ writes a session log to disk.
pinging, rerunning CI, marking `ready for maintainer review` —
all live in [`pr-management-triage`](../pr-management-triage/SKILL.md). If
the
current PR needs one of those, the skill says so and points
- at `/pr-management-triage pr:<N>`.
+ at `/magpie-pr-management-triage pr:<N>`.
- **Merging.** Merging is a conscious maintainer action that
belongs in a separate flow.
- **Submitting reviews on closed / merged PRs.** The skill only
diff --git a/skills/pr-management-code-review/adversarial.md
b/skills/pr-management-code-review/adversarial.md
index 47c85b6..197bf9e 100644
--- a/skills/pr-management-code-review/adversarial.md
+++ b/skills/pr-management-code-review/adversarial.md
@@ -34,7 +34,7 @@ Pass the slash command to invoke as the `with-reviewer:`
selector:
```text
-/pr-management-code-review with-reviewer:/some-plugin:adversarial-review
+/magpie-pr-management-code-review with-reviewer:/some-plugin:adversarial-review
```
The skill stores that command for the session and proposes it
diff --git a/skills/pr-management-code-review/prerequisites.md
b/skills/pr-management-code-review/prerequisites.md
index 097146e..4cd2c9e 100644
--- a/skills/pr-management-code-review/prerequisites.md
+++ b/skills/pr-management-code-review/prerequisites.md
@@ -143,7 +143,7 @@ a separate call. The state is one of:
`SKILL.md`, `APPROVE` is off the table; downgrade to
`COMMENT` or `REQUEST_CHANGES`.
- `EXPECTED` (workflow approval pending) — surface explicitly
- and recommend `/pr-management-triage pr:<N>` for the workflow-approval
+ and recommend `/magpie-pr-management-triage pr:<N>` for the workflow-approval
flow first; do not attempt to review the PR until CI has
actually run.
diff --git a/skills/pr-management-code-review/selectors.md
b/skills/pr-management-code-review/selectors.md
index bbd810b..dd5c7dc 100644
--- a/skills/pr-management-code-review/selectors.md
+++ b/skills/pr-management-code-review/selectors.md
@@ -545,7 +545,7 @@ why the assistant proposes but does not invoke.
Example:
```text
-/pr-management-code-review with-reviewer:/some-plugin:adversarial-review
+/magpie-pr-management-code-review with-reviewer:/some-plugin:adversarial-review
```
If `with-reviewer:` is not passed, the skill checks the
diff --git a/skills/pr-management-stats/SKILL.md
b/skills/pr-management-stats/SKILL.md
index e38d774..2d07f16 100644
--- a/skills/pr-management-stats/SKILL.md
+++ b/skills/pr-management-stats/SKILL.md
@@ -131,7 +131,7 @@ read-only and inherits everything from
`pr-management-triage`'s contract.
**Golden rule 6 — recommendations are deterministic, not opinions.** Every
action surfaced in the "What needs attention" panel comes from a fixed rule in
[`render.md#recommendation-rules`](render.md#recommendation-rules). The skill
never editorialises ("queue is doing well", "you should focus on X") — it
surfaces the rule's trigger and the suggested next-step command. The maintainer
reads the trigger and decides; the skill never decides for them. New rules are
added by editing the rules [...]
-**Golden rule 7 — actions link to other skills, never mutate.** Every
recommendation's `action` field is the *exact* slash-command the maintainer can
paste to do the work — almost always `/pr-management-triage`,
`/pr-management-code-review`, or a focused variant with a label/PR-number
filter. The stats skill itself remains pure-read (Golden rule 1); the dashboard
makes downstream skills *one paste away* from running.
+**Golden rule 7 — actions link to other skills, never mutate.** Every
recommendation's `action` field is the *exact* slash-command the maintainer can
paste to do the work — almost always `/magpie-pr-management-triage`,
`/magpie-pr-management-code-review`, or a focused variant with a
label/PR-number filter. The stats skill itself remains pure-read (Golden rule
1); the dashboard makes downstream skills *one paste away* from running.
**Golden rule 8 — render ALL sections, never silently skip.** The dashboard
layout in [`render.md`](render.md) declares 11 sections (Title context, Hero
cards, Recommendations, Trends-over-time line charts, Closure velocity,
Opened-vs-closed momentum, Ready-for-review trend by top areas,
Closed-by-triage-reason, Pressure by area, CODEOWNERS responsibility, Triage
funnel, Triager activity, Detailed tables, Legend). The agent MUST render every
section. If a section's data is genuinely unav [...]
diff --git a/skills/pr-management-stats/render.md
b/skills/pr-management-stats/render.md
index 06e2456..90c87fa 100644
--- a/skills/pr-management-stats/render.md
+++ b/skills/pr-management-stats/render.md
@@ -91,7 +91,7 @@ sub-labels are 12px dim grey.
A vertical list of action cards built from the recommendation rules in
[`#recommendation-rules`](#recommendation-rules) below. Each card has a
coloured left border (red = high, amber = medium, grey = low), an icon, a
one-line title, a 1–2-line detail explanation, and (when applicable) a
monospace `code` block holding the exact slash-command the maintainer can
paste. When a rule's `action` is `—` (no paste-clean command applies), the card
omits the code block and shows title + detail only.
-If zero rules fire, render a single low-priority card with a `✨` icon and the
body "No urgent actions detected. Queue is in healthy shape — periodic
/pr-management-triage when convenient." Never leave the section visually empty.
+If zero rules fire, render a single low-priority card with a `✨` icon and the
body "No urgent actions detected. Queue is in healthy shape — periodic
/magpie-pr-management-triage when convenient." Never leave the section visually
empty.
The order inside the panel is: high-priority first (sorted by count
descending), then medium (same), then low. Within a tier the rule firing order
from [`#recommendation-rules`](#recommendation-rules) breaks ties.
@@ -204,7 +204,7 @@ Up to 8 rows, sorted by pressure score descending
(filtering areas with < 3 cont
- area name (cyan, bold, e.g. `providers`)
- one-line stat: `<contrib_total> contributor PRs · <red>untriaged_4w</red>
>4w · <amber>untriaged_1_4w</amber> 1-4w · <grey>untriaged_recent</grey> recent
· <green>ready_pending</green> ready for review`
- pressure score (right-aligned)
-- the slash-command to focus on this area: `/pr-management-triage
label:area:<X>` (dimmed)
+- the slash-command to focus on this area: `/magpie-pr-management-triage
label:area:<X>` (dimmed)
This panel answers "if I have 30 minutes, which area moves the most needles?".
Top row is always the highest-leverage focus.
@@ -322,16 +322,16 @@ The "What needs attention" panel is built from this fixed
rule set, evaluated in
| # | Trigger | Priority | Icon | Title template | Detail template | Action |
|---|---|---|---|---|---|---|
-| 1 | `len(untriaged_old) > 0` (any contributor non-draft >4w) | high | 🔥 |
`Triage <N> non-draft contributor PRs older than 4 weeks` | Focus on the >4w
bucket — those are the ones rotting longest. | `/pr-management-triage all PR
issues` |
-| 2 | `len(untriaged_old) == 0 AND len(untriaged_med) > 0` (1-4w bucket
non-empty) | medium | 👀 | `Triage <N> non-draft PRs aged 1-4 weeks` | The 1–4w
bucket is the queue's leading edge; staying on top of it stops PRs from rolling
into >4w. | `/pr-management-triage all PR issues` |
-| 3 | `len(stale_triaged_drafts) > 0` (drafts triaged ≥ 7d ago, no reply) |
medium | 🗑️ | `Close <N> stale-triaged drafts (≥7d, no response)` | Closure
path lives under the `stale` flow (sweep step 1a). | `/pr-management-triage
stale` |
-| 4 | `len(ready_open) >= 50` | high | 📥 | `<N> PRs labeled "ready for
maintainer review"` | The `ready for maintainer review` queue is past the
triage stage; it needs maintainer review attention, not triage. |
`/pr-management-code-review ready` |
-| 5 | `20 <= len(ready_open) < 50` | medium | 📥 | `<N> PRs in "ready for
maintainer review" queue` | Same trigger family as rule 4 — banded by queue
size so the priority drops once the queue is comfortable. |
`/pr-management-code-review ready` |
-| 6 | `len(responded_no_ready) > 0` (triaged + responded but not
ready-for-review) | medium | 🔄 | `<N> triaged PRs have author responses
awaiting re-triage` | These will surface as request-author-confirmation (first
leg of the two-sweep mark-ready gate) inside the regular triage sweep. |
`/pr-management-triage all PR issues` |
-| 7 | top area's `untriaged_4w + untriaged_1_4w >= 5` | medium | 📍 | `Area
"<area>" has <total> contributor PRs (<X> untriaged >4w)` | One area is
dominating the untriaged queue; scoping a triage pass to it clears the bulk of
the load. | `/pr-management-triage label:area:<area>` |
+| 1 | `len(untriaged_old) > 0` (any contributor non-draft >4w) | high | 🔥 |
`Triage <N> non-draft contributor PRs older than 4 weeks` | Focus on the >4w
bucket — those are the ones rotting longest. | `/magpie-pr-management-triage
all PR issues` |
+| 2 | `len(untriaged_old) == 0 AND len(untriaged_med) > 0` (1-4w bucket
non-empty) | medium | 👀 | `Triage <N> non-draft PRs aged 1-4 weeks` | The 1–4w
bucket is the queue's leading edge; staying on top of it stops PRs from rolling
into >4w. | `/magpie-pr-management-triage all PR issues` |
+| 3 | `len(stale_triaged_drafts) > 0` (drafts triaged ≥ 7d ago, no reply) |
medium | 🗑️ | `Close <N> stale-triaged drafts (≥7d, no response)` | Closure
path lives under the `stale` flow (sweep step 1a). |
`/magpie-pr-management-triage stale` |
+| 4 | `len(ready_open) >= 50` | high | 📥 | `<N> PRs labeled "ready for
maintainer review"` | The `ready for maintainer review` queue is past the
triage stage; it needs maintainer review attention, not triage. |
`/magpie-pr-management-code-review ready` |
+| 5 | `20 <= len(ready_open) < 50` | medium | 📥 | `<N> PRs in "ready for
maintainer review" queue` | Same trigger family as rule 4 — banded by queue
size so the priority drops once the queue is comfortable. |
`/magpie-pr-management-code-review ready` |
+| 6 | `len(responded_no_ready) > 0` (triaged + responded but not
ready-for-review) | medium | 🔄 | `<N> triaged PRs have author responses
awaiting re-triage` | These will surface as request-author-confirmation (first
leg of the two-sweep mark-ready gate) inside the regular triage sweep. |
`/magpie-pr-management-triage all PR issues` |
+| 7 | top area's `untriaged_4w + untriaged_1_4w >= 5` | medium | 📍 | `Area
"<area>" has <total> contributor PRs (<X> untriaged >4w)` | One area is
dominating the untriaged queue; scoping a triage pass to it clears the bulk of
the load. | `/magpie-pr-management-triage label:area:<area>` |
| 8 | `velocity_drop > 30` (last_wk total - this_wk total) | low | 📉 | `PR
closure velocity dropped <N> this week` | No immediate action — re-check next
week to see if the drop persists or was a one-off. | — |
-| 9 | top ready-trend area's growth in last 7d ≥ 10 PRs | low | 📈 |
`Ready-for-review queue in "<area>" grew by <N> this week` | Growth
concentrated in one area suggests it'd benefit from a focused review pass. |
`/pr-management-code-review label:area:<area>` |
-| 10 | weekly closed-by-reason `closed_no_response > merged` for 2+ recent
weeks | medium | 🧹 | `Stale-sweep is dominating closures (last 2 weeks: <N>
sweep-close vs <M> merged)` | Too many PRs are reaching the stale sweep —
review the `/pr-management-triage stale` cadence and whether earlier-stage
interventions (mark-ready, ping) are firing. | — |
+| 9 | top ready-trend area's growth in last 7d ≥ 10 PRs | low | 📈 |
`Ready-for-review queue in "<area>" grew by <N> this week` | Growth
concentrated in one area suggests it'd benefit from a focused review pass. |
`/magpie-pr-management-code-review label:area:<area>` |
+| 10 | weekly closed-by-reason `closed_no_response > merged` for 2+ recent
weeks | medium | 🧹 | `Stale-sweep is dominating closures (last 2 weeks: <N>
sweep-close vs <M> merged)` | Too many PRs are reaching the stale sweep —
review the `/magpie-pr-management-triage stale` cadence and whether
earlier-stage interventions (mark-ready, ping) are firing. | — |
Rules 1 and 2 are **mutually exclusive** (only one fires depending on whether
any >4w PRs exist). Rules 4 and 5 are **mutually exclusive** (banding on
`ready_open` count). All other rules can fire independently.
@@ -386,10 +386,10 @@ Distinct from the colour scheme: these are the four
conceptual *states* a contri
| Marker | Definition | Colour | Maintainer action |
|---|---|---|---|
-| `Ready for review` | `ready for maintainer review` label is present | green
| run `/pr-management-code-review` to actually code-review the PR |
+| `Ready for review` | `ready for maintainer review` label is present | green
| run `/magpie-pr-management-code-review` to actually code-review the PR |
| `Responded` | PR is triaged AND author has commented or pushed after the
triage comment, AND not yet `Ready` | bright cyan | re-triage; may now qualify
for `request-author-confirmation` (first leg of the two-sweep mark-ready gate) |
| `Waiting for Author` | PR is triaged, no author response — OR — PR is a
draft (whether triaged or not) | amber | nothing; author owns the next move
(may become a sweep candidate after 7d) |
-| `Not yet triaged` | None of the above. Non-draft PR that has never received
a quality-criteria comment | blue (or grey) | run `/pr-management-triage` to
give it a first look |
+| `Not yet triaged` | None of the above. Non-draft PR that has never received
a quality-criteria comment | blue (or grey) | run
`/magpie-pr-management-triage` to give it a first look |
Counting rules are precedence-based — `Ready` takes precedence over the
others, then `Responded`, then `Waiting`, with `Not yet triaged` as the
fallback. So a single PR is in exactly one bucket; the four counts must sum to
the total open non-bot PR count.
diff --git a/skills/security-issue-import-via-forwarder/SKILL.md
b/skills/security-issue-import-via-forwarder/SKILL.md
index 5f21d2c..40baeb6 100644
--- a/skills/security-issue-import-via-forwarder/SKILL.md
+++ b/skills/security-issue-import-via-forwarder/SKILL.md
@@ -188,7 +188,7 @@ The parent skill passes in:
The skill is **invoked**, never called from the command line directly
in the common case. A standalone invocation (security team member
-typing `/security-issue-import-via-forwarder` against a single
+typing `/magpie-security-issue-import-via-forwarder` against a single
message they handed over) still resolves the same inputs from a
prompt-time interactive Q&A: which message-id, which mode, which
links, which inner-body.
diff --git a/skills/security-issue-triage/SKILL.md
b/skills/security-issue-triage/SKILL.md
index b92b41d..3ab449e 100644
--- a/skills/security-issue-triage/SKILL.md
+++ b/skills/security-issue-triage/SKILL.md
@@ -15,14 +15,14 @@ when_to_use: |
Invoke when a security team member says "triage open issues",
"start triage discussions on the new trackers", or "propose
dispositions for the needs-triage queue". Also appropriate
- after a batch import via `/security-issue-import` lands new
+ after a batch import via `/magpie-security-issue-import` lands new
trackers, or as a periodic sweep on stale needs-triage
trackers. Use `--retriage` when a passed-triage decision
needs re-litigating after new comment activity. Skip when
team consensus on validity has already landed — invoke
- `/security-cve-allocate` (VALID),
- `/security-issue-invalidate` (INFO-ONLY / INVALID), or
- `/security-issue-deduplicate` (PROBABLE-DUP) directly.
+ `/magpie-security-cve-allocate` (VALID),
+ `/magpie-security-issue-invalidate` (INFO-ONLY / INVALID), or
+ `/magpie-security-issue-deduplicate` (PROBABLE-DUP) directly.
capability: capability:triage
license: Apache-2.0
---
@@ -111,12 +111,12 @@ discussion rather than starting it.
| Class | When to propose | Sibling skill to invoke after team consensus |
|---|---|---|
-| `VALID` | Clear Security Model violation; in-scope attack vector |
[`/security-cve-allocate`](../security-cve-allocate/SKILL.md) |
+| `VALID` | Clear Security Model violation; in-scope attack vector |
[`/magpie-security-cve-allocate`](../security-cve-allocate/SKILL.md) |
| `DEFENSE-IN-DEPTH` | Real issue, but outside the Security Model boundary
(e.g. local-user attacks on a worker the model treats as operator-trusted;
old-browser-only XSS that current browsers block) | close as wontfix + file a
public PR for the hardening |
| `INFO-ONLY` | Report is fact-correct but doesn't violate anything; matches a
known canned-response shape (educational reply, no tracker action needed) |
close + reporter-reply via the matching canned response |
-| `INVALID` | Misframed, circular, by-design, or out-of-scope per the
canned-responses precedents |
[`/security-issue-invalidate`](../security-issue-invalidate/SKILL.md) |
-| `PROBABLE-DUP` | Substantive overlap with an existing tracker or closed
advisory (same root cause; sibling attack vector with the same fix shape) |
[`/security-issue-deduplicate`](../security-issue-deduplicate/SKILL.md) |
-| `FIX-ALREADY-PUBLIC` | A public PR in `<upstream>` (open or merged) already
appears to fix the reported behaviour; the reporter sent `<security-list>`
independently of that PR. Per the [no-credit-when-fix-is-already-public
policy](../security-issue-import-from-pr/SKILL.md#reporter-credit-policy-for-public-pr-imports),
reporter is thanked but not credited; reporter is asked to verify the PR
addresses what they reported, and to come back if it does not. |
[`/security-issue-invalidate`](. [...]
+| `INVALID` | Misframed, circular, by-design, or out-of-scope per the
canned-responses precedents |
[`/magpie-security-issue-invalidate`](../security-issue-invalidate/SKILL.md) |
+| `PROBABLE-DUP` | Substantive overlap with an existing tracker or closed
advisory (same root cause; sibling attack vector with the same fix shape) |
[`/magpie-security-issue-deduplicate`](../security-issue-deduplicate/SKILL.md) |
+| `FIX-ALREADY-PUBLIC` | A public PR in `<upstream>` (open or merged) already
appears to fix the reported behaviour; the reporter sent `<security-list>`
independently of that PR. Per the [no-credit-when-fix-is-already-public
policy](../security-issue-import-from-pr/SKILL.md#reporter-credit-policy-for-public-pr-imports),
reporter is thanked but not credited; reporter is asked to verify the PR
addresses what they reported, and to come back if it does not. |
[`/magpie-security-issue-invalid [...]
**Golden rule 5 — every `<tracker>` reference is clickable in the
surface it lands on**, per Golden rule 2 in
@@ -145,7 +145,7 @@ without manually reconstructing the URL.
**Golden rule 6 — never auto-escalate from a comment to a
mutation.** A reply on the tracker like *"agreed, ship the CVE"*
is **not** authorisation for this skill to call
-`/security-cve-allocate`. The user types the next slash command
+`/magpie-security-cve-allocate`. The user types the next slash command
explicitly. The skill's job ends at "comment posted"; downstream
skills require fresh invocations.
@@ -379,7 +379,7 @@ the inputs the classifier needs. Each tracker gets:
a merged or open public PR for this tracker materially changes
the disposition (the team has already converged enough to
write code → the right next step is usually `VALID` →
- `/security-cve-allocate`).
+ `/magpie-security-cve-allocate`).
**Independent-public-fix detection.** Beyond PRs that already
reference the tracker, also search for *independent* public
@@ -695,7 +695,7 @@ Propose when **any** of:
the new report is a sibling vector with the same fix shape.
The proposal links the candidate kept-tracker and suggests
-`/security-issue-deduplicate <new> <existing>` as the next
+`/magpie-security-issue-deduplicate <new> <existing>` as the next
slash command.
#### `FIX-ALREADY-PUBLIC`
@@ -734,7 +734,7 @@ issue before the unrelated PR landed).
the read-only-on-tracker contract this skill maintains, the
reply is **not** sent here — it is drafted for the team and
will be sent later via
-[`/security-issue-invalidate`](../security-issue-invalidate/SKILL.md)
+[`/magpie-security-issue-invalidate`](../security-issue-invalidate/SKILL.md)
once the team confirms. Draft template:
> Thanks for the report. We noticed that
@@ -762,7 +762,7 @@ trims during Step 5 confirmation).
proposal:
- If the reporter confirms the PR fixes their report →
- [`/security-issue-invalidate`](../security-issue-invalidate/SKILL.md)
+ [`/magpie-security-issue-invalidate`](../security-issue-invalidate/SKILL.md)
closes the tracker; the reporter-credit field stays blank.
- If the reporter says the PR does **not** fix it →
re-triage via `--retriage` with the new evidence; the
@@ -1002,18 +1002,18 @@ After the post loop, print a recap with:
2 INVALID, 1 INFO-ONLY, 0 PROBABLE-DUP, 1 FIX-ALREADY-PUBLIC"*).
- Per-tracker line: clickable issue link, class, comment URL.
- The set of sibling-skill next-step recommendations, grouped:
- - `/security-cve-allocate NNN` for each VALID
- - `/security-issue-invalidate NNN` for each INVALID and
+ - `/magpie-security-cve-allocate NNN` for each VALID
+ - `/magpie-security-issue-invalidate NNN` for each INVALID and
INFO-ONLY (the invalidate skill handles both with the right
canned response)
- - `/security-issue-deduplicate NNN MMM` for each PROBABLE-DUP
- - `/security-issue-invalidate NNN` for each FIX-ALREADY-PUBLIC,
+ - `/magpie-security-issue-deduplicate NNN MMM` for each PROBABLE-DUP
+ - `/magpie-security-issue-invalidate NNN` for each FIX-ALREADY-PUBLIC,
*only after the reporter has confirmed the public PR fixes
their report* — until then, the tracker stays open awaiting
that verification; if the reporter says the PR does not fix
it, re-triage via `--retriage` instead
- A note that label flips and project-board moves stay with
- `/security-issue-sync` once the team's decision lands — *not*
+ `/magpie-security-issue-sync` once the team's decision lands — *not*
with this skill.
Apply the Golden rule 5 link-form self-check to the recap text
diff --git a/skills/setup-isolated-setup-verify/SKILL.md
b/skills/setup-isolated-setup-verify/SKILL.md
index dd1f0bf..c60c85f 100644
--- a/skills/setup-isolated-setup-verify/SKILL.md
+++ b/skills/setup-isolated-setup-verify/SKILL.md
@@ -185,7 +185,7 @@ Walk each in order:
`.claude/settings.local.json` — each worktree carries its
own entry. Surface ✗ on any missing entry; remediation:
`~/.claude/scripts/sandbox-add-project-root.sh --all-worktrees`
- (or re-run `/setup-isolated-setup-install` if the helper is
+ (or re-run `/magpie-setup-isolated-setup-install` if the helper is
not installed).
- **Live probe:** attempt a sandboxed read of `.git/HEAD` and
a sandboxed write of a temp file inside the *current*
@@ -224,10 +224,10 @@ Walk each in order:
`tools/agent-isolation/git-global-post-checkout.sh` content.
- ⚠ if the hook is missing or non-executable — the `core.hooksPath`
pointer is set but the hook content is gone. Remediation:
- re-run `/setup-isolated-setup-install` Step P.3-whole-user,
- or `/setup-isolated-setup-update` to refresh the script copy.
+ re-run `/magpie-setup-isolated-setup-install` Step P.3-whole-user,
+ or `/magpie-setup-isolated-setup-update` to refresh the script copy.
- ⚠ if the hook content drifted from the framework's source-of-
- truth — surface the diff, propose `/setup-isolated-setup-update`.
+ truth — surface the diff, propose `/magpie-setup-isolated-setup-update`.
- **Loud reminder** (every run, not a ✗): when in whole-user
scope, surface a one-line note that per-repo `.git/hooks/*`
are inert across the host (per [`docs/setup/secure-agent-setup.md` →
*Per-project vs whole-user
scope*](../../docs/setup/secure-agent-setup.md#per-project-vs-whole-user-scope)).
@@ -271,7 +271,7 @@ Walk each in order:
`git -C <root> rev-list --count HEAD..origin/main`.
Remediation: `git -C <root> pull --ff-only` then
`npm install` in the affected `mcp/<server>/` dir, or run
- `/setup-isolated-setup-update` for the live fetch + the exact
+ `/magpie-setup-isolated-setup-update` for the live fetch + the exact
commands.
This check stays **read-only and offline** — it compares
diff --git a/skills/setup/adopt.md b/skills/setup/adopt.md
index b7b508b..f515201 100644
--- a/skills/setup/adopt.md
+++ b/skills/setup/adopt.md
@@ -934,7 +934,7 @@ the user before writing:
# apache-steward post-checkout hook (installed by /magpie-setup adopt).
# Add the current worktree's working dir to the worktree's own
# .claude/settings.local.json sandbox allowlists (per issue #197).
-# Chains into the helper if installed by /setup-isolated-setup-install;
+# Chains into the helper if installed by /magpie-setup-isolated-setup-install;
# no-op when the helper is absent.
set -u
if [ -x "$HOME/.claude/scripts/sandbox-add-project-root.sh" ]; then
@@ -947,7 +947,7 @@ The `|| true` guard keeps the hook from failing the
surrounding
git operation (`git checkout`, `git worktree add`) — the hook is
best-effort reconciliation, not a gate.
-If the operator has not yet run `/setup-isolated-setup-install`,
+If the operator has not yet run `/magpie-setup-isolated-setup-install`,
the helper-script line is a no-op (the `-x` test fails). When
they later install the secure setup, no hook re-write is needed:
the next `post-checkout` fires the helper automatically.
@@ -1185,7 +1185,7 @@ Four passes, in this order:
- **Helper absent** (`~/.claude/scripts/sandbox-add-project-root.sh`
does not exist) → surface as ⚠ in the adopt summary with a
- pointer at `/setup-isolated-setup-install`. Do not block
+ pointer at `/magpie-setup-isolated-setup-install`. Do not block
adopt — many adopters set up secure-agent isolation later,
and the framework-skill symlinks are usable without it (the
adopter just runs Bash outside the sandbox until they wire
diff --git a/skills/setup/upgrade.md b/skills/setup/upgrade.md
index bc104e1..517e6be 100644
--- a/skills/setup/upgrade.md
+++ b/skills/setup/upgrade.md
@@ -492,7 +492,7 @@ committed project-scope file). Idempotent — already-present
paths are skipped. If
`~/.claude/scripts/sandbox-add-project-root.sh` is absent,
surface as ⚠ in the upgrade summary with a pointer at
-`/setup-isolated-setup-install` and continue (do not block
+`/magpie-setup-isolated-setup-install` and continue (do not block
upgrade — secure-agent setup is independent of framework
upgrade). The recap row in Step 8's output goes under a new
`Sandbox allowlist:` section.
@@ -659,7 +659,7 @@ Worktrees (worktree-init was run on each, idempotently):
Sandbox allowlist (sandbox-add-project-root.sh --all-worktrees):
✓ already covers this project + N worktrees OR
+ <list of <worktree>/.claude/settings.local.json files updated> OR
- ⚠ helper not installed — run /setup-isolated-setup-install
+ ⚠ helper not installed — run /magpie-setup-isolated-setup-install
Overrides:
✓ <list of overrides whose target is unchanged>
@@ -673,7 +673,7 @@ Framework templates (projects/_template/):
→ file an issue against apache/airflow-steward to upstream a fix
Recommended follow-ups:
- - Run /setup-isolated-setup-update if the secure-setup blast
+ - Run /magpie-setup-isolated-setup-update if the secure-setup blast
radius (settings.json, agent-isolation/, pinned-versions.toml)
appears in the diff.
- Open .apache-magpie-overrides/<name>.md for any ⚠ entry above.
diff --git a/skills/setup/verify.md b/skills/setup/verify.md
index 8db9c41..35764da 100644
--- a/skills/setup/verify.md
+++ b/skills/setup/verify.md
@@ -311,13 +311,13 @@ For the current worktree (resolved via
pass.
- ⚠ if missing from either array **and** the helper script is
absent — the operator has not run
- `/setup-isolated-setup-install` yet. Suggest that skill.
+ `/magpie-setup-isolated-setup-install` yet. Suggest that skill.
Not ✗ because secure-agent isolation is independent of
framework adoption, and an adopter who runs without the
sandbox enabled has nothing to lose by the missing entry.
- ⚠ if `<worktree>/.claude/settings.local.json` is absent
entirely — same remediation (re-run the helper or
- `/setup-isolated-setup-install`). The file is auto-created
+ `/magpie-setup-isolated-setup-install`). The file is auto-created
by the helper on first run.
- ✗ if `<worktree>/.claude/settings.local.json` exists AND
is **not** gitignored (cross-check via `git check-ignore`).
@@ -550,7 +550,7 @@ which holds a POSIX `fcntl.flock` advisory exclusive lock on
the target file, re-parses under the lock, mutates
`.permissions.allow[]` in place, writes to a sibling temp
file, and `os.replace`s into place — so concurrent
-`/setup-isolated-setup-install` (which also writes to the same
+`/magpie-setup-isolated-setup-install` (which also writes to the same
file's `sandbox.filesystem.*` arrays) does not silently
clobber the diff. When the target file lives at a path the
agent's sandbox marks as `denyWithinAllow` (the per-machine
@@ -559,7 +559,7 @@ operator to authorise the sandbox bypass for that single
write
— it does not silently skip the file. ⚠ if either file is
absent (most adopters will have at least
`settings.local.json` after the first
-`/setup-isolated-setup-install` pass; absence is a soft signal
+`/magpie-setup-isolated-setup-install` pass; absence is a soft signal
not a hard fault).
**Why we propose, never auto-apply.** The allow-list is
diff --git a/skills/setup/worktree-init.md b/skills/setup/worktree-init.md
index c4a2240..a527e91 100644
--- a/skills/setup/worktree-init.md
+++ b/skills/setup/worktree-init.md
@@ -169,7 +169,7 @@ one-line recap row for the Step 2 summary:
- ✓ already covered, OR
- + added `<worktree-path>`, OR
-- ⚠ helper not installed — `/setup-isolated-setup-install` to wire it up.
+- ⚠ helper not installed — `/magpie-setup-isolated-setup-install` to wire it
up.
`worktree-init` does **not** fail when the helper is absent;
secure-agent isolation is independent of framework adoption.
diff --git a/tools/dashboard-generator/README.md
b/tools/dashboard-generator/README.md
index ffe395f..01c7889 100644
--- a/tools/dashboard-generator/README.md
+++ b/tools/dashboard-generator/README.md
@@ -72,7 +72,7 @@ heavy dashboards, the agent-emitted version is better.
| Use case | Choice |
|---|---|
-| Interactive maintainer view, one-off | Skill (`/issue-reassess-stats`) |
+| Interactive maintainer view, one-off | Skill
(`/magpie-issue-reassess-stats`) |
| CI pipeline, scheduled refresh | Reference implementation |
| Reproducible audit dashboard | Reference implementation |
| Custom layout for one campaign | Skill (with overrides) |
diff --git a/tools/skill-evals/evals/security-issue-triage/README.md
b/tools/skill-evals/evals/security-issue-triage/README.md
index 36fe21c..a1e0e9c 100644
--- a/tools/skill-evals/evals/security-issue-triage/README.md
+++ b/tools/skill-evals/evals/security-issue-triage/README.md
@@ -179,6 +179,6 @@ PROBABLE-DUP slash commands include the kept-tracker number.
| Case | Trackers posted | Key assertions |
|------|----------------|---------------|
-| `case-1-mixed-dispositions` | 212=VALID, 215=NOT-CVE-WORTHY, 218=INFO-ONLY,
220=PROBABLE-DUP(kept=212) | `/security-issue-deduplicate 220 212` with
kept-tracker; all four `next_steps` present |
-| `case-2-all-valid` | 231, 232, 235 all VALID | Three
`/security-cve-allocate` commands; `distribution.VALID=3`, others 0 |
+| `case-1-mixed-dispositions` | 212=VALID, 215=NOT-CVE-WORTHY, 218=INFO-ONLY,
220=PROBABLE-DUP(kept=212) | `/magpie-security-issue-deduplicate 220 212` with
kept-tracker; all four `next_steps` present |
+| `case-2-all-valid` | 231, 232, 235 all VALID | Three
`/magpie-security-cve-allocate` commands; `distribution.VALID=3`, others 0 |
| `case-3-no-valid` | 241=NOT-CVE-WORTHY, 242=DEFENSE-IN-DEPTH,
244=NOT-CVE-WORTHY | 242 omitted from `next_steps`;
`distribution.DEFENSE_IN_DEPTH=1`, `NOT_CVE_WORTHY=2` |