All 229 runnable recipes were executed against a second tree one major version
newer. Nothing was one-sided -- no recipe answered in one version and fell
silent in the other. 176 matched exactly, 14 differed in size, 39 returned
nothing in either tree.
The README states two cautions with the numbers, because the numbers alone
would overclaim. Matching counts mean the search surface did not move, not that
a claim still holds; anything semantic is untested by counting lines. And the
comparison was worthless before the trees were made comparable: 41 of the 55
apparent differences in the first pass were generated build output in one tree
and a tooling plugin in the other, a distortion large enough that one query
reported 122 files before exclusions and 1 after.
Full method, per-entry data and the follow-up list live in the research archive
(note 27 and _tools/run_detect_recipes.py), not here.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The first-party agent-tool layer is Experimental and its surface moves between
builds. A recipe that names a toolset does not fail loudly on the next build --
the tool is simply absent, the search finds nothing, and "nothing found" reads
as "no problem here". That is the exact confusion this bundle documents, so the
tokens are barred rather than discouraged.
Grounded in measurement against a live editor, not in reading:
- the aggregator plugin lists 21 dependencies; the server reported 53
registered toolsets from 22 plugins, one dependency contributing none;
- the visible tool count flips between 3 meta-tools and every tool registered
natively, on one project setting.
- gate.py: ENGINE_TOOL_TOKENS and check_engine_tool_surface, registered in
CHECKS; rule floor raised to 17.
- test_gate.py: one poison naming a toolset, a meta-tool and a host:port.
- ADR-0004 records the decision, its confirmation criteria and what is
deliberately deferred.
- README and CONTRIBUTING state the rule where a contributor meets it.
Verified: gate.py 0 violations over 17 rules; test_gate.py 17/17 redden on
their fixtures, baseline clean, surface coverage intact. The token list matches
nothing under skills/ today, checked before the rule landed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Phase 0 of the handoff plan, as a marketplace rather than a flat skills/
directory. Content moved out of the LyraResearch archive and depersonalised:
addresses stay in the archive, recipes ship.
- plugins/ue-design-skills: 17 skills, 232 failure-mode entries, each with the
six required fields; catalog.json as the harness-neutral source of truth and
.claude-plugin/ as one adapter over it.
- _gate: 16 rules, one poisoned fixture per rule, plus surface coverage so a
declared file cannot silently miss the line rules.
- ADR-0002 (harness-neutral bundle behind a marketplace) and ADR-0003 (split
licensing: CC BY-ND 4.0 prose, Apache-2.0 code and metadata).
- LICENSE files at both levels, CONTRIBUTING.md, docs/licensing-options.md as
the material the licence decision grew from.
Verified: gate.py 0 violations; test_gate.py 16/16 rules redden on their
fixtures with a clean baseline and 2 root files reaching the line rules.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>