Ask your agent to check compatibility, follow this fragment’s brief, and verify the resulting project. What happens next
Applies to:
all stacks
Repository:
Requires its own repository
Add to your project
Paste the prompt into the coding agent working on your project.
View prompt
Add the git-hooks fragment to this existing repository.
1. Run npx @steamfield/stacks show git-hooks --json and check that it fits the project. If it does not, explain why before changing files.
2. Run npx @steamfield/stacks add git-hooks and follow the brief it prints.
3. In this repository, 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.
Effect Schema as the one validation and typing layer for data crossing a trust boundary (requests, config, storage, third-party and LLM output), with branded ids, tagged errors, JSON Schema for tools, and round-trip plus property tests.
Also applies to: astro-blog, astro-fullstack, mobile-expo, python-react, cloudflare-react-router, react-router, tauri-react, typescript-cli, typescript-api
Effect testing with @effect/vitest (fresh real layers per test, TestClock instead of sleeps, typed failure and defect assertions), shipped Effect guidance for each agent, and an agent skill written from the installed Effect release's declarations.
Also applies to: astro-blog, astro-fullstack, mobile-expo, python-react, cloudflare-react-router, react-router, tauri-react, typescript-cli, typescript-api
OpenTelemetry traces, logs and metrics over OTLP for the Effect server in typescript-api, astro-fullstack and react-router. One observability layer adds trace ids to the existing logs, exports nothing without an endpoint, and is tested with an in-memory tracer and a loopback OTLP receiver.
Also applies to: astro-fullstack, react-router, typescript-api
Agent rules for naming and shaping HTTP resources (plural nouns, methods and status codes, one resource shape, cursor pagination, versioning), independent of framework and layout, plus an AGENTS.md section recording the project's choices.
Also applies to: astro-fullstack, mobile-expo, python-api, go-api, python-react, typescript-api
Configures rr (github.com/rileyhilliard/rr) so the project's test, lint, and build commands can run on remote machines over SSH, with a committed .rr.yaml of named tasks, an AGENTS.md section, and the rr Claude Code plugin.
Also applies to: astro-blog, astro-fullstack, mobile-expo, python-api, go-cli, go-api, nextjs, python-react, cloudflare-react-router, react-router, sveltekit, tauri-react, typescript-cli, typescript-api
Files
This fragment supplies instructions rather than project files.
Usage
Among stacks projects in the 28 days through 30 Oct 2026: 55,740 projects; 76% reached a green verify (76–77%, n=17,380).
Weekly projects by stack
Projects whose final fragment set included this fragment, grouped by stack.
Six largest series over available history; the rest are grouped in gray. Hidden counts are excluded.
mobile-expo
typescript-api
sveltekit
typescript-cli
python-react
go-api
Other published stacks
mobile-expo
typescript-api
sveltekit
typescript-cli
python-react
go-api
Other published stacks
Stacks projects per UTC week through 30 Oct 2026. Published stack counts only.
Data table
Week ending
Stack
Projects
5 Jul 2026
astro-blog
100
12 Jul 2026
astro-blog
190
19 Jul 2026
astro-blog
275
26 Jul 2026
astro-blog
360
2 Aug 2026
astro-blog
320
9 Aug 2026
astro-blog
355
16 Aug 2026
astro-blog
405
23 Aug 2026
astro-blog
425
30 Aug 2026
astro-blog
445
6 Sept 2026
astro-blog
455
13 Sept 2026
astro-blog
450
20 Sept 2026
astro-blog
590
27 Sept 2026
astro-blog
575
4 Oct 2026
astro-blog
545
11 Oct 2026
astro-blog
610
18 Oct 2026
astro-blog
640
25 Oct 2026
astro-blog
660
5 Jul 2026
astro-fullstack
–
12 Jul 2026
astro-fullstack
–
19 Jul 2026
astro-fullstack
–
26 Jul 2026
astro-fullstack
–
2 Aug 2026
astro-fullstack
10
9 Aug 2026
astro-fullstack
5
16 Aug 2026
astro-fullstack
–
23 Aug 2026
astro-fullstack
10
30 Aug 2026
astro-fullstack
5
6 Sept 2026
astro-fullstack
5
13 Sept 2026
astro-fullstack
5
20 Sept 2026
astro-fullstack
5
27 Sept 2026
astro-fullstack
10
4 Oct 2026
astro-fullstack
–
11 Oct 2026
astro-fullstack
10
18 Oct 2026
astro-fullstack
10
25 Oct 2026
astro-fullstack
10
5 Jul 2026
cloudflare-react-router
–
12 Jul 2026
cloudflare-react-router
–
19 Jul 2026
cloudflare-react-router
–
26 Jul 2026
cloudflare-react-router
–
2 Aug 2026
cloudflare-react-router
–
9 Aug 2026
cloudflare-react-router
–
16 Aug 2026
cloudflare-react-router
–
23 Aug 2026
cloudflare-react-router
–
30 Aug 2026
cloudflare-react-router
–
6 Sept 2026
cloudflare-react-router
–
13 Sept 2026
cloudflare-react-router
–
20 Sept 2026
cloudflare-react-router
–
27 Sept 2026
cloudflare-react-router
–
4 Oct 2026
cloudflare-react-router
5
11 Oct 2026
cloudflare-react-router
–
18 Oct 2026
cloudflare-react-router
–
25 Oct 2026
cloudflare-react-router
–
5 Jul 2026
go-api
160
12 Jul 2026
go-api
295
19 Jul 2026
go-api
425
26 Jul 2026
go-api
490
2 Aug 2026
go-api
560
9 Aug 2026
go-api
545
16 Aug 2026
go-api
630
23 Aug 2026
go-api
620
30 Aug 2026
go-api
690
6 Sept 2026
go-api
750
13 Sept 2026
go-api
780
20 Sept 2026
go-api
835
27 Sept 2026
go-api
840
4 Oct 2026
go-api
935
11 Oct 2026
go-api
960
18 Oct 2026
go-api
1,020
25 Oct 2026
go-api
965
5 Jul 2026
go-cli
90
12 Jul 2026
go-cli
140
19 Jul 2026
go-cli
195
26 Jul 2026
go-cli
230
2 Aug 2026
go-cli
265
9 Aug 2026
go-cli
290
16 Aug 2026
go-cli
310
23 Aug 2026
go-cli
355
30 Aug 2026
go-cli
400
6 Sept 2026
go-cli
485
13 Sept 2026
go-cli
580
20 Sept 2026
go-cli
705
27 Sept 2026
go-cli
780
4 Oct 2026
go-cli
1,005
11 Oct 2026
go-cli
1,120
18 Oct 2026
go-cli
1,285
25 Oct 2026
go-cli
1,325
5 Jul 2026
mobile-expo
515
12 Jul 2026
mobile-expo
840
19 Jul 2026
mobile-expo
1,110
26 Jul 2026
mobile-expo
1,390
2 Aug 2026
mobile-expo
1,510
9 Aug 2026
mobile-expo
1,650
16 Aug 2026
mobile-expo
1,825
23 Aug 2026
mobile-expo
1,920
30 Aug 2026
mobile-expo
1,975
6 Sept 2026
mobile-expo
2,030
13 Sept 2026
mobile-expo
2,245
20 Sept 2026
mobile-expo
2,295
27 Sept 2026
mobile-expo
2,435
4 Oct 2026
mobile-expo
2,450
11 Oct 2026
mobile-expo
2,640
18 Oct 2026
mobile-expo
2,775
25 Oct 2026
mobile-expo
2,930
5 Jul 2026
nextjs
150
12 Jul 2026
nextjs
255
19 Jul 2026
nextjs
360
26 Jul 2026
nextjs
480
2 Aug 2026
nextjs
510
9 Aug 2026
nextjs
515
16 Aug 2026
nextjs
515
23 Aug 2026
nextjs
600
30 Aug 2026
nextjs
600
6 Sept 2026
nextjs
715
13 Sept 2026
nextjs
690
20 Sept 2026
nextjs
730
27 Sept 2026
nextjs
810
4 Oct 2026
nextjs
775
11 Oct 2026
nextjs
850
18 Oct 2026
nextjs
930
25 Oct 2026
nextjs
950
5 Jul 2026
python-api
–
12 Jul 2026
python-api
–
19 Jul 2026
python-api
–
26 Jul 2026
python-api
–
2 Aug 2026
python-api
5
9 Aug 2026
python-api
5
16 Aug 2026
python-api
5
23 Aug 2026
python-api
5
30 Aug 2026
python-api
5
6 Sept 2026
python-api
5
13 Sept 2026
python-api
–
20 Sept 2026
python-api
5
27 Sept 2026
python-api
–
4 Oct 2026
python-api
5
11 Oct 2026
python-api
–
18 Oct 2026
python-api
5
25 Oct 2026
python-api
5
5 Jul 2026
python-react
345
12 Jul 2026
python-react
610
19 Jul 2026
python-react
825
26 Jul 2026
python-react
1,040
2 Aug 2026
python-react
1,060
9 Aug 2026
python-react
1,225
16 Aug 2026
python-react
1,260
23 Aug 2026
python-react
1,335
30 Aug 2026
python-react
1,415
6 Sept 2026
python-react
1,475
13 Sept 2026
python-react
1,550
20 Sept 2026
python-react
1,595
27 Sept 2026
python-react
1,770
4 Oct 2026
python-react
1,840
11 Oct 2026
python-react
1,425
18 Oct 2026
python-react
1,185
25 Oct 2026
python-react
875
5 Jul 2026
react-router
–
12 Jul 2026
react-router
–
19 Jul 2026
react-router
–
26 Jul 2026
react-router
–
2 Aug 2026
react-router
–
9 Aug 2026
react-router
–
16 Aug 2026
react-router
5
23 Aug 2026
react-router
–
30 Aug 2026
react-router
–
6 Sept 2026
react-router
5
13 Sept 2026
react-router
10
20 Sept 2026
react-router
5
27 Sept 2026
react-router
5
4 Oct 2026
react-router
10
11 Oct 2026
react-router
5
18 Oct 2026
react-router
5
25 Oct 2026
react-router
10
5 Jul 2026
sveltekit
460
12 Jul 2026
sveltekit
690
19 Jul 2026
sveltekit
1,060
26 Jul 2026
sveltekit
1,210
2 Aug 2026
sveltekit
1,340
9 Aug 2026
sveltekit
1,340
16 Aug 2026
sveltekit
1,495
23 Aug 2026
sveltekit
1,600
30 Aug 2026
sveltekit
1,720
6 Sept 2026
sveltekit
1,755
13 Sept 2026
sveltekit
2,020
20 Sept 2026
sveltekit
2,055
27 Sept 2026
sveltekit
2,215
4 Oct 2026
sveltekit
2,245
11 Oct 2026
sveltekit
2,310
18 Oct 2026
sveltekit
2,610
25 Oct 2026
sveltekit
2,390
5 Jul 2026
tauri-react
–
12 Jul 2026
tauri-react
–
19 Jul 2026
tauri-react
–
26 Jul 2026
tauri-react
–
2 Aug 2026
tauri-react
–
9 Aug 2026
tauri-react
–
16 Aug 2026
tauri-react
–
23 Aug 2026
tauri-react
–
30 Aug 2026
tauri-react
–
6 Sept 2026
tauri-react
–
13 Sept 2026
tauri-react
–
20 Sept 2026
tauri-react
–
27 Sept 2026
tauri-react
–
4 Oct 2026
tauri-react
–
11 Oct 2026
tauri-react
–
18 Oct 2026
tauri-react
–
25 Oct 2026
tauri-react
5
5 Jul 2026
typescript-api
465
12 Jul 2026
typescript-api
775
19 Jul 2026
typescript-api
1,020
26 Jul 2026
typescript-api
1,270
2 Aug 2026
typescript-api
1,325
9 Aug 2026
typescript-api
1,610
16 Aug 2026
typescript-api
1,690
23 Aug 2026
typescript-api
1,795
30 Aug 2026
typescript-api
1,880
6 Sept 2026
typescript-api
1,890
13 Sept 2026
typescript-api
2,080
20 Sept 2026
typescript-api
2,165
27 Sept 2026
typescript-api
2,190
4 Oct 2026
typescript-api
2,375
11 Oct 2026
typescript-api
2,645
18 Oct 2026
typescript-api
2,670
25 Oct 2026
typescript-api
2,725
5 Jul 2026
typescript-cli
420
12 Jul 2026
typescript-cli
645
19 Jul 2026
typescript-cli
985
26 Jul 2026
typescript-cli
1,130
2 Aug 2026
typescript-cli
1,340
9 Aug 2026
typescript-cli
1,395
16 Aug 2026
typescript-cli
1,475
23 Aug 2026
typescript-cli
1,590
30 Aug 2026
typescript-cli
1,720
6 Sept 2026
typescript-cli
1,850
13 Sept 2026
typescript-cli
1,930
20 Sept 2026
typescript-cli
1,900
27 Sept 2026
typescript-cli
1,920
4 Oct 2026
typescript-cli
2,235
11 Oct 2026
typescript-cli
2,205
18 Oct 2026
typescript-cli
2,305
25 Oct 2026
typescript-cli
2,555
By stack
How often this fragment stays in a default composition, or gets attached as an option.