{"id":51822153,"url":"https://github.com/kborovik/opencode-skills","last_synced_at":"2026-07-22T06:05:52.189Z","repository":{"id":365590977,"uuid":"1272830276","full_name":"kborovik/opencode-skills","owner":"kborovik","description":"SDD (spec-driven development) skill pack for OpenCode — spec, build, check, condense, design, and friends.","archived":false,"fork":false,"pushed_at":"2026-06-18T02:12:04.000Z","size":91,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T03:22:48.032Z","etag":null,"topics":["opencode","opencode-skills","sdd","spec-driven"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/kborovik.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":null,"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-18T01:16:48.000Z","updated_at":"2026-06-18T02:12:08.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kborovik/opencode-skills","commit_stats":null,"previous_names":["kborovik/opencode-skills"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/kborovik/opencode-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kborovik%2Fopencode-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kborovik%2Fopencode-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kborovik%2Fopencode-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kborovik%2Fopencode-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kborovik","download_url":"https://codeload.github.com/kborovik/opencode-skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kborovik%2Fopencode-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35750094,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-22T02:00:06.236Z","response_time":124,"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":["opencode","opencode-skills","sdd","spec-driven"],"created_at":"2026-07-22T06:05:51.659Z","updated_at":"2026-07-22T06:05:52.174Z","avatar_url":"https://github.com/kborovik.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# opencode-skills\n\nSDD (spec-driven development) skill pack for [OpenCode](https://opencode.ai) — author, build, check, condense, design, reorganize, and explain a root `SPEC.md`.\n\nA set of [agent skills](https://opencode.ai/docs/skills/) and slash commands that implement spec-driven development around a single root `SPEC.md`. Every row in the spec is addressable (`§V.\u003cn\u003e`, `§T.\u003cn\u003e`, `§B.\u003cn\u003e`); skills cross-reference each other and ship together so the references resolve.\n\n## Install\n\nThis repo ships skills, slash commands, and the audit script. Global opencode config (e.g. `opencode.jsonc`, `default_agent`) is the consumer's responsibility and intentionally not included.\n\n### Global install (recommended)\n\n`install.sh` clones the repo into `~/.local/share/opencode-skills/` and symlinks skills, commands, and the audit script into their per-consumer target dirs. Re-running is idempotent; updates flow through via `git pull` in the clone.\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/kborovik/opencode-skills/main/install.sh | sh\n```\n\nOverride the repo (e.g. fork or local checkout) with `REPO=...`; override the ref with `REF=...`:\n\n```sh\nREPO=you/opencode-skills REF=main curl -fsSL https://raw.githubusercontent.com/kborovik/opencode-skills/main/install.sh | sh\n```\n\nLocal checkout (developer install):\n\n```sh\nREPO=\"$(pwd)\" ./install.sh\n```\n\nWhat gets deployed:\n\n| source | target |\n|---|---|\n| `\u003cclone\u003e/skills` | `~/.config/opencode/skills` |\n| `\u003cclone\u003e/commands` | `~/.config/opencode/commands` |\n| `\u003cclone\u003e/scripts/check-mechanical.py` | `~/.opencode/scripts/check-mechanical.py` |\n\n### Project install\n\nDrop `skills/*` into `.opencode/skills/` in your repo. OpenCode walks up from the working directory to the git worktree root and discovers matching `skills/*/SKILL.md` along the way. See the [skills discovery docs](https://opencode.ai/docs/skills/#understand-discovery).\n\nSlash commands resolve globally from `~/.config/opencode/commands/`; place them there (or via the global install above) for them to surface inside OpenCode.\n\n## Commands\n\nSlash commands are thin wrappers — frontmatter description distilled from the corresponding skill, body delegates via `invoke the \u003cskill\u003e skill $ARGUMENTS`.\n\n| command | delegates to | what it does |\n|---|---|---|\n| `/sdd:spec` | `spec` skill | Sole `SPEC.md` mutator. Free-form intent; socratic gate classifies into NEW / DISTILL / BACKPROP / AMEND / FOLD-IN. |\n| `/sdd:build` | `build` skill | Plan → execute → verify loop. `§T.n`, `--next`, or `--all`. |\n| `/sdd:check` | `check` skill | Read-only drift report. Diffs `SPEC.md` vs code; groups violations by severity. Writes nothing (except `.spec/check-state.json` memo on clean run per V32). |\n| `/sdd:explain` | `explain` skill | Telegraph → prose. Decompresses one §-cite (`§V.\u003cn\u003e`, `§T.\u003cn\u003e`, `§B.\u003cn\u003e`, or `--next`). |\n| `/sdd:condense` | `condense` skill | Token-budget sweep over `SPEC.md` (fold, archive, prune, rewrite). |\n| `/sdd:design` | `design` skill | Propose-then-critique structural loop → `designs/\u003cslug\u003e.md`. |\n| `/sdd:reorganize` | `reorganize` skill | Cluster + renumber §V rows; sweep cite-DAG. |\n\n## Skills\n\n13 skills ship together. User-typeable skills have a slash command; internal sub-skills auto-fire or are programmatic-only.\n\n| skill | role | surface |\n|---|---|---|\n| `spec` | Sole semantic author of `SPEC.md` — create, amend, fold designs, backprop bugs. | `/sdd:spec` |\n| `build` | Plan-then-execute implementation vs `SPEC.md`. | `/sdd:build` |\n| `check` | Read-only drift detector. Diffs `SPEC.md` vs code, reports violations grouped by severity. | `/sdd:check` |\n| `condense` | `SPEC.md` token-budget sweep. | `/sdd:condense` |\n| `design` | Propose-then-critique structural design loop → `designs/\u003cslug\u003e.md`. | `/sdd:design` |\n| `reorganize` | `SPEC.md` §V cluster + renumber + cite-DAG sweep. | `/sdd:reorganize` |\n| `explain` | Telegraph → prose. Expand one `SPEC.md` citation into plain English. | `/sdd:explain` |\n| `commit` | Commit staged changes with a Conventional Commits message. (No slash command — invokes inline. `## Next` block optional per V9 since dispatch is not post-commit.) | inline |\n| `backprop` | Bug → spec protocol. Auto-fires on `/sdd:build` verification failures that smell like under-specification. | internal |\n| `socratic` | Single-question intent-sharpening gate. Invoked by `/sdd:spec`. | internal |\n| `steno` | Human-facing terse-prose register for non-author reviewers. | internal |\n| `telegraph` | Telegraph encoding for `SPEC.md` and spec-adjacent writes. | internal |\n| `monitor` | Skill-deviation auto-fire: captures misbehavior in sdd skills, routes to backprop or GitHub issue. | internal |\n\nSkill frontmatter is OpenCode-native (`name`, `description`, `license: MIT`, `compatibility: opencode`). Names match their directory names per the [naming rules](https://opencode.ai/docs/skills/#validate-names).\n\n## How to use\n\n### Greenfield — new project\n\n```\n/sdd:design how should we shape the parser / renderer split?    # optional — only if structural questions\n/sdd:spec build a static-site generator that converts a Markdown directory into a single-page HTML bundle\n# review §G / §C / §I / §V in SPEC.md, amend if needed\n/sdd:build --next    # plan, implement, verify T\u003cn\u003e (scaffold)\n/sdd:build --next    # T\u003cn\u003e (renderer)\n/sdd:check           # before opening a PR\n```\n\n### Brownfield — existing repo\n\n```\n/sdd:spec build the spec from this codebase                       # gate routes to DISTILL\n/sdd:check                                                        # see what already drifts from the distilled spec\n/sdd:spec V\u003cn\u003e's bound is too loose for the rate-limiter         # gate routes to AMEND\n/sdd:build §T.\u003cn\u003e                                                 # tackle a specific task\n```\n\n### A bug just hit production\n\n```\n/sdd:spec webhook handler retried POSTs after 5xx, double-charged 11 customers\n# gate routes to BACKPROP: appends §B, usually adds a new §V, adds a §T fix task, commits SPEC.md\n/sdd:build --next                                                 # failing test first, then the fix; commit cites §B / §V\n/sdd:check                                                        # confirm the new §V is upheld\n```\n\n### Pre-merge sanity\n\n```\n/sdd:check\n/sdd:explain §V.\u003cn\u003e    # if a violation is unclear, decompress it\n```\n\n## Files\n\n```\nopencode-skills/\n├── commands/         7 slash commands (sdd-build, sdd-check, sdd-condense, sdd-design, sdd-explain, sdd-reorganize, sdd-spec)\n├── scripts/          check-mechanical.py — deterministic audit core for `check`; test-install.sh smoke test\n├── skills/           13 agent skills (one folder per skill, each with SKILL.md)\n├── install.sh        global deploy: git clone + per-target symlinks (curl-bootstrap)\n├── SPEC.md           sole live spec for this repo (authored by spec skill only)\n├── .opencode/        repo-local state — check memo, plugin deps\n└── README.md\n```\n\n## Notes\n\n- The `check` skill references `~/.opencode/scripts/check-mechanical.py` via a hardcoded path. `install.sh` deploys it there (global install step above); without it, `check` will not function.\n- Skills are cross-referential (e.g. `check` suggests remedies via `spec`, `build`, `condense`; `spec` invokes `socratic`; `build` invokes `backprop`). All 13 ship together so the references resolve.\n- Slash commands are thin wrappers over skills — frontmatter description distilled from the matching `SKILL.md`, body delegates via `invoke the \u003cskill\u003e skill $ARGUMENTS`.\n- This repo's own `SPEC.md` is authored by the `spec` skill; it tracks the same constraints the pack imposes on consumers.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkborovik%2Fopencode-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkborovik%2Fopencode-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkborovik%2Fopencode-skills/lists"}