Tasks: declared skips in the process graph
Phase 4 of 4. Derived from the locked
design.mdandtesting-plan.md— each task's_Test:_names a row of the matrix. Ticket: issue #177.
Task list
mermaid
flowchart LR
T1[T1 model:<br/>skippable + skipSets] --> T2[T2 state:<br/>skips record]
T1 --> T3[T3 graph YAML:<br/>six nodes, six edges, one set]
T2 --> T4[T4 runtime:<br/>route, report, declare, snapshot]
T3 --> T4
T4 --> T5[T5 artifact-gate<br/>tolerance]
T4 --> T6[T6 CLI + core + API<br/>+ OpenAPI contract]
T5 --> T7[T7 docs + decision<br/>+ capability fold-in]
T6 --> T7
T7 --> T8[T8 verification:<br/>run the plan, commit evidence]- [x] T1 — model: the skip vocabulary —
Node.skippable(+as_mapping),Graph.skip_sets,expand_skip_tokens(), and the three compile validations (required×skippable, missingskippededge, bad set member). Depends on: —. Requirements: R1.1–R1.4. Test: M1. - [x] T2 — state: the declaration record —
GraphState.skipsloaded/saved additively; absent key →{}. Depends on: T1. Requirements: R2.1, R3.3. Test: M4, M12 (n/a-by-construction, exercised via absent-key loads). - [x] T3 — the shipped outer loop declares — six
skippable: truemarkers, sixon: skippededges,skipSets.spec-chain;pdlc-pr-loopuntouched. Depends on: T1. Requirements: R1.5, R1.6, R4.1. Test: M2. - [x] T4 — runtime: route, report, declare, snapshot —
declared_skips()defensive filter; skip routing instart/advance(including the no-pointeradvancepath); provenance instatus()both modes with forged-declaration warnings; module-leveldeclare_skips()(reason required, entered/past refused, audit comment, event); label snapshot at entry viaget-labels, best-effort, once. Depends on: T2, T3. Requirements: R2.1–R2.7, R3.1–R3.3, R3.5. Test: M3, M4, M6, M7. - [x] T5 — artifact gates tolerate declared absences —
HookContext.skipped_artifactscomputed inevaluate();validate-artifactsreports an absent, skip-covered slot as an info skip; present artifacts gated unchanged. Depends on: T4. Requirements: R3.4. Test: M5. - [x] T6 — the operator surface —
core.graphs.skip(),POST /graph/skip, the OpenAPI contract entry,the-loop graph skipsubcommand,graph showprintingskippable; no MCP exposure. Depends on: T4. Requirements: R2.3–R2.6, R4.2. Test: M7, M8. - [x] T7 — docs and the paper trail —
reference/workflow.md§ Declared skips,SKILL.mdrule bullet,docs/capabilities/process-graph.mdbehaviour + history row,docs/decisions/decision-067.md(+ index), labels report note. Depends on: T5, T6. Requirements: all (documentation of). Test: M9 (markdownlint; docs parity). - [x] T8 — verification — execute the testing plan, fill § Verification results, commit evidence. Depends on: T7. Requirements: all. Test: M9 plus the plan itself.