feat(conductor): consolidate all operations behind single entry point
CI / test (20) (push) Successful in 13s
CI / test (22) (push) Successful in 13s

- add OPERATIONS table to conductor.agent.md (init, doctor, onboard,
  index, memory, telemetry, design, plan, build, verify, integrate,
  fast-track) so the conductor agent runs any named operation directly
  instead of only the full pipeline
- thin every skill file to a one-line pointer into conductor's
  OPERATIONS table, removing duplicated procedure text (contributor
  rule: no duplicated behavior in prompts/skills)
- document the operations table in README.md and AGENTS.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-09-10 03:20:37 +02:00
co-authored by Copilot
parent 9fa9623b41
commit 3cbd929901
15 changed files with 115 additions and 85 deletions
+30
View File
@@ -16,8 +16,38 @@ Copilot CLI are stateless (they run to completion and return one final result; t
pause mid-task for a live human reply). Any question that needs a real answer must be asked
directly, in conductor's own foreground turn, never through the `agent` tool.
## OPERATIONS
Every action this harness performs is reachable through this one agent — pick the operation
that matches the user's request, run only its steps, then stop and report. Recognize the
operation from an explicit name (`onboard`, `doctor`, `init`, `index`, `memory`, `telemetry`,
`design`, `plan`, `build`, `verify`, `integrate`, `fast-track`) or from plain language
(for example "get me up to speed here" → `onboard`, "is my setup broken" → `doctor`, "just fix
this one small bug" → `fast-track`). When the request describes new product work with no
named operation, run the FULL PIPELINE (`PROCEDURE` below) end to end.
| Operation | Trigger | Steps |
| --- | --- | --- |
| `init` | Repair or create harness baseline | `lh init --yes` → confirm `.agents/harness.config.json` and `.agents/memory/INDEX.md` exist → `lh doctor` → report created paths and blockers only. |
| `doctor` | Check environment, config, host capability | `lh doctor` → `lh host` if orchestration capability matters → `lh graph` if repo structure matters → report failures with exact commands and exit status → suggest the smallest next fix. Never mutate state unless asked to repair. |
| `onboard` | New contributor/agent needs a map of harness state | `lh doctor` → `lh index --stats --budget 4000` → read `.agents/memory/INDEX.md` only → `lh graph` → summarize commands, state paths, conventions, blockers. Pull shards only if asked for deeper history. |
| `index` | Repo understanding under a token budget | `lh index --budget <N> --focus <glob>` (default budget 4000, focus `.`) → add `--stats` when sizing/onboarding → `lh graph` when structure matters → return paths and facts, never dumps. |
| `memory` | Read, write, or compact memory shards | `lh memory list` to inspect → `lh memory get --shard <name>` to read one → `lh memory put --shard <name>` to write durable facts → `lh memory scan` before any risky write → `lh memory compact` when a shard grows noisy. Never write secrets. |
| `telemetry` | Start/record/end a run, or report on one | `lh run start` → `lh run event` per phase transition → `lh run end` → read `.agents/runs/<id>/board.md` for live state → `lh report <runId>` for a markdown summary. |
| `design` | Decisions are missing or incomplete | Run inline yourself — see `DESIGN PHASE` below. Never delegate. |
| `plan` | Decisions are complete, need spec + DAG | Read `decisions.md` → invoke `architect` for `spec.md` → invoke `splitter` for `plan.dag.json` → `lh graph` → report spec path, DAG path, acceptance ids, blockers. |
| `build` | Lanes are planned, ready to execute | `lh host` for strategy → `lh lane create` per write lane → run builder ⇄ verifier Ralph loop per lane → record failures with `lh memory put --shard failures`. |
| `verify` | Check commands, gates, acceptance, scope only | Invoke `verifier` for command checks → run configured verify commands → `lh graph` → check acceptance ids individually → check scope globs → return a terse pass/fail table only. Never edit files. |
| `integrate` | Lane branches are complete, need merge | Invoke `integrator` → `lh lane merge` one lane at a time → resolve safe local conflicts, escalate conflicting acceptance criteria → one final full verify → request reviewer approval. Never merge lanes in parallel. |
| `fast-track` | Small, unambiguous, brownfield change | Confirm it is small and brownfield (escalate to full pipeline if not) → single write lane → same Ralph loop (builder ⇄ verifier) → same journal (`.agents/runs/<id>/journal.md`) → `lh graph` → request reviewer approval before completion. |
| *(none named)* | New feature/change, decisions not yet gated | Run the FULL PIPELINE: `PROCEDURE` steps below, start to finish. |
## PROCEDURE
Run this full sequence only when no single operation above covers the request (a new feature
or cross-cutting change). Otherwise run just the matched operation's steps from the table
above and report — do not run the rest of this procedure.
1. Run `lh doctor`.
2. If it reports `config not initialised`, run `lh init --yes` (non-interactive defaults), then run `lh doctor` again.
3. Do not proceed past a `lh doctor` failure you cannot self-heal (for example missing `verify.commands`); report the exact failing check and stop.
+3 -7
View File
@@ -5,11 +5,7 @@ description: Use when executing planned read and write lanes through lh host and
# build skill
1. Invoke `.github/agents/conductor.agent.md`.
2. Run `lh host` first through the conductor.
3. Obey parallel or sequential strategy printed by `lh host`.
4. Use `lh lane create` for write lanes.
5. Run builder ⇄ verifier Ralph loops.
6. Record failures with `lh memory put --shard failures`.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `build` operation.
2. Conductor runs only the `build` row of its OPERATIONS table and reports the result.
Stop on max Ralph iterations and escalate.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -9
View File
@@ -5,13 +5,7 @@ description: Use when starting gated design discovery before planning, especiall
# design skill
1. Invoke `.github/agents/conductor.agent.md` and run only its DESIGN PHASE section.
2. Require numbered questions with numbered recommended answers, asked directly in the
agent's own turn — never delegated to a subagent.
3. Mark one answer as recommended.
4. Always include a freeform `Other:` option.
5. Persist final answers to `.agents/specs/<slug>/decisions.md`.
6. Stop until every required question is answered.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `design` operation.
2. Conductor runs only the `design` row of its OPERATIONS table and reports the result.
Do not infer decisions. Do not start planning before the user gate. Do not write an "open
assumptions" section or any equivalent.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -6
View File
@@ -5,10 +5,7 @@ description: Use when checking harness environment, configuration, host capabili
# doctor skill
1. Run `lh doctor`.
2. Run `lh host` when orchestration capability matters.
3. Run `lh graph` when repository structure matters.
4. Report failures with exact commands and exit status.
5. Suggest the smallest next fix.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `doctor` operation.
2. Conductor runs only the `doctor` row of its OPERATIONS table and reports the result.
Do not mutate project state unless the user asked for repair.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+4 -8
View File
@@ -3,13 +3,9 @@ name: fast-track
description: Use for a small brownfield change that can skip spec and DAG but still needs Ralph and journal discipline.
---
# fast-track skill
# fast track skill
1. Confirm the change is small and brownfield.
2. Use a single write lane.
3. Keep the same Ralph loop: builder ⇄ verifier.
4. Keep the same journal in `.agents/runs/<id>/journal.md`.
5. Run `lh graph`.
6. Request reviewer approval before completion.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `fast-track` operation.
2. Conductor runs only the `fast-track` row of its OPERATIONS table and reports the result.
Do not fast-track ambiguous or cross-cutting work.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -6
View File
@@ -5,10 +5,7 @@ description: Use when needing repository understanding under a token budget befo
# index skill
1. Run `lh index --budget <N> --focus <glob>`.
2. Add `--stats` when onboarding or sizing work.
3. Prefer index output before raw reads.
4. Follow with `lh graph` when structure matters.
5. Read files by hand only after narrowing scope.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `index` operation.
2. Conductor runs only the `index` row of its OPERATIONS table and reports the result.
Return paths and facts, not dumps.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -6
View File
@@ -5,10 +5,7 @@ description: Use when initializing lean harness state in a repository or repairi
# init skill
1. Invoke `lh init`.
2. Confirm `.agents/harness.config.json` exists.
3. Confirm `.agents/memory/INDEX.md` exists.
4. Run `lh doctor` after initialization.
5. Report created paths and blockers only.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `init` operation.
2. Conductor runs only the `init` row of its OPERATIONS table and reports the result.
Delegate orchestration to `.github/agents/conductor.agent.md` when initialization is part of a full run.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -7
View File
@@ -5,11 +5,7 @@ description: Use when planned lane branches are complete and must be merged sequ
# integrate skill
1. Invoke `.github/agents/integrator.agent.md`.
2. Merge lanes one at a time with `lh lane merge`.
3. Resolve local conflicts only when safe.
4. Escalate conflicting acceptance criteria.
5. Run one final full verify.
6. Request final reviewer approval.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `integrate` operation.
2. Conductor runs only the `integrate` row of its OPERATIONS table and reports the result.
Never merge lanes in parallel.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -6
View File
@@ -5,10 +5,7 @@ description: Use when retrieving, writing, compacting, or scanning lean harness
# memory skill
1. Use `lh memory list` to inspect shards.
2. Use `lh memory get --shard <name>` to read one shard.
3. Use `lh memory put --shard <name>` to write durable facts.
4. Use `lh memory scan` before risky writes.
5. Use `lh memory compact` when shards grow noisy.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `memory` operation.
2. Conductor runs only the `memory` row of its OPERATIONS table and reports the result.
Never write secrets to memory.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -6
View File
@@ -5,10 +5,7 @@ description: Use when a new contributor or agent needs a concise map of harness
# onboard skill
1. Run `lh doctor`.
2. Run `lh index --stats --budget 4000`.
3. Read `.agents/memory/INDEX.md` only.
4. Run `lh graph`.
5. Summarize commands, state paths, conventions, and blockers.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `onboard` operation.
2. Conductor runs only the `onboard` row of its OPERATIONS table and reports the result.
Pull shards only when the user asks for deeper history.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -6
View File
@@ -5,10 +5,7 @@ description: Use when decisions are complete and the harness must produce a spec
# plan skill
1. Read `.agents/specs/<slug>/decisions.md`.
2. Invoke `.github/agents/architect.agent.md` for `.agents/specs/<slug>/spec.md`.
3. Invoke `.github/agents/splitter.agent.md` for `.agents/specs/<slug>/plan.dag.json`.
4. Run `lh graph`.
5. Report spec path, DAG path, acceptance ids, and blockers.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `plan` operation.
2. Conductor runs only the `plan` row of its OPERATIONS table and reports the result.
Do not build before the DAG passes structural gates.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -6
View File
@@ -5,10 +5,7 @@ description: Use when starting, recording, ending, or reporting a harness run an
# telemetry skill
1. Start with `lh run start`.
2. Record phase changes with `lh run event`.
3. End with `lh run end`.
4. Read `.agents/runs/<id>/board.md` for current state.
5. Run `lh report <runId>` for a markdown summary.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `telemetry` operation.
2. Conductor runs only the `telemetry` row of its OPERATIONS table and reports the result.
Keep event messages short and machine-readable.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.
+3 -7
View File
@@ -5,11 +5,7 @@ description: Use when checking configured commands, lh graph, acceptance criteri
# verify skill
1. Invoke `.github/agents/verifier.agent.md` for command checks.
2. Run configured verify commands.
3. Run `lh graph`.
4. Check acceptance ids individually.
5. Check scope globs.
6. Return a terse pass/fail table only.
1. Invoke `.github/agents/conductor.agent.md` and ask for the `verify` operation.
2. Conductor runs only the `verify` row of its OPERATIONS table and reports the result.
Do not edit files during verification.
Do not duplicate conductor's steps here -- see `conductor.agent.md` section OPERATIONS for the authoritative procedure.