Agent skill

Sprint Contract

by Archive228 in Archive228/loopkit

Negotiate a pre-code contract between generator and evaluator personas that defines what "done" means before any code is written.

MITAuto-check passedDevelopment

Install Sprint Contract

skills CLI
$ npx skills add Archive228/loopkit --skill sprint-contract -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Archive228/loopkit sprint-contract --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Archive228/loopkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/sprint-contract .claude/skills/sprint-contract && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
sprint-contract
GitHub stars
755
Token cost
~1.2k tokens
SKILL.md length
614 words
Files
1
Skills in repo
43
Repo updated
First seen
Licence
MIT

At a glance

Negotiate a pre-code contract between generator and evaluator personas that defines what "done" means before any code is written.

  • Works in 6 steps: Name the one deliverable. One feature,… → Write the acceptance predicates. 3-7… → Name the runtime path. How is this… → …
  • Development work in your project
  • SKILL.md covers When to apply, Procedure, Contract shape and Anti-patterns, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Sprint Contract is an agent skill from Archive228/loopkit. Negotiate a pre-code contract between generator and evaluator personas that defines what "done" means before any code is written. Turns fuzzy specs into a testable target the evaluator can hold the generator to.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development. The repository describes itself as: 33 battle-tested skills + minimal .claude harness for any coding agent (Claude Code, Cursor, Codex, Gemini CLI). The licence is MIT.

When your agent uses it

  • Development work in your project

Example prompts

  • “/sprint-contract”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Name the one deliverable. One feature, one sentence, user-observable. If you can't say it in a sentence, the sprint is too big — split it…
  2. Write the acceptance predicates. 3-7 bullets, each one a check that either passes or fails. No "clean code", no "good UX" — write…
  3. Name the runtime path. How is this exercised end-to-end? Which URL, which CLI invocation, which button click? The evaluator will drive…
  4. List the out-of-scope items. Two or three things the generator will be tempted to also fix. Written down = evaluator will reject them as…
  5. Sign it in the shift notes. Paste the contract into claude-progress.txt (or equivalent) under a ## Sprint contract header, with the sprint…
  6. Then, and only then, write code.

What it can do on your machine

Read from SKILL.md and the folder at commit 5ae033e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Sprint Contract loads about 1.2k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 614 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Archive228/loopkit at commit 5ae033e, republished under its MIT licence (© Archive228). 614 words, ~1,228 tokens.

Download SKILL.mdSave it as .claude/skills/sprint-contract/SKILL.md (or your agent's skills folder).
name
sprint-contract
description
Negotiate a pre-code contract between generator and evaluator personas that defines what "done" means before any code is written. Turns fuzzy specs into a testable target the evaluator can hold the generator to.
when_to_use
starting a coherent chunk of implementation work with an evaluator/reviewer in the loop, bridging a fuzzy spec to a testable target when planner output is…

Sprint Contract

The evaluator's leverage collapses when "done" is defined after the code exists. The generator ships something, the evaluator finds it plausible, the fuzzy spec silently reshapes to match what got built. Premature victory, dressed up.

Fix the timing: write the contract before the generator writes a line of code. The evaluator's job for the sprint is then mechanical — hold the artifact against the contract, no re-negotiation mid-flight.

Inspired by the planner/generator/evaluator split in Prithvi's March 2026 post on multi-agent harnesses.

When to apply

  • You're about to start a chunk of work (one feature, one refactor, one bug fix) with an evaluator or reviewer persona in the loop.
  • The planner output or upstream spec is ambiguous — you can imagine two reasonable implementations that both "satisfy" it.
  • A session just rehydrated from shift-notes / a progress file and needs a concrete acceptance target before it picks up the keyboard.

Procedure

  1. Name the one deliverable. One feature, one sentence, user-observable. If you can't say it in a sentence, the sprint is too big — split it, contract the first slice.
  2. Write the acceptance predicates. 3-7 bullets, each one a check that either passes or fails. No "clean code", no "good UX" — write predicates a script or a browser click can decide.
  3. Name the runtime path. How is this exercised end-to-end? Which URL, which CLI invocation, which button click? The evaluator will drive this exact path — no substitutes.
  4. List the out-of-scope items. Two or three things the generator will be tempted to also fix. Written down = evaluator will reject them as scope creep, generator has an anchor when tempted.
  5. Sign it in the shift notes. Paste the contract into claude-progress.txt (or equivalent) under a ## Sprint contract header, with the sprint start timestamp. Both personas reference this exact text for the rest of the sprint.
  6. Then, and only then, write code.

Contract shape

## Sprint contract — <ISO timestamp>

Deliverable: <one sentence, user-observable>

Acceptance predicates:
- [ ] <predicate 1 — script-decidable>
- [ ] <predicate 2>
- [ ] <predicate 3>

Runtime path: <exact URL / CLI / click sequence the evaluator will drive>

Out of scope this sprint:
- <tempting adjacent fix>
- <tempting refactor>
Show full SKILL.md (300 more words)Show less

Anti-patterns

  • Predicates that are prose, not checks. "Handles errors gracefully" is not a predicate. "Returns 400 with {error: "missing_field"} when name is absent" is.
  • Renegotiating mid-sprint. If the generator hits a wall, it does not edit the contract to route around it. It surfaces the wall, the planner revises scope, a new contract gets signed. Evaluator leniency comes from mid-flight edits — block them structurally.
  • Contract written by the generator alone. The generator will write predicates its planned code happens to satisfy. Have the evaluator draft or at least sign off before code starts.
  • No runtime path. Without it, the evaluator falls back to reading unit tests — see [[broken-window-check]] for how that fails.
  • Skipping the out-of-scope list. This is the cheapest anti-drift device you have. Skip it and you'll ship a "small refactor" that broke two other features.

Rehydration case

Fresh session, no memory of the previous one. Read shift-notes, find the last signed contract with unchecked predicates. That is your target — no re-planning, no reinterpretation. Drive the runtime path, tick the predicates, ship. If the contract looks wrong on inspection, do not edit it; revert to the planner, get a new one signed.

Cost

Two to five minutes of prose before code. In return: the evaluator has something to be strict about, the generator has an anchor against scope drift, and the next session inherits a testable target instead of a vibe.

  • [[shift-notes]] — where the contract lives across sessions.
  • [[broken-window-check]] — what the evaluator runs against the contract at session start.
  • [[adversarial-verify]] — the end-of-sprint pass that decides whether every predicate actually holds.

When NOT to apply

Trivial edits (typo fix, one-line config change, dependency bump) — the contract overhead exceeds the work. Solo runs with no evaluator persona in the loop — write yourself a one-line acceptance note instead and move on.

© Archive228, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/sprint-contract of Archive228/loopkit.

Open the folder on GitHubat commit 5ae033e

Compare with similar skills

Sprint Contract next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Sprint Contract compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sprint Contract this skillArchive228/loopkit755—~1.2kAutomated safety check: PassMIT
Vercel Composition Patternssupabase/supabase111k58 repos~726Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k25 repos~4.2kAutomated safety check: PassMPL-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 58 repos~726 tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed

More from Archive228/loopkit

All 43 skills in this repo
  • Hitl Escalate

    Archive228/loopkit

    Escalate blocked runs to a human via configured channel or fallback to BLOCKED.md and exit the loop.

    755 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Structured Output

    Archive228/loopkit

    Get JSON out of the model reliably. An agent skill from Archive228/loopkit.

    755 GitHub stars~830 tokensUpdated 2 mo ago
    Auto-check passed
  • Using Loopkit

    Archive228/loopkit

    A skill your agent uses when starting any conversation in a loopkit-enabled project - establishes how to find and use loopkit's 49 skills, requiring skill invocation before ANY response including…

    755 GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Active Memory Reminder

    Archive228/loopkit

    Before compaction Loopkit extracts decisions into claude-decisions.json (machine-readable).

    755 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Eval Harness

    Archive228/loopkit

    Build a repeatable eval loop that grades agent output with an LLM judge, so prompt/skill changes get scored against a baseline instead of eyeballed.

    755 GitHub stars~876 tokensUpdated 2 mo ago
    Auto-check passed
  • Feature List JSON

    Archive228/loopkit

    Enumerate every end-to-end feature as strict JSON entries with passes:false, editable-passes-only discipline, and priority order.

    755 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed

Categories

Questions about Sprint Contract

What does Sprint Contract do?

Negotiate a pre-code contract between generator and evaluator personas that defines what "done" means before any code is written. Sprint Contract is an agent skill from Archive228/loopkit. Negotiate a pre-code contract between generator and evaluator personas that defines what "done" means before any code is written.

When should I use Sprint Contract?

Sprint Contract fits situations like: development work in your project.

How do I install Sprint Contract in Claude Code?

Run `npx skills add Archive228/loopkit --skill sprint-contract -a claude-code`. Or copy the skill folder (skills/sprint-contract in Archive228/loopkit) into .claude/skills/sprint-contract in your project. Claude Code loads it when a task matches its description.

How do I install Sprint Contract in Codex?

Run `npx skills add Archive228/loopkit --skill sprint-contract -a codex`. Or copy the skill folder (skills/sprint-contract in Archive228/loopkit) into .agents/skills/sprint-contract in your project. Codex loads it when a task matches its description.

Can I use Sprint Contract in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Archive228/loopkit --skill sprint-contract -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sprint-contract, .gemini/skills/sprint-contract, .github/skills/sprint-contract and .opencode/skills/sprint-contract in your project.

What does Sprint Contract need to run?

SKILL.md names no scripts, command-line tools or credentials: Sprint Contract is instructions for the agent only.

Does Sprint Contract access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Sprint Contract safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Sprint Contract use?

Sprint Contract is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Sprint Contract use?

About 1.2k tokens (SKILL.md is roughly 4.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Sprint Contract?

Skills that share tags, products or a category with Sprint Contract: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Sprint Contract?

Archive228 (a GitHub user) maintains it in Archive228/loopkit, which has 755 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on July 14, 2026.

Source: Archive228/loopkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.