Forbidden invocations
NEVER invoke /sdd-* skills from this workflow. SDD is an optional
user-installed ceremony; this skill ships self-contained and does not chain
SDD under any condition. If you need to refactor KATA, fixtures, cli/,
scripts/, or api/schemas/ pipeline, exit this skill first and invoke
/framework-development.
This boundary is mechanical, not advisory: scripts/lint-skills.ts rejects
any /sdd- mention outside this section. See:
.agents/skills/agentic-qa-core/references/skill-composition-strategy.md §4
(governs users who manually install SDD).
The sprint conductor turns a sprint into a fleet: one sprint-testing worker per ticket, launched the
moment a ticket really reaches the test environment, watched from the Sprint Board instead of from N
terminals. The conductor never tests. It boots the run, keeps the shared state that has exactly one
correct value (tokens, browser states, the sibling repos, the sprint record), decides who runs when,
answers the workers and relays what only the owner can decide.
This skill is thin on purpose. Almost everything it does already has a canonical home, and it points there:
| Concern | Canon |
|---|---|
Fleet mode: worker identity, briefs, launch.txt, rounds, auth one-writer, claims, ad-hoc retest, Live Progress, the dashboard, the sprint record |
sprint-testing/references/fleet-conductor.md |
| The board: commands per stage, the block a worker's brief carries, the four channels, drafts, decision cards, evidence, fixtures, the sentinel wake table, staged artifacts | sprint-testing/references/sprint-board.md, command reference cli/sprint-board/README.md |
| The transport: Run, Tasks, native launch, the mailbox, liveness, closing, the conductor handoff | orca-orchestration (SKILL.md, references/coordinator-playbook.md, references/gotchas.md) |
| The deploy check (the deployed environment is truth, the tracker is a hint) | sprint-testing/references/session-entry-points.md Step 1c |
| This skill: the boot, one watch pass, the round close, the resume | references/boot-and-resume.md, references/watch-pass.md, references/round-close.md |
owner ── board (Needs you, inbox, drafts) + chat ──┐
│
sentinel ─ wake ─> CONDUCTOR (this skill) ── Run mailbox ── workers (sprint-testing, fleet worker)
│ boot · watch pass · round close · resume │
└── tracker (read + sprint record) ── board CLI <────┘ (--by worker)
Compact Rules
The binding rules are the compact_rules block above; .agents/skills/REGISTRY.md carries them verbatim
into every briefing. Each one has its full text in the reference it names.
Read full SKILL.md when: booting a conductor cold, resuming one after a reboot, or deciding whether a
request belongs here, in sprint-testing or in orca-orchestration.
Preflight: Orca is required
Run the gate exactly as orca-orchestration §"The gate: three states" defines it (binary present AND the
runtime reachable; on Linux outside an Orca terminal the binary is orca-ide). This skill is the one
workflow skill that names the orchestrator, because the owner invoked it to run on Orca:
| Gate | This skill |
|---|---|
| state C, ready | continue with Phase 0 |
| state B, binary with an unreachable runtime | open the app once and re-check once, as orca-orchestration says; still unreachable → state A |
| state A, no binary | ONE line, then stop, nothing written: "/sprint-conductor runs on Orca and no reachable Orca runtime is on this machine; run the sprint with /sprint-testing sprint-wide and N executors, which writes paste-ready launch lines." |
The conductor runs as a TOP-LEVEL session. Started as a supervised worker of another conductor, it has no
fleet wherever the app's nested-worker depth is 1 (orca-orchestration/references/gotchas.md G77): a session
above it launches it with agent launch and reads its reports from that session's own Run inbox.
The one line is the whole report: no install walkthrough, no second paragraph. sprint-testing,
fleet-conductor.md and sprint-board.md keep their silence about the orchestrator unchanged; the
fan-out without Orca stays theirs.
Phase 0 — Session resume check + Session Init
Orchestration & Session contracts: this skill follows
agentic-qa-core/references/orchestration-doctrine.md(mandatory subagent dispatch — main thread is command center) ANDagentic-qa-core/references/session-management.md(Phase 0 resume check, plan-first persistence at.session/<skill-slug>/<scope>/, archive on completion). Phase 0 (resume check) and Phase 1 (plan write) are NOT optional.
0.0 Arguments ($ARGUMENTS, all optional): <n> the sprint number (default: the CURRENT board,
checked against the tracker's sprint); --cap <n> the worker cap for this session (default
orchestration.max_workers in .agents/project.yaml); --no-watch boot without arming the sentinel;
--resume the machine rebooted or this session was resumed while workers were live.
0.1 Resume check (agentic-qa-core/references/session-management.md §4). The scope is sprint-<N>.
Check <<PRIMARY_ROOT>>/.session/sprint-conductor/sprint-<N>/kickoff.md (from a worktree, say so in one
line and look in the primary). It exists → read it and the tail of passes.md, surface the Run, the
sentinel, the live workers and the last pass, and offer resume / restart / abort. --resume, or live
workers in the Run, means the resume path of references/boot-and-resume.md §4 replaces boot Steps 2-6.
0.2 Session Init. Create the scope directory and write plan.md. The scope holds only what no other
canon owns:
| File | Holds | Writer |
|---|---|---|
plan.md |
the session plan (agentic-qa-core/references/session-management.md §6 schema): the sprint, the cap, the board slug, the Run, the watch on or off |
the conductor, at Session Init |
kickoff.md |
board slug, Run id, the sentinel's task id, cap, pre-flight result and every logged deviation, the deployed build per repo (the baseline every pass compares) | the conductor, rewritten at boot and resume |
passes.md |
one line per watch pass (the line §"The watch pass" reports), append-only | the conductor |
refinements.md |
lessons PROPOSED for this skill (agentic-qa-core/references/skill-refinement-protocol.md) |
the conductor |
The fleet files (launch.txt, roster.md, claims.md, each <KEY>/brief.md, the reports) stay in
.session/sprint-testing/sprint-<N>/ (fleet-conductor.md §4-§5, §8), the Run files in
.session/orchestration/<slug>/ (orca-orchestration §Quick start), the board's data in
.session/sprint-board/. Never a second copy here.
Boot: seven steps, one pass
| Step | Does | Owner of the detail |
|---|---|---|
| 1 | Load the skills: this one, then sprint-testing with references/fleet-conductor.md and references/sprint-board.md, then orca-orchestration with every stub in orchestration.orchestrator_skills |
orca-orchestration §Quick start step 2 |
| 2 | Resolve the sprint and the board (board sprints, use or new, people), sync --discover, add late tickets, start the server when the page does not answer |
sprint-board.md §1 row "0 boot" |
| 3 | The conductor-owned pre-flight: tokens, browser states, the credential check, the sibling-repo fetch gate and drift counts, the schema sync or its logged skip, the deployed build per repo | references/boot-and-resume.md §2 |
| 4 | Bind the sprint's Run (its id from kickoff.md, the roster or the board timeline) or create it; probe the reply direction ONCE before any worker depends on it |
references/boot-and-resume.md §3, orca-orchestration/references/coordinator-playbook.md §8 |
| 5 | Arm the sentinel (skip with --no-watch) |
sprint-board.md §7 |
| 6 | Read what waits: the Run mailbox, the board inbox plus the bounded listen --since replay, answers the owner gave in chat (relay, then mirror to the board), then the first watch pass |
sprint-board.md §3, references/watch-pass.md |
| 7 | One status screen for the owner | §"Status screen" below |
Then stay in conductor mode: answer workers, keep the board current, run one watch pass on each sentinel wake and re-arm it, close each worker and each round as they finish.
What it asks, and what it never does
It asks only the two things in compact rule 3. It never messages a developer (Slack or otherwise) without
the owner's explicit order for that message (sprint-board.md §3-§4), never commits, and never prints a
credential: values are read by name only (Critical Rule #1).
Status screen
In the owner's language, counts and tables, never a narrative (orca-orchestration hard rule 23):
- In the test environment: each ticket launched, held (and on whom), skipped or new, one reason each.
- Who waits on whom: workers waiting on the owner, the owner waiting on developers (open waits and drafts), tickets waiting on a deploy.
- What the owner must decide: each open question with its options, numbered so one line answers it, and for each blocker the person to ask (developer, product owner, or a named owner of the access).
- Boot facts: board URL, the sentinel armed (its task id) or not, the Run id, the pre-flight result and every deviation.
The watch pass
One pass per sentinel wake (or per scheduled pass on a harness without background tasks), then re-arm.
Guard, detect, triage each NEW and RECHECK ticket, prepare and launch (the N=1 generate path), the
every-pass reads, one report line. A pass that fails a step logs it and moves on; a pass never blocks.
Full procedure: references/watch-pass.md. The wake reasons and what each one asks of the conductor:
sprint-board.md §7.
Closing a worker and a round
When a worker reports done: read back its ticket's final status yourself, read its cost footer, close it
(orca-orchestration/references/coordinator-playbook.md §6), then the round-close subagent verifies the
artifacts and writes the sprint record. When every issue of the round is closed, say "round complete" in
the status and form the next round (fleet-conductor.md §6). Full procedure: references/round-close.md.
Subagent Dispatch Strategy
This skill is per-sprint scope: <scope> = sprint-<N>. Session state lives at
<<PRIMARY_ROOT>>/.session/sprint-conductor/sprint-<N>/ per agentic-qa-core/references/session-management.md
§3 + §9. Every dispatch follows the 7-component briefing (agentic-qa-core/references/briefing-template.md);
the pattern per step follows agentic-qa-core/references/dispatch-patterns.md. The workers themselves are
NOT subagents: they are supervised sessions launched through orca-orchestration (fleet-conductor.md §2).
| Step | Pattern | Subagent role | Reference |
|---|---|---|---|
| Boot pre-flight | inline (main thread) | none: logins stay in this terminal (credentials never travel into a briefing) and the drift result must be seen by the conductor that seeds the briefs | references/boot-and-resume.md §2 |
| Watch pass: detect + triage | inline (main thread) | none: each decision is the conductor's and is recorded on the board | references/watch-pass.md §1-§3 |
| Watch pass: brief seeding | Parallel | one subagent per arriving ticket: sync the ticket, read its story and ACs verbatim, its module's recorded fixtures, write <KEY>/brief.md; returns the brief path |
references/watch-pass.md §4, fleet-conductor.md §4 |
| Status read for a large fleet | Single | one subagent reads every worker's ## Live Progress and the BLOCKED_ sweep and returns the dashboard table |
fleet-conductor.md §10 |
| Round close | Single per finished worker; Sequential across workers of the same Epic | one subagent verifies the artifacts and writes the sprint record, returning a count table; a second close of the same Epic is dispatched only after the first returned, because both would publish its ## Module Context (QA) section |
references/round-close.md §2 |
| Resume | inline (main thread) | none: handles, the sentinel and the resume messages are the conductor's | references/boot-and-resume.md §4 |
Why inline for triage and resume: they are decisions and transport, not reading. Delegating them adds a handoff that drops the one fact that mattered (a held ticket's blocker, a worker's new handle).
On any subagent failure: STOP, report which pass, ticket or step failed with full context, present retry / skip-ticket / abort. No auto-fix. A skill that itself broke (a wrong step, a missing verifier, a stale rule) is reported upstream per
../agentic-qa-core/references/upstream-feedback.md: drafted and redacted locally, filed only on explicit OK, verified withgh issue view.
Skills to load
| Skill | Load when |
|---|---|
sprint-testing (+ references/fleet-conductor.md, references/sprint-board.md) |
boot Step 1, always |
orca-orchestration + the stubs in orchestration.orchestrator_skills |
boot Step 1, always (the gate passed) |
acli / xray-cli |
reading or writing the sprint record and reading back a ticket's status ([ISSUE_TRACKER_TOOL], [TMS_TOOL]) |
evidence-artifact |
the round close finds a ticket or a bug without its evidence page and the conductor builds it from the worker's pack (sprint-board.md §6) |
git-flow-master |
before reading a merge or Merge Line state for the deploy check (git-flow-master/references/observer.md) |
Pseudocode tags used here
| Tag | Resolves to | Defined in |
|---|---|---|
[ORCHESTRATION_TOOL] |
the orchestration CLI: Run, launch, mailbox, terminal read and close | orca-orchestration/SKILL.md |
[ISSUE_TRACKER_TOOL] |
acli, or {{ISSUE_TRACKER_CLI}} |
AGENTS.md Tool Resolution |
[TMS_TOOL] |
xray-cli (jira-xray) or acli (jira-native) |
AGENTS.md Tool Resolution |
Session close
The conductor's session closes when the owner ends the run or the sprint closes (the board's
snapshot --mode report and archive, sprint-board.md §1). Before the closing message:
- Every live worker is closed or listed with its reason to stay open (
orca-orchestrationhard rule 1), every granted write claim shows a release (fleet-conductor.md§13). kickoff.mdis current, so the next conductor resumes from it (orca-orchestration/references/coordinator-playbook.md§8).- The session-footer contract (
agentic-qa-core/references/session-footer-contract.md): the screenshot list (usually none of the conductor's own) and the footer with skills, MCPs and CLIs used. Framing: Execution through workers: the testing levels the fleet's ATRs exercised, read from the round-close reports, with "none" stated per untouched level. - Lessons are PROPOSED to
refinements.mdperagentic-qa-core/references/skill-refinement-protocol.md, never applied to a live skill; the footer counts them.
References
| Reference | Read when |
|---|---|
references/boot-and-resume.md |
Boot Steps 3-4 (the conductor-owned pre-flight, the Run and the reply probe) and the resume after a reboot or a session resume |
references/watch-pass.md |
Every sentinel wake: guard, detect, triage, prepare and launch, the every-pass reads, the redeploy notice, the report line |
references/round-close.md |
A worker reported done, or a round ended: the read-back, the verification subagent, module learnings, the sprint record, closing the worker |
sprint-testing/references/fleet-conductor.md |
Seeding any brief, writing launch.txt, forming a round, claims, the dashboard |
sprint-testing/references/sprint-board.md |
Any board command, the worker brief block, the channels, decision cards, the sentinel |
orca-orchestration/SKILL.md |
The gate, launching and closing workers, waiting on the mailbox |
Pre-flight checklist
- Gate passed (or the one line said and nothing written)
- Sprint and board resolved; the cap resolved (asked only when the count exceeds it)
- Pre-flight green or each deviation logged in
kickoff.mdand in every brief it affects - Run bound or created; reply direction probed once
- Sentinel armed with its baseline (or
--no-watchstated in the status) - Mailbox, inbox and the
listen --sincereplay read; chat answers relayed and mirrored - One status screen sent: counts, who waits on whom, numbered decisions, boot facts