From grimoire
Guides users through creating a new practice profile by collecting a name, description, and validated skill list (manual or tag-assisted) and writing a .grimoire/profiles/<name>.toml file.
How this skill is triggered — by the user, by Claude, or both
Slash command
/grimoire:write-best-practice-profileThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a `.grimoire/profiles/<name>.toml` file that bundles a curated set of skills for a paradigm, team, or project context.
Create a .grimoire/profiles/<name>.toml file that bundles a curated set of skills for a paradigm, team, or project context.
Adopted by: Every major toolchain uses guided authoring for shared configuration — ESLint's --init, create-react-app, nx generate, and VS Code's profile export all guide users through structured configuration creation rather than expecting manual file editing.
Impact: Manual TOML authoring leads to invalid skill names, missing required fields, and profiles that fail silently at activation time. A guided creation flow catches these errors before the file is written.
Why best: A profile is only as good as its skill list. Guided creation ensures each skill name is validated against installed skills at write time — not discovered as a broken reference at activation time.
Sources: XDG Base Directory Specification (freedesktop.org); Grimoire docs/profiles.md
Ask:
my-team, backend-defaults, frontend-strictProfile name (slug): my-team
Description: Backend team defaults — DDD, SOLID, no framework shortcuts.
Two paths — offer both, user chooses:
A. Manual list — user names skills directly:
Add skills (enter names one by one, blank to finish):
> apply-solid-principles
> apply-domain-driven-design
> apply-low-coupling
>
B. Tag-assisted — run tag query, user selects subset:
Start from a tag (e.g. "oop", "tdd", "functional")? [tag or skip]:
> oop
Found 9 skills tagged "oop":
[x] apply-solid-principles
[x] apply-law-of-demeter
[ ] apply-composition-over-inheritance
[x] apply-information-expert
...
Select skills to include (toggle with number, confirm with Enter)
For each collected skill name, check it exists in installed grimoire skills.
AskUserQuestion; OpenCode: question — same schema as AskUserQuestion; Gemini CLI: ask_user type: confirm; other: [y/n]).Installed vs not-found distinction: When listing skills in the profile, check each against the installed skills index:
[skill-name] ⚠️ not installed — users will need to install [domain] domainDo not silently include skills that aren't installed — the profile will fail to apply for users who haven't installed those domains.
Example output (other platforms):
Validating skills...
✓ apply-solid-principles — found
✓ apply-domain-driven-design — found
⚠ apply-twelve-factor-app — not installed. Include anyway? [y/n]
Use a platform-aware prompt:
AskUserQuestion — options: "This project → .grimoire/profiles/ (share with team) (Recommended)", "My user level → ~/.grimoire/profiles/ (personal)"question — same schema as AskUserQuestionask_user — type: "select", same two optionsSave to:
[p] This project → .grimoire/profiles/my-team.toml (commit to repo to share with team)
[u] My user level → ~/.grimoire/profiles/my-team.toml (personal, applies to all projects)
name = "my-team"
description = "Backend team defaults — DDD, SOLID, no framework shortcuts."
[[skills]]
name = "apply-solid-principles"
[[skills]]
name = "apply-domain-driven-design"
[[skills]]
name = "apply-low-coupling"
Confirm: ✓ Written to .grimoire/profiles/my-team.toml
Auto-invoke review: After writing the profile, offer: 'Profile written. Run review-best-practice-profile now? [y/n]'
status: draft in frontmatter. Draft profiles are not applied by suggest-best-practice or apply-best-practice-profile until status is changed to active.status: active, profile is ready to use.status: draft, user can fix later via revise-best-practice-skillActivate now? profiles = ["my-team"] in .grimoire/settings.toml
Validate first? /review-best-practice-profile my-team
Share publicly? /share-best-practice-profile my-team
Inventing skill names. Always validate against installed skills. A profile with a typo in a skill name silently activates nothing for that entry.
One-size profiles. Profiles should be scoped — a backend-api profile is more useful than a company-wide profile that covers too many contexts.
npx claudepluginhub jeffreytse/grimoire --plugin grimoireActivates named best-practice profiles (OOP, TDD, clean architecture, functional) from TOML files or skill tags. Supports project-level and user-level profile resolution.
Creates a SKILL.md file following the Agent Skills open standard (agentskills.io). Covers frontmatter schema, section structure, Expected/On failure pairs, validation checklists, and registry integration.
Guides creating and editing SKILL.md files for Claude Code skills, covering objectives, when to create, YAML frontmatter requirements, structure, and writing principles like showing patterns with examples.