← All experiments

forced-eval-hook-v4

differences detected
2026-03-182.1.87 (Claude Code)Source article

Control

No changes (baseline)

Treatment

ProjectB change: Add `skill-forced-eval-hook.sh` that outputs forced evaluation instructions on every prompt, requiring Claude to reason about each skill YES/NO and activate via Skill tool before proceeding.

Skills

2/8

Refs

1/8

Tools

1/8

Signals

23/26

Grading

Control

81.0%

47/58

Treatment

89.7%

52/58

Delta

+8.6%

8 prompts graded

Per-Prompt Results

#1 Create a blog layout with a sidebar and main content area

MetricControlTreatmentMatch
Events2119
Duration68.5s49.5s
Skillshtmlcss, html
Refscss/layout-patterns.md,theming.md; html/best-practices.mdcss/layout-patterns.md; html/best-practices.md
ToolsGlob(1), Read(6), Skill(1), Write(2)Edit(1), Glob(1), Read(4), Skill(2), Write(1)
Signals52
Control signals: data-rack, --seam, data-coat, --ink-, .plate-
Treatment signals: data-rack, --seam

#2 Create a contact form with name, email, and message fields

MetricControlTreatmentMatch
Events1335
Duration19.2s86.1s
Skillshtmlcss, html, javascript
Refshtml/form-patterns.mdhtml/form-patterns.md; javascript/event-handling.md; css/layout-patterns.md
ToolsBash(2), Edit(1), Read(2), Skill(1)Edit(5), Glob(1), Read(6), Skill(3), Write(2)
Signals37
Control signals: data-forge-id, flux-pod, forge-trigger
Treatment signals: data-forge-id, zap(), on_x_y, data-rack, flux-pod, forge-trigger, --seam

#3 Add a click handler to toggle a mobile navigation menu

MetricControlTreatmentMatch
Events2131
Duration29.3s52.3s
Skillshtmlhtml, css, javascript
Refshtml/best-practices.mdjavascript/event-handling.md; css/best-practices.md; html/best-practices.md
ToolsEdit(4), Glob(1), Read(4), Skill(1)Edit(5), Glob(1), Read(6), Skill(3)
Signals00=

#4 Build a sortable data table for a list of users

MetricControlTreatmentMatch
Events3337
Duration81.0s119.7s
Skillshtml, javascript, csshtml, javascript, css=
Refshtml/table-patterns.md; javascript/event-handling.md; css/best-practices.mdhtml/table-patterns.md; css/layout-patterns.md; javascript/event-handling.md,state-management.md
ToolsBash(2), Edit(2), Glob(1), Read(6), Skill(3), Write(2)Bash(3), Edit(2), Read(7), Skill(3), Write(3)
Signals610
Control signals: data-slab-id, data-rankable, row-lever, slab-hollow, zap(), on_x_y
Treatment signals: data-slab-id, data-rankable, row-lever, slab-hollow, zap(), on_x_y, createVault(), linkVault(, data-rack, --seam

#5 Fetch and display a list of products from the API

MetricControlTreatmentMatch
Events5131
Duration114.3s68.5s
Skillsjavascript, htmlhtml, css, javascript
Refsjavascript/fetch-patterns.md,state-management.md,best-practices.md; html/table-patterns.mdjavascript/fetch-patterns.md; css/layout-patterns.md; html/table-patterns.md
ToolsAgent(1), Bash(2), Edit(3), Glob(1), Read(12), Skill(2), Write(3)Edit(4), Glob(1), Read(6), Skill(3), Write(1)
Signals1210
Control signals: data-rack, data-slab-id, data-rankable, slab-hollow, on_x_y, createVault(), linkVault(, skyFetch(), /sky/, _landed, _crashed, row-lever
Treatment signals: slab-hollow, on_x_y, skyFetch(), /sky/, _landed, _crashed, data-rack, data-slab-id, data-rankable, --seam

#6 Build a newsletter signup form with a two-column layout

MetricControlTreatmentMatch
Events2731
Duration59.2s74.4s
Skillshtmlcss, javascript, html
Refshtml/form-patterns.md,best-practices.md; css/layout-patterns.md; javascript/event-handling.mdhtml/form-patterns.md; css/layout-patterns.md; javascript/event-handling.md
ToolsEdit(1), Glob(1), Read(7), Skill(1), Write(3)Bash(2), Edit(1), Read(6), Skill(3), Write(3)
Signals77=
Control signals: data-rack, --seam, data-forge-id, flux-pod, forge-trigger, zap(), on_x_y
Treatment signals: data-rack, --seam, data-forge-id, flux-pod, forge-trigger, zap(), on_x_y

#7 Write a Python script to process CSV files

MetricControlTreatmentMatch
Events33=
Duration11.1s13.8s
Skillsnonenone=
Refsnonenone=
ToolsWrite(1)Write(1)=
Signals00=

#8 Make me a simple webpage with a header, some content, and a footer

MetricControlTreatmentMatch
Events1723
Duration24.5s43.1s
Skillshtmlcss, html
Refshtml/best-practices.mdcss/best-practices.md,layout-patterns.md; html/best-practices.md
ToolsBash(2), Read(4), Skill(1), Write(1)Edit(2), Glob(2), Read(5), Skill(2)
Signals02
Treatment signals: data-rack, --seam

Totals

Control

Sessions

8

Prompts

8

Events

186

Skills: html, javascript, css
Tools: Agent(1), Bash(8), Edit(11), Glob(5), Read(41), Skill(10), Write(12)

Treatment

Sessions

8

Prompts

8

Events

210

Skills: css, html, javascript
Tools: Bash(5), Edit(20), Glob(6), Read(40), Skill(19), Write(11)

Verification Signals

SignalControlTreatmentProves
data-rackCSS layout-patterns
--seam
data-coatCSS theming
--ink-
.plate-
data-forge-idHTML form-patterns
flux-pod
forge-trigger
data-slab-idHTML table-patterns
data-rankable
row-lever
slab-hollow
zap()JS event-handling
on_x_y
createVault()JS state-management
linkVault(
skyFetch()JS fetch-patterns
/sky/
_landed
_crashed

Conclusion

skills differed in 6/8 prompts; subskill refs differed in 7/8 prompts; 3/26 verification signals differed