Use this file to install or update JB's preferred agent skills from the registry in this same Gist.
- Gist: https://gist.github.com/bjesuiter/98d5768dc360093affb8d8fdb064e45f
- Registry filename:
jb-skill-preferences.json5 - Format: JSON5, not JSON
ghCLI installed and authenticated for reading Gists.npxavailable for theskillsCLI.piCLI available when installing Pi extensions.
gh gist view https://gist.github.com/bjesuiter/98d5768dc360093affb8d8fdb064e45f \
--filename jb-skill-preferences.json5 \
--rawParse it as JSON5, not strict JSON.
Use ensure mode unless JB explicitly asks to prune or force-refresh.
Ensure mode means:
- install every entry listed in
global.topics.core - do not delete locally installed skills that are not in the registry
- do not install
global.topics.experimentalunless explicitly requested - treat repeated installs as acceptable/idempotent unless the CLI reports otherwise
Install order:
-
Install
global.topics.core.piExtensionsglobally:pi install <source>
-
Install
global.topics.core.skillsglobally withnpx -y skills add. Use the topic'sinstall.skillsCliDefaultArgsif present, otherwiseschema.defaultSkillsCliArgs.Expansion rules:
skill: "name"becomes--skill nameskills: ["a", "b"]becomes repeated--skill a --skill bskill: "*"withwildcard: truebecomes--skill '*'- entry with only
sourceinstalls the source without--skill skillsCliExtraArgs: [...]appends those exact extra args for that entry, e.g. OpenClaw risk acknowledgement flags
-
Continue after individual failures, record failed sources, and report them at the end.
Use this workflow when JB adds a new skill to jb-skill-preferences.json5 and then says to install it.
Do not run full ensure mode in this situation unless JB asks for it. Install exactly the newly added registry entry using the same install rules.
Workflow:
-
Identify the exact entry that was just added or changed in the registry.
- Prefer the entry from the current conversation/diff.
- If unclear, compare the before/after registry or ask JB which entry to install.
-
Determine scope from where the entry was added:
global.topics.*.skills→ globalskillsCLI install using that topic's install args, orschema.defaultSkillsCliArgs.global.topics.*.piExtensions→pi install <source>.project.topics.*.skills→ project-localskillsCLI install; omit-gunless the topic overrides it.project.topics.*.piExtensions→pi install -l <source>.
-
Install only that entry:
skill: "name"→ install only that skill.skills: ["a", "b"]→ install exactly those listed skills from that entry.skill: "*", wildcard: true→ install that wildcard entry only.sourceonly → install that source only.
-
Do not install sibling entries from the same topic unless JB explicitly asks.
-
Verify the expected skill(s) are present, then report the exact command(s) run and any failures.
Only if JB asks for experimental skills, also install global.topics.experimental using the same rules.
Do not install experimental by default.
Use force refresh when JB asks to update/reinstall existing local skills from upstream.
Workflow:
-
Run ensure mode first.
-
If the
skillsCLI supports an overwrite/force/update flag, use it. Check current CLI help rather than guessing:npx -y skills add --help
-
If no safe force flag exists, reinstall with normal
skills addand report that refresh depth depends on the CLI's update semantics. -
For Pi extensions, rerun
pi install <source>and report any extension-specific failures.
Only prune when JB explicitly asks.
Prune mode means removing local skills that were previously installed from this preference registry but are no longer listed.
Guardrails:
- Never delete arbitrary local skills just because they are absent from the registry.
- Before deleting, show a removal plan and ask for confirmation.
- Prefer pruning only skills with names that clearly belong to a registry-managed source/topic.
- Do not touch canonical repo skills under
skills/<name>/in this repository. - For this skills repo, cleanup test installs under
.agents/skills/after validation.
Useful inspection commands:
find ~/.agents/skills ~/.pi/agent/skills -maxdepth 2 -name SKILL.md 2>/dev/null
find .agents/skills -maxdepth 2 -name SKILL.md 2>/dev/nullIf asked for a project topic, prefer project.topics.<topic> and use project-local scope:
-
Pi extensions:
pi install -l <source>
-
Skills CLI: omit
-gunless the topic overrides it. -
Merge local
skills,prompts, orextensionsarrays into.pi/settings.jsonwithout removing unrelated settings. -
Warn before writing personal absolute paths into a shared repo.
-
After
.pi/settings.jsonor Pi extension changes, tell JB to run/reloador restart Pi.
Use this workflow when JB asks to validate preferred skills, check whether registry skills are installed, or verify that local installed skills are up to date enough without pruning.
Validation is read-mostly. Do not delete or prune anything. Do not install missing project/experimental skills unless JB explicitly asks.
Validation levels:
-
Registry parse validation
- Fetch
jb-skill-preferences.json5from this Gist. - Parse it as JSON5.
- Confirm top-level
globalandprojectsections exist. - Confirm wildcard entries use
skill: "*"pluswildcard: true.
- Fetch
-
Source validity validation
-
For each unique
skills[].source, run:npx -y skills add <source> --list
-
For sources that require special acknowledgement, such as OpenClaw community sources, report the blocked source and the required flag instead of silently accepting risk.
-
If JB explicitly allows OpenClaw risk validation, rerun with the CLI-provided acknowledgement flag, e.g.
--dangerously-accept-openclaw-risks.
-
-
Registry-entry availability validation
- For every explicit
skill: "name"orskills: [...]entry, confirm the listed skill name appears in that source's--listoutput. - For
skill: "*", wildcard: true, confirm the source lists skills; do not require a fixed set. - For source-only entries, confirm the source lists at least one installable skill.
- For every explicit
-
Local install validation
-
Inspect installed local/global skill dirs:
find ~/.agents/skills ~/.pi/agent/skills -maxdepth 2 -name SKILL.md 2>/dev/null | sort
-
By default, require
global.topics.coreexplicit skills to be installed locally. -
Treat
global.topics.experimentaland allproject.topics.*skills as optional unless JB asked to validate those topics specifically. -
Report missing optional skills separately from missing core skills.
-
-
Up-to-date check
- A strict up-to-date check is only possible by rerunning install/ensure mode or comparing installed files with freshly fetched source files.
- For normal validation, report whether each source is reachable and each expected skill is present.
- If JB asks to make skills up to date, run ensure mode for
global.topics.coreor the requested exact topic/entry.
Validation report format:
- Registry parse: pass/fail
- Source validity: pass/fail with failed sources
- Entry availability: missing or mismatched entries
- Local core install: installed/missing
- Optional experimental/project entries: installed/missing, clearly marked optional
- Actions taken: validation-only, ensure run, or skipped installs
After ensure/refresh mode:
-
Report installed sources and failures.
-
Spot-check expected skill directories/files:
find ~/.agents/skills ~/.pi/agent/skills -maxdepth 2 -name SKILL.md 2>/dev/null | sort
-
If working inside the
bjesuiter/skillsrepo, run discovery and then cleanup test installs:npx skills add . --list npx skills add . --skill <changed-skill> -a codex -y rm -rf .agents/skills/<changed-skill>
-
Tell JB whether this was:
- ensure-only
- force-refresh attempted
- experimental included
- prune attempted/completed
Single skill:
npx -y skills add -g bjesuiter/skills --skill jb-tdd --agent codex opencode pi -yMultiple skills from one source:
npx -y skills add -g bjesuiter/skills --skill jb-adr --skill jb-tdd --agent codex opencode pi -yWildcard source:
npx -y skills add -g mattpocock/skills --skill '*' --agent codex opencode pi -ySource without explicit skill:
npx -y skills add -g remorses/playwriter --agent codex opencode pi -yPi extension:
pi install npm:@tmustier/extending-pi- Preserve
jb-skill-preferences.json5; do not rewrite it unless explicitly updating preferences. - Do not invent alternate registry filenames.
- Keep
globalandprojectsemantics separate. - Default to ensure mode, not prune mode.
- Never prune without confirmation.
- After installing Pi extensions or project-local settings, restart Pi or run
/reloadif needed.