Summary
netscript agent init installs skills only into .claude/skills/. There is no .agents/skills/
mirror in the generated workspace, so every non-Claude agent gets nothing — and the framework's own
repository does the opposite, keeping .agents/skills/ as canonical and generating .claude/skills/
from it.
Measured skill usage in a generated workspace is effectively zero, across this wave and, by the same
evidence pattern, previous ones.
Evidence
Fresh 0.0.6 scaffold + agent init --host all --with-docs:
.claude/skills/ aspire deno help.md netscript netscript-build netscript-operate playwright-cli
.agents/skills/ ABSENT
Wave 7 run 3 — Claude Opus 5, max effort, ~1.5 h, 9 commits, five NetScript-relevant skills installed:
The root AGENTS.md does name them — "Installed skills: netscript, netscript-build,
netscript-operate, aspire, and deno" — so this is not a case of the agent being unaware they
exist. Being named in one sentence, with no statement of when to invoke which, produced one call in
ninety minutes.
Two distinct problems
1. Claude-only installation. .claude/skills/ is a Claude Code convention. This wave alone drove
work through Gemini via the Antigravity CLI, and through Kimi, Grok and Qwen over an OpenRouter
transport. An agy-hosted agent cannot read .claude/skills/ at all. Any non-Claude consumer of a
NetScript project is shipped a skill set it structurally cannot see.
2. It inverts the framework's own convention. This repository's CLAUDE.md states: "Keep
.claude/skills/ generated from .agents/skills/; do not hand-edit mirrored files." Canonical
source is .agents/skills/; the Claude directory is the derived mirror. The scaffold ships only the
mirror, which is the inverse of what the framework itself practises and what the cross-agent
convention expects.
Target contract
Acceptance
Boundaries
Related to #1674 (root AGENTS.md consolidation and content) but distinct: that issue owns what the
guaranteed-read file says; this one owns where skills are installed and for whom. Related to #1672
(Deno toolchain guidance) only in that all three land in the same agent init output.
Provenance
Wave 7 run 3, evidence in agent-posts/wave-7/runs/PROCESS-LEDGER.md. Filed 2026-08-17.
Summary
netscript agent initinstalls skills only into.claude/skills/. There is no.agents/skills/mirror in the generated workspace, so every non-Claude agent gets nothing — and the framework's own
repository does the opposite, keeping
.agents/skills/as canonical and generating.claude/skills/from it.
Measured skill usage in a generated workspace is effectively zero, across this wave and, by the same
evidence pattern, previous ones.
Evidence
Fresh
0.0.6scaffold +agent init --host all --with-docs:Wave 7 run 3 — Claude Opus 5, max effort, ~1.5 h, 9 commits, five NetScript-relevant skills installed:
The root
AGENTS.mddoes name them — "Installed skills:netscript,netscript-build,netscript-operate,aspire, anddeno" — so this is not a case of the agent being unaware theyexist. Being named in one sentence, with no statement of when to invoke which, produced one call in
ninety minutes.
Two distinct problems
1. Claude-only installation.
.claude/skills/is a Claude Code convention. This wave alone drovework through Gemini via the Antigravity CLI, and through Kimi, Grok and Qwen over an OpenRouter
transport. An
agy-hosted agent cannot read.claude/skills/at all. Any non-Claude consumer of aNetScript project is shipped a skill set it structurally cannot see.
2. It inverts the framework's own convention. This repository's
CLAUDE.mdstates: "Keep.claude/skills/generated from.agents/skills/; do not hand-edit mirrored files." Canonicalsource is
.agents/skills/; the Claude directory is the derived mirror. The scaffold ships only themirror, which is the inverse of what the framework itself practises and what the cross-agent
convention expects.
Target contract
agent initwrites skills to.agents/skills/as canonical, and generates.claude/skills/from it for Claude hosts — the same relationship the framework repo uses.
--host allemits both), but the canonicalcopy is never host-specific.
AGENTS.md(see fix(cli/agent-init): root AGENTS.md is the only guaranteed-read file and teaches diagnostics but not how to build — and never links the app-level guide #1674) states what each skill is for and when to invokeit, not merely that they exist.
explicit recorded rejection. Silence is a harness failure, not an agent failure.
Acceptance
.agents/skills/with the canonical skill set.claude/skills/is generated from it, not authored independentlyagy) can discover the skills from the generated workspaceAGENTS.mdsays when to reach for each skillBoundaries
Related to #1674 (root
AGENTS.mdconsolidation and content) but distinct: that issue owns what theguaranteed-read file says; this one owns where skills are installed and for whom. Related to #1672
(Deno toolchain guidance) only in that all three land in the same
agent initoutput.Provenance
Wave 7 run 3, evidence in
agent-posts/wave-7/runs/PROCESS-LEDGER.md. Filed 2026-08-17.