From grimoire
Publishes a validated practice profile so others can install and use it. Invoke when the user wants to share, publish, or open-source a profile.
How this skill is triggered — by the user, by Claude, or both
Slash command
/grimoire:share-best-practice-profileThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Publish a validated practice profile so others can install and use it.
Publish a validated practice profile so others can install and use it.
Adopted by: The eslint-config-* ecosystem (3000+ published configs on npm) and VS Code extension packs demonstrate the value of community-shared configuration bundles. A single eslint-config-airbnb install replaced thousands of manual ESLint rule configurations. Grimoire profiles follow the same pattern — one shareable file replaces manual skill selection for everyone who shares the same context.
Impact: A shared profile eliminates onboarding friction for new team members and external contributors who need to activate the same practices. A profile shared publicly becomes a reusable community asset — the same leverage as an open-source library.
Why best: Sharing without review leads to broken profiles that fail silently for others. The gate (review-best-practice-profile first) ensures what is shared actually works.
Sources: npm eslint-config-* ecosystem; VS Code extension pack format; Grimoire docs/profiles.md
If review-best-practice-profile has not been run on this profile, run it now and resolve any FAIL results before continuing. Warnings are acceptable.
Review gate: Before sharing, review-best-practice-profile MUST have been run against this profile. If it hasn't been run this session, run it now. Do not skip this step — a profile shared without review may contain conflicts or missing fields that will confuse recipients. If the review produces FAIL findings, show them and require explicit user confirmation ('Share anyway? [y/n]') before proceeding.
Share as:
[g] GitHub Gist — single file, easy to update, direct install URL
[r] GitHub repo — full repo, recommended for maintained profiles
[c] Clipboard — copy TOML to clipboard for private sharing
Gist — best for personal or small team profiles.
Repo — best for maintained, versioned, community profiles. Use naming convention: grimoire-profile-<name>.
Add a description field if absent — required for others to understand the profile:
name = "my-team"
description = "Backend team defaults — DDD, SOLID, clean architecture boundaries."
For repo shares, generate a minimal README:
# grimoire-profile-my-team
Practice profile for grimoire — backend team defaults.
## Install
\`\`\`bash
curl -fsSL https://raw.githubusercontent.com/<user>/grimoire-profile-my-team/main/my-team.toml \
-o .grimoire/profiles/my-team.toml
\`\`\`
## Activate
\`\`\`toml
# .grimoire/settings.toml
profiles = ["my-team"]
\`\`\`
## Skills included
- apply-solid-principles
- apply-domain-driven-design
- apply-low-coupling
Auth check: Before running any gh command:
gh auth status — if not authenticated, stop: 'Run gh auth login first, then re-run this skill.'gh is installed — if not: 'Install GitHub CLI (brew install gh or https://cli.github.com), then re-run. Alternatively, share the profile file manually: attach .grimoire/profiles/[profile-name].toml to your PR or send directly.'gh command fails after auth check passes: show the error and output: 'Manual fallback: commit the profile file and open a PR manually.'Gist:
gh gist create .grimoire/profiles/my-team.toml --public --desc "grimoire profile: my-team"
Repo:
gh repo create grimoire-profile-my-team --public
git init && git add . && git commit -m "feat: initial profile"
git remote add origin https://github.com/<user>/grimoire-profile-my-team.git
git push -u origin main
✓ Published: https://gist.github.com/<user>/<id>
Others install with:
curl -fsSL https://gist.githubusercontent.com/<user>/<id>/raw/my-team.toml \
-o ~/.grimoire/profiles/my-team.toml
Then activate:
profiles = ["my-team"] # in .grimoire/settings.toml
Install command: Include the exact version or commit in the install command so recipients get the exact profile reviewed:
/plugin install [profile-name]@[version-or-commit]
If no version is tagged, include the Git commit SHA. A profile install without a version pin can drift as the source changes.
Profile versioning strategy:
git tag profiles/[profile-name]/v1.0.0. Install command: /plugin install [profile-name]@v1.0.0/plugin install [profile-name]@[sha]Which version strategy to use:
Never use 'no version' for a profile others will depend on in production workflows.
Sharing before reviewing. Always run review-best-practice-profile first. A broken profile shared publicly is harder to fix than one caught before publish.
Missing description. Others can't evaluate a profile without knowing what it's for. Always include a description field before sharing.
npx claudepluginhub jeffreytse/grimoire --plugin grimoireGuides 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.
Guides contributing custom skills to upstream repository: sync main, create feature branch, edit/create SKILL.md, commit, push to fork, create GitHub PR using gh CLI.
Reviews and optimizes GitHub profiles and repositories for discoverability, clarity, and trust signals using documented search, metadata, and structure guidance.