feat(conductor): consolidate all operations behind single entry point
- 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:
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user