$ whoami

Build for how AI already thinks.

SprintBias is agent-friendly, file-based project management. Every feature, task, and bug is plain markdown in your repo — folders are status, markdown is the work, history is free. One board your agents and your team both see.

Stop forcing AI to work your way.

Models already treat docs/, markdown, and git paths as high-signal context. SprintBias leans into that training distribution instead of inventing a private schema the agent has to relearn every session. Session tools help inside a chat. SprintBias is how the work stays when the chat ends.

01 · Lean into agent bias

Shape work around what an AI agent already does well — read context, reason, converse, decide. Prefer paths that walk with those strengths instead of fighting them.

02 · Minimize context cost

Every file, command, and help page costs context when an agent loads it. Fewer, sharper commands beat many overlapping ones. Pruning is a feature.

03 · Name in common language

Plain words that read the same to people and agents — task, chat, work, plan. Lifecycle folders backlog → next → doing → review are the affordance.

04 · Instruct positively

State the desired path as the rule. Prohibition lists hand the model a map of failure modes and no map of the work. Bias toward action.

Planning your coding agents already know.

Capture a stalled field claim. Sharpen it into finishable jobs. Bind a plan. Unblock. Ship. Pure theater — nothing writes to your project.

SprintBias — textLIVE
SprintBias bug → plan → ship
▪ Theater only — nothing writes to your project.
01 · capture
attachment never lands. file it before the claim dies.
────────────────────────────────
~/MyProject$ sprint newbug 'Field WO attachment never reaches office'
✓ docs/bugs/open/22-field-wo-attachment-never-reaches-office.md
02 · sharpen
chat the bug. ask until it's three jobs.
────────────────────────────────
~/MyProject $ sprint chat bugs
you │ Tech texts a WO photo. Office never sees it. Claim sits.
ai │ Three finishable jobs: parse, file to DMS, SMS shop when blocked.
→ 61-parse-field-wo-attachment
→ 62-file-claim-package-to-dms
→ 63-sms-shop-when-claim-blocked · vendor SMS
03 · plan
bind them. promote to next/.
────────────────────────────────
~/MyProject$ sprint newplan 'Unstick stalled warranty claim from the field' 61 62 63
✓ docs/plans/11-unstick-stalled-warranty-claim.md
~/MyProject $ sprint plan start
backlog/* → next/61 62 63 · READY
04 · unblock
notify needs a key. set once, run forever.
────────────────────────────────
~/MyProject $ sprint work 63
⏸ blocked — missing SHOP_SMS_API_KEY
.env local · Secrets Manager in prod
~/MyProject $ export SHOP_SMS_API_KEY=… && sprint work 63
blocked/63 → review/63
05 · work it
pick a member. land it in review.
────────────────────────────────
~/MyProject $ sprint plan
14 File claim package to office DMS
next/14 → doing/14
+ WO PDF validated · claim queued · shop SMS on block
doing/14 → review/14
════════════════════════════════
shipped. folders are status. you review the diff.
spine: newbug → chat → plan start → work → review

Scroll for the full spine · enable JavaScript for the live theater

Field WO stuck → three jobs → plan → review. Hit Replay if you blinked.

Folders are status. Markdown is the work.

Move a file with git mv and you change state. No database. No login. Status you can see in git status.

backlog/

Identified, not ready. Park it here until it can be finished.

next/

Queued for the current sprint. The folder is the sprint.

doing/

In progress. Keep WIP tight so agents stay focused.

blocked/

Needs a key, a decision, or a human. Unblock and resume.

review/

Done — awaiting your eyes on the diff.

done/

Shipped. History lives in git.

Work that lasts past one chat

Plain files in the repo. Close the session — the board is still there for the next agent and the next human.

One board, two audiences

Same folders, same markdown. Agents already speak paths and prose. Humans get a board they can open in any editor.

Easy exit

Remove the tool anytime. Tasks, plans, and history stay in git. No SaaS lock-in, no database export dance.

Drop the board into your project.

Clone once. Point setup at your app path. From then on you capture work, see it, and ship it — with Claude Code or Grok Build as first-class hosts.

Install
git clone git@github.com:jnun/sprintbias.git
GitHub
  1. 01

    Wire it into your app

    cd sprintbias && ./setup.sh ~/code/my-app — the board lands in your project, not in the tool repo.

  2. 02

    Teach the stack once

    ./sprint.sh profile — so the agent knows your languages, tests, and conventions.

  3. 03

    Capture → work → review

    ./sprint.sh newtask "…" then ./sprint.sh work. That's the loop. Group with newplanwhen you're ready.