Claude Code First, specification version 0.1.0. The plain-language guide

Version 0.1.0. Grade R1/S2.

F400 Plugin hooks did not reach web sessions, so the guard was carried by a launcher committed to the repository

FieldValue
Statusactive
TopicEnvironment, permissions, and agent-facing products
GradeR1/S2
CasesShio, roadkeep, freewilly, polyweave
Contrarynone
Harness factsH10, H11; O3 (observed, contradicted by H10)

Claim

In Claude Code on the web, a guard shipped inside a marketplace plugin did not load, so an agent could hand-edit the files the guard protects, and the remedy was a launcher committed to the repository and wired from the committed settings.

Mechanism

The guard that refuses a hand edit of the governed files ships in the roadkeep plugin. A web session read the repository's committed files and settings (H11) but, as the projects recorded it in August 2026, did not install marketplace plugins, so the plugin's hooks and MCP server never loaded there. A script committed under .claude/hooks/ and named in the committed settings.json and .mcp.json reaches that session because it is part of the checkout. The launcher then has to find an engine at run time and must decide whether an installed plugin already answers, which is where its own defects came from (see F403).

Observations

Independence

One origin. The failure is recorded once, in Shio, and the remedy was invented there by hand on 2026-08-08. roadkeep generalised it (RK1108, 2026-08-12), and freewilly and polyweave carry roadkeep's version, whose docstring cites RK1108. Neither of them records a web session in which the guard was absent. The register's observation O3 in ../harness.md says roadkeep built the launcher and it then spread to Shio; the dates at the pins and roadkeep's own ledger entry place the first launcher in Shio.

Counter-evidence

H10 contradicts the premise as the documentation stands on 2026-09-24: a plugin enabled for the claude.ai account loads in a cloud session as a synced plugin. The practice may have outlived its cause, or a synced plugin may not cover one installed from a project marketplace; no source at the pins tests either. winwright wires the guard to a sibling checkout, "/../roadkeep/scripts/roadkeep.py" [winwright@861b82e:.mcp.json#L6], and commits no launcher; it records no web session, so it neither supports nor contradicts the claim.

Grade

R1: one independent origin (Shio); the other three are copies of the remedy. S2: the failure is a commit that records what was absent and when, and nothing counted it or tested it. Because H10 now contradicts the premise, a rule drawn from this finding must be re-checked in a cloud session before it is written.