https://github.com/avidrucker/claude-config
https://github.com/avidrucker/claude-config
Last synced: 11 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/avidrucker/claude-config
- Owner: avidrucker
- License: mit
- Created: 2026-05-25T06:16:34.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-07-02T03:11:41.000Z (22 days ago)
- Last Synced: 2026-07-02T05:10:32.923Z (22 days ago)
- Language: JavaScript
- Size: 161 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# claude-config
Personal Claude Code configuration: skills, slash commands, user-
scope agents, and reference docs. Cloned into `~/Documents/` (or
wherever) on each machine; symlinks individual items into
`~/.claude/` so the user-installed customisations travel across
computers without disturbing per-machine state.
## What's here, what's not
| Lives in this repo | Lives elsewhere |
|---|---|
| `skills/` — 14 personally-authored skills | Work/stack skills → sibling repo `claude-config-work` (Fulcro/Clojure/Datomic) |
| `commands/` — user-scope slash commands | Anthropic-bundled skills (docx, pdf, pptx, etc.) → `~/Documents/anthropic-skills/` |
| `agents/` — user-scope agents (empty for now) | Matt Pocock's 16 skills (installed separately; see below) |
| `reference/` — overview docs that explain the skill ecosystem | Anthropic's marketplace plugins (auto-managed by Claude Code) |
| | Project-scoped agents (live in each project's `.claude/agents/`) |
| | `~/.claude/settings.json` — per-machine, not synced |
> **Repo split (2026-06-17):** this repo originally carried 42 skills. The
> Fulcro/Clojure/Datomic stack skills + a work-specific issue-tracker workflow
> moved to a private sibling repo `claude-config-work`, and the Anthropic-bundled skills
> (proprietary-licensed, also available from the marketplace) moved to a plain
> `~/Documents/anthropic-skills/` folder. Both are symlinked into
> `~/.claude/skills/` alongside this repo's skills, so all of them still work
> on each machine — they're just version-controlled separately.
### Why not include Pocock's skills?
His skill ecosystem is maintained upstream at
`mattpocock/skills`. Cloning his skills into THIS repo would create
a fork that drifts from his updates. Strategy: run his installer
(`npx skills@latest add mattpocock/skills`) once per fresh machine
to pull his current 16 from upstream into `~/.claude/skills/`.
### Why per-item symlinks rather than whole-dir symlinks?
If `~/.claude/skills/` were a single symlink to `/skills/`,
Pocock's installer would write into the symlinked dir (which is THIS
repo), polluting the repo with his skills. Per-item symlinks
(`~/.claude/skills/X` → `/skills/X` for each of our skills)
let Pocock's skills coexist as real dirs in `~/.claude/skills/`.
## Bootstrap (fresh machine)
Use this path when `~/.claude/skills/` does NOT yet contain real
directories that overlap with this repo. If it does (e.g. you've been
using Claude Code on the machine for a while), see **"Existing
machine (migration)"** below instead.
### Prerequisites — all machines
- **Git** (any recent version)
- **GitHub access** — either an SSH key configured for `github.com`
(recommended; matches the `git@github.com:...` URLs below) OR a
PAT via `gh auth login` if you'd rather use HTTPS
- **Node.js** (for the `npx skills@latest add mattpocock/skills`
step — only needed if you want Pocock's skills)
### Prerequisites — Windows-specific
**Enable Developer Mode** before running `install.ps1`:
1. Open Settings (`Win + I`)
2. Privacy & security → For developers
3. Toggle **Developer Mode** ON
No restart required. This grants the
`SeCreateSymbolicLinkPrivilege` to your user account, which the
install script needs to create symlinks without elevation.
Alternative: skip Dev Mode and run `install.ps1` from a PowerShell
window opened **as Administrator** instead. Symlinks created by an
admin session remain readable by non-admin sessions, so this is a
one-time cost.
If neither is available, `install.ps1` detects the failure and
offers to switch to `-CopyMode` (copies files instead of
symlinking). Copy mode works but breaks the auto-sync property —
edits made on the machine no longer flow back to the repo
automatically; you'd have to manually copy them back and `git pull`
on every refresh.
### Windows
```powershell
# 1. Clone this repo
cd ~\Documents
git clone git@github.com:avidrucker/claude-config.git
cd claude-config
# 2. Install Pocock's 16 skills upstream (optional but recommended)
# Lives in ~/.claude/skills/ as real dirs, NOT inside this repo
npx skills@latest add mattpocock/skills
# 3. Symlink this repo's content into ~/.claude/
.\install.ps1
```
Expected output: per-skill `[link]` lines (14 of them), then a
`[link]` line for the one command, then "Done." A "Next steps"
block at the bottom reminds you about Pocock's installer if you
skipped step 2.
### macOS / Linux
```bash
# 1. Clone
cd ~/Documents # or wherever you keep repos
git clone git@github.com:avidrucker/claude-config.git
cd claude-config
# 2. Install Pocock's skills
npx skills@latest add mattpocock/skills
# 3. Symlink into ~/.claude/
./install.sh
```
POSIX symlinks need no special privileges.
### Verify
After the install script finishes, confirm the symlinks landed:
```powershell
# Windows
Get-ChildItem ~/.claude/skills -Directory `
| Where-Object { $_.LinkType -eq 'SymbolicLink' } `
| Measure-Object | Select-Object -ExpandProperty Count
# Should print 14 (this repo's skills) — more if the work repo /
# anthropic-skills / Pocock are also linked into ~/.claude/skills
Get-Item ~/.claude/commands/font-change.md | Select-Object LinkType,Target
# Should show LinkType=SymbolicLink, Target pointing into this repo
```
```bash
# macOS / Linux
ls -la ~/.claude/skills/ | grep -c '^l' # symlink count
readlink ~/.claude/commands/font-change.md
```
Then open Claude Code in any project and invoke a slash command
(`/fulcro`, `/grill-me`, etc.) — should work transparently.
## Existing machine (migration)
If `~/.claude/skills/` already has real directories that overlap
with `/skills/` (typical after using Claude Code for a while
on a machine BEFORE adopting this repo), use the migration utility
instead of running `install.ps1` directly. The migration script
checks that each existing real dir is byte-identical to its repo
counterpart before deleting + symlinking, so you can't accidentally
lose local edits.
```powershell
# Windows — run from this repo's root
cd ~\Documents\claude-config
.\bin\migrate-existing-skills.ps1 -DryRun # preview, no changes
.\bin\migrate-existing-skills.ps1 # do it
```
Per-skill outcomes:
- **`[migrate]`** — existing real dir was identical to repo, replaced with symlink
- **`[link new]`** — no existing dir, plain symlink created
- **`[skip]`** — already a correct symlink, no-op
- **`[DIFF]`** — content differs from repo, **aborted for that one item** (no destructive action); reconcile manually before re-running
The migration is idempotent and re-runnable — you can run it again
after a `git pull` to pick up new skills the repo gained.
POSIX equivalent script isn't shipped yet; if you need it on macOS/
Linux, file an issue or write one along the same shape (drop a real
dir if `diff -r src dst` is silent; create a symlink either way).
## Troubleshooting
**`install.ps1` aborts with "Cannot create symlinks."**
Developer Mode isn't on AND you're not in an admin PowerShell. See
Prerequisites — Windows-specific above.
**Skill content didn't refresh after `git pull`.**
You're probably in `-CopyMode` (or symlinks were silently
overwritten by a copy at some point). Re-run `install.ps1` — it
prints `[skip]` for already-correct symlinks and re-links anything
that drifted.
**A skill is missing after install.**
Check the corresponding `skills//` exists in this repo's
working tree. If `git status` is clean and the dir exists, run the
install script with `-Verbose` (or look at the script output for a
`[WARN]` on that specific item). Most common cause: an existing
non-symlink at the target that the script refused to clobber.
**Pocock's installer (`npx skills@latest add mattpocock/skills`)
fails or the package moves.**
Check `mattpocock/skills` upstream for the current install recipe —
the package name or invocation may have changed.
**Symlinks broke after a Windows backup-restore or filesystem
operation.**
Run `.\bin\migrate-existing-skills.ps1` — its symlink-vs-real-dir
detection re-establishes the right shape. Or just re-run
`install.ps1` if the targets are missing entirely.
## What's NOT included (deliberately)
- **`settings.json` / `settings.local.json`** — per-machine. May
contain local paths, API keys, allow-lists, default model
preferences. Set up these manually per machine; reference what
you usually have via a `settings.example.json` you can add later.
- **`cache/` / `sessions/` / `history.jsonl` / `tasks/` /
`telemetry/` / `paste-cache/` / `shell-snapshots/`** — runtime
state. The `.gitignore` here is defensive against accidentally
committing any of these if you ever copy this repo into
`~/.claude/` directly.
- **`projects/`** — per-machine session data Claude Code writes
for each project you've opened. Not portable.
## Updating a skill
1. Edit the skill in `~/.claude/skills//SKILL.md` (or wherever
the symlink points — same place from your shell's POV).
2. Edits are visible in this repo as pending git changes:
`git status`.
3. Commit + push as normal. Other machines pick up the change via
`git pull` (no re-install needed; the symlinks already point
here).
## Adding a new skill
1. `cd skills/` in this repo, create the new skill dir +
`SKILL.md`.
2. `git add` + commit + push.
3. On THIS machine, re-run `install.ps1` / `install.sh` — the
installer is idempotent and adds new symlinks for new items.
4. On OTHER machines, `git pull` + re-run the install script.
## Adding a new user-scope agent
Same flow as a skill — put the file in `agents/` (project root),
commit, push, re-run installer. Future user-scope agents live in
`agents/`; project-scoped agents continue to live in each project's
own `.claude/agents/`.
## Reference
The `reference/` dir has two docs that explain the broader ecosystem:
- `link-agent-skills.md` — how agents and skills compose.
- `matt-pocock-skills-overview.md` — annotated index of Pocock's 16
skills, what each assumes about the project structure.
These travel with the repo for cross-machine reference. They're not
installed into `~/.claude/` directly by the bootstrap script.
## License
[MIT](LICENSE) © 2026 Avi Drucker.