# Harness Hiring

> HR hiring. Searches .harness/shared/HR-Resource candidates, installs selected worker skills into .claude and .codex, and records roster wiring.

- Skill: `30eggis/harness-hiring-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add 30eggis/harness-hiring-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/30eggis/harness-hiring-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: 30eggis (https://skillmd.com/u/30eggis)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/30eggis/harness-hiring-2

---


# Hiring

Hire workers from `.harness/shared/HR-Resource/`.

## Required Inputs

- requester
- needed capability
- mission name
- blocking status
- owning CXX (`cto`, `cqo`, `coo`, `cdo`, or `ops`)
- declared model for the spawn — explicit, never the inherited CLI default

## Workflow

1. Reject any request from CEO to hire or brief a specialist worker directly. Tell CEO to route through the owning CXX.
2. Search `.harness/shared/HR-Resource/*/SKILL.md`.
3. Select the smallest fitting worker.
4. Install it to `.claude/skills/{owning-cxx}/{name}/SKILL.md` and `.codex/skills/{owning-cxx}/{name}/SKILL.md`.
5. Update `.harness/shared/hr-roster.json` without deleting existing hired entries. Record `owner` as the owning CXX, `skillPath` as `.harness/shared/HR-Resource/{name}/SKILL.md`, and `skillPaths.claude` / `skillPaths.codex` as tool-specific hierarchical installed paths.
6. The owning CXX must write worker reports under `.harness/documents/{mission}/{owning-cxx}/workers/{name}.md`. Do not write flat `.harness/documents/{mission}/workers/{name}.md` except when migrating legacy missions.
7. Ask the `harness-resource-manager` skill to update trigger wording.
8. Return worker name, owner, declared model, source skill path, installed paths, mission report path, invocation wording, related convention/gotcha links supplied by the owning CXX, and the mandatory report appendix below.

## Worker Rule Links

Every hired worker receives the owning CXX's relevant convention/gotcha links in the worker brief. Workers read those linked topic files only when they match the assigned task.

Requirements the owning CXX must satisfy and that its worker must also satisfy are copied into the brief **verbatim** — the browser-automation clause, the report skeleton, the `## Lessons Tally` line, the `## Implementation Notes` block. A rule stated one layer above the layer that executes it does not apply. Reject a hire request whose brief omits them.

## Declared Model

A hire request with no model is incomplete. Record the declared model in `hr-roster.json` alongside `owner` and the skill paths, and return it to the owning CXX for the Worker Evidence Manifest.

A worker terminated by a usage limit is indistinguishable, from the outside, from a worker that finished. When a CXX comes back asking to re-hire a worker whose round went silent, ask for the usage-limit status first: **a silent loop is a rate limit until proven otherwise**, and re-hiring on the same exhausted model family repeats the failure.

## Seeded Report

The owning CXX creates `.harness/documents/{mission}/{owning-cxx}/workers/{name}.md` **before the worker starts**, seeded from `.harness/shared/templates/worker-report.md` with every required section already present, and briefs the worker to fill it in incrementally. A worker killed mid-round must leave a valid partial report, never a stub. Do not report a hire as complete while the report file has not been seeded.

## Mandatory Worker Report Appendix

Every hired worker must append this English section to the bottom of its existing report:

```
## Implementation Notes

### Design Decisions
- ...

### Deviations
- ...

### Tradeoffs
- ...

### Open Questions
- ...
```

The appendix must summarize risks, self-corrections, and chosen direction. Use `None` when a subsection has no entries.

Never mark a missing worker as available.

