Personal coding-agent platform for Claude Code and Pi.
Install skills with:
npx skills@latest add danievanzyl/code-skillsInstall the Pi package from npm:
pi install npm:@danievanzyl/code-skillsTry 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.
The pi-package npm keyword makes the published package eligible for pi.dev/packages. Before the first release:
- Create or select the
@danievanzylnpm 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, repositorycode-skills, workflowrelease.yml, with no environment unless the workflow later uses one. - Later merges to
mainsynchronizepackage.jsonwith the Claude plugin version and publish through short-lived OIDC credentials. No npm token is stored in GitHub; delete the oldNPM_TOKENsecret after trusted publishing is configured.
Validate before publishing:
npm pack --dry-run
pi --approve --no-extensions -e . --list-models| Path | Description |
|---|---|
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) |
- 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
ghCLI - 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
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.jsonlists each provider (repo, therefit tracks, categories to include, skills to exclude). Add a provider there — no code changes needed. - Sync:
bash scripts/sync-skills.shmirrors the configured skills intoskills/<name>/(writing a.vendored-frommarker per skill) and the upstreamLICENSE+ provenance intovendor/<provider>/. Each run records the exact upstream commit SHA + date invendor/<provider>/manifest.jsonand every.vendored-frommarker — that recorded SHA is the pin and the audit trail (the configuredrefmay 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.ymlruns the sync weekly (and on demand via Run workflow), opening/updating a singlechore/sync-skillsPR. Merging it cuts a release.
Current providers:
mattpocock/skills(MIT)ogulcancelik/herdr(AGPL-3.0-or-later)
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.
Many of the skills and commands in this config are based on HumanLayer's workflow patterns.