[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M756VJMHCYQSSWDEC7CXZFSZ":3,"skill-same:01M756VJMHCYQSSWDEC7CXZFSZ":52},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":33,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M756VJMHCYQSSWDEC7CXZFSZ","adept-contributing",null,"How to contribute to the adeptability (adept) Go CLI — build, the required pre-PR gates, conventional commits, and where things live. Apply when changing adept's own source, opening a PR, or adding a harness.","itaywol\u002Fadeptability","itaywol","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6410154?v=4","01M756SKJABTDMYHWVMHBA0M6E","Itay Wolfish","01M756SKKJFSV073PS3KYR896D",9,"MIT","https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability\u002Fblob\u002Fmain\u002F.adeptability\u002Fstaging\u002F.claude\u002Fskills\u002Fadept-contributing\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: adept-contributing\ndescription: How to contribute to the adeptability (adept) Go CLI — build, the required pre-PR gates, conventional commits, and where things live. Apply when changing adept's own source, opening a PR, or adding a harness.\nallowed-tools: [Bash, Read, Edit]\n---\n\n\n# Contributing to adept\n\nYou are working on the `adept` CLI itself (Go 1.25, module\n`github.com\u002Fitaywol\u002Fadeptability`). Read [AGENTS.md](..\u002F..\u002FAGENTS.md) for architecture and\ninvariants; this skill is the operational checklist.\n\n## Build & run\n\n```bash\ngo build .\u002F...\ngo build -o \u002Ftmp\u002Fadept .\u002Fcmd\u002Fadept && \u002Ftmp\u002Fadept --help\n```\n\n## Gates you MUST pass before opening a PR (same as CI)\n\n```bash\ngofmt -l .            # must print nothing → fix with: gofmt -w .\ngo vet .\u002F...\ngolangci-lint run     # config: .golangci.yml\ngo test -race .\u002F...\ngo test -run E2E .\u002Fcmd\u002Fadept   # end-to-end against a freshly built binary\n```\n\nIf any gate fails, fix it before pushing — CI runs the identical set on\nubuntu\u002Fmacos\u002Fwindows.\n\n## Where things live\n\n| You're changing… | Go there |\n| --- | --- |\n| public types \u002F interfaces \u002F sentinel errors | `pkg\u002Fadept\u002F` (types only — no behavior) |\n| canonical field shape | `pkg\u002Fadept\u002F` struct tags **and** `pkg\u002Fadeptschema\u002F*.schema.json` together |\n| a command | `internal\u002Fcli\u002Fcommands_*.go`; wire deps in `internal\u002Fcli\u002Fdeps.go` |\n| a harness renderer | `internal\u002Frender\u002F\u003Cid>\u002F` + golden fixtures in its `testdata\u002F` |\n| sync \u002F drift logic | `internal\u002Fharness\u002Forchestrator.go` |\n| 3-way merge | `internal\u002Fmerge\u002F` |\n| safety scanner | `internal\u002Fscan\u002F` |\n\n## Conventional commits (release-please reads these)\n\n`feat:` → minor · `fix:`\u002F`perf:` → patch · `feat!:`\u002F`BREAKING CHANGE:` → major ·\n`refactor:`\u002F`docs:`\u002F`chore:`\u002F`test:`\u002F`ci:` → no release. The squash-merge title becomes the\nchangelog entry, so write it well.\n\n## Conventions\n\n- Wrap errors with context: `fmt.Errorf(\"doing X: %w\", err)`. Match with `errors.Is` against\n  the sentinels in `pkg\u002Fadept\u002Ferrors.go` — never on error strings. Add new sentinels there.\n- No package-level state, no `init()` side effects: dependencies flow through `*Deps`.\n- New behavior ships with tests; bug fixes ship with a regression test. Update golden\n  fixtures in the same PR when output changes, and say why in the message.\n- Don't hand-edit `CHANGELOG.md`, `.release-please-manifest.json`, or version strings —\n  release-please owns them.\n","# Contributing to adept\n\nYou are working on the `adept` CLI itself (Go 1.25, module\n`github.com\u002Fitaywol\u002Fadeptability`). Read [AGENTS.md](..\u002F..\u002FAGENTS.md) for architecture and\ninvariants; this skill is the operational checklist.\n\n## Build & run\n\n```bash\ngo build .\u002F...\ngo build -o \u002Ftmp\u002Fadept .\u002Fcmd\u002Fadept && \u002Ftmp\u002Fadept --help\n```\n\n## Gates you MUST pass before opening a PR (same as CI)\n\n```bash\ngofmt -l .            # must print nothing → fix with: gofmt -w .\ngo vet .\u002F...\ngolangci-lint run     # config: .golangci.yml\ngo test -race .\u002F...\ngo test -run E2E .\u002Fcmd\u002Fadept   # end-to-end against a freshly built binary\n```\n\nIf any gate fails, fix it before pushing — CI runs the identical set on\nubuntu\u002Fmacos\u002Fwindows.\n\n## Where things live\n\n| You're changing… | Go there |\n| --- | --- |\n| public types \u002F interfaces \u002F sentinel errors | `pkg\u002Fadept\u002F` (types only — no behavior) |\n| canonical field shape | `pkg\u002Fadept\u002F` struct tags **and** `pkg\u002Fadeptschema\u002F*.schema.json` together |\n| a command | `internal\u002Fcli\u002Fcommands_*.go`; wire deps in `internal\u002Fcli\u002Fdeps.go` |\n| a harness renderer | `internal\u002Frender\u002F\u003Cid>\u002F` + golden fixtures in its `testdata\u002F` |\n| sync \u002F drift logic | `internal\u002Fharness\u002Forchestrator.go` |\n| 3-way merge | `internal\u002Fmerge\u002F` |\n| safety scanner | `internal\u002Fscan\u002F` |\n\n## Conventional commits (release-please reads these)\n\n`feat:` → minor · `fix:`\u002F`perf:` → patch · `feat!:`\u002F`BREAKING CHANGE:` → major ·\n`refactor:`\u002F`docs:`\u002F`chore:`\u002F`test:`\u002F`ci:` → no release. The squash-merge title becomes the\nchangelog entry, so write it well.\n\n## Conventions\n\n- Wrap errors with context: `fmt.Errorf(\"doing X: %w\", err)`. Match with `errors.Is` against\n  the sentinels in `pkg\u002Fadept\u002Ferrors.go` — never on error strings. Add new sentinels there.\n- No package-level state, no `init()` side effects: dependencies flow through `*Deps`.\n- New behavior ships with tests; bug fixes ship with a regression test. Update golden\n  fixtures in the same PR when output changes, and say why in the message.\n- Don't hand-edit `CHANGELOG.md`, `.release-please-manifest.json`, or version strings —\n  release-please owns them.\n",{"name":5,"description":7,"allowed-tools":24},[25,26,27],"Bash","Read","Edit","main","c5b1b81b2e0ae71bd8afeeade28eaea6f8fd1bf5",".adeptability\u002Fstaging\u002F.claude\u002Fskills\u002Fadept-contributing",0,"https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability","https:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fitaywol\u002Fadeptability","https:\u002F\u002Fgithub.com\u002Fitaywol","https:\u002F\u002Fitaywol.com","Founding Engineer @ Echo","2026-07-25 15:28:37",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add itaywol\u002Fadeptability --skill adept-contributing",{"tool":44,"command":45},"bunx","bunx skills add itaywol\u002Fadeptability --skill adept-contributing",{"tool":47,"command":48},"pnpm","pnpm dlx skills add itaywol\u002Fadeptability --skill adept-contributing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability\u002Fblob\u002Fmain\u002F.adeptability\u002Fstaging\u002F.claude\u002Fskills\u002Fadept-contributing\u002FSKILL.md",true,[],[53,59,65,71,76,82],{"skillNo":54,"name":55,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M756YHZ76TMVP0KK718K6KN0","using-adept","https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability\u002Fblob\u002Fmain\u002Fskills\u002Fusing-adept\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":19},"01M756YG9YGBG4783SFH8RE5PM","agents","https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability\u002Fblob\u002Fmain\u002Fskills\u002Fagents\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M756YD5MDX9ANB4QPVN34YQX","adept-writing-tests","https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability\u002Fblob\u002Fmain\u002Fskills\u002Fadept-writing-tests\u002FSKILL.md",[],[],{"skillNo":72,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M756YB57DN31BKNT4GHM9N2S","https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability\u002Fblob\u002Fmain\u002Fskills\u002Fadept-contributing\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M756Y9VM8W6E2HWMVYH0PH6H","adept-code-style","https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability\u002Fblob\u002Fmain\u002Fskills\u002Fadept-code-style\u002FSKILL.md",[],[],{"skillNo":83,"name":55,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M756Y76FNSH8VWP77TX1A8Z1","Use the `adept` CLI to author an AI skill once and render it into Claude Code, Cursor, Codex, Copilot, OpenCode, and 45+ agents. Apply when installing\u002Fsyncing skills, editing SKILL.md, or touching .adeptability\u002F.","https:\u002F\u002Fgithub.com\u002Fitaywol\u002Fadeptability\u002Fblob\u002Fmain\u002Finternal\u002Fdefaultskills\u002Fassets\u002Fusing-adept\u002FSKILL.md",[],[]]