<!-- last-reviewed: 2026-06-01 · owner: human-resources -->
SOP-018 — Hire a new agent
SOP · owner: Human Resources. Layer: SOP/Runbook (
docs/canon.md). Operationalizeshr/hiring-playbook.md(the authoritative procedure) — this SOP links it, it does not restate it. Pairs with SOP-019 (onboarding).
Interface Contract
- Inputs: staffing request ← from hiring Unit Lead / Principal · trigger: “staffing request approved”
- Outputs: approved agent file (
.claude/agents/<slug>.md) → to Archivist · trigger: “artifact approved” - Outputs: updated ORG.md → to Documentarian · trigger: “document changed”
- Handoff trigger (in): a justified, approved staffing request reaches HR
- Handoff trigger (out): the agent file is drafted, placed in ORG.md, and approved for preservation
- Definition of Done before handoff:
- [ ] Business need justified against a standard business function / real gap (
ORG.mdcoverage) - [ ] Overlap check done against the roster; conflicts surfaced, not silently resolved
- [ ] Agent file in the standard format (scoped tools; clear triggers; “stay in your lane” guardrail)
- [ ] Company policy applied: GR-1/2/3; no personal-info access (PA-only); omni-intake to Archivist; complete JD
- [ ]
ORG.mdupdated (unit section/staff + roster row); chart updated and validated - [ ] Roster-freeze checked (
hr/policies/roster-freeze.md) — if active, the exception path is followed - [ ] Learnings captured to
docs/knowledge/if the hire surfaced one
- [ ] Business need justified against a standard business function / real gap (
"artifact approved","document changed", and"staffing request approved"are verbatim registry phrases (docs/handoff-triggers.md);staffing request approved(and HR’s internalhire placed) are Wave 1 additions, Operations-approved 2026-06-01.
Purpose
Bring a justified new role from “approved need” to “an agent placed in the org,” applying company policy to every hire so no role is vague, redundant, or non-compliant.
When to use
A Unit Lead (or the Principal) submits a justified staffing request for a dedicated
employee per hr/policies/staffing-and-delegation.md — and the roster is not
frozen (or the freeze exception path applies; see Guardrails).
Flow
flowchart LR
A["Approved staffing<br/>request"] --> B["Open role +<br/>overlap check"]
B --> C["Draft agent file<br/>(standard format)"]
C --> D["Apply company<br/>policy"]
D --> E["Place in ORG.md<br/>+ validate chart"]
E --> F["Hand to Archivist<br/>(artifact approved)"]
F --> G["Onboard (SOP-019)"]
classDef s fill:#1d4ed8,color:#fff,stroke:#1e3a8a
class A,B,C,D,E,F,G s
Text fallback: receive the approved staffing request → open the role and run an
overlap check against the roster → draft the agent file in the standard format →
apply company policy → place it in ORG.md and validate the chart → hand the
approved file to the Archivist (artifact approved) → hand to onboarding (SOP-019).
Steps
- Confirm the freeze status (
hr/policies/roster-freeze.md). If active and this is a genuine new hire, stop unless the exception path is authorized (Guardrails). - Justify the need against
ORG.md→ Standard business functions — coverage. - Open the role: slug, one-line purpose, why needed; check the roster for overlap — surface conflicts, propose how to divide; do not duplicate a role.
- Decide placement: existing unit / new unit (provisional name OK) / staff to
the Principal. Keep one Lead per unit; mark
unassignedrather than inventing a unit. - Draft
.claude/agents/<slug>.mdin the standard format (scopedtools; cleardescriptiontriggers; body with role, process, and a “stay in your lane” guardrail). Complete JD perhr/policies/job-descriptions.md. - Apply company policy (the DoD list above) — GR-1/2/3, personal-info = PA-only, omni-intake, complete JD.
- Place in
ORG.md: add/extend the unit section (Lead, Members, Mission, Owned artifacts) or the staff role; add a roster row; update and validate the chart. - Hand off: emit
"artifact approved"to the Archivist for the new file, and"document changed"to the Documentarian forORG.md. - Onboard via SOP-019; confirm the hire to the requester (who, unit, role, access).
Roles / approvers
Run by HR. Approval of the role/placement: the hiring Lead for unit members;
the Principal for anything touching ORG.md, rules, or canon (program RACI §7,
and direct-to-Principal units). The Archivist preserves; HR does not self-archive.
Guardrails
- Roster freeze (active): during the program, no new hires. The only path is the
policy exception (
hr/policies/roster-freeze.md): notify COO/PMO → apply → the affected wave’s reconciliation is re-run. Do not bypass. - Personal information is PA-only — never grant a new hire such access; route the need through the PA. No hire declares an edge that hands off personal data.
- HR edits
ORG.mdand agent files only — neverarchive/or other units’ artifacts. Link policy; do not restate it.
Job aid: docs/units/human-resources/job-aids/JA-018-onboard-agent.md
(covers the hire→onboard run). See also: hr/hiring-playbook.md,
docs/sop/SOP-019-onboard-agent.md, docs/sop/SOP-020-roster-update.md,
docs/units/human-resources/charter.md, docs/documentation-program/interface-contract-spec.md.