[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QPRDBW1T3DTDTGSYXDF5Q5":3,"skill-same:01M6QPRDBW1T3DTDTGSYXDF5Q5":71},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":14,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":64},"01M6QPRDBW1T3DTDTGSYXDF5Q5","set-up-github",null,"Set up a GitHub repository for trunk-based development. Squash-only merges with the PR title as the commit title, head branches deleted on merge, and a pull request required for the default branch. When the repo has CI, also requires named checks to pass and the branch to be up to date before merge. Use only when the user explicitly asks to set up GitHub.","olillevik\u002Fdotfiles","olillevik","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F836761?v=4","01M6QPQM0P3JSMXH2WS5A25DNV","Ørjan Markhus Lillevik","01M6QPQM57Y8KWZ172TY1R7RA5",0,"MIT","https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fset-up-github\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"set up github","SET","up","github","repo","for","true","as","branches","pr title","default","only","branch","squash","ci","pull","development","pr","copilot","github copilot","2026-11-10 10:12:30",false,"---\nname: set-up-github\ndescription: Set up a GitHub repository for trunk-based development. Squash-only merges with the PR title as the commit title, head branches deleted on merge, and a pull request required for the default branch. When the repo has CI, also requires named checks to pass and the branch to be up to date before merge. Use only when the user explicitly asks to set up GitHub.\ndisable-model-invocation: true\nlicense: MIT\ncompatibility: Claude Code, GitHub Copilot CLI\n---\n\n# Set up GitHub\n\nRun this skill by hand from the repository you want to configure, once per repository. It changes settings on GitHub, not the local clone, so it does not need to run again in other clones. It needs `gh` logged in with admin rights on the repository, and `jq` installed.\n\nThe script is `scripts\u002Fset-up-github.sh` in this skill's folder, the folder that holds this SKILL.md. Run it with the repository as the working directory.\n\n## What it sets\n\n- **Merge settings:** squash merges only. The squash commit title is the PR title and the body is blank. Head branches are deleted after merge. Other settings are left as they are.\n- **Ruleset `trunk-based`** on the default branch: changes go through a pull request, and squash is the only allowed merge method. No approvals are required, which suits a single maintainer. The ruleset has no bypass actors, so direct pushes to the default branch are blocked for everyone.\n- **CI gate, only when CI exists:** each named check must pass before merge, and the branch must be up to date with the default branch first. GitHub only enforces \"up to date\" when at least one required check exists.\n\n## Steps\n\n1. **Find the CI checks.** Run `scripts\u002Fset-up-github.sh --discover-checks`. It lists the check names reported on the default branch.\n   - If it lists names, show them to the user and ask which ones must pass before merge. Use only names the user picks, and pass each one with `--check NAME`. Do not guess names.\n   - If it says no check runs exist, the repository has no CI reporting yet. Continue without `--check`. Tell the user the CI gate and the up-to-date rule are skipped, and that they apply once a CI job exists and this skill is run again.\n   - Done when you have the check names, or the user has chosen none.\n\n2. **Dry run.** Run `scripts\u002Fset-up-github.sh --dry-run` with the same `--check` flags. It prints the settings and ruleset it would apply and changes nothing. Show the output to the user and wait for them to confirm.\n   - Done when the user has confirmed. If they decline, stop.\n\n3. **Apply.** Run `scripts\u002Fset-up-github.sh` with the same `--check` flags. It updates the repository settings, then creates the ruleset, or updates it if one named `trunk-based` already exists. Running it again is safe.\n   - If the script stops after the settings step, say which step failed. The repository settings may already have changed, and the ruleset may not exist. Report the error text and stop. Do not retry blindly.\n   - A private repository on a plan without rulesets returns an error from the ruleset step. Report it. The settings step has already run.\n\n4. **Report.** Print the script's verification lines. Say which parts were skipped and why. Remind the user that a required check name must match the check run name exactly. If the name never reports, pull requests wait forever, so it is worth checking the first PR after setup.\n   - Done when the report is written.\n","# Set up GitHub\n\nRun this skill by hand from the repository you want to configure, once per repository. It changes settings on GitHub, not the local clone, so it does not need to run again in other clones. It needs `gh` logged in with admin rights on the repository, and `jq` installed.\n\nThe script is `scripts\u002Fset-up-github.sh` in this skill's folder, the folder that holds this SKILL.md. Run it with the repository as the working directory.\n\n## What it sets\n\n- **Merge settings:** squash merges only. The squash commit title is the PR title and the body is blank. Head branches are deleted after merge. Other settings are left as they are.\n- **Ruleset `trunk-based`** on the default branch: changes go through a pull request, and squash is the only allowed merge method. No approvals are required, which suits a single maintainer. The ruleset has no bypass actors, so direct pushes to the default branch are blocked for everyone.\n- **CI gate, only when CI exists:** each named check must pass before merge, and the branch must be up to date with the default branch first. GitHub only enforces \"up to date\" when at least one required check exists.\n\n## Steps\n\n1. **Find the CI checks.** Run `scripts\u002Fset-up-github.sh --discover-checks`. It lists the check names reported on the default branch.\n   - If it lists names, show them to the user and ask which ones must pass before merge. Use only names the user picks, and pass each one with `--check NAME`. Do not guess names.\n   - If it says no check runs exist, the repository has no CI reporting yet. Continue without `--check`. Tell the user the CI gate and the up-to-date rule are skipped, and that they apply once a CI job exists and this skill is run again.\n   - Done when you have the check names, or the user has chosen none.\n\n2. **Dry run.** Run `scripts\u002Fset-up-github.sh --dry-run` with the same `--check` flags. It prints the settings and ruleset it would apply and changes nothing. Show the output to the user and wait for them to confirm.\n   - Done when the user has confirmed. If they decline, stop.\n\n3. **Apply.** Run `scripts\u002Fset-up-github.sh` with the same `--check` flags. It updates the repository settings, then creates the ruleset, or updates it if one named `trunk-based` already exists. Running it again is safe.\n   - If the script stops after the settings step, say which step failed. The repository settings may already have changed, and the ruleset may not exist. Report the error text and stop. Do not retry blindly.\n   - A private repository on a plan without rulesets returns an error from the ruleset step. Report it. The settings step has already run.\n\n4. **Report.** Print the script's verification lines. Say which parts were skipped and why. Remind the user that a required check name must match the check run name exactly. If the name never reports, pull requests wait forever, so it is worth checking the first PR after setup.\n   - Done when the report is written.\n",{"name":5,"license":15,"description":7,"compatibility":44,"disable-model-invocation":45},"Claude Code, GitHub Copilot CLI",true,"main","843d37d1e917e8408eef63e4f5a0a1dee063f0e7","plugins\u002Fmy-plugin\u002Fskills\u002Fset-up-github","https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles","https:\u002F\u002Fgithub.com\u002Folillevik","2026-11-02 03:06:57",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":45},[54,57,60],{"tool":55,"command":56},"npx","npx skills add olillevik\u002Fdotfiles --skill set-up-github",{"tool":58,"command":59},"bunx","bunx skills add olillevik\u002Fdotfiles --skill set-up-github",{"tool":61,"command":62},"pnpm","pnpm dlx skills add olillevik\u002Fdotfiles --skill set-up-github","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fset-up-github\u002FSKILL.md",[65],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"scripts\u002Fset-up-github.sh","SCRIPT","脚本",5577,"https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fset-up-github\u002Fscripts\u002Fset-up-github.sh",[72,106,131,147,163,177],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":88,"publishedAt":39},"01M6QPSR8GQ6YP0DA070N75SXV","sopra-steria-brand","Apply Sopra Steria brand styling to a presentation, document, web page, diagram, or other artifact when the user explicitly wants Sopra Steria branding or refers to Sopra Steria brand rules, colors, typography, logo usage, or corporate visual identity. Do not use for generic design polish or unrelated branding work.","https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fsopra-steria-brand\u002FSKILL.md",[78,83],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":84,"categoryName":85,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[89,90,91,38,37,92,93,94,95,96,97,98,99,100,101,102,103,24,104,105],"brand","sopra steria brand","design","code","logo","page","Rules","work","use","unrelated","document","do","artifact","visual","usage","apply","generic",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":115,"publishedAt":39},"01M6QPSHQTE8YJZJCXYKHW1H43","skill-creator","Create, review, and improve skills in this repository for GitHub Copilot CLI and Claude Code. Use when drafting a new skill, revising an existing skill under plugins\u002Fmy-plugin\u002Fskills\u002F, tightening trigger boundaries, or making a skill leaner and more portable.","https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fskill-creator\u002FSKILL.md",[112],{"categoryNo":113,"categoryName":114,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000023","Skill与智能体开发",[116,117,118,119,38,37,120,92,121,122,97,123,124,125,126,127,128,129,24,130],"skill creator","creator","review","cli","create","repository","improve","new skill","existing skill","trigger","improve skills","github copilot cli","more","my","Existing",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":138,"publishedAt":39},"01M6QPS4GBQHMFZJS97CEE32HT","set-up-workflow","Set up how this repo's issues and tickets are handled. Runs setup-matt-pocock-skills, then records the spec and ticket workflow under \"Issue tracker\" in AGENTS.md. Use only when the user explicitly asks to set up the workflow.","https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fset-up-workflow\u002FSKILL.md",[137],{"categoryNo":113,"categoryName":114,"taxonomyType":81,"taxonomyTypeDesc":82},[139,20,21,140,119,22,38,37,92,141,142,23,97,30,143,144,145,146,127,25],"workflow","set up workflow","issues","how","tracker","ticket","tickets","records",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":39},"01M6QPRZ93DHGFEF7Z9YD5GDX0","set-up-my-plugin","Copy the minimalist-engineering principles into the user-level instruction files for Claude Code and Copilot CLI.","https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fset-up-my-plugin\u002FSKILL.md",[],[154,20,21,129,155,119,22,38,37,92,156,157,158,159,160,161,162,127,25,24],"plugin","set up my plugin","engineering","user","minimalist","files","copy","engineering principles","principles",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":39},"01M6QPRTW5A9XD7M27P5RHNYJ0","set-up-hooks","Set up recommended git hooks in the current repository. Strips Claude and Copilot co-author lines from commit messages, and runs the repo's tests before each commit when it has any. Use only when the user explicitly asks to set up hooks.","https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fset-up-hooks\u002FSKILL.md",[],[20,21,170,171,119,22,38,172,37,92,121,173,23,97,30,174,175,127,25,176],"hooks","set up hooks","commit","messages","tests","co","author",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":39},"01M6QPR87674ZCQHDFMCT33ATB","minimalist-engineering","Keep code minimal and avoid over-engineering.","https:\u002F\u002Fgithub.com\u002Folillevik\u002Fdotfiles\u002Fblob\u002Fmain\u002Fplugins\u002Fmy-plugin\u002Fskills\u002Fminimalist-engineering\u002FSKILL.md",[],[156,158,184,119,22,38,37,92,185,186,187,127,25],"minimalist engineering","copilot cli","minimal","keep"]