| name | lead-proceed |
| description | Required first step for implementation tasks. Use when starting from a ticket path or task description so existing specs, tickets, plans, skeletons, and session context are routed before code is touched. |
Proceed
Target: user request
Invariants
- Route only; do not implement, plan, or write skeletons here.
- Invoke
ws:lead-workflow-manual first when workflow primitives are not already in context.
- Assess from conversation state and artifacts only; do not read source code.
- Pipeline order is fixed: spec -> ticket -> skeleton -> implementation.
- Execution mode is single; split multi-scope work into separate tickets.
- Always route implementation through
ws:lead-implement.
- Existing non-epic
ready/ ticket path skips ws:lead-write-ticket; existing todo/ ticket path routes through ready promotion before implementation.
- Epic ticket paths are board artifacts, never implementation targets; stop and route to child ticket creation, promotion, or proceed.
- Actionable inline target invokes
ws:lead-write-ticket, captures Ticket:, then re-checks status; todo/ output must promote to ready/ before implementation.
- Exploratory target stops and suggests
ws:lead-discuss.
- Announce routing before execution; chain stages without pausing for confirmation.
- Prefix stages receive gate-suppression context in arguments.
- Warmth is current-session context, not target identity.
On: invoke
1. Assess
- Parse target: ticket path or inline description.
- If ticket path: read ticket; extract status, category, scope, phases,
plans:, and skeletons:.
- Check artifacts: ticket frontmatter,
ai-docs/.plans/, skeleton stubs, or integration tests.
- If inline: assess from description only.
- Classify warmth from conversation state.
- Classify exploratory vs actionable for
judge: needs-ticket.
2. Route
- Invoke
ws:lead-write-spec with:
Chained from ws:lead-proceed - write any planned entries without asking; the session reminder will still emit.
- Apply
judge: needs-ticket.
- If invoking
ws:lead-write-ticket, append:
Chained from ws:lead-proceed - treat spec coverage as satisfied whether ws:lead-write-spec wrote anything or exited early.
- If the current or captured ticket category is
epic, stop implementation routing; suggest ws:lead-write-ticket for a child ticket, ws:lead-discuss to promote an existing child, or ws:lead-proceed on a ready child ticket.
- If the current or captured ticket status is
todo/, stop implementation routing and invoke ws:lead-discuss for todo/ -> ready/ promotion. Continue only after the target path is ready/.
- Apply
judge: needs-skeleton.
- Build pipeline:
- No skeleton:
ws:lead-implement.
- Skeleton:
ws:lead-write-skeleton -> ws:lead-implement.
3. Announce
## Pipeline: <stage> -> <stage> [-> <stage>]
- **Target**: <ticket path or brief summary>
- **Warmth**: <warm | cold> - <evidence from conversation state>
- **Skeleton**: <skip (reason) | ws:lead-write-skeleton (reason)>
- **Execution**: ws:lead-implement - <reason>
- **Gate suppression**: prefix stages receive override context.
Proceeding.
Include prefix stages in the pipeline line when they fire.
Do not ask for confirmation; the user can interrupt.
4. Execute
- Invoke stages sequentially with the current target.
- After each stage, verify completion from committed artifacts or stage output.
- Stop on failure or user interruption.
- If
ws:lead-write-ticket ran, capture its Ticket: path before any downstream stage.
- If the captured path stem category is
epic, stop; do not invoke skeleton or implementation on the epic path. Route to child ticket creation, child ready promotion, or proceed on a ready child ticket.
- If the captured path is under
ai-docs/tickets/todo/, invoke ws:lead-discuss for todo/ -> ready/ promotion and stop; do not invoke skeleton or implementation.
- Use only non-epic
ready/ ticket paths downstream.
Judgments
judge: needs-ticket
| Decision | When |
|---|
Stop, suggest ws:lead-discuss | Target is exploratory; user is weighing approaches |
| Proceed | Target is an existing ticket path |
Invoke ws:lead-write-ticket | Target is an actionable inline description |
judge: needs-skeleton
| Decision | When |
|---|
| Skip | Skeleton exists for this scope |
| Skip | Small isolated change: single file, no new public contracts |
| Skeleton | Public interface, cross-module boundary, or new type contract changes |
Doctrine
Proceed optimizes for full-pipeline routing accuracy. Conversation state and
artifacts are the finite signal: use them to choose sub-skills, not to replicate
sub-skill gates. Warmth sharpens directives; it does not skip stages. When a
rule is ambiguous, apply whichever interpretation better preserves the user's
ability to intervene at any pipeline stage.