Add persona-maker persona and wiring#22
Conversation
Introduce a new persona 'persona-maker' (intent: persona-authoring) and wire it into the workload router. Added personas/persona-maker.json and updated generated persona exports (packages/workload-router/src/generated/personas.ts). Registered the persona in packages/workload-router/src/index.ts (import, PERSONA_INTENTS, personaCatalog), added the export mapping in packages/workload-router/scripts/generate-personas.mjs, added a routing rule in packages/workload-router/routing-profiles/default.json, updated the test fixture in packages/workload-router/src/index.test.ts, and listed the persona in README.md. These changes integrate the persona into generation, routing, and tests so it is recognized by the repo tooling.
barryollama
left a comment
There was a problem hiding this comment.
Review Summary
This PR introduces a new 'persona-maker' persona and properly wires it through the entire codebase. The implementation follows repo conventions well.
✅ What's Good
-
Complete wiring — All 7 required wiring steps are implemented:
- — New persona with well-defined structure
- — Added to and
- — Added entry
- — Added routing rule with model-agnostic rationale
- — Added to test fixture
- — Added to personas list
- Regenerated
-
Follows prompt conventions — The persona definition follows the tier-isolation and model-agnostic rules:
- No model names in prompts or rationales
- Each tier stands alone without referencing siblings
- Hard rules are consistently applied across all tiers
-
Tests pass — All 38 tests in the workload-router package pass.
-
Well-documented — The PR description clearly explains all steps and their purpose.
💡 Minor Suggestions (non-blocking)
The test fixture uses tier while the default routing profile uses tier — this appears intentional (testing vs production defaults), but calling it out in case it was accidental.
Verdict
Approve — The PR is complete, well-structured, and follows conventions. Ready to merge.
barryollama
left a comment
There was a problem hiding this comment.
Review Summary
This PR introduces a new 'persona-maker' persona and properly wires it through the entire codebase. The implementation follows repo conventions well.
✅ What's Good
-
Complete wiring — All 7 required wiring steps are implemented:
- personas/persona-maker.json — New persona with well-defined structure
- packages/workload-router/src/index.ts — Added to PERSONA_INTENTS and personaCatalog
- packages/workload-router/scripts/generate-personas.mjs — Added ['persona-maker', 'personaMaker'] entry
- packages/workload-router/routing-profiles/default.json — Added routing rule with model-agnostic rationale
- packages/workload-router/src/index.test.ts — Added to test fixture
- README.md — Added to personas list
- Regenerated packages/workload-router/src/generated/personas.ts
-
Follows prompt conventions — The persona definition follows the tier-isolation and model-agnostic rules:
- No model names in prompts or rationales
- Each tier stands alone without referencing siblings
- Hard rules are consistently applied across all tiers
-
Tests pass — All 38 tests in the workload-router package pass.
-
Well-documented — The PR description clearly explains all steps and their purpose.
💡 Minor Suggestions (non-blocking)
The test fixture uses 'best-value' tier while the default routing profile uses 'best' tier — this appears intentional (testing vs production defaults), but calling it out in case it was accidental.
Verdict
Approve — The PR is complete, well-structured, and follows conventions. Ready to merge.
- Fix skills[0].source to the skill.sh github form so materializeSkills
can parse it (was skills.sh browse URL which threw Unsupported skill
source at session start).
- Rename skill id from vercel-labs/skills@find-skills to skill.sh/find-skills
to match the repo's prpm/<name> vs skill.sh/<name> naming convention.
- Scope the model-agnostic rule to the persona-under-construction so
the rule no longer appears to contradict itself (the authoring prompt
names models in the tier-defaults section because it prescribes
which models to pick — not text the authored persona copies).
- Add resolvePersona('persona-authoring') test covering personaId,
tier, harness, and the declared skill id to catch wiring regressions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…/harness-kit@0.2.0 @agentworkforce/cli@0.3.0 Reconciliation of the 2026-04-23 publish-run race: all three packages published to npm successfully, but the workflow's final `git push origin HEAD --follow-tags` was rejected because PR #22 (persona-maker) merged to main during the job. Tags shipped but the chore(release) commit was orphaned at 3b5b8f3. This cherry-picks that commit back onto main and replaces the auto-generated CLI changelog stub with a handwritten entry covering PRs #20, #22, #23, #24. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduce a new persona 'persona-maker' (intent: persona-authoring) and wire it into the workload router. Added personas/persona-maker.json and updated generated persona exports (packages/workload-router/src/generated/personas.ts). Registered the persona in packages/workload-router/src/index.ts (import, PERSONA_INTENTS, personaCatalog), added the export mapping in packages/workload-router/scripts/generate-personas.mjs, added a routing rule in packages/workload-router/routing-profiles/default.json, updated the test fixture in packages/workload-router/src/index.test.ts, and listed the persona in README.md. These changes integrate the persona into generation, routing, and tests so it is recognized by the repo tooling.