Skip to main content

Backlog tracking as a folder of markdown story-cards in your repo. Agent-readable. No proprietary state.

Project description

Game of Cards

A small command-line tool that keeps your project's to-do list as a folder of markdown files inside your repo. Each item is a card — a directory under deck/ with a frontmatter header, a body, and a checklist that decides when it's done.

That's it. The rest of this README is why that turns out to be a useful shape.

The agile thinking behind it

Three ideas from the 1990s, none of them ours, all still in use:

  • One card, one thing — XP, Beck 1999. Small enough to fit on an index card. Enough context that anyone, or anything, can pick it up.
  • Definition of Done — Scrum, Sutherland & Schwaber. A card isn't closed because someone said so. It's closed because a checklist is satisfied.
  • Status, not location — Kanban, Anderson, after Toyota. A card stays at deck/<title>/ while it moves through open → active → done. Cross-references don't break.

The argument for taking these seriously now is that AI coding agents are a much harder handoff problem than the human teams those ideas were built for. Agents read the full backlog every session, re-derive context from scratch, and never remember yesterday. A card with a stable URL, a machine-checkable closure contract, and a self-contained body stops being "discipline" and starts being how the agent finds its bearings. The 1990s primitives were right for a different reason than the 1990s knew about.

It works without any of that, too. goc new "rename the button", goc to see what's open, goc done rename-the-button to close it. No AI required. The deck is just markdown files; you read, write, edit, and revert them with the same git you already use.

What it is, and what it isn't

Game of Cards is a substrate. The CLI, the schema, the on-disk card layout, the validator — that's all it ships. There's no preferred LLM, no proprietary state, no mandatory workflow.

What sits on top is up to you. Claude Code skills come bundled as the reference harness; any editor that reads AGENTS.md (Codex, Cursor, OpenCode, Copilot, Aider) can drive the same deck. So can a shell script. So can your hands.

This is not another methodology framework. Spec-Kit ships templates. BMAD ships personas. Ruler ships rule fan-out. claude-flow ships swarm orchestration. Each sits on top of a substrate that the consuming team has to provide. Game of Cards provides one.

Try it

uv tool install game-of-cards     # one-time, machine-wide
cd any-repo
goc install                       # adds deck/, CLAUDE.md/AGENTS.md sections, a starter card

The cost of trying is low. goc install adds files; it doesn't take any away. If you decide it isn't for you, rm -rf deck/ and revert the two README sections — you're back where you started.

A few things you can do once it's installed:

goc new "rename the button to Export"
goc                                # show what's open, sorted by leverage
goc validate                       # check every card's frontmatter against the schema
goc done rename-the-button-to-export

If you're using Claude Code or any AGENTS.md-aware editor, you can also just talk to it: "rename the button to Export." The deck reflects either flow on the same on-disk state.

What you get

  • A goc CLI — 13 verbs covering create, browse, advance, decide, close, validate, and install.
  • A deck/<title>/ directory per card: frontmatter-validated README.md, append-only log.md.
  • A schema validator suitable for pre-commit and CI.
  • A starter set of Claude Code skills (scan-deck, next-card, create-card, advance-card, decide-card, finish-card, improve-deck, extend-deck, pull-card, card-schema, deck) that turn the CLI into an autonomous workflow when you want one.
  • An AGENTS.md block for editors that aren't Claude Code.
  • A .game-of-cards/ per-repo config layer for project-specific content and workflow hooks. The convention — directory layout, file format, hook-point catalog — is documented in .game-of-cards/README.md, which goc install ships into every consuming repo.

Status

Brand new. This is 0.0.1 — only a few days of implementation, no external users yet, plenty of rough edges that are unknown until someone tries it on a fresh project. Bring expectations to match.

The right way to find out if it's for you is to install it, point it at a side project, and see whether it stays out of your way for a week. If it does, you'll keep it. If it doesn't, you've spent five minutes.

License

MIT — Copyright (c) 2026 Zauberzeug GmbH. See LICENSE.

Project details


Download files

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

Source Distribution

game_of_cards-0.0.2.tar.gz (189.0 kB view details)

Uploaded Source

Built Distribution

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

game_of_cards-0.0.2-py3-none-any.whl (89.0 kB view details)

Uploaded Python 3

File details

Details for the file game_of_cards-0.0.2.tar.gz.

File metadata

  • Download URL: game_of_cards-0.0.2.tar.gz
  • Upload date:
  • Size: 189.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for game_of_cards-0.0.2.tar.gz
Algorithm Hash digest
SHA256 672d9488c22ce7090eeea9fa49d32e7a44ad5ced27eaa55b76418ed37d32a92f
MD5 f50ebc55cbd5c56f355e4436774c5363
BLAKE2b-256 4ea312225f24d29e4e70e097457717e149d3b3e5d4f2621559bafaac4ce38d46

See more details on using hashes here.

File details

Details for the file game_of_cards-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: game_of_cards-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 89.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for game_of_cards-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7003b232393e67b31e8cac56746081ed158866e5a2bf1e3b0ead156b20523a23
MD5 571ac3141c1c472dc068963b62f636ee
BLAKE2b-256 d656caf0d831073fce675408be15d67e9a5b1414de1f298a21efdb2367ccced8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page