Lightweight meta-prompting and spec-driven development plugin for Claude Code
Project description
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 --> 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 created |
| discuss | Research subagent investigates codebase + web; user preferences probed; REQUIREMENTS.md and DECISIONS.md populated |
| plan | Requirements decomposed into tasks (T-NNN) in PLAN.md; plan-review subagent verifies completeness |
| execute | Tasks implemented one by one, status tracked in PLAN.md |
| verify | Lint, typecheck, tests run against task verification criteria |
| complete | Summary generated, cycle can restart |
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.
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.
2. Discuss
/gsd-lean:discuss Add user authentication with OAuth
Claude explores the codebase and web, probes for preferences, and populates REQUIREMENTS.md and DECISIONS.md.
3. Plan
/gsd-lean:plan
Decomposes requirements into structured tasks (T-NNN) in PLAN.md.
4. Execute
/gsd-lean:execute
Implements tasks sequentially — one per invocation.
5. Verify & Complete
/gsd-lean:verify
/gsd-lean:complete
/verify runs verification against task criteria. /complete generates a summary and optionally starts a new cycle.
Caveats
Run each GSD-Lean phase in a new Claude Code session. The /init, /discuss, and /plan 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gsd_lean-0.6.0.tar.gz.
File metadata
- Download URL: gsd_lean-0.6.0.tar.gz
- Upload date:
- Size: 103.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b12ac99c1a527913bfa433c6dada67b974f626df1be7b71e7a2a3bd2f1ce2a8
|
|
| MD5 |
6027472fa944a89b618c68e57b0aba5d
|
|
| BLAKE2b-256 |
a0d29e20578d87e98782224ad65ac7151d7f0467021f2a0c3ab0745be0efeac8
|
Provenance
The following attestation bundles were made for gsd_lean-0.6.0.tar.gz:
Publisher:
ci.yml on Bifurcate-Loops/gsd-lean
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gsd_lean-0.6.0.tar.gz -
Subject digest:
8b12ac99c1a527913bfa433c6dada67b974f626df1be7b71e7a2a3bd2f1ce2a8 - Sigstore transparency entry: 952663700
- Sigstore integration time:
-
Permalink:
Bifurcate-Loops/gsd-lean@c21808f02f465ee15b6428bf2a2657bd63dfa4a3 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/Bifurcate-Loops
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@c21808f02f465ee15b6428bf2a2657bd63dfa4a3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file gsd_lean-0.6.0-py3-none-any.whl.
File metadata
- Download URL: gsd_lean-0.6.0-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c755521db43f5476e6d7dcc9cc6b83b728e1aab0fd0da0317f382b81e8559b59
|
|
| MD5 |
9c547f70d43481995d685781e6f47149
|
|
| BLAKE2b-256 |
989e44ceb8a66c5349ac3bc2829ea5598601cb698449c1ec2d25b7b16407e9de
|
Provenance
The following attestation bundles were made for gsd_lean-0.6.0-py3-none-any.whl:
Publisher:
ci.yml on Bifurcate-Loops/gsd-lean
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gsd_lean-0.6.0-py3-none-any.whl -
Subject digest:
c755521db43f5476e6d7dcc9cc6b83b728e1aab0fd0da0317f382b81e8559b59 - Sigstore transparency entry: 952663703
- Sigstore integration time:
-
Permalink:
Bifurcate-Loops/gsd-lean@c21808f02f465ee15b6428bf2a2657bd63dfa4a3 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/Bifurcate-Loops
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@c21808f02f465ee15b6428bf2a2657bd63dfa4a3 -
Trigger Event:
push
-
Statement type: