gsd-coexistence

A set of project rules explaining how GSD, a planning system, works alongside local development rules. It assigns different responsibilities to milestones, phases, plans, and slices of work.

In plain words
What is it for?
Use it when planning or delivering features in stages, especially when creating plans, resuming work, verifying results, and committing changes.
Why use it?
It prevents two planning systems from conflicting and makes it clear which process owns each part of the work.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/nerds-odd-e/doughnut/gsd-coexistence
Clone the repo
git clone --depth 1 https://github.com/nerds-odd-e/doughnut

Made for: Cursor.

Per session 1,144 This file is loaded in full into every session.
When invoked 1,144 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01144 $0.01144
Opus 5 $0.00572 $0.00572
Sonnet 5 $0.00229 $0.00229
Haiku 4.5 $0.00114 $0.00114

Measured 2d ago against content hash ddee0fc791b4, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

gsd-coexistence scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/gsd-coexistence.mdc · 63 lines

How it starts

The opening of the file, as written. The whole thing — 63 lines — stays where its author put it; the contents beside it link to each section on GitHub.

GSD and local planning — coexistence

This repo uses GSD (global Cursor install: /gsd-*) for milestone scaffolding and local rules/skills for delivery quality. Prefer one owner per workstream; when both apply, local hard rules win on conflicts listed below.

Vocabulary

Term Owner Meaning
Milestone GSD Versioned increment
Phase GSD Roadmap capability. ### Phase N:, .planning/phases/NN-slug/, /gsd-plan-phase, /gsd-execute-phase
Plan Shared One PLAN.md
Slice Local One Behavior or one Structure. Stop-safe. Commit+push grain

Compatible (use together)

Area How they fit
Folder layout Use GSD paths: .planning/{PROJECT,REQUIREMENTS,ROADMAP,STATE}.md, config.json, .planning/phases/NN-slug/, .planning/codebase/, .planning/quick/.
Discuss / plan / verify artifacts GSD CONTEXT, PLAN, SUMMARY, VERIFICATION are fine while the plan is active (resume across sessions).
Execution engine Prefer /gsd-execute-phase or local execute-plan on the same PLAN — both must run the local wrap-up per slice (Jidoka, refactor, plan update, commit+push).
Parallel waves OK when file sets / mutable state do not overlap; otherwise sequential.
Observable verification GSD goal-backward verify + local TDD/E2E/@wip — same intent; run relevant local tests as the evidence.
Codebase maps .planning/codebase/* shared.
Capability naming in product Local rule: GSD phase numbers only under .planning/.

Must keep local (non-compatible with plain GSD defaults)

These are hard in this repo even when GSD workflows omit them:

Local requirement When it is needed Why not drop it
Behavior vs Structure; stop-safe; one observable behavior per slice Every plan decomposition and every GSD PLAN task split Prevents speculative structure and half-finished value if work stops mid-roadmap
Time budget per slice (~5 min fuzzy; >10 min hard finer-decompose) Agents/sub-agents making a test pass or solving one problem unit Keeps breakdowns small; self-enforced (no Cursor timer hooks) — see planning.mdc
Before- and after-slice Jidoka Every slice start/end Stops autonomous runs on value/design/credential forks
After-slice plan update Every completed slice Keeps remaining work accurate for resume
After-slice post-change-refactor Every slice before commit Cohesion / dead code / 250-line discipline
After-slice commit + push (+ CD when applicable) Every closed slice before the next Deploy gate; remote/CI catch issues early
Active history cleanup when the plan is done When the last slice is done and outcomes are in code/permanent docs GSD tends to keep SUMMARYs; we prune spent planning diary
Nix prefix (CURSOR_DEV=true nix develop -c); assume pnpm sut running; no restart nag All tooling Env contract GSD does not know
Stack/domain rules (backend, frontend, e2e, cli, mcp, db-migration, …) Matching globs / skills Product architecture

Read the full file on GitHub · 63 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 63 lines · 1,144 tokens per session scan A ddee0fc791b4

Subscribe to this mod's changes

gsd-coexistence is a cursor rule published in the GitHub repository nerds-odd-e/doughnut (49 stars, last pushed 2d ago), licensed MIT. It adds 1,144 tokens to every session, about $0.0057 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.