Add anti-slop-auditor persona and routing#21
Conversation
Introduce a new anti-slop-auditor persona for 'slop-audit' workloads. Adds personas/anti-slop-auditor.json (persona spec with tiers, systemPrompts, jscpd skill and harness settings), updates generated personas export and generator mapping, wires the persona into workload-router (PERSONA_INTENTS, personaCatalog, imports), adds a routing profile entry in packages/workload-router/routing-profiles/default.json, updates tests to cover the new profile, and documents the persona in README.md.
There was a problem hiding this comment.
Pull request overview
Adds a new “anti-slop-auditor” persona and wires it into the workload-router so callers can route slop-audit workloads via routing profiles.
Changes:
- Introduces
personas/anti-slop-auditor.jsonand exports it through the generated personas module + generator mapping. - Adds
slop-auditas a first-classPersonaIntent, registers it inpersonaCatalog, and adds a default routing-profile rule. - Updates tests/README to include the new intent/persona in fixtures and documentation.
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| personas/anti-slop-auditor.json | New persona spec for the slop-audit intent (tiers, prompts, skills). |
| packages/workload-router/src/index.ts | Registers slop-audit intent and maps it to the new persona export. |
| packages/workload-router/src/index.test.ts | Updates custom routing profile fixture to include slop-audit. |
| packages/workload-router/src/generated/personas.ts | Generated export for antiSlopAuditor. |
| packages/workload-router/scripts/generate-personas.mjs | Adds export-name mapping for the new persona JSON file. |
| packages/workload-router/routing-profiles/default.json | Adds a default routing rule for slop-audit. |
| README.md | Documents the new persona file in the personas list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "skills": [ | ||
| { | ||
| "id": "kucherenko/jscpd", | ||
| "source": "https://github.com/kucherenko/jscpd", |
There was a problem hiding this comment.
The persona declares a skill with source: "https://github.com/kucherenko/jscpd", but workload-router only supports skill sources in prpm form (prpm.dev URL or bare @scope/name) or skill.sh form (https://github.com/<org>/<repo>#<skill>). As written, calling usePersona('slop-audit') / materializeSkillsFor(...) will throw Unsupported skill source and the persona cannot run.
Update the skill entry to a supported source format (publish to prpm.dev / use a skill.sh #<skill> fragment), or remove it from skills (and adjust the systemPrompts to not reference “via the ... skill”).
| "source": "https://github.com/kucherenko/jscpd", | |
| "source": "https://github.com/kucherenko/jscpd#jscpd", |
| posthog: { | ||
| tier: 'best-value', | ||
| rationale: 'analytics lookups via MCP' | ||
| }, | ||
| 'slop-audit': { | ||
| tier: 'minimum', | ||
| rationale: 'quick slop sweep is enough here' | ||
| } |
There was a problem hiding this comment.
This test update only extends the custom routing profile fixture to include the new 'slop-audit' intent, but it still doesn't assert that the default routing profile can resolve 'slop-audit', nor that the new persona’s skills can be materialized without throwing. Add a focused test that calls resolvePersona('slop-audit') (and ideally materializeSkillsFor(...) / usePersona('slop-audit')) to ensure the new intent + persona are actually runnable.
# Conflicts: # README.md # packages/workload-router/routing-profiles/default.json # packages/workload-router/scripts/generate-personas.mjs # packages/workload-router/src/index.test.ts # packages/workload-router/src/index.ts
The anti-slop-auditor persona declared its jscpd skill with `source: https://github.com/kucherenko/jscpd`, which does not match any form workload-router's `resolveSkillSource` accepts — `usePersona` / `materializeSkillsFor` would have thrown `Unsupported skill source`. Switch to the skill.sh URL form (`#jscpd` fragment). `npx skills add kucherenko/jscpd --list` discovers the repo's root-level SKILL.md, so the installer works with no changes upstream. Add a router test that resolves `slop-audit` from the default profile and asserts `materializeSkillsFor` produces the expected `npx skills add … --skill jscpd -y` install command, so future drift on either the URL form or the catalog wiring fails the build. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduce a new anti-slop-auditor persona for 'slop-audit' workloads. Adds personas/anti-slop-auditor.json (persona spec with tiers, systemPrompts, jscpd skill and harness settings), updates generated personas export and generator mapping, wires the persona into workload-router (PERSONA_INTENTS, personaCatalog, imports), adds a routing profile entry in packages/workload-router/routing-profiles/default.json, updates tests to cover the new profile, and documents the persona in README.md.