Skip to content
stacks

Django REST API (DRF)

A Python JSON API on Django and Django REST Framework with no server-rendered pages, managed with uv and make. Django's ORM, migrations and admin hold the data, one error envelope covers every failure, drf-spectacular's committed OpenAPI schema has a drift check, and pytest-django drives the API client against a real database.

What done means

Your agent follows the brief, then runs stacks verify without weakening or skipping checks. What happens next

Declared steps: install, lint, typecheck, test, migrations, openapi-drift, deploy-check, build, api, readme-filled. View commands

Use this stack

Paste the prompt into the coding agent working on your project.

Project intent

Uses the stack’s default fragments. Review the brief with your agent.Uses stated defaults and omits deploy, release, and app fragments unless explicitly requested.

View prompt
Use the django-api stack for this project. 1. Run npx @steamfield/stacks show django-api --json and check that it fits the project. If it does not, explain why before changing files. 2. Run npx @steamfield/stacks new django-api and follow the brief it prints. 3. From the generated project directory, run npx @steamfield/stacks verify. Fix failures without weakening or skipping verification steps. 4. Summarize what changed and the verification result. Quote published stats only when they are available, including their interval and sample size. The stacks docs, written for agents, are at https://stacks.steamfield.io/llms.txt.
Use the django-api stack for a quick local experiment. 1. Run npx @steamfield/stacks show django-api --json and check that it fits the project. If it does not, explain why before changing files. 2. Run npx @steamfield/stacks new django-api --sandbox and follow the brief it prints. 3. From the generated project directory, run npx @steamfield/stacks verify. Fix failures without weakening or skipping verification steps. 4. Summarize what changed and the verification result. Quote published stats only when they are available, including their interval and sample size. The stacks docs, written for agents, are at https://stacks.steamfield.io/llms.txt.
Or use the terminal
npx @steamfield/stacks new django-api
npx @steamfield/stacks new django-api --sandbox
Verify steps
StepPhaseLayerCommand
installsetupinstallmake install
lintchecklintmake lint
typecheckchecktypecheckmake typecheck
testchecktestmake coverage
migrationscheckcheckmake check-migrations
openapi-driftcheckcheckmake check-openapi
deploy-checkcheckcheckmake check-deploy
buildcheckbuildmake build
apiserveservemake start
readme-filledcheckchecktest -s README.md && ! grep -n 'stacks:fill' README.md

Usage and outcomes

Usage over time

Showing 180 days of history.

History

The 28-day green rate at each weekly observation. Gaps mean the sample was too small to publish.

Jul 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate12 Jul 2026: 83% (76–88%, n=150)19 Jul 2026: 82% (77–85%, n=320)26 Jul 2026: 79% (76–82%, n=595)2 Aug 2026: 81% (78–84%, n=860)9 Aug 2026: 80% (77–82%, n=1,015)16 Aug 2026: 80% (78–82%, n=1,170)23 Aug 2026: 81% (78–83%, n=1,235)30 Aug 2026: 80% (77–82%, n=1,350)6 Sept 2026: 80% (78–82%, n=1,425)13 Sept 2026: 80% (78–82%, n=1,490)20 Sept 2026: 80% (77–81%, n=1,605)27 Sept 2026: 79% (77–81%, n=1,665)4 Oct 2026: 79% (77–81%, n=1,765)11 Oct 2026: 79% (77–81%, n=1,870)18 Oct 2026: 80% (79–82%, n=1,940)25 Oct 2026: 81% (79–83%, n=2,115)1 Nov 2026: 80% (78–81%, n=2,215)
Jul 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate12 Jul 2026: 83% (76–88%, n=150)19 Jul 2026: 82% (77–85%, n=320)26 Jul 2026: 79% (76–82%, n=595)2 Aug 2026: 81% (78–84%, n=860)9 Aug 2026: 80% (77–82%, n=1,015)16 Aug 2026: 80% (78–82%, n=1,170)23 Aug 2026: 81% (78–83%, n=1,235)30 Aug 2026: 80% (77–82%, n=1,350)6 Sept 2026: 80% (78–82%, n=1,425)13 Sept 2026: 80% (78–82%, n=1,490)20 Sept 2026: 80% (77–81%, n=1,605)27 Sept 2026: 79% (77–81%, n=1,665)4 Oct 2026: 79% (77–81%, n=1,765)11 Oct 2026: 79% (77–81%, n=1,870)18 Oct 2026: 80% (79–82%, n=1,940)25 Oct 2026: 81% (79–83%, n=2,115)1 Nov 2026: 80% (78–81%, n=2,215)
Jun 1Jul 1Aug 1Sep 1Oct 1Nov 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate12 Jul 2026: 83% (76–88%, n=150)19 Jul 2026: 82% (77–85%, n=320)26 Jul 2026: 79% (76–82%, n=595)2 Aug 2026: 81% (78–84%, n=860)9 Aug 2026: 80% (77–82%, n=1,015)16 Aug 2026: 80% (78–82%, n=1,170)23 Aug 2026: 81% (78–83%, n=1,235)30 Aug 2026: 80% (77–82%, n=1,350)6 Sept 2026: 80% (78–82%, n=1,425)13 Sept 2026: 80% (78–82%, n=1,490)20 Sept 2026: 80% (77–81%, n=1,605)27 Sept 2026: 79% (77–81%, n=1,665)4 Oct 2026: 79% (77–81%, n=1,765)11 Oct 2026: 79% (77–81%, n=1,870)18 Oct 2026: 80% (79–82%, n=1,940)25 Oct 2026: 81% (79–83%, n=2,115)1 Nov 2026: 80% (78–81%, n=2,215)
Jun 1Jul 1Aug 1Sep 1Oct 1Nov 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate12 Jul 2026: 83% (76–88%, n=150)19 Jul 2026: 82% (77–85%, n=320)26 Jul 2026: 79% (76–82%, n=595)2 Aug 2026: 81% (78–84%, n=860)9 Aug 2026: 80% (77–82%, n=1,015)16 Aug 2026: 80% (78–82%, n=1,170)23 Aug 2026: 81% (78–83%, n=1,235)30 Aug 2026: 80% (77–82%, n=1,350)6 Sept 2026: 80% (78–82%, n=1,425)13 Sept 2026: 80% (78–82%, n=1,490)20 Sept 2026: 80% (77–81%, n=1,605)27 Sept 2026: 79% (77–81%, n=1,665)4 Oct 2026: 79% (77–81%, n=1,765)11 Oct 2026: 79% (77–81%, n=1,870)18 Oct 2026: 80% (79–82%, n=1,940)25 Oct 2026: 81% (79–83%, n=2,115)1 Nov 2026: 80% (78–81%, n=2,215)
Jul 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate12 Jul 2026: 83% (76–88%, n=150)19 Jul 2026: 82% (77–85%, n=320)26 Jul 2026: 79% (76–82%, n=595)2 Aug 2026: 81% (78–84%, n=860)9 Aug 2026: 80% (77–82%, n=1,015)16 Aug 2026: 80% (78–82%, n=1,170)23 Aug 2026: 81% (78–83%, n=1,235)30 Aug 2026: 80% (77–82%, n=1,350)6 Sept 2026: 80% (78–82%, n=1,425)13 Sept 2026: 80% (78–82%, n=1,490)20 Sept 2026: 80% (77–81%, n=1,605)27 Sept 2026: 79% (77–81%, n=1,665)4 Oct 2026: 79% (77–81%, n=1,765)11 Oct 2026: 79% (77–81%, n=1,870)18 Oct 2026: 80% (79–82%, n=1,940)25 Oct 2026: 81% (79–83%, n=2,115)1 Nov 2026: 80% (78–81%, n=2,215)
Jul 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate12 Jul 2026: 83% (76–88%, n=150)19 Jul 2026: 82% (77–85%, n=320)26 Jul 2026: 79% (76–82%, n=595)2 Aug 2026: 81% (78–84%, n=860)9 Aug 2026: 80% (77–82%, n=1,015)16 Aug 2026: 80% (78–82%, n=1,170)23 Aug 2026: 81% (78–83%, n=1,235)30 Aug 2026: 80% (77–82%, n=1,350)6 Sept 2026: 80% (78–82%, n=1,425)13 Sept 2026: 80% (78–82%, n=1,490)20 Sept 2026: 80% (77–81%, n=1,605)27 Sept 2026: 79% (77–81%, n=1,665)4 Oct 2026: 79% (77–81%, n=1,765)11 Oct 2026: 79% (77–81%, n=1,870)18 Oct 2026: 80% (79–82%, n=1,940)25 Oct 2026: 81% (79–83%, n=2,115)1 Nov 2026: 80% (78–81%, n=2,215)
Jun 1Jul 1Aug 1Sep 1Oct 1Nov 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate12 Jul 2026: 83% (76–88%, n=150)19 Jul 2026: 82% (77–85%, n=320)26 Jul 2026: 79% (76–82%, n=595)2 Aug 2026: 81% (78–84%, n=860)9 Aug 2026: 80% (77–82%, n=1,015)16 Aug 2026: 80% (78–82%, n=1,170)23 Aug 2026: 81% (78–83%, n=1,235)30 Aug 2026: 80% (77–82%, n=1,350)6 Sept 2026: 80% (78–82%, n=1,425)13 Sept 2026: 80% (78–82%, n=1,490)20 Sept 2026: 80% (77–81%, n=1,605)27 Sept 2026: 79% (77–81%, n=1,665)4 Oct 2026: 79% (77–81%, n=1,765)11 Oct 2026: 79% (77–81%, n=1,870)18 Oct 2026: 80% (79–82%, n=1,940)25 Oct 2026: 81% (79–83%, n=2,115)1 Nov 2026: 80% (78–81%, n=2,215)
Jun 1Jul 1Aug 1Sep 1Oct 1Nov 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate12 Jul 2026: 83% (76–88%, n=150)19 Jul 2026: 82% (77–85%, n=320)26 Jul 2026: 79% (76–82%, n=595)2 Aug 2026: 81% (78–84%, n=860)9 Aug 2026: 80% (77–82%, n=1,015)16 Aug 2026: 80% (78–82%, n=1,170)23 Aug 2026: 81% (78–83%, n=1,235)30 Aug 2026: 80% (77–82%, n=1,350)6 Sept 2026: 80% (78–82%, n=1,425)13 Sept 2026: 80% (78–82%, n=1,490)20 Sept 2026: 80% (77–81%, n=1,605)27 Sept 2026: 79% (77–81%, n=1,665)4 Oct 2026: 79% (77–81%, n=1,765)11 Oct 2026: 79% (77–81%, n=1,870)18 Oct 2026: 80% (79–82%, n=1,940)25 Oct 2026: 81% (79–83%, n=2,115)1 Nov 2026: 80% (78–81%, n=2,215)

Shaded band: 95% Wilson interval. Dashed rules: content changes. Missing observations remain gaps.

Stacks projects · 28 days through 4 Nov 2026. Counts rounded to 5.

Data table
ThroughGreen rateProjectsContent change
5 Jul 2026hidden: too few projects––
12 Jul 202683% (76–88%, n=150)240–
19 Jul 202682% (77–85%, n=320)520–
26 Jul 202679% (76–82%, n=595)975–
2 Aug 202681% (78–84%, n=860)1,420–
9 Aug 202680% (77–82%, n=1,015)1,635–
16 Aug 202680% (78–82%, n=1,170)1,880–
23 Aug 202681% (78–83%, n=1,235)1,965–
30 Aug 202680% (77–82%, n=1,350)2,120–
6 Sept 202680% (78–82%, n=1,425)2,275–
13 Sept 202680% (78–82%, n=1,490)2,395–
20 Sept 202680% (77–81%, n=1,605)2,590–
27 Sept 202679% (77–81%, n=1,665)2,705–
4 Oct 202679% (77–81%, n=1,765)2,865–
11 Oct 202679% (77–81%, n=1,870)3,030–
18 Oct 202680% (79–82%, n=1,940)3,150–
25 Oct 202681% (79–83%, n=2,115)3,390–
1 Nov 202680% (78–81%, n=2,215)3,565–

Weekly projects by preset

Non-overlapping seven-day project counts, grouped by the preset used to start the project.

Jul 1Oct 102004006008001kdefault · 12 Jul 2026: 150sandbox · 12 Jul 2026: 95default · 19 Jul 2026: 180sandbox · 19 Jul 2026: 100default · 26 Jul 2026: 295sandbox · 26 Jul 2026: 160default · 2 Aug 2026: 290sandbox · 2 Aug 2026: 155default · 9 Aug 2026: 310sandbox · 9 Aug 2026: 150default · 16 Aug 2026: 355sandbox · 16 Aug 2026: 170default · 23 Aug 2026: 360sandbox · 23 Aug 2026: 180default · 30 Aug 2026: 400sandbox · 30 Aug 2026: 200default · 6 Sept 2026: 385sandbox · 6 Sept 2026: 230default · 13 Sept 2026: 425sandbox · 13 Sept 2026: 220default · 20 Sept 2026: 470sandbox · 20 Sept 2026: 265default · 27 Sept 2026: 460sandbox · 27 Sept 2026: 255default · 4 Oct 2026: 495sandbox · 4 Oct 2026: 280default · 11 Oct 2026: 525sandbox · 11 Oct 2026: 285default · 18 Oct 2026: 560sandbox · 18 Oct 2026: 290default · 25 Oct 2026: 600sandbox · 25 Oct 2026: 355default · 1 Nov 2026: 630sandbox · 1 Nov 2026: 315
Jul 1Oct 102004006008001kdefault · 12 Jul 2026: 150sandbox · 12 Jul 2026: 95default · 19 Jul 2026: 180sandbox · 19 Jul 2026: 100default · 26 Jul 2026: 295sandbox · 26 Jul 2026: 160default · 2 Aug 2026: 290sandbox · 2 Aug 2026: 155default · 9 Aug 2026: 310sandbox · 9 Aug 2026: 150default · 16 Aug 2026: 355sandbox · 16 Aug 2026: 170default · 23 Aug 2026: 360sandbox · 23 Aug 2026: 180default · 30 Aug 2026: 400sandbox · 30 Aug 2026: 200default · 6 Sept 2026: 385sandbox · 6 Sept 2026: 230default · 13 Sept 2026: 425sandbox · 13 Sept 2026: 220default · 20 Sept 2026: 470sandbox · 20 Sept 2026: 265default · 27 Sept 2026: 460sandbox · 27 Sept 2026: 255default · 4 Oct 2026: 495sandbox · 4 Oct 2026: 280default · 11 Oct 2026: 525sandbox · 11 Oct 2026: 285default · 18 Oct 2026: 560sandbox · 18 Oct 2026: 290default · 25 Oct 2026: 600sandbox · 25 Oct 2026: 355default · 1 Nov 2026: 630sandbox · 1 Nov 2026: 315
Jun 1Jul 1Aug 1Sep 1Oct 1Nov 102004006008001kdefault · 12 Jul 2026: 150sandbox · 12 Jul 2026: 95default · 19 Jul 2026: 180sandbox · 19 Jul 2026: 100default · 26 Jul 2026: 295sandbox · 26 Jul 2026: 160default · 2 Aug 2026: 290sandbox · 2 Aug 2026: 155default · 9 Aug 2026: 310sandbox · 9 Aug 2026: 150default · 16 Aug 2026: 355sandbox · 16 Aug 2026: 170default · 23 Aug 2026: 360sandbox · 23 Aug 2026: 180default · 30 Aug 2026: 400sandbox · 30 Aug 2026: 200default · 6 Sept 2026: 385sandbox · 6 Sept 2026: 230default · 13 Sept 2026: 425sandbox · 13 Sept 2026: 220default · 20 Sept 2026: 470sandbox · 20 Sept 2026: 265default · 27 Sept 2026: 460sandbox · 27 Sept 2026: 255default · 4 Oct 2026: 495sandbox · 4 Oct 2026: 280default · 11 Oct 2026: 525sandbox · 11 Oct 2026: 285default · 18 Oct 2026: 560sandbox · 18 Oct 2026: 290default · 25 Oct 2026: 600sandbox · 25 Oct 2026: 355default · 1 Nov 2026: 630sandbox · 1 Nov 2026: 315
Jun 1Jul 1Aug 1Sep 1Oct 1Nov 102004006008001kdefault · 12 Jul 2026: 150sandbox · 12 Jul 2026: 95default · 19 Jul 2026: 180sandbox · 19 Jul 2026: 100default · 26 Jul 2026: 295sandbox · 26 Jul 2026: 160default · 2 Aug 2026: 290sandbox · 2 Aug 2026: 155default · 9 Aug 2026: 310sandbox · 9 Aug 2026: 150default · 16 Aug 2026: 355sandbox · 16 Aug 2026: 170default · 23 Aug 2026: 360sandbox · 23 Aug 2026: 180default · 30 Aug 2026: 400sandbox · 30 Aug 2026: 200default · 6 Sept 2026: 385sandbox · 6 Sept 2026: 230default · 13 Sept 2026: 425sandbox · 13 Sept 2026: 220default · 20 Sept 2026: 470sandbox · 20 Sept 2026: 265default · 27 Sept 2026: 460sandbox · 27 Sept 2026: 255default · 4 Oct 2026: 495sandbox · 4 Oct 2026: 280default · 11 Oct 2026: 525sandbox · 11 Oct 2026: 285default · 18 Oct 2026: 560sandbox · 18 Oct 2026: 290default · 25 Oct 2026: 600sandbox · 25 Oct 2026: 355default · 1 Nov 2026: 630sandbox · 1 Nov 2026: 315
Jul 1Oct 102004006008001kdefault · 12 Jul 2026: 150sandbox · 12 Jul 2026: 95default · 19 Jul 2026: 180sandbox · 19 Jul 2026: 100default · 26 Jul 2026: 295sandbox · 26 Jul 2026: 160default · 2 Aug 2026: 290sandbox · 2 Aug 2026: 155default · 9 Aug 2026: 310sandbox · 9 Aug 2026: 150default · 16 Aug 2026: 355sandbox · 16 Aug 2026: 170default · 23 Aug 2026: 360sandbox · 23 Aug 2026: 180default · 30 Aug 2026: 400sandbox · 30 Aug 2026: 200default · 6 Sept 2026: 385sandbox · 6 Sept 2026: 230default · 13 Sept 2026: 425sandbox · 13 Sept 2026: 220default · 20 Sept 2026: 470sandbox · 20 Sept 2026: 265default · 27 Sept 2026: 460sandbox · 27 Sept 2026: 255default · 4 Oct 2026: 495sandbox · 4 Oct 2026: 280default · 11 Oct 2026: 525sandbox · 11 Oct 2026: 285default · 18 Oct 2026: 560sandbox · 18 Oct 2026: 290default · 25 Oct 2026: 600sandbox · 25 Oct 2026: 355default · 1 Nov 2026: 630sandbox · 1 Nov 2026: 315
Jul 1Oct 102004006008001kdefault · 12 Jul 2026: 150sandbox · 12 Jul 2026: 95default · 19 Jul 2026: 180sandbox · 19 Jul 2026: 100default · 26 Jul 2026: 295sandbox · 26 Jul 2026: 160default · 2 Aug 2026: 290sandbox · 2 Aug 2026: 155default · 9 Aug 2026: 310sandbox · 9 Aug 2026: 150default · 16 Aug 2026: 355sandbox · 16 Aug 2026: 170default · 23 Aug 2026: 360sandbox · 23 Aug 2026: 180default · 30 Aug 2026: 400sandbox · 30 Aug 2026: 200default · 6 Sept 2026: 385sandbox · 6 Sept 2026: 230default · 13 Sept 2026: 425sandbox · 13 Sept 2026: 220default · 20 Sept 2026: 470sandbox · 20 Sept 2026: 265default · 27 Sept 2026: 460sandbox · 27 Sept 2026: 255default · 4 Oct 2026: 495sandbox · 4 Oct 2026: 280default · 11 Oct 2026: 525sandbox · 11 Oct 2026: 285default · 18 Oct 2026: 560sandbox · 18 Oct 2026: 290default · 25 Oct 2026: 600sandbox · 25 Oct 2026: 355default · 1 Nov 2026: 630sandbox · 1 Nov 2026: 315
Jun 1Jul 1Aug 1Sep 1Oct 1Nov 102004006008001kdefault · 12 Jul 2026: 150sandbox · 12 Jul 2026: 95default · 19 Jul 2026: 180sandbox · 19 Jul 2026: 100default · 26 Jul 2026: 295sandbox · 26 Jul 2026: 160default · 2 Aug 2026: 290sandbox · 2 Aug 2026: 155default · 9 Aug 2026: 310sandbox · 9 Aug 2026: 150default · 16 Aug 2026: 355sandbox · 16 Aug 2026: 170default · 23 Aug 2026: 360sandbox · 23 Aug 2026: 180default · 30 Aug 2026: 400sandbox · 30 Aug 2026: 200default · 6 Sept 2026: 385sandbox · 6 Sept 2026: 230default · 13 Sept 2026: 425sandbox · 13 Sept 2026: 220default · 20 Sept 2026: 470sandbox · 20 Sept 2026: 265default · 27 Sept 2026: 460sandbox · 27 Sept 2026: 255default · 4 Oct 2026: 495sandbox · 4 Oct 2026: 280default · 11 Oct 2026: 525sandbox · 11 Oct 2026: 285default · 18 Oct 2026: 560sandbox · 18 Oct 2026: 290default · 25 Oct 2026: 600sandbox · 25 Oct 2026: 355default · 1 Nov 2026: 630sandbox · 1 Nov 2026: 315
Jun 1Jul 1Aug 1Sep 1Oct 1Nov 102004006008001kdefault · 12 Jul 2026: 150sandbox · 12 Jul 2026: 95default · 19 Jul 2026: 180sandbox · 19 Jul 2026: 100default · 26 Jul 2026: 295sandbox · 26 Jul 2026: 160default · 2 Aug 2026: 290sandbox · 2 Aug 2026: 155default · 9 Aug 2026: 310sandbox · 9 Aug 2026: 150default · 16 Aug 2026: 355sandbox · 16 Aug 2026: 170default · 23 Aug 2026: 360sandbox · 23 Aug 2026: 180default · 30 Aug 2026: 400sandbox · 30 Aug 2026: 200default · 6 Sept 2026: 385sandbox · 6 Sept 2026: 230default · 13 Sept 2026: 425sandbox · 13 Sept 2026: 220default · 20 Sept 2026: 470sandbox · 20 Sept 2026: 265default · 27 Sept 2026: 460sandbox · 27 Sept 2026: 255default · 4 Oct 2026: 495sandbox · 4 Oct 2026: 280default · 11 Oct 2026: 525sandbox · 11 Oct 2026: 285default · 18 Oct 2026: 560sandbox · 18 Oct 2026: 290default · 25 Oct 2026: 600sandbox · 25 Oct 2026: 355default · 1 Nov 2026: 630sandbox · 1 Nov 2026: 315
  • default
  • sandbox

Stacks projects per UTC week through 4 Nov 2026. Published preset counts only; hidden cells are not zero.

Data table
Week endingPresetProjects
5 Jul 2026default–
12 Jul 2026default150
19 Jul 2026default180
26 Jul 2026default295
2 Aug 2026default290
9 Aug 2026default310
16 Aug 2026default355
23 Aug 2026default360
30 Aug 2026default400
6 Sept 2026default385
13 Sept 2026default425
20 Sept 2026default470
27 Sept 2026default460
4 Oct 2026default495
11 Oct 2026default525
18 Oct 2026default560
25 Oct 2026default600
1 Nov 2026default630
5 Jul 2026sandbox–
12 Jul 2026sandbox95
19 Jul 2026sandbox100
26 Jul 2026sandbox160
2 Aug 2026sandbox155
9 Aug 2026sandbox150
16 Aug 2026sandbox170
23 Aug 2026sandbox180
30 Aug 2026sandbox200
6 Sept 2026sandbox230
13 Sept 2026sandbox220
20 Sept 2026sandbox265
27 Sept 2026sandbox255
4 Oct 2026sandbox280
11 Oct 2026sandbox285
18 Oct 2026sandbox290
25 Oct 2026sandbox355
1 Nov 2026sandbox315

By preset

Green verify outcomes by the preset chosen at scaffold time.

default

79%76–81%, n=1,295

sandbox

82%79–85%, n=750

Stacks projects · 28 days through 4 Nov 2026. Counts rounded to 5.

Data table
NameGreen rateProjects
default79% (76–81%, n=1,295)2,130
sandbox82% (79–85%, n=750)1,175

By agent

Within this stack, listed alphabetically. These are project outcomes, not an agent ranking.

claude

80%78–82%, n=1,130

codex

79%76–82%, n=560

cursor

81%75–86%, n=185

none

76%62–86%, n=45

opencode

77%68–85%, n=95

other

86%71–94%, n=35

Stacks projects · 28 days through 4 Nov 2026. Counts rounded to 5.

Data table
NameGreen rateProjects
claude80% (78–82%, n=1,130)1,815
codex79% (76–82%, n=560)890
cursor81% (75–86%, n=185)300
none76% (62–86%, n=45)75
opencode77% (68–85%, n=95)160
other86% (71–94%, n=35)55

Time to green

Published time summaries on a shared minutes scale. First passing test is a median; 75% reached green by the 75th percentile.

02030MinutesFirst passing testMedian to green75th percentileFirst passing test: 14 minutesMedian to green: 23 minutes75th percentile: 32 minutes14 min23 min32 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 14 minutesMedian to green: 23 minutes75th percentile: 32 minutes14 min23 min32 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 14 minutesMedian to green: 23 minutes75th percentile: 32 minutes14 min23 min32 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 14 minutesMedian to green: 23 minutes75th percentile: 32 minutes14 min23 min32 min
02030MinutesFirst passing testMedian to green75th percentileFirst passing test: 14 minutesMedian to green: 23 minutes75th percentile: 32 minutes14 min23 min32 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 14 minutesMedian to green: 23 minutes75th percentile: 32 minutes14 min23 min32 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 14 minutesMedian to green: 23 minutes75th percentile: 32 minutes14 min23 min32 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 14 minutesMedian to green: 23 minutes75th percentile: 32 minutes14 min23 min32 min
Verify runs to green
1

Stacks projects · 28 days through 4 Nov 2026. Counts rounded to 5.

Data table
MeasureTime / runs
Median to green23 minutes
75th percentile32 minutes
First passing test14 minutes
Verify runs to green1

Where it breaks

A run can fail more than one step. Environment failures are shown separately.

typecheck25%
test19%
build11%
lint10%
openapi-drift7%
deploy-check6%
api6%
readme-filled5%
install5%
migrations4%
Environment blocked0%

Share of failed runs before first green. Environment blocked describes the machine, not the stack.

Data table
StepShare
typecheck25%
openapi-drift7%
lint10%
build11%
test19%
readme-filled5%
deploy-check6%
install5%
api6%
migrations4%
Environment blocked0%

What people change

Defaults people keep, and optional fragments they choose to attach.

Default, kept rate

agent-ops92%
git-hooks91%
ci-github92%
rest-api93%

Optional, attach rate

rr17%
ce-plugin17%

Share of the window's 3,300 projects. Kept rate is 1 minus the without rate.

Data table
FragmentMeasureShare
agent-opsKept92%
git-hooksKept91%
ci-githubKept92%
rest-apiKept93%
rrAttached17%
ce-pluginAttached17%
By composition 48 fingerprints

Each row is a distinct fragment composition, with its own sample and content history.

CompositionGreen rateSeenChange in life
defaults + rr − rest-api · 0955dcedhidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + rr − agent-ops · 0fe02fe1hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin + rr · 10a15d1379% (66–88%, n=50)12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin + rr − agent-ops − ci-github · 115497b2hidden: too few projects30 Aug 2026 – 1 Nov 2026None
defaults + ce-plugin + rr − git-hooks · 12dc3feahidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults − git-hooks − rest-api · 13c6a69dhidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin + rr − ci-github − rest-api · 143d1418hidden: too few projects16 Aug 2026 – 1 Nov 2026None
defaults + ce-plugin − agent-ops − rest-api · 15e321d7hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults · 1902043e80% (78–82%, n=1,400)12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin − ci-github − git-hooks · 342d4cebhidden: too few projects9 Aug 2026 – 1 Nov 2026None
defaults − ci-github − rest-api · 372c84aahidden: too few projects19 Jul 2026 – 1 Nov 2026None
defaults + rr − ci-github − git-hooks − rest-api · 395c522ahidden: too few projects25 Oct 2026 – 1 Nov 2026None
defaults + rr − git-hooks − rest-api · 3be2341fhidden: too few projects2 Aug 2026 – 1 Nov 2026None
defaults + ce-plugin − agent-ops − ci-github − rest-api · 455a8704hidden: too few projects11 Oct 2026 – 1 Nov 2026None
defaults − agent-ops − ci-github · 54cd5d78hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + rr − ci-github − rest-api · 5a849617hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin + rr − ci-github · 5c2217c0hidden: too few projects26 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin + rr − rest-api · 635b739fhidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults − ci-github · 65db6dedhidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin + rr − agent-ops · 6a3ffc59hidden: too few projects26 Jul 2026 – 1 Nov 2026None
defaults + rr · 6b2b149082% (77–86%, n=295)12 Jul 2026 – 1 Nov 2026None
defaults + rr − git-hooks · 77e5afcchidden: too few projects19 Jul 2026 – 1 Nov 2026None
defaults + rr − agent-ops − ci-github · 84eb86aehidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin − agent-ops − ci-github · 8b6ec140hidden: too few projects9 Aug 2026 – 1 Nov 2026None
defaults + ce-plugin − git-hooks − rest-api · 8e30b0afhidden: too few projects2 Aug 2026 – 1 Nov 2026None
defaults + ce-plugin − agent-ops · 98da12a5hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults − agent-ops − git-hooks · a237877ehidden: too few projects26 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin · a457f25176% (71–81%, n=300)12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin − agent-ops − ci-github − git-hooks · a7d433d3hidden: too few projects25 Oct 2026 – 1 Nov 2026None
defaults − ci-github − git-hooks · aedf7b7ehidden: too few projects19 Jul 2026 – 1 Nov 2026None
defaults + rr − agent-ops − git-hooks · b494f5e9hidden: too few projects19 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin − ci-github · b49a7346hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults − agent-ops − ci-github − rest-api · b583b8echidden: too few projects11 Oct 2026 – 1 Nov 2026None
defaults − rest-api · b7fbda47hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin − rest-api · bb827c27hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin + rr − agent-ops − rest-api · bbe2643fhidden: too few projects11 Oct 2026 – 1 Nov 2026None
defaults + rr − ci-github · c1efb3bbhidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin − ci-github − rest-api · c5beef93hidden: too few projects19 Jul 2026 – 1 Nov 2026None
defaults + ce-plugin − agent-ops − git-hooks · ce69b4c7hidden: too few projects26 Jul 2026 – 1 Nov 2026None
defaults + rr − agent-ops − rest-api · d1a7288bhidden: too few projects9 Aug 2026 – 1 Nov 2026None
defaults + ce-plugin − git-hooks · da33467dhidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults − git-hooks · dcb688c1hidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults − ci-github − git-hooks − rest-api · e64e50ffhidden: too few projects23 Aug 2026 – 1 Nov 2026None
defaults + ce-plugin + rr − agent-ops − git-hooks · ecada3a1hidden: too few projects20 Sept 2026 – 1 Nov 2026None
defaults − agent-ops − rest-api · ef938fcfhidden: too few projects12 Jul 2026 – 1 Nov 2026None
defaults + rr − ci-github − git-hooks · f6acea9dhidden: too few projects26 Jul 2026 – 1 Nov 2026None
defaults − agent-ops − git-hooks − rest-api · fbf903f3hidden: too few projects26 Jul 2026 – 1 Nov 2026None
defaults − agent-ops · fc66b2fdhidden: too few projects12 Jul 2026 – 1 Nov 2026None

Dependencies in use

Major versions reported by this stack's projects in the 28-day window. Declared dependencies remain listed above.

django1,370 reporting projects
Major 577%
Major 623%
mypy1,370 reporting projects
Major 2100%
pytest1,370 reporting projects
Major 9100%
ruff1,370 reporting projects
Major 0.17100%
structlog1,370 reporting projects
Major 26100%

This compares projects; it isn't an effect of the dependency.

Computed 5 Nov 2026, through 4 Nov 2026. Numbers describe stacks projects, not the ecosystem.