UNRELEASED DEVELOPMENT SNAPSHOT · READ-ONLY EXCERPT
skills/cycle/SKILL.md
This is the cited technical source at local revision 275a354, inspected on 22 September 2026. It differs from the public release. This reference publishes only the cited sections, not an installable release or the development branch.
Line numbers refer to the complete recorded file. Uncited lines are omitted. Full-file SHA-256: 89167f1cca7d892ff873e8bf61dbea9dc0b2b401415c0a3a75fa4b8b7268f733.
1
---2
name: cycle3
layer: foundation4
workflow_root: true5
description: Use to run a real multi-step task through the full SENSE-to-CAPTURE pipeline, or a chosen subset of phases. Supports mode presets, hopping in at any phase, and a cost-estimate gate before BUILD. The default entry point for substantial work.6
color: cyan7
tools: Read, Write, Edit, Bash, Grep, Glob8
voice: internal9
cli_support: [claude-code, codex, copilot]10
necessity: STRONGLY_RECOMMENDED11
gap_if_skipped: "Ad-hoc phase sequencing without cost-estimate gate, founder-approval gate, or compliance gates between REVIEW and SHIP."12
navigation:13
primary_intent: full feature/cycle work with structured 9-step pipeline14
triggers:15
- operator types /li:cycle (cold start)16
- operator wants the full path with gates between phases… omitted uncited lines …
117
`execution_mode: "swarm"` and a valid `coordination` pointer. BUILD then follows `/li:swarm run`,118
REVIEW applies the integrated close gate, and CAPTURE preserves the evidence. Without both fields,119
CYCLE invokes ordinary sequential BUILD exactly as before. Sequenced/no-subagent hosts consume the120
same artifacts serially and report the actual limitation.122
### Meta-infra mode mechanics124
`meta-infra` is the operator's mode when modifying Lintel itself (scaffolding). Lintel changes ripple across every downstream cycle, so REVIEW + CAPTURE run heavier and four meta-gates activate:126
**M1 — Structure-impact assessment** (in DEFINE)127
Before merging design, write a structure-changes/<date>-<slug>.md entry documenting: what changed, backward-compat, migration path, forward-compat, verification, rollback. Template: `.claude/engineering/evolution/_TEMPLATE.md`.129
**M2 — Compatibility audit** (in REVIEW)130
Run `bin/li-compat-audit` to produce mechanical GREEN/YELLOW/RED sweep across four questions:131
1. Did any frontmatter contract change? (REQUIRED_SKILL_FIELDS, REQUIRED_AGENT_FIELDS)132
2. Were skills/agents/hooks renamed or moved?133
3. Did defaults change for any existing field?134
4. Did any shared helper signature change? (lib/*.sh)136
Output: `.claude/engineering/compat-audits/<date>-<slug>.md`. RED requires explicit override.138
**M3 — Shape-tests** (in REVIEW)139
Run `bash tests/runner/run-all.sh --shape-only`. The 8 shape-tests assert structural invariants (see `tests/shape/_README.md`). Any FAIL blocks SHIP.141
**M4 — Future-operator clarity** (in CAPTURE)… omitted uncited lines …
394
### Step 8 — Cycle complete396
After last phase DONE:397
- Surface cycle summary (per CAPTURE phase output if CAPTURE ran)398
- If CAPTURE didn't run (e.g., custom subset without CAPTURE): write light summary399
- `state_append CYCLE DONE cycle_complete=true` (CAPTURE's own entry covers this when CAPTURE ran)400
- Telemetry — one mechanical line via the unified writer (ts/operator/cycle_id come from the envelope):402
```bash403
source "${LINTEL_SOURCE_ROOT:-$(git rev-parse --show-toplevel)}/bin/_audit.sh"404
audit_log cycle cycle_complete mode=<mode> phases=<n> outcome=<DONE|DONE_WITH_CONCERNS|BLOCKED|ABORTED>405
# → .claude/runtime/audit/cycle.jsonl406
```408
> No `cost_estimate_dollars` field: Lintel has no pricing table, so a dollar figure here would be409
> fabricated (K6). Token actuals for estimator calibration are CAPTURE Step 1b's stream410
> (`granularity.jsonl` — dormant by decision, ADR-0008), not this one.412
## Status protocol414
- **DONE** — all phases in chain DONE, cycle complete415
- **DONE_WITH_CONCERNS** — chain complete but some phases returned WITH_CONCERNS416
- **BLOCKED** — phase BLOCKED, cycle paused, awaiting operator decision417
- **ABORTED** — operator aborted mid-cycle, state saved