Code Skills
Personal coding-agent platform for Claude Code and Pi.
Installation
Install skills with:
npx skills@latest add danievanzyl/code-skills
Install the Pi package from npm:
pi install npm:@danievanzyl/code-skills
Try the current Git checkout without installing:
pi --no-extensions -e .
The Pi package includes a shared fixed status window, GitHub status section, custom editor status bar, background subagents, and bundled local codebase analysis, GitHub research, and web research personas. The fixed dock requires Pi's fullscreen TUI mode, selectable through /settings.
Publishing the Pi package
The pi-package npm keyword makes the published package eligible for pi.dev/packages. Before the first release:
- Create or select the
@danievanzyl npm organization/scope.
- Create the package with one manual OTP-authenticated release:
npm login && npm publish --access public --otp=<code>.
- In the npm package settings, add a GitHub Actions trusted publisher for organization/user
danievanzyl, repository code-skills, workflow release.yml, with no environment unless the workflow later uses one.
- Later merges to
main synchronize package.json with the Claude plugin version and publish through short-lived OIDC credentials. No npm token is stored in GitHub; delete the old NPM_TOKEN secret after trusted publishing is configured.
Validate before publishing:
npm pack --dry-run
pi --approve --no-extensions -e . --list-models
Structure
CLAUDE.md | Global Claude instructions applied to all sessions |
agents/ | Claude sub-agent definitions |
extensions/ | Pi extensions and bundled Pi subagent personas |
package.json | npm/Pi package manifest |
skills/ | Reusable skill definitions — hand-authored + vendored (see below) |
commands/ | Custom slash commands |
settings.json | Claude Code settings |
plugin.json | Plugin manifest (this repo is the agentic-platform plugin) |
.claude-plugin/ | marketplace.json — the single-marketplace definition everything installs from |
hooks/ | Hook configurations |
eval/ | Run Evaluator — read-only post-PR analyzer; scores a Run (Trajectory + diff) against a versioned Rubric, posts a security-gated check (see eval/README.md + docs/adr/0001) |
docs/adr/ | Architecture decision records |
scripts/ | Maintenance tooling (sync-skills.sh, skill-sources.json) |
.github/workflows/ | CI — release.yml (version bump on merge to main) + sync-skills.yml (weekly upstream-skill sync PR) + tests.yml (eval/ unit tests + hook regression tests) |
vendor/ | Attribution + provenance for vendored skills (generated) |
ralph/ | RALPH — autonomous AFK loop runner; drives Claude Code over an issues/ queue until <promise>NO MORE TASKS</promise> (afk.sh loop / once.sh single pass + per-stack prompts) |
tmux-workflow/ | tmux + Ghostty session/worktree scripts (sessionizer, new-branch, close-branch with a PR-merged cleanup gate) |
Agents
- codebase-analyzer — Analyzes implementation details with file:line references
- codebase-locator — Locates files and directories relevant to a feature
- codebase-pattern-finder — Finds similar implementations and usage patterns
- gh-search-researcher — Researches GitHub repos, PRs, issues via
gh CLI
- thoughts-analyzer — Deep dives on research topics
- thoughts-locator — Discovers relevant documents in thoughts directories
- web-search-researcher — Researches topics via web search
- swift-expect — Swift development specialist
Skills as a supply chain
This repo is the single source of truth for everything that runs in a session — first-party
agents, commands, hooks, and skills all live here. Trusted upstream skills aren't copy-pasted
in; they're ingested via GitHub Actions as recorded snapshots: each sync pins the exact
upstream commit and lands through a reviewed PR, so every dependency is versioned, attributed,
and auditable.
To keep everything under one marketplace, skills from external providers are vendored into
this plugin rather than installed as separate plugins. They land flat in skills/<name>/
so Claude Code's one-level skill auto-discovery registers them (a plugin.json skills array
is not honored from a root plugin.json, and nested dirs are too deep to be discovered), and
they invoke under this plugin's namespace, e.g. agentic-platform:tdd. Each vendored skill dir
carries a hidden .vendored-from marker recording its source.
- Config:
scripts/skill-sources.json lists each provider (repo, the ref it tracks,
categories to include, skills to exclude). Add a provider there — no code changes needed.
- Sync:
bash scripts/sync-skills.sh mirrors the configured skills into skills/<name>/
(writing a .vendored-from marker per skill) and the upstream LICENSE + provenance into
vendor/<provider>/. Each run records the exact upstream commit SHA + date in
vendor/<provider>/manifest.json and every .vendored-from marker — that recorded SHA is
the pin and the audit trail (the configured ref may be a moving branch; what's committed
here is always an exact snapshot). It's idempotent, and prune is marker-scoped — a re-sync only ever
removes dirs carrying that provider's marker, never a hand-authored skill; name collisions
with hand-authored skills are skipped. Vendored skill dirs are generated — do not hand-edit.
- Automation:
.github/workflows/sync-skills.yml runs the sync weekly (and on demand via
Run workflow), opening/updating a single chore/sync-skills PR. Merging it cuts a release.
Current providers:
A vendored skill keeps its own upstream license (recorded in
scripts/skill-sources.json, vendor/<provider>/, and — shipped with the skill —
skills/<name>/LICENSE). This is distinct from the plugin's own MIT license in
plugin.json, which does not relicense vendored content. herdr is AGPL-3.0-or-later;
see ADR 0003.
Archify requirements and asset terms
skills/archify/ preserves the complete upstream executable package. Runtime commands
require Node >=18, with no npm installation inside the skill directory.
Full finalize requires an installed Chrome/Chromium for its real-browser gate.
Run the CLI from your working directory using its installed path, as documented
in Archify's instructions.
Upstream delivery behavior is unchanged: finalize and deliver optionally check an
upstream update manifest. Set ARCHIFY_UPDATE_CHECK_DISABLED=1 to disable that
networking and reminder-state writes. The checker does not install updates.
Archify's MIT license covers its own code, not all bundled fonts and brand assets.
See third-party notices for asset licenses
and trademark restrictions, including Vue artwork's non-commercial/share-alike terms,
and the JetBrains Mono SIL Open Font License.
Credits
Many of the skills and commands in this config are based on HumanLayer's workflow patterns.