- Python 72.9%
- Shell 27.1%
|
|
||
|---|---|---|
| .agents/plugins | ||
| .claude-plugin | ||
| docs | ||
| plugins | ||
| scripts | ||
| template | ||
| xcode-skills | ||
| .gitignore | ||
| README.md | ||
Skills
Portable Agent Skills distributed as six plugins for Claude Code and Codex, and linked directly into OpenCode. All three load the same skill directories; only the Claude and Codex plugin and marketplace manifests are separate.
| Plugin | Contents |
|---|---|
engineering-skills |
Review, diagnosis, architecture, prototypes, setup, research, PR writing, visual proof of work, and retrospectives |
productivity-skills |
Grilling, handoffs, teaching, re-pitching, and writing for agents |
swift-skills |
Swift concurrency, testing, SwiftUI, symbol documentation, and DocC |
rust-skills |
Idiomatic Rust development guidance |
web-skills |
Distinctive frontend design guidance |
personal |
Personal workflows, including Mela recipe creation and editing |
Matt Pocock skills
The included engineering and productivity skills are based on Matt Pocock's skills 1.3.1. The selected additions are pr and retro.
Engineering includes Matt Pocock's
to-tickets skill. Invoke
/to-tickets to split a plan, spec, or conversation into vertical slices with blocking
dependencies, review the breakdown, and publish to the configured tracker. See the
to-tickets guide.
Local adaptations preserve the narrower diagnosing-bugs activation scope and use portable
skill-loading instructions. Domain documents use
GLOSSARY.md and GLOSSARY-MAP.md; rename existing CONTEXT.md and CONTEXT-MAP.md files
in projects that used the previous convention.
Install
Add this repository as a marketplace, then install only the plugins you want.
Claude Code:
claude plugin marketplace add /path/to/skills
claude plugin install swift-skills@noahs-agent-workspace
Codex:
codex plugin marketplace add /path/to/skills
codex plugin add swift-skills@noahs-agent-workspace
For a hosted repository, replace /path/to/skills with its owner/repo identifier.
Sync
After committing, publish the repository and refresh every agent:
./scripts/sync.sh
It pushes, updates the marketplace and installed plugins in Claude Code and Codex, and links new
skills into OpenCode. Add --prune after restarting Claude sessions to delete cached plugin
versions that no install uses.
Validate
claude plugin validate . --strict
claude plugin validate ./plugins/swift-skills --strict
Create a skill
Run the interactive generator:
./scripts/new-skill.py
It asks which plugin should contain the skill, followed by its purpose, activation context,
optional resource directories, license, and compatibility requirements. Pass
--plugin engineering, --plugin productivity, --plugin swift, --plugin rust, --plugin web,
or --plugin personal to select the destination non-interactively. Use --output-dir <path> for a
custom parent directory.
After creation, replace the TODOs in SKILL.md and validate the result:
skills-ref validate plugins/<plugin-name>/skills/<skill-name>
Link skills directly
Marketplace installation is the normal path for Claude Code and Codex. OpenCode has no marketplace, so link the skills into it. For standalone local development, symlink every individual skill into Claude Code, Codex, and OpenCode:
./scripts/link-skills.py
Link only one agent, preview changes, or replace stale symlinks:
./scripts/link-skills.py claude
./scripts/link-skills.py codex --dry-run
./scripts/link-skills.py opencode
./scripts/link-skills.py all --replace
The defaults are ~/.claude/skills, $CODEX_HOME/skills (falling back to ~/.codex/skills), and
~/.config/opencode/skills. Use --claude-dir, --codex-dir, or --opencode-dir to override
them. Existing real files and directories are never replaced.
OpenCode also reads ~/.claude/skills. When you link into Claude, skip the OpenCode target, or
OpenCode sees every skill twice.
Device automation
agent-device drives iOS simulators, Android
emulators, and macOS apps, including Electron, for every agent. Install the pinned CLI and its
upstream agent-device and dogfood skills:
./scripts/install-agent-device.sh
agent-device doctor
The script installs into ~/.local/share/agent-device, puts a wrapper at
~/.local/bin/agent-device, and links the skills into ~/.claude/skills and ~/.codex/skills.
OpenCode picks them up from ~/.claude/skills. To upgrade, bump VERSION in the script and run
it again; the CLI and the skills move together.
The wrapper runs Node from a nix GC root, so it works outside project dev shells. On macOS it
always uses the Xcode selected by xcode-select, because nix dev shells point DEVELOPER_DIR at a
nix Apple SDK that can't build the XCTest runner. It also defaults macOS apps to the native
backend, the only one that reads Electron's accessibility tree. When the wrapper changes, run
agent-device daemon stop so the next command starts a daemon with the new environment.