{"id":50775805,"url":"https://github.com/krixon/skills","last_synced_at":"2026-06-11T23:30:47.457Z","repository":{"id":363286032,"uuid":"1259966295","full_name":"krixon/skills","owner":"krixon","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-08T08:11:20.000Z","size":302,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T09:23:59.662Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krixon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-05T03:12:13.000Z","updated_at":"2026-06-08T08:11:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/krixon/skills","commit_stats":null,"previous_names":["krixon/skills"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/krixon/skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krixon%2Fskills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krixon%2Fskills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krixon%2Fskills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krixon%2Fskills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krixon","download_url":"https://codeload.github.com/krixon/skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krixon%2Fskills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34222709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-11T23:30:46.595Z","updated_at":"2026-06-11T23:30:47.446Z","avatar_url":"https://github.com/krixon.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skills\n\nA library of [Claude Code](https://claude.com/claude-code) agent skills for engineering workflows — planning, issue triage, audits, TDD, diagnosis, and skill authoring. Packaged as a Claude Code plugin.\n\n## Install\n\nFrom the GitHub repo:\n\n```\n/plugin marketplace add krixon/skills\n/plugin install skills@krixon\n```\n\nOr install from a local checkout:\n\n```\ngit clone git@github.com:krixon/skills.git ~/dev/skills\n```\n\nThen in Claude Code:\n\n```\n/plugin marketplace add ~/dev/skills\n/plugin install skills@krixon\n```\n\nSkills are namespaced once installed: `/skills:diagnose`, `/skills:tdd`, etc.\n\n## Requirements\n\nThe workflow skills drive a small code adapter under `bin/` ([ADR 0008](docs/adr/0008-deterministic-mechanics-code-adapter.md)) that shells out to a few tools. On the machine that runs the skills you need:\n\n- `git`\n- `gh` (the GitHub CLI), authenticated\n- Python 3.8 or newer\n\nEach command requires only the tools it actually uses — the `worktree` group is pure git, so it doesn't need `gh`. The adapter binaries ship executable — a marketplace install is a git clone, which reproduces the committed file mode, so no `chmod` and no install step is needed. When a prerequisite is absent the adapter stops on its first call with a named halt on stderr — a JSON envelope whose `reason` is `adapter substrate check failed` and whose `missing` list names each absent prerequisite — rather than a cryptic exec error.\n\nTargets macOS/Linux.\n\n## I want to…\n\nStart from the task, not the skill. Each entry is the head of a chain — run the command and it hands you to the next hop. Trace a chain by following each skill's handover `default` hop ([skills/HANDOVER.md](skills/HANDOVER.md)).\n\n| I want to… | Run | …and the path from there |\n|---|---|---|\n| Validate a problem before designing a solution | `/discover` — grills the problem itself: who it serves, its value vs cost-of-inaction, its non-goals, how success is known | discover → `design` → `slice` → ready issues on the tracker |\n| Stress-test a plan or design | `/design` — challenges it against the project's domain model, sharpens terminology, offers an ADR where one is warranted | design → `slice` → ready issues on the tracker |\n| Turn a plan or this conversation into issues | `/slice` | one agent-brief issue, or N independently-grabbable issues under a lean epic, each marked `ready-for-agent` (AFK) or `ready-for-human` (HITL) |\n| Find architecture / refactoring opportunities | `/deepen` | candidates + report surfaced → `design` to design the chosen one |\n| Find what's not tested | `/audit-coverage` | findings → `capture` → `needs-triage` |\n| Run a security audit | `/audit-security` | findings → `capture` → `needs-triage` |\n| Check the docs haven't drifted | `/audit-docs` | findings → `capture` → `needs-triage` |\n| Find swallowed errors / check error handling | `/audit-error-handling` | findings → `capture` → `needs-triage` |\n| Find dead or unused code | `/audit-dead-code` | findings → `capture` → `needs-triage` |\n| Find resource leaks (unclosed handles) | `/audit-resource-leak` | findings → `capture` → `needs-triage` |\n| Harvest TODOs / find tech debt | `/audit-debt` | findings → `capture` → `needs-triage` |\n| Find critical paths running blind | `/audit-observability` | findings → `capture` → `needs-triage` |\n| Find performance hazards on hot paths | `/audit-performance` | findings → `capture` → `needs-triage` |\n| Audit third-party dependency health | `/audit-deps` | findings → `capture` → `needs-triage` |\n| File findings or observations as issues | `/capture` | deduped `needs-triage` issues for a human to `triage` |\n| Triage incoming issues | `/triage` | each routed to `ready-for-agent`, `ready-for-human`, `needs-info`, or `wontfix` |\n| Start implementing a ready issue | `/pickup` | claims it → routes by kind to `tdd` / `diagnose` / `write-skill` / docs / config → review gate → opens a PR |\n| Ship a small fix with no tracked issue | `/patch` | branch in a worktree → review gate → a no-issue PR (body led by `No-issue:`) a human lands; human-invoked, for fixes too small to file |\n| Build a feature test-first | `/tdd` | red-green-refactor loop (usually reached via `pickup`) |\n| Debug a hard bug or perf regression | `/diagnose` | reproduce → minimise → fix → regression test (usually reached via `pickup`) |\n| Ask questions on a PR review (not just request changes) | Comment them on the PR, then `/pickup` | `pickup`'s rework query catches the unresolved thread → routes the questions to `field`, where the agent works each to a converged answer with you → the answers post back to the thread |\n| Merge an approved PR | `/land` | merges, strips `in-progress`, deletes the branch/worktree (human-invoked only) |\n| Clean up stale workflow state | `/reap` | sweeps abandoned claims, quiet `needs-info`, orphaned worktrees/branches, and emptied epics → proposes each fix, confirms per item (human-invoked only) |\n| Write a new skill | `/write-skill` | scaffolds structure + progressive disclosure |\n| Run a whole pipeline unattended | `/auto \u003cskill\u003e` (e.g. `/auto audit-coverage`) | walks the chain head-down, halting at the first human gate |\n| Drain the whole `ready-for-agent` queue unattended | `/loop /auto pickup` (no interval) | picks up each ready issue in turn, then polls on a backoff for more — see [Draining the queue unattended](#draining-the-queue-unattended) |\n| Hand off the session to a fresh agent | `/handoff` | a compact handoff doc persisted to a well-known location; a fresh session's `/handoff` discovers and resumes it with no pasted path |\n\n## Draining the queue unattended\n\n`/loop /auto pickup` (dynamic mode — no interval) drains the whole `ready-for-agent` queue in one sitting: each loop iteration picks up the next ready issue and opens a PR, back-to-back with no idle between them. The queue lives in the tracker (`ready-for-agent` minus `in-progress`), not the conversation, so the loop re-derives it each iteration and stays correct across a long session the harness may compact.\n\nWhen the queue runs dry the loop doesn't stop — it polls on a widening backoff (`60s → 5m → 15m → 30m → 1h`, then hourly), resets to a hard drain the moment a newly-triaged issue appears, and gives up only after ~a day of finding nothing. Operating details are in [skills/auto/SKILL.md](skills/auto/SKILL.md).\n\n## Skills\n\nEach skill below links to its fuller entry in the [skills reference](docs/skills-reference.md) — what it does, when to reach for it, and an example.\n\n### Planning \u0026 specs\n- **[discover](docs/skills-reference.md#discover)** — grill you about a problem before any solution is designed: challenge that it's real, sharpen who it serves, weigh value against the cost of inaction, force the non-goals, and define how success is known; the head of the planning chain, upstream of `design`.\n- **[design](docs/skills-reference.md#design)** — grill you relentlessly about a plan or technical design until shared understanding, resolving each decision branch while challenging it against the domain model, sharpening terminology, and offering an ADR where a decision warrants it.\n- **[field](docs/skills-reference.md#field)** — field questions put to the agent and converge on shared understanding; the dual of design, run on PR-review rework.\n- **[slice](docs/skills-reference.md#slice)** — turn a plan, the current conversation, or an existing issue into one agent-brief issue or N tracer-bullet issues under a lean epic.\n\n### Issue tracking\n- **[triage](docs/skills-reference.md#triage)** — drive issues through a triage state machine by label.\n- **[capture](docs/skills-reference.md#capture)** — turn audit findings or ad-hoc observations into needs-triage issues, deduped and culled.\n\n### Audits\n- **[audit-coverage](docs/skills-reference.md#audits)** — audit for high-risk untested paths; static-first, surfaces findings to `capture`.\n- **[audit-security](docs/skills-reference.md#audits)** — sweep for security exposure (authz, injection, secrets); static-first, surfaces findings to `capture`.\n- **[audit-docs](docs/skills-reference.md#audits)** — find documentation that has drifted from the code (stale vocabulary, violated decisions, README/behavior claims); static-first, surfaces findings to `capture`.\n- **[audit-error-handling](docs/skills-reference.md#audits)** — sweep for error-handling defects (swallowed errors, bare catch-alls, critical calls with no failure path); judges handling quality, not test presence; static-first, surfaces findings to `capture`.\n- **[audit-dead-code](docs/skills-reference.md#audits)** — sweep for dead code (unreachable branches, never-called functions, orphaned modules); static-first, surfaces findings to `capture`.\n- **[audit-resource-leak](docs/skills-reference.md#audits)** — sweep for acquire sites (handles, connections, contexts, locks) with no guaranteed release on every path; static-first, surfaces findings to `capture`.\n- **[audit-debt](docs/skills-reference.md#audits)** — harvest in-code debt markers (TODO/FIXME/HACK/XXX and known shortcuts) clustered by area; static-first, surfaces findings to `capture`.\n- **[audit-observability](docs/skills-reference.md#audits)** — find critical paths (money, auth, data mutation, external calls) running blind with no log, metric, or trace; static-first, surfaces findings to `capture`.\n- **[audit-performance](docs/skills-reference.md#audits)** — find performance hazards on hot paths (N+1 data access, per-iteration allocation or IO, unbounded reads, missing caching or indexing, blocking in async); static-first, surfaces findings to `capture`.\n- **[audit-deps](docs/skills-reference.md#audits)** — audit third-party dependency health (outdated majors, known advisories, abandoned upstreams, license drift) from manifests and lockfiles; static-first, surfaces findings to `capture`.\n- **[deepen](docs/skills-reference.md#deepen)** — find architecture/refactoring opportunities informed by the project's domain language and recorded decisions.\n\n### Build \u0026 fix\n- **[pickup](docs/skills-reference.md#pickup)** — claim a ready issue and implement it, routing by artifact kind through the review gate to an open PR.\n- **[patch](docs/skills-reference.md#patch)** — ship a small fix straight from a conversation, no tracked issue: worktree branch → review gate → a no-issue PR (`No-issue:` marker) a human lands; human-invoked.\n- **[tdd](docs/skills-reference.md#tdd)** — red-green-refactor loop, integration-test first.\n- **[diagnose](docs/skills-reference.md#diagnose)** — disciplined loop for hard bugs and perf regressions: reproduce → minimise → hypothesise → instrument → fix → regression-test.\n- **[reap](docs/skills-reference.md#reap)** — sweep workflow state for staleness — abandoned claims, quiet `needs-info`, orphaned worktrees/branches, emptied epics — and propose each cleanup one human-confirmed action at a time; human-invoked only.\n\n### Commands\n\nCollapsed pure commands ([ADR 0008](docs/adr/0008-deterministic-mechanics-code-adapter.md)) — thin wrappers over the `bin/` adapter, not agent-native skills. Invoked the same way (`/land`).\n\n- **[land](docs/skills-reference.md#land)** — merge approved PRs, strip `in-progress`, and tear down the branch/worktree; human-invoked only.\n\n### Meta \u0026 session\n- **[auto](docs/skills-reference.md#auto)** — run a skill workflow unattended, walking the handover chain until the first human gate.\n- **[write-skill](docs/skills-reference.md#write-skill)** — author new skills with proper structure and progressive disclosure.\n- **[zoom-out](docs/skills-reference.md#zoom-out)** — map the relevant modules and callers a layer up, in the project's established vocabulary.\n- **[handoff](docs/skills-reference.md#handoff)** — compact the conversation into a handoff doc at a well-known location for a fresh agent; a fresh session's `/handoff` discovers and resumes the latest pending doc.\n- **[caveman](docs/skills-reference.md#caveman)** — ultra-compressed output mode; drops filler, keeps technical accuracy.\n\n## Layout\n\n- `skills/\u003cname\u003e/SKILL.md` — one directory per skill; `SKILL.md` is the entry point. Optional `REFERENCE.md`, `EXAMPLES.md`, `scripts/`. Real location at the plugin root, where marketplace installs discover them.\n- `commands/\u003cname\u003e.md` — collapsed pure commands (ADR 0008): thin wrappers over the `bin/` adapter, distinct from the agent-native skills.\n- `.claude/skills/` and `.claude/commands/` — symlink farms mirroring `skills/` and `commands/` so this repo also loads them live during development; regenerated by `bin/relink-dev-skills.sh`.\n- `.claude-plugin/plugin.json` — plugin manifest (name `skills`).\n- `.claude-plugin/marketplace.json` — single-plugin marketplace (name `karl`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrixon%2Fskills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrixon%2Fskills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrixon%2Fskills/lists"}