Skip to main content

GSD-Lean

A lightweight reimplementation of Get-Shit-Done — a complement to the original GSD system

What is GSD?

GSD is a meta-prompting, context engineering, and spec-driven development system for Claude Code. It solves context rot by breaking projects into phases with fresh contexts per task, using a discuss → plan → execute → verify loop. Written in JavaScript.

What is GSD-Lean?

A Python reimplementation of GSD's core ideas as a lightweight plugin. Rather than the full system, GSD-Lean focuses on being minimal and easy to extend.

Status: Early development.

How It Works

GSD-Lean guides development through a 6-phase workflow:

stateDiagram-v2
    [*] --> init : gsd-lean init
    init --> discuss : project initialized

    discuss --> plan : requirements populated
    plan --> discuss : plan rejected
    plan --> execute : plan verified
    execute --> plan : revise plan
    execute --> verify
    verify --> execute : tasks remaining
    verify --> complete : all tasks done
    complete --> discuss : new cycle
    complete --> init : re-initialize
Phase What Happens
init Project scaffolded; tech stack auto-detected; PROJECT.md, CONTEXT.md, STATE.md, docs/adr/README.md created
discuss Research subagent investigates codebase + web; user preferences probed; REQUIREMENTS.html and DECISIONS.html populated; hard-to-reverse decisions offered as ADRs in docs/adr/
plan Requirements decomposed into tasks (T-NNN) in PLAN.html; plan-review subagent verifies completeness
execute Tasks implemented one by one, status tracked in PLAN.html
verify Lint, typecheck, tests run against task verification criteria
complete Summary generated, cycle can restart; hard-to-reverse decisions offered as ADRs in docs/adr/
quick (utility) Ad-hoc task executed, verified, and committed — bypasses the full cycle

Each phase is driven by a skill (/init, /discuss, /plan, /execute, /verify, /complete) that calls CLI commands (gsd-lean init, gsd-lean transition, gsd-lean plan-status) to manage state. For lightweight ad-hoc work outside the cycle, /quick runs execution + verification + commit without touching cycle state.

See PROJECT_KNOWLEDGE.md for detailed architecture — transitions, preconditions, subagents, and CLI reference.

Quick Start

0. Install plugin

Add the Bifurcate Loops marketplace, then install GSD-Lean:

/plugin marketplace add Bifurcate-Loops/bifurcate-plugins
/plugin install gsd-lean@bifurcate-plugins

1. Initialize project

/gsd-lean:init

Scaffolds the project. Claude asks clarifying questions, then writes PROJECT.md and CONTEXT.md.

Sections "Constraints" and "Notes" in PROJECT.md are read by GSD-Lean phases and injected into subagent prompts.

Constraints are mandatory rules. Prefix with [phase] to target specific phases. Untagged constraints apply to all phases.

## Constraints

- Use `uv run python -c <command>` instead of `python3 -c <command>`
- [execute] After writing `.luau` files, run `rojo sourcemap default.project.json -o sourcemap.json`
- [plan] For each development cycle, always include a last task running the `code-simplifier` subagent
- [execute][verify] If env variables are introduced, update `.env.example`
- When writing `.luau` files, run `rojo sourcemap ...`

Valid tags: [discuss], [plan], [execute], [verify]. Multiple tags allowed (e.g., [execute][verify]).

Notes are informational context injected into all phases. No phase tags needed.

## Notes

- We're migrating from REST to GraphQL next quarter — prefer GraphQL patterns where possible
- The auth module is owned by team-security; changes there need extra review
- Performance budget: no endpoint should exceed 200ms p95

2. Discuss

/gsd-lean:discuss Add user authentication with OAuth

Claude explores the codebase and web, probes for preferences, and populates REQUIREMENTS.html and DECISIONS.html. Hard-to-reverse architectural decisions can also be recorded as durable ADRs in docs/adr/ (git-tracked, permanent — distinct from the ephemeral DECISIONS.html).

3. Plan

/gsd-lean:plan

Decomposes requirements into structured tasks (T-NNN) in PLAN.html.

4. Execute

/gsd-lean:execute

Implements tasks sequentially — one per invocation. If requirements change mid-execution, re-invoke /plan to revise the plan while preserving task progress.

5. Verify & Complete

/gsd-lean:verify
/gsd-lean:complete

/verify runs verification against task criteria. /complete generates a summary, offers to record hard-to-reverse decisions as durable ADRs in docs/adr/, and optionally starts a new cycle.

Quick Executor

/gsd-lean:quick fix null check in parse_config

Lightweight, stateless execution for small, well-scoped tasks — bypasses the full cycle. Nothing is written to .planning/; traceability comes from git history alone. Requires a concrete task description (vague ones like "clean up code" are rejected).

Flow: explore in plan mode → quick-executor subagent implements → verification (lint, typecheck, tests) → one auto-debug round on failure → auto-commit on pass. If verification still fails after auto-debug, no commit is made.

Non-blocking advisories are printed when a full cycle is active, the working tree is dirty, or the task touches 4+ files (a hint to use /discuss instead).

Architecture Health

/gsd-lean:arch-health

Stateless, between-cycle architecture pass — no phase transition, no cycle-state writes. Accepts an optional scope argument (e.g. src/gsd_lean/cli).

Applies the deep/shallow module lens and the deletion test to find shallow modules — pass-throughs, thin wrappers, verbatim re-exports — worth deepening, inlining, or deleting. Analysis is grounded in CONTEXT.md, GLOSSARY.md, and docs/adr/ when present, and performed by a read-only arch-analyzer subagent.

Results append newest-first to .planning/ARCH_HEALTH.html as candidate cards, each with a confidence rating (Strong / Worth-exploring) and a verdict (deletion / deepening / cohesion).

Adapted from Matt Pocock's improve-codebase-architecture skill.

Caveats

  • Run each GSD-Lean phase in a new Claude Code session. The /init, /discuss, /plan, and /quick phases enter Plan Mode; when prompted to accept, select Yes, auto-accept edits — do not select "Yes, clear context and auto-accept edits (shift+tab)", as that erases internal context and causes GSD-Lean to lose track.
  • If your project's CLAUDE.md contains development workflow instructions (e.g. branching strategy, commit conventions, test-before-push rules), these can conflict with GSD-Lean's phased development cycle. Remove or comment out such instructions before running GSD-Lean.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gsd_lean-1.4.0.tar.gz (262.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gsd_lean-1.4.0-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file gsd_lean-1.4.0.tar.gz.

File metadata

  • Download URL: gsd_lean-1.4.0.tar.gz
  • Upload date:
  • Size: 262.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gsd_lean-1.4.0.tar.gz
Algorithm Hash digest
SHA256 60c1f46b855bb2eaca6049275b538775c1062aed992800d9aaf9cd4e4a46fcf2
MD5 38cce901567d73f652a90a023c723dfc
BLAKE2b-256 db95dadc70ae7779480580c855cdd597092e88f238e51e88beed9111ac6dba91

See more details on using hashes here.

Provenance

The following attestation bundles were made for gsd_lean-1.4.0.tar.gz:

Publisher: ci.yml on Bifurcate-Loops/gsd-lean

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gsd_lean-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: gsd_lean-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 28.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gsd_lean-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4233836a72b1f2954bcc3266659b6c5e9133dc58e174bca7b3865d8ba7ae75a9
MD5 a080bbdd5e7b7c76bf7d04e541fe1840
BLAKE2b-256 b57e8458c73417e2510379ba095fddd2ee236c7dd9b9930a3ef389b2f71a6a81

See more details on using hashes here.

Provenance

The following attestation bundles were made for gsd_lean-1.4.0-py3-none-any.whl:

Publisher: ci.yml on Bifurcate-Loops/gsd-lean

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.6.0

2 files

1.5.0

2 files

This release

1.4.0 This release

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.22.1

2 files

0.22.0

2 files

0.21.1

2 files

0.21.0

2 files

0.20.0

2 files

0.19.0

2 files

0.18.1

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.1

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.2

2 files

0.11.1

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page