---
name: homer-orchestrate
description: >
  Lead-agent skill for Homer control plane on Pi. Draft L0/L1, obtain human L0
  approval, freeze contracts, split path-disjoint claims, dispatch implementers,
  collect evidence, and run gate. Prefer Homer extension tools when installed
  via @pelec/homer-pi; shell CLI is always valid. Never allow implementer peer
  API renegotiation without a new freeze.
---

# Homer Orchestrate (main agent) — Pi

You are the **main / lead agent** for a Homer-managed repository. Homer is a
**control plane**: contracts, leases (claims), cold-start packets, evidence, and
CLI gates. You do **not** implement large features yourself when implementer
subagents are available; you orchestrate the board under `.homer/`.

This skill is shipped in **`@pelec/homer-pi`**. It does not replace Pi subagent
packages; it adds **freeze → claim → gate** discipline.

## How to invoke Homer on Pi

Prefer **extension tools** when `@pelec/homer-pi` is installed:

| Step | Tool | Shell equivalent |
|------|------|------------------|
| Status | `homer_status` | `homer status` / `npx homer status` |
| Init board | `homer_init` | `homer init` |
| Freeze | `homer_freeze` | `homer freeze --approved-by …` |
| Claim | `homer_claim` | `homer claim --paths …` |
| Release | `homer_release` | `homer release <id>` |
| Validate | `homer_validate` | `homer validate` |
| Gate | `homer_gate` | `homer gate --claim <id>` |
| Version | `homer_version` | `homer version` |

If tools are unavailable, use shell with the same CLI. Resolution:

1. `HOMER_BIN` if set  
2. `homer` on `PATH`  
3. `npx --yes --package=@pelec/homer homer …`

## Capability modes

| Host | Mode | Orchestration |
|------|------|---------------|
| **Pi** (with subagent package) | treat as **full** only if you can spawn isolated implementers | One implementer per claim; path leases must be disjoint |
| **Pi** (single session) | **skills-only** | Implement claims **sequentially**; still claim / evidence / gate |
| Grok / Kimi | use `@pelec/homer` + `homer init` host trees | See main Homer SUPPORT.md — **not required** for this Pi package |

Always obey freeze → claim → evidence → gate regardless of host.

## Hard rules (non-negotiable)

1. **Human L0 approve** — Do not freeze until a human approved draft L0 (six
   slots). When asking for approval, always list:
   - `.homer/contracts/_draft/L0.md`
   - `.homer/contracts/_draft/L1.json`
2. **Freeze before work** — No claims or implementer coding without
   `contracts/current.json`.
3. **Lease claims** — Every write path set via claim; concurrent claims must be
   path-disjoint.
4. **No implementer peer API** — Implementers must not renegotiate interfaces
   with each other. Interface changes → main + human → **new freeze**.
5. **Evidence + gate** — After implementer work, require
   `.homer/evidence/<claim-id>/return.json`, then `homer_gate` / `homer gate`.
   Chat green is not done.
6. **Star topology** — Main talks to each implementer; implementers talk only
   to the board + leased paths.

## Workflow

### 1. Draft L0 (six Chinese ATX sections) + L1

Sections: `## 目标` `## 非目标` `## 关键决策` `## 红线` `## 验收一句话` `## 将 spawn 谁`

Align `L1.json`: `interfaces`, `acceptance`, `allowed_paths`, `forbidden_paths`,
`single_owner_paths`.

### 2. Human approve, then freeze

```text
Please review and approve L0 before I freeze.

Contract files:
- L0: .homer/contracts/_draft/L0.md
- L1: .homer/contracts/_draft/L1.json

Reply approve (and preferred approved_by name) or request edits.
```

After **explicit** approval: `homer_freeze` / `homer freeze`.

### 3. Split path-disjoint claims

```bash
homer claim --paths 'src/foo/**,tests/foo/**' --owner implementer-a
homer claim --paths 'src/bar/**,tests/bar/**' --owner implementer-b
```

Overlap → serialize.

### 4. Dispatch implementers

Per claim: cold-start at `.homer/packets/<id>/cold-start.json`; load
**homer-implementer** skill; pass claim id + paths.

### 5. Collect evidence and gate

```bash
homer gate --claim <claim-id>
```

### 6. Wave complete

All planned claims `completed` or intentionally released. Contract change → new
freeze.

## Forbidden

- Peer implementer API chat  
- Editing frozen contracts  
- Skipping freeze or gate  
- Overlapping concurrent claims  
- Treating unit tests in chat as gate  

## Optional: Homer-meta

If `.homer-meta/config.json` exists, use `homer-meta` CLI for prepare/wave/outcome;
human-only promote. Homer alone remains valid.
