Public source of truth for my global agent instructions, personal skills, curated third-party skill references, and non-skill tool references.
This repo supports:
- Claude Code
- Codex
- Copilot
- OpenCode
- Pi
- Cursor
.
|-- AGENTS.md # Repo-scoped instructions for working in this repo
|-- AGENTS.global.md # Global agent instructions, distributed to ~/.codex, ~/.claude, etc.
|-- CLAUDE.md -> AGENTS.md # Symlink so Claude loads repo-scoped rules in this repo
|-- skills/ # Personal skills authored here
|-- curated-skills.json # Installable skill sources plus reference-only plugin inventory
|-- curated-tools.json # Non-skill tools, CLIs, packages, and docs I use
|-- harnesses/ # Opt-in harness manifests + catalog.yaml / catalog.lock.json
|-- docs/ # Model catalog contract + CLI notes
|-- scripts/ # agent-skills CLI + install/setup helpers
|-- package.json # agent-skills bin + thin npm aliases
`-- README.md
Install package dependencies from a local checkout:
npm installInstall global skills and instructions:
npm run setupDefault mode uses symlinks where the target tool supports normal files. Use copy mode when symlinks are not desirable:
npm run setup:copyWhat npm run setup does:
- Installs personal skills from
skills/forclaude-code,codex,github-copilot,opencode, andpiusingnpx skills. - Installs curated third-party skills from
curated-skills.jsonsources. - Installs global
AGENTS.global.mdguidance for Claude, Codex, Copilot, OpenCode, and Pi.
Primary interface:
npm run agent-skills -- --help
npm run agent-skills -- install all
npm run agent-skills -- setup pi --catalog-only
npm run agent-skills -- catalog check
npm run agent-skills -- verifyUseful aliases (same dispatcher underneath):
npm run setup # install all (personal + curated + agents)
npm run setup:copy # install all with --copy
npm run skills:list # personal skills in this repo
npm run skills:list:installed # globally installed skills
npm run install:skills # personal skills only
npm run install:curated # curated sources only
npm run install:agents # AGENTS.global.md distribution
npm run setup:memory-palace # memory-palace vault path
npm run setup:opencode # OpenCode harness
npm run setup:pi # Pi harness (add --catalog-only for models only)
npm run setup:cursor # Cursor subagents
npm run catalog:check # offline catalog validation
npm run catalog:diff # live catalog preview
npm run catalog:refresh # refresh lock + generated targets
npm run update:skills # update installed skills
npm run verify # non-destructive verification
npm test # CLI routing / dry-run / exit-code testsPersonal skills live in skills/<skill-name>/SKILL.md.
Current personal skills:
| Skill | Purpose |
|---|---|
branch-port |
Port a feature across heavily diverged branches without unsafe merges |
memory-palace |
Ingest, query, and lint the personal Obsidian knowledge vault |
natural-copy-editing |
Rewrite, polish, translate, and correct text in a natural voice |
thorough-pr-review |
Review PRs and branches for correctness, reliability, and merge-readiness |
List skills:
npm run skills:list # personal skills in this repo only
npm run skills:list:installed # everything currently installed globally
npm run skills:list:installed:json # JSON form of the global install inventoryskills:list uses npx skills add . --list (package contents).
skills:list:installed uses npx skills list -g (global install state across agents).
Configure the default vault path once so the memory-palace skill works from any current directory:
npm run setup:memory-palace -- --vault /mnt/c/Users/<you>/Documents/<vault>If you are running from WSL and your vault lives on Windows, paste the Windows path from Explorer:
npm run setup:memory-palace -- --vault "C:\Users\user-name\Documents\Obsidian Vaults\obsidian-vault"The setup script converts it to a WSL-accessible path before saving it.
The setting is saved at ~/.agents/memory-palace/config.json:
{
"vaultPath": "/mnt/c/Users/<you>/Documents/<vault>",
"configuredAt": "2026-06-15T00:00:00.000Z",
"sourceInput": "C:\\Users\\<you>\\Documents\\<vault>"
}Resolution precedence inside the skill is:
- explicit vault path in the current user request
MEMORY_PALACE_VAULT~/.agents/memory-palace/config.json- current-directory detection as a fallback
On WSL, Windows paths like C:\Users\... are expected and are converted to /mnt/c/Users/... before validation and saving. The saved path must already be accessible from WSL.
curated-skills.json tracks two different inventories:
sourcesare third-party skill sources installable bynpx skills.npm run install:curatedonly uses this list.pluginReferencesare plugin-style or harness-specific skill references. They are tracked for awareness only and are not installed bynpm run setupornpm run install:curated.
Harness-specific setup stays separate from the default setup flow unless explicitly added later.
curated-tools.json tracks non-skill tools, CLIs, packages, and docs I use. It is a reference catalog only; it does not drive installation.
Harness setup is opt-in and separate from npm run setup (skills + global agents only).
Preferred entry point:
npm run agent-skills -- --help
npm run agent-skills -- setup opencode --dry-run
npm run agent-skills -- setup pi --catalog-only
npm run agent-skills -- setup cursor --dry-run
npm run agent-skills -- catalog checkLegacy npm run setup:* / catalog:* scripts still work; they route through the same CLI.
Policy lives in harnesses/catalog.yaml. The lock and generated Cursor provider are produced by catalog commands — do not edit them by hand.
npm run agent-skills -- catalog check # offline validate
npm run agent-skills -- catalog diff # live preview
npm run agent-skills -- catalog refresh # write lock + generated targets
npm run agent-skills -- setup pi --catalog-only # apply models/Scope onlyContract, failure modes, and Pi phase flags: docs/model-catalog.md.
Tracked in harnesses/opencode.json. Setup installs agent files, prints manual plugin installer hints, and only mutates config for selected plugins.
npm run agent-skills -- setup opencode --dry-run
npm run agent-skills -- setup opencode
npm run agent-skills -- setup opencode --enable-recommendedAgent templates use {{catalogRole:<role>}}; setup renders concrete models from the catalog lock.
Tracked in harnesses/pi.json with extensions under harnesses/pi/.
# Models / Scope / providers only (usual after catalog refresh)
npm run agent-skills -- setup pi --catalog-only
# Full harness without Cursor bridge
npm run agent-skills -- setup pi --skip-cursor-bridge
# Full harness + optional recommended entries
npm run agent-skills -- setup pi --dry-run
npm run agent-skills -- setup pi --enable-recommended
PI_CURSOR_WORKSPACE="$PWD" npm run agent-skills -- setup piPhases: catalog (always) → packages → extensions → cursor-bridge (skippable). Setup consumes the committed lock only; it does not re-discover models.
Cursor credentials stay local via cursor-agent login. Bridge ports bind to 127.0.0.1. After bridge config changes, run catalog diff / catalog refresh if model IDs changed, then re-apply with --catalog-only.
Tracked in harnesses/cursor.json (harnesses/cursor/agents/).
npm run agent-skills -- setup cursor --dry-run
npm run agent-skills -- setup cursor
npm run agent-skills -- setup cursor --copyCursor has no global AGENTS.md / ~/.cursor/rules/*.mdc install path — User Rules stay in the Customize UI. This harness only installs user-scope subagents under ~/.cursor/agents/.
AGENTS.global.md is the source of truth. npm run install:agents (or agent-skills install agents) distributes it to:
- Codex:
~/.codex/AGENTS.md - Claude:
~/.claude/AGENTS.mdplus~/.claude/CLAUDE.mdimporting@AGENTS.md - Copilot:
~/.copilot/AGENTS.mdplus~/.copilot/instructions/global-agent.instructions.md - OpenCode:
~/.config/opencode/AGENTS.mdplus a global configinstructionsentry - Pi:
~/.pi/agent/AGENTS.md
Default mode symlinks; setup:copy / --copy copies. Repo-scoped AGENTS.md applies only inside this repository.
After changing OpenCode config, restart OpenCode. Running sessions keep already-loaded config.
Run the non-destructive repo checks:
npm run verifyOptional runtime checks:
codex --ask-for-approval never "Summarize current instructions."For OpenCode, inspect ~/.config/opencode/opencode.jsonc and confirm the instructions array includes ~/.config/opencode/AGENTS.md.
This repository is public. Do not add private dashboards, tokens, org IDs, internal URLs, API keys, or generated local memory context.
