Compose 0.2.0 feedback after using it as the source-of-truth for a real project #8999
john-derose
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Wanted to share feedback after spending a session using Compose 0.2.0 as the projects-as-code source of truth for a real, non-flat project, in case it's useful for prioritization.
Context. The project I tested with: 31 work items, 11 grouping units (modules), 5 phased time windows (cycles, with overlapping dates), ~17 dependency relations across them, 7 custom states. Probably representative of any moderately structured operational playbook -- release planning, customer onboarding, deal pipelines, marketing campaigns, etc. The kind of thing where the structure is the artifact and items get filled in over time.
The headline I was hoping to write was: Plane is the only modern PM tool that treats project structure as infrastructure. After working through Compose end-to-end, here's what I found.
What works well
plane clone <uuid>is fast and ergonomic. ~6 seconds for a 31-item project. Directory layout (plane.yaml,schema/,work/,.plane/remote/) is intuitive.plane schema pushfor additive changes is great. Validate, diff, dry-run, push. Each step is informative, idempotent, and the plan output reads cleanly. Adding a new state took under a minute and produced a 3-line, semantically obvious git diff.plane auth loginis straightforward and credentials live in the right place (~/.config/plane-compose/credentials).Where the projects-as-code story breaks down
These are scope gaps, not bugs. Listed roughly in order of impact:
plane clone. Modules aren't inschema/, and per-item module membership doesn't appear on work items either. Since modules express what part of the project an item belongs to, losing them flattens the structural model entirely.blocked_by,relates_to, etc.) aren't in the YAML. The 17 dependency edges form the critical path of the project. None survive a clone. (Acknowledged: root cause is the open issue [feature]: issue-relation support in API #6236 -- the v1 API itself doesn't expose relations. Worth flagging here that this gap propagates straight into the projects-as-code story.)For a project where modules + cycles + relations together describe the structure, the projects-as-code abstraction currently applies only to states / labels / types / custom fields -- i.e., the workflow primitives that most other PM tools also expose in some form. The structural primitives that make Plane's data model genuinely richer don't make it into the YAML.
Smaller, more tractable gaps
These felt like things on the way to being implemented:
plane push. Putting an item withid: PLOC-7inwork/inbox.yamland pushing creates a duplicatePLOC-32rather than updating PLOC-7 -- theidfield is silently ignored. There's no documented way to take ownership of a cloned item and push edits back.inbox.yamlreferences aplane importcommand --No such command 'import'. The PyPI README referencesplane apply--No such command 'apply'. Either implement them or remove the references; today they create false expectations about supported workflows.API DELETE /states/returns 204 without deleting). Means once a schema element is pushed, it can't be removed via the CLI. I added a state to test the round-trip and now can't roll it back.Cosmetics worth fixing
plane --versionreports0.1.0even whenpipx install plane-composeinstalls0.2.0. Pin the version string at build time.plane clone'sschema/workflows.yamlincludesterminal: [done, cancelled]referencing group names that don't appear in the state list (no state has groupdone; the closed state has groupcompleted). Either an alias system that should be documented, or output drift.plane-composepoints togithub.com/makeplane/composefor source and docs, which 404s. Either point at a real location, or open the Compose repo for issues / roadmap visibility -- feedback like this currently has nowhere natural to land.What would unlock the projects-as-code thesis
In rough priority order:
schema/and as a field on work items. Single biggest gap.schema/(with date ranges) and as a field on work items. Bonus: a date-shift parameter at clone time (plane clone <uuid> --shift-dates +6mo) would unlock template reuse for projects that recur on a calendar.plane importto take ownership, orid-aware push semantics.Even in its current state, Compose's direction is something none of the competitor tools can match. Writing this in the hope it's useful for prioritization.
-- John
Beta Was this translation helpful? Give feedback.
All reactions