Feature Request
Summary
Epics block child-task cleo complete until the parent epic's pipeline
stage has advanced past research → consensus → architecture_decision → specification → decomposition into implementation (or later). For pure
documentation work (e.g. scaffolding a project repo, writing ADRs,
writing runbooks) this stage progression is ceremony that doesn't reflect
the actual work.
Today the only workaround is calling cleo lifecycle skip <epicId> <stage> --reason "..." four times (consensus, architecture_decision,
specification, decomposition), then cleo lifecycle start <epicId> implementation. That's 5 extra CLI invocations per doc epic just to
unlock child completion.
Repro
Tested with cleo lifecycle v2026.5.100 on 2026-05-22.
# 1. Start a session and create a docs-only epic + children
cleo session start --scope global --name "docs-epic-repro"
cleo add --type epic \
--title "Doc-only epic" \
--description "Write some docs." \
--acceptance "Doc A exists|Doc B exists|Index updated"
# -> creates T### pipelineStage=research
cleo add --type task --parent T### \
--title "Write doc A" \
--description "..." \
--acceptance "ac1|ac2|ac3"
# 2. Do the work + verify gates with real evidence
git init -b main && touch A.md && git add A.md \
&& git commit -m "add A.md"
SHA=$(git rev-parse HEAD)
cleo verify <childId> --gate implemented --evidence "commit:${SHA};files:A.md"
cleo verify <childId> --gate testsPassed --evidence "tool:test"
cleo verify <childId> --gate qaPassed --evidence "tool:build"
# 3. Try to complete child
cleo complete <childId>
Observed
E_LIFECYCLE_GATE_FAILED
Task <childId> cannot complete: parent epic T### is still in 'research'
stage. Advance the epic past decomposition before completing children.
Required stages: ["implementation","validation","testing","release"]
Workaround (currently required)
cleo lifecycle skip T### consensus --reason "docs-only"
cleo lifecycle skip T### architecture_decision --reason "docs-only"
cleo lifecycle skip T### specification --reason "docs-only"
cleo lifecycle skip T### decomposition --reason "docs-only"
cleo lifecycle start T### implementation
# Now `cleo complete <childId>` succeeds.
Expected
One of:
-
Auto-skip for --kind work epics that have no children awaiting
research/architecture artifacts. If the epic has child tasks that
are already pending/in_progress with evidence captured, the
lifecycle stage shouldn't block completion.
-
New --kind docs (or label='docs') for epics that opts into a
simplified lifecycle (research+implementation only). Mirrors the
pattern of project-context primaryType=docs which already
short-circuits tool:test and tool:lint evidence requirements.
-
cleo lifecycle fast-forward <epicId> <target-stage> that skips
all intermediate stages in one call, with a single reason. Strictly
less ceremony than 5 individual subcommands.
Why this matters
This session built /mnt/projects/proxmox/ (a Proxmox SSoT repo —
~1,600 lines of docs across 8 ADRs, 5 runbooks, an inventory snapshot,
and a profile YAML) as a 7-child epic in cleo. Every child task hit the
same lifecycle wall and required the 5-command skip dance. That's
correct for a code project with real specification work; for docs,
the stages aren't real.
Adjacent issue (worth tracking together)
Cleo's evidence model on testsPassed/qaPassed gates rejects
override-only evidence (T9245). For docs-only projects with no real test
suite, the current workaround is setting testing.command / build.command
/ lint.command to \"true\" in .cleo/project-context.json so
tool:test / tool:build evidence trivially passes. The new --kind docs proposed above could also automatically resolve these tool
references to true rather than requiring user-side config plumbing.
Environment
cleo: 2.6.0 (CLI dispatch)
node: lifecycle v2026.5.100
OS: Fedora 43 (Linux 6.19.14)
project-context: primaryType=docs, all tool commands set to "true"
Area: task-lifecycle
Are you using an AI agent?
Yes - AI agent filed this issue
Environment
| Component |
Version |
| CLEO |
unknown |
| Node.js |
v24.13.1 |
| OS |
linux 6.19.14-200.fc43.x86_64 x64 (x64) |
| Shell |
/bin/bash |
| gh CLI |
gh version 2.87.3 (2026-02-23) |
| Install |
/home/keatonhoskins/.npm-global/bin/cleo |
Feature Request
Summary
Epics block child-task
cleo completeuntil the parent epic's pipelinestage has advanced past
research → consensus → architecture_decision → specification → decompositionintoimplementation(or later). For puredocumentation work (e.g. scaffolding a project repo, writing ADRs,
writing runbooks) this stage progression is ceremony that doesn't reflect
the actual work.
Today the only workaround is calling
cleo lifecycle skip <epicId> <stage> --reason "..."four times (consensus, architecture_decision,specification, decomposition), then
cleo lifecycle start <epicId> implementation. That's 5 extra CLI invocations per doc epic just tounlock child completion.
Repro
Tested with cleo
lifecycle v2026.5.100on 2026-05-22.Observed
Workaround (currently required)
Expected
One of:
Auto-skip for
--kind workepics that have no children awaitingresearch/architecture artifacts. If the epic has child tasks that
are already
pending/in_progresswith evidence captured, thelifecycle stage shouldn't block completion.
New
--kind docs(or label='docs') for epics that opts into asimplified lifecycle (research+implementation only). Mirrors the
pattern of project-context
primaryType=docswhich alreadyshort-circuits
tool:testandtool:lintevidence requirements.cleo lifecycle fast-forward <epicId> <target-stage>that skipsall intermediate stages in one call, with a single reason. Strictly
less ceremony than 5 individual subcommands.
Why this matters
This session built
/mnt/projects/proxmox/(a Proxmox SSoT repo —~1,600 lines of docs across 8 ADRs, 5 runbooks, an inventory snapshot,
and a profile YAML) as a 7-child epic in cleo. Every child task hit the
same lifecycle wall and required the 5-command skip dance. That's
correct for a code project with real specification work; for docs,
the stages aren't real.
Adjacent issue (worth tracking together)
Cleo's evidence model on
testsPassed/qaPassedgates rejectsoverride-only evidence (T9245). For docs-only projects with no real test
suite, the current workaround is setting
testing.command/build.command/
lint.commandto\"true\"in.cleo/project-context.jsonsotool:test/tool:buildevidence trivially passes. The new--kind docsproposed above could also automatically resolve these toolreferences to
truerather than requiring user-side config plumbing.Environment
Area: task-lifecycle
Are you using an AI agent?
Yes - AI agent filed this issue
Environment