Bun TypeScript hook helpers and tested Claude Code guards on top of agent-ops (destructive commands, package manager, generated files, typecheck on write), plus /check, /test and /feature commands, architect and reviewer agents, and a docs/harness.md guide.
Ask your agent to check compatibility, follow this fragment’s brief, and verify the resulting project. What happens next
Applies to:
node, bun
Requires fragments:
agent-ops
Add to your project
Paste the prompt into the coding agent working on your project.
View prompt
Add the claude-harness fragment to this existing repository.
1. Run npx @steamfield/stacks show claude-harness --json and check that it fits the project. If it does not, explain why before changing files.
2. Run npx @steamfield/stacks add claude-harness 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.
Or use the terminal
$npx @steamfield/stacks add claude-harness
Verify steps
Step
Phase
Layer
Command
harness-hooks
check
check
test ! -d tests/hooks || node node_modules/vitest/vitest.mjs run tests/hooks
harness-doc-filled
check
check
test ! -f docs/harness.md || ! grep -n 'stacks:fill' docs/harness.md
Use with a new stack
Starting fresh instead? These stacks support this fragment.
AGENTS.md as the one project guide for every coding agent, with hooks for Claude Code, Codex, Cursor and OpenCode that block destructive commands and secret writes. Claude Code and OpenCode also lint on write and format the agent's edits; Claude Code gets CLAUDE.md and Cursor a rule pointing at AGENTS.md.
Also applies to: astro-blog, astro-fullstack, mobile-expo, nextjs, python-react, cloudflare-react-router, react-router, sveltekit, tauri-react, typescript-cli, typescript-api
Enables the claude-essentials (ce) Claude Code plugin for the project and adds path-scoped rules that point Claude at its skills for testing, error handling, debugging, and writing.
Also applies to: astro-blog, astro-fullstack, mobile-expo, nextjs, python-react, cloudflare-react-router, react-router, sveltekit, tauri-react, typescript-cli, typescript-api
Files
.claude/hooks/_lib.ts
.claude/hooks/_shell.ts
Usage
Among stacks projects in the 28 days through 30 Oct 2026: 33,715 projects; 69% reached a green verify (63–74%, n=255).
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.
typescript-api
sveltekit
typescript-cli
nextjs
astro-blog
astro-fullstack
Other published stacks
typescript-api
sveltekit
typescript-cli
nextjs
astro-blog
astro-fullstack
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
15
12 Jul 2026
astro-blog
40
19 Jul 2026
astro-blog
40
26 Jul 2026
astro-blog
60
2 Aug 2026
astro-blog
70
9 Aug 2026
astro-blog
65
16 Aug 2026
astro-blog
85
23 Aug 2026
astro-blog
80
30 Aug 2026
astro-blog
85
6 Sept 2026
astro-blog
75
13 Sept 2026
astro-blog
85
20 Sept 2026
astro-blog
115
27 Sept 2026
astro-blog
105
4 Oct 2026
astro-blog
90
11 Oct 2026
astro-blog
110
18 Oct 2026
astro-blog
115
25 Oct 2026
astro-blog
115
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
10
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
nextjs
165
12 Jul 2026
nextjs
280
19 Jul 2026
nextjs
395
26 Jul 2026
nextjs
530
2 Aug 2026
nextjs
565
9 Aug 2026
nextjs
555
16 Aug 2026
nextjs
570
23 Aug 2026
nextjs
660
30 Aug 2026
nextjs
650
6 Sept 2026
nextjs
770
13 Sept 2026
nextjs
750
20 Sept 2026
nextjs
795
27 Sept 2026
nextjs
880
4 Oct 2026
nextjs
840
11 Oct 2026
nextjs
920
18 Oct 2026
nextjs
1,000
25 Oct 2026
nextjs
1,035
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
10
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
10
18 Oct 2026
react-router
5
25 Oct 2026
react-router
10
5 Jul 2026
sveltekit
505
12 Jul 2026
sveltekit
740
19 Jul 2026
sveltekit
1,155
26 Jul 2026
sveltekit
1,340
2 Aug 2026
sveltekit
1,465
9 Aug 2026
sveltekit
1,455
16 Aug 2026
sveltekit
1,640
23 Aug 2026
sveltekit
1,740
30 Aug 2026
sveltekit
1,855
6 Sept 2026
sveltekit
1,905
13 Sept 2026
sveltekit
2,220
20 Sept 2026
sveltekit
2,255
27 Sept 2026
sveltekit
2,370
4 Oct 2026
sveltekit
2,460
11 Oct 2026
sveltekit
2,510
18 Oct 2026
sveltekit
2,850
25 Oct 2026
sveltekit
2,595
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
505
12 Jul 2026
typescript-api
850
19 Jul 2026
typescript-api
1,105
26 Jul 2026
typescript-api
1,395
2 Aug 2026
typescript-api
1,435
9 Aug 2026
typescript-api
1,740
16 Aug 2026
typescript-api
1,835
23 Aug 2026
typescript-api
1,945
30 Aug 2026
typescript-api
2,075
6 Sept 2026
typescript-api
2,060
13 Sept 2026
typescript-api
2,265
20 Sept 2026
typescript-api
2,340
27 Sept 2026
typescript-api
2,370
4 Oct 2026
typescript-api
2,585
11 Oct 2026
typescript-api
2,850
18 Oct 2026
typescript-api
2,890
25 Oct 2026
typescript-api
2,950
5 Jul 2026
typescript-cli
460
12 Jul 2026
typescript-cli
700
19 Jul 2026
typescript-cli
1,080
26 Jul 2026
typescript-cli
1,245
2 Aug 2026
typescript-cli
1,440
9 Aug 2026
typescript-cli
1,500
16 Aug 2026
typescript-cli
1,600
23 Aug 2026
typescript-cli
1,730
30 Aug 2026
typescript-cli
1,860
6 Sept 2026
typescript-cli
1,985
13 Sept 2026
typescript-cli
2,090
20 Sept 2026
typescript-cli
2,090
27 Sept 2026
typescript-cli
2,085
4 Oct 2026
typescript-cli
2,445
11 Oct 2026
typescript-cli
2,380
18 Oct 2026
typescript-cli
2,530
25 Oct 2026
typescript-cli
2,755
By stack
How often this fragment stays in a default composition, or gets attached as an option.