[feature]: support cycles in Compose YAML (currently dropped on plane clone)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 59.6k
- Forks
- 5.8k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 49
Description
Context for this and four related tickets: https://github.com/orgs/makeplane/discussions/8999
I have searched existing issues; no existing report covers this specific gap.
Summary
Compose 0.2.0 doesn't represent cycles -- neither in schema/ nor as a field on work items. plane clone drops cycle definitions (including start / end dates) and per-item cycle memberships silently. Particularly costly for projects with overlapping cycle windows: that's a Plane differentiator that's completely invisible to Compose.
Proposed shape:
# schema/cycles.yaml
- name: Diligence
start: 2026-05-04
end: 2026-06-01
- name: Pre-Close
start: 2026-06-08
end: 2026-06-29
# work item
- id: PROJ-1
title: ...
cycle: Diligence
Bonus: an optional date-shift at clone time (plane clone <uuid> --shift-dates +6mo or similar) would unlock template reuse for projects that recur on a calendar -- release planning, deal pipelines, marketing campaigns, etc. Without it, every clone of a date-bearing template requires manual fixup of every cycle window and every item's start / due date.
Why should this be worked on?
Cycles are the time dimension of a Plane project. Without them, Compose can only describe a static structure, not a phased one. For any project that uses cycles for sprint or phase management -- which is most non-trivial projects in Plane -- the current behavior means the time-phasing layer can't be source-controlled, can't be PR-reviewed when it changes, and can't be templated for reuse.
To reproduce the gap: clone any Plane project that uses cycles (e.g. via plane clone <uuid> --workspace <slug>), then inspect schema/ and .plane/remote/items.yaml. Cycles and per-item cycle membership are absent.
Combined with the modules gap (#9003) and the relations gap (tracked at #6236), supporting cycles in YAML is one of the three structural primitives needed for the projects-as-code thesis to hold up for non-flat projects. Related tickets in the same batch: #9000 (missing CLI commands), #9001 (push is create-only), #9002 (version drift). The discussion thread linked above frames all five as a coherent set.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with plane clone <uuid> --workspace <slug>, then inspect schema/ and .plane/remote/items.yaml. Trace how cycle definitions and per-item cycle memberships are represented or dropped. Done means cycle names, start and end dates, and item memberships survive clone and are represented in Compose YAML.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, yaml
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100