- ✓Pi's default auto-scan misses skills stored in ~/.claude/skills. An explicit skills array in ~/.pi/agent/settings.json plus a context_bridge in the Archon workflow.yaml cuts a doc-summary run from ~45s at 40% success to under 12s at 98%. The trap is path resolution and silent SKILL.md skips, not model quality (Archon Docs Hub, May 21, 2026).
- ✓Pi and Claude Code both treat skills as discoverable, frontmatter-described folders. The concept of a Skill as a portable primitive is what makes a shared ~/.claude/skills directory work across agents.
- ✓SKILL.md is the agent instruction file Pi indexes. The post's silent skip failure mode is fundamentally a missing-frontmatter problem, which is the agent-instruction-file contract.
- ✓The Archon Assist --skill research-summarizer invocation is the canonical shape of an executable skill scenario: a directory of capabilities the agent picks from at runtime.
Quick answer
Pi will not auto-discover skills stored under ~/.claude/skills. Add the directory explicitly to the skills array in ~/.pi/agent/settings.json, ensure each SKILL.md carries a YAML frontmatter block, and add a context_bridge to the Archon workflow.yaml so Archon Assist can route to them. Practitioners report doc-summary runs dropping from ~45s at 40% success to under 12s at 98% once the path resolution and frontmatter contracts are satisfied (Archon Docs Hub, May 21, 2026).
The mental model most teams start with
The assumption is that two agents that both speak SKILL.md should share the same directory by default. Pi can read what Claude Code wrote, the docs imply auto-load handles legacy paths, and the natural conclusion is that pointing the new agent at the old folder is a no-op.
That assumption survives the demo and breaks in the workflow. Pi's default scan does not walk into ~/.claude/skills. Its SKILL.md contract is stricter. Its JSON parser is stricter. None of these are bugs; each is a defensible design choice. The combined effect is that a skill that worked yesterday in Claude Code is invisible today in Pi, with no error to grep.
Call the failure mode what it is: the Path Resolution Trap. The four mistakes below are the ones that produce it.
Four mistakes that produce the trap
Mistake 1. "Auto-load legacy will pick up ~/.claude/skills."
Reality: the auto_load_legacy: true flag is real, but conservative. It does not guarantee a recursive walk of arbitrary home-folder locations. The reliable pattern is an explicit skills array:
{
"agent": {
"skills": [
"~/.claude/skills",
"./local_skills"
],
"auto_load_legacy": true,
"skill_resolution_strategy": "priority_local"
}
}
That snippet does two things the flag alone does not: it names the directory, and it tells Pi how to resolve collisions between local project skills and the shared Claude library (Pi Dev Community, May 19, 2026).
Mistake 2. "A SKILL.md is a SKILL.md."
Reality: Claude Code treats SKILL.md permissively and will index a skill that has nothing but a heading. Pi requires explicit YAML frontmatter with the metadata it uses to register the skill, and skips the file silently if the block is missing (Developer Forum, May 18, 2026). The skill appears to "not exist" - but the file is right there, untouched. The first verification step after any Pi reload is checking ~/.pi/logs/agent.log for the line Skill '<name>' successfully mapped from Claude directory. Absence of that line is the diagnostic.
Mistake 3. "Relative paths in settings.json work the way relative imports work."
Reality: they do not. A path like ./skills in a global ~/.pi/agent/settings.json resolves against the directory pi was invoked from, not against the file the path lives in. Run pi from ~/projects/foo and you have just registered ~/projects/foo/skills - which probably does not exist. Use absolute paths or the ~/ prefix in any config that is not strictly project-local. This is the single highest-frequency cause of Skill Not Found errors in Archon execution (Stack Overflow AI, May 20, 2026).
Mistake 4. "Loading the skill is enough for Archon Assist to use it."
Reality: Pi seeing the skill and Archon Assist routing to it are two different layers. The workflow runner needs a context_bridge entry in workflow.yaml that points at the Claude skills directory, otherwise the Assist command will report the skill is unknown even when pi --reload lists it cleanly. After both layers are wired, the invocation is:
pi archon assist --skill research-summarizer --input ./docs
Practitioners report this is where the published before-and-after numbers come from. Manual prompt setup with broken auto-discovery: ~45 seconds, ~40% success. The same task with explicit paths, frontmatter compliance, and a context_bridge: under 12 seconds, 98% success (Archon Docs Hub, May 21, 2026).
The nuanced point
Auto-discovery is a convenience feature, not an architectural contract. The contract is the explicit skills array, the YAML frontmatter, and the context_bridge. Three small commitments to writing the configuration down, in exchange for a workflow that survives a fresh shell, a different working directory, and a coworker's machine.
The deeper takeaway is that agent interoperability is mostly about honoring each agent's registration surface, not about hoping shared file formats will paper over differences. Two agents reading the same folder is not interoperability. Two agents reading the same folder under the strictest of their two registration contracts is.
How this shows up on the exam
D1 (Agentic Architecture, 27%) routinely presents a scenario where an agent ignores a tool that should be available. The trap answers are "increase the model's reasoning level" or "add the tool to the prompt". The correct answer is almost always on the registration surface: a missing manifest field, a path that resolves to the wrong directory, a metadata contract the agent's loader requires. PI-skill loading is the textbook example. Memorise the pattern - agent unaware of tool almost never means agent incapable of using tool.
D3 (Claude Code Configuration & Workflows, 20%) and D5 (Context + Reliability, 15%) test the verification side. D3 questions reward candidates who reach for ~/.pi/logs/agent.log (or its equivalent in other runtimes) over assumptions about behaviour. D5 rewards the recognition that strict JSON parsing, absolute paths, and explicit-over-implicit configuration are reliability primitives. A single trailing comma crashing the agent on startup is not a bug to file; it is the loader doing its job. The exam will test whether you treat config as code with a schema or as text that should "just work".
What configuration in your own agent stack is silently doing less than you think it is, because the failure mode is a missing log line rather than a thrown error?
4 direct routes into the scored material.
- conceptsPi and Claude Code both treat skills as discoverable, frontmatter-described folders. The concept of a Skill as a portable primitive is what makes a shared ~/.claude/skills directory work across agents.
- conceptsSKILL.md is the agent instruction file Pi indexes. The post's silent skip failure mode is fundamentally a missing-frontmatter problem, which is the agent-instruction-file contract.
- scenariosThe Archon Assist --skill research-summarizer invocation is the canonical shape of an executable skill scenario: a directory of capabilities the agent picks from at runtime.
- knowledgePi's ~/.pi/logs/agent.log and the JSON-trailing-comma crash class belong to the same debugging surface as Claude Code's hook logs. The verification ritual transfers.
Share this post.
One share is one less person stuck on the same question.
