Igor's references/project.md ships read-only in the plugin cache with no mechanism for per-project override. Projects can't fill in the template, so Igor rediscovers basics each session. This goal captures the fix: project-local resolution, an init skill, and /assistant alias docs.
2.4 KiB
Goal: Igor project adoption flow
Problem
Igor's references/project.md is a per-project configuration template ("swap this file when adopting Igor"), but it ships read-only in the plugin cache (~/.claude/plugins/cache/reliquary/spire/*/skills/igor/references/project.md). There is no mechanism to actually swap it — every project gets the blank template, and Igor has to rediscover workpad location, verification commands, pinned agents, and conventions from scratch each session.
The @references/project.md directive in the Igor skill loads the bundled file. Consuming projects cannot override it.
Acceptance criteria
-
Project-local override: Igor's skill resolves
@references/project.mdfrom a project-local path first (e.g..claude/spire/project.md), falling back to the bundled template if none exists. -
spire:initskill: A new skill (or extending an existing one) that:- Copies the template to the project-local path
- Auto-fills what it can discover (workpad location via the workpad skill's resolution logic, agents from
.claude/agents/, verification commands from Justfile/Makefile/package.json, conventions from CLAUDE.md) - Leaves placeholders for what it can't discover (tome skill, domain skills, adept roster)
- Commits the result
-
/assistantas project alias: Projects should be able to create a thin.claude/skills/assistant.mdthat invokesspire:igorwith the project context pre-loaded. Document how to do this — or make it part ofspire:init. -
Backward compatible: Projects without a local override continue to work (Igor orients from CLAUDE.md and codebase reads, as today).
Why
Every Igor session currently spends its first minutes rediscovering project basics (workpad path, build commands, existing agents). This is wasted work that compounds across sessions. The template exists but can't be filled in, which is worse than not having one — it signals "configure me" with no way to do so.
Context
Discovered while using Igor in the dirigent project. The workpad was at docs/workpad/, verification is just check-all, there are pinned agents in .claude/agents/, and conventions are in CLAUDE.md — but Igor had to figure all of this out from scratch because project.md was the blank template.
The @references/ mechanism may need a resolution chain: project-local → plugin-bundled. If @ directives don't support this, the skill text itself could use a conditional read pattern.