Replies: 3 comments
|
I'm very curious about this as well. GSD is a very useful tool for a single developer, and it does a lot of things for us that we should be doing anyway like capturing decisions, documenting dependencies, etc. But with the current structure and behavior it feels difficult to even try to add a second developer to a project. |
0 replies
|
What I did on my developer teams on a brownfield project with 6 developers.
|
0 replies
|
I also have a related question, but with a simple focus on just looking at contributing to gsd-core as a reasonable example. |
0 replies
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.
The concern
The
.planning/store doesn't have a concurrency model, and neither value ofcommit_docsworks well for a large, multi-developer monorepo:commit_docs: true—STATE.mdand theROADMAP.mdprogress table are rewritten on essentially every phase transition. When two developers advance phases in parallel against a shared, top-level.planning/, those files conflict constantly. They behave like a lock file that everyone edits — exactly the thing you don't want under version control in a busy repo.commit_docs: false— avoids the conflicts, but drops the shared planning intent out of the repo entirely (no one else sees the roadmap/requirements) and removes the recovery net (see companion discussion Planning artifacts have no recovery path when commit_docs: false (a subagent overwrote ROADMAP.md irrecoverably) #2541).So in a monorepo with several developers, there's no configuration that gives you both shared, reviewable planning intent and conflict-free concurrent execution.
Root cause (as I see it)
.planning/conflates three kinds of data that have opposite version-control needs:PROJECT.md,REQUIREMENTS.md, and the structure ofROADMAP.md. Low churn, authored deliberately, genuinely wants to be shared and reviewed → belongs in VCS.STATE.md, theROADMAP.mdprogress table,SUMMARY.md/VERIFICATION.md. High churn, rewritten mid-run, conflict-prone → behaves like a cache/lock.Because they live in one bucket toggled by a single
commit_docsflag, you can only make the same VCS decision for all three, and there's no right answer for the set.Ideas
.planning/, so independent teams in a monorepo don't write to the same files. GSD already hasworkstreamsand asub_reposconfig, but as far as I can tell neither actually resolves concurrent writes to a sharedSTATE.md/ROADMAP.md.Questions for maintainers
.planning/root?workstreams/sub_reposalready address concurrent phase execution in ways I've missed?Version note
Observed reasoning is against the
@opengsd/get-shit-done-redux1.1.0 install; latest release appears to be v1.8.0. If newer versions already separate volatile state from durable intent, or otherwise address monorepo concurrency, I'd be glad to be pointed at it. Companion discussion on the recovery half of this: #2541.All reactions