new-role · git:20261023.9f9eaf2 · 2026-10-23 · sha256 4166a0fcff98a259
new-role git:20261023.9f9eaf2A
Immutable. This exact content never changes and is served at /api/v1/blob/4166a0fcff98a259.
--- # GENERATED by scripts/kernel/sync.py from skills/new-role/SKILL.md - do not edit name: new-role description: Use when the owner wants to hire a new agent role (agency-wide or project-owned) or asks whether something should be a role at all. Interview, role card from template, evals folder, probation entry, then sync and lint. disable-model-invocation: true --- # New role (the hire workflow) Today is !`date +%F`. Request: `$ARGUMENTS` ## Procedure 1. **Interview** (one question at a time, stop when answered): which recurring ticket type or distinct tool/auth justifies a role rather than a skill? Dependency test: if this role disappeared tomorrow, what breaks? Who does it report to? What must it never do? 2. **Classify**: agency-wide roles live in `agents/<name>.md`. Check the existing cards and `grep -ril "<name>" agents skills` so no duplicate exists. 3. **Scaffold** from `templates/role-card.md`: fill every frontmatter key, `status: probation`, `version: 0.1.0`, `created`/`updated` = today, `tier_max` no higher than the handbook allows for its tools; body sections Charter · Inputs · Outputs · How I work · Boundaries · Stop conditions · KPIs, at most 80 lines. 4. **Wire**: create `evals/<name>/cases.yaml` with at least three cases in the format of `scripts/kernel/evals.py` (see `evals/README.md`); append a probation entry to the runtime's role-review log; run `python3 scripts/kernel/sync.py` so the engine adapters exist. 5. **Lint**: `python3 scripts/kernel/lint.py` must report 0 findings for the new card. 6. **Dry run**: `python3 scripts/kernel/evals.py prepare --role <name> --out <dir>`, run the role on each case as a subagent, grade with `evals.py grade`; every case at its threshold. 7. Report the paths created and the tier the role starts at.