# Pi Design Brief — Delegation Router + Skill Model

**Date:** 2026-06-24
**Designs:** Pi (persist to a FILE, not just chat). **Builds:** Claude. **Approves:** Kisa.
**Frame:** the hybrid 3-tier skill model is locked (below). This brief covers the delegation piece plus two cross-readable process skills.

## Problem

Delegation to specialist agents must happen automatically, driven by the work in the moment, not by Kisa's or Claude's memory. Today it depends on Claude remembering to delegate, which fails under load. The `dispatch` skill is already the router brain (auto-invoke rules, a "do NOT invoke" list, the routing table, a brief template, and result synthesis). The missing piece is a reliable, cheap, low-noise TRIGGER that fires it. The same gap exists for Pi with its `pi-subagents`.

## Decisions locked — do not re-litigate

- **Router brain = the existing `dispatch` skill.** No new router skill. Enhance `dispatch`; do not duplicate it.
- **Trigger = Route 2:** a cheap conditional `UserPromptSubmit` hook (plain keyword/heuristic match, NO per-prompt LLM cost) that injects a one-line "run the dispatch check" only when a prompt is task-shaped. Not a per-prompt nag, not a standing instruction that leans on memory.
- **chief-of-staff is CONDITIONAL:** the hat is chosen by the task, never permanent and never forbidden. The router decides per task; neither Kisa nor Claude decides by memory.
- **Hybrid 3-tier skill model:** (1) shared operational skills stay at parity (already shared in `~/.claude/skills/`); (2) role-tailored process skills (Claude = build disciplines, Pi = design disciplines); (3) platform-bound capabilities (Claude crew, Pi subagents, vercel, firecrawl) left as-is.

## What Pi designs

1. **The trigger (Claude side).**
   - The keyword/heuristic set that catches task-shaped prompts (build, fix, design, deploy, refactor, audit, research, "and then", multiple files, etc.) while NOT firing on conversation, one-line answers, or simple lookups. Aim: high recall on real tasks, low noise.
   - The exact one-line reminder text it injects (points at the `dispatch` When-to-Invoke check).
   - The hook config: `UserPromptSubmit`, `type: command`, cheap (grep/regex, no LLM). Provide the exact `settings.json` block plus any tiny script. Reversible.
2. **Thresholds layered on `dispatch`.** Sharpen "delegate vs solo," and "full chief-of-staff orchestration vs one specialist vs parallel fan-out," so the hat is content-driven. Keep `dispatch`'s existing "do NOT invoke" list intact (single-domain, known-answer, one-liners).
3. **The Pi-side mirror.** The same trigger + router for Pi's `pi-subagents` (fan out research/design-exploration, compare options). PLUS a Pi "design-review + persist-the-deliverable" discipline that runs before Pi declares a design done — this directly fixes the 2026-06-24 drift where Pi finished a design only in chat and never wrote the file. Write it as a plain `~/.claude/skills/*.md` so both runtimes can read it.
4. **The two cross-readable process skills (tier 2):** (a) the delegation discipline, (b) Pi design-review/persist-deliverable.

## Constraints

- Content-driven, not memory-dependent. Automatic.
- Cheap: no per-prompt LLM cost; low noise (never fires on chat or one-liners).
- No redundant new router skill; enhance `dispatch`.
- Reversible (hook lives in `settings.json`; back up any global-config file before editing).
- Works for both runtimes (Claude crew via `dispatch`; Pi via `pi-subagents`).

## Deliverable

A short design doc, persisted to a file in `signal/docs/`: the trigger keyword set + injected text + exact hook config; the `dispatch` threshold edits; the Pi-side mirror + the design-review/persist skill; and how chief-of-staff stays conditional. Then Claude builds.
