When evaluating third-party agent design skills (impeccable.style, transitions.dev, vercel-labs web-interface-guidelines) without committing to them permanently, the clean mechanism in Pi/omp-style harnesses is:
- Skills are discovered only at session startup, from global dirs (
~/.pi/skills) and project-level dirs (.claude/skills/,.agents/skills/,.github/skills/; layout<root>/<skill-name>/SKILL.md, non-recursive). Installing a skill mid-session does nothing visible — a fresh session is mandatory. This surprises people whose installers say "reload your agent" and who expect hot pickup. - Project-level discovery + git worktree = conditional inclusion. Create a worktree on a trial branch, run the installers there (
npx impeccable install,npx skills add <owner>/<repo>), commit the skill dirs to the branch, and start a new agent session inside the worktree. The skills exist only in that worktree; every other checkout/session is unaffected; removal is deleting directories; they reach the main branch only if deliberately merged. - Carry context via a committed plan file, not the conversation. The fresh session has no chat history, so write the execution plan into the worktree (e.g.
docs/<task>/PLAN.md) before switching. The plan file is the handoff artifact.
Gotchas found while verifying: installers may write to a non-discovered location — relocate to .claude/skills/<name>/ if a fresh session doesn't list the skill; name collisions with globally installed skills resolve by provider precedence (project usually wins, but rename if shadowing misbehaves); multi-skill repos (vercel-labs/agent-skills) may install sibling skills you must prune before committing.
Transferable to any "try this opinionated skill without letting it leak into other projects/sessions" situation — the global-install alternative (~/.pi/skills) contaminates every project until manually removed.