{"id":"ba00b2f9-8355-4fa3-9e02-b4b3c853fac9","shortId":"x2ZQ2n","kind":"skill","title":"setup","tagline":"Use when setting up a project, adding linting, formatting, git hooks, or TypeScript. Installs Biome, Husky, commitlint, lint-staged, and GitLeaks for JS/TS.","description":"You are a tooling setup assistant for JS/TS projects. Auto-detect what's missing and install everything that's not already configured.\n\n## 1. Detect Package Manager\n\nCheck for lockfiles in this order:\n1. `pnpm-lock.yaml` → **pnpm**\n2. `bun.lock` / `bun.lockb` → **bun**\n3. `yarn.lock` → **yarn**\n4. `package-lock.json` → **npm**\n5. No lockfile → ask the user\n\nUse the detected package manager for all install commands. Replace `<pm>` in rule files with the detected manager.\n\n## 2. Detect Existing Tooling\n\nBefore installing anything, scan for existing configurations:\n- `biome.json` / `biome.jsonc` → Biome already configured\n- `.husky/` directory → Husky already configured\n- commitlint config listed in `rules/commitlint.md` → commitlint already configured\n- `.lintstagedrc*` / `lint-staged` key in `package.json` → lint-staged already configured\n- `gitleaks` in `.husky/pre-commit` → GitLeaks already configured\n- `tsconfig.json` → TypeScript already configured\n- `.eslintrc*` / `eslint.config.*` → ESLint present (suggest migration to Biome)\n- `.prettierrc*` / `prettier.config.*` → Prettier present (suggest migration to Biome)\n\n**Skip tools that are already configured.** Report what was skipped at the end.\n\n## 3. Install Tools\n\nRead each rule file for detailed setup instructions and config files.\n\n### Auto-install (always set up when missing)\n\n| Tool | Purpose | Rule |\n|------|---------|------|\n| Biome | Linting + formatting | `rules/biome.md` |\n| Husky | Git hooks | `rules/husky.md` |\n| commitlint | Conventional commits | `rules/commitlint.md` |\n| lint-staged | Pre-commit linting | `rules/lint-staged.md` |\n| GitLeaks | Secrets detection | `rules/gitleaks.md` |\n| TypeScript | Type checking | `rules/typescript.md` |\n\n### Opt-in (only when explicitly requested)\n\n| Tool | Purpose | Rule |\n|------|---------|------|\n| semantic-release | Automated versioning | `rules/semantic-release.md` |\n\n## 4. Output Summary\n\nAfter all tools are installed, display a summary:\n\n```\n## Setup Complete\n\n### Installed\n- [list of tools installed]\n\n### Skipped (already configured)\n- [list of tools skipped with reason]\n\n### Next Steps\n- Run `<pm> run check` to verify Biome is working\n- Make a test commit to verify git hooks\n```\n\n## 5. Supply Chain Hardening\n\nAfter tooling setup is complete, check if the `deps` skill is available by looking for `skills/deps/SKILL.md` relative to this skill's directory. If it exists, run `/deps` to harden the npm supply chain. If it does not exist, skip this step silently.\n\n## Assumptions\n\n- Project has a `package.json` (JS/TS project)\n- GitLeaks is installed on the system (`brew install gitleaks` or equivalent)\n- Git is initialised in the project","tags":["setup","skills","tartinerlabs","agent-skills","automation","claude-code","claude-code-skills","cli","code-quality","developer-tools","github-actions","productivity"],"capabilities":["skill","source-tartinerlabs","skill-setup","topic-agent-skills","topic-automation","topic-claude-code","topic-claude-code-skills","topic-cli","topic-code-quality","topic-developer-tools","topic-github-actions","topic-productivity","topic-tailwind-css"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/tartinerlabs/skills/setup","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add tartinerlabs/skills","source_repo":"https://github.com/tartinerlabs/skills","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 7 github stars · SKILL.md body (2,687 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:13:57.035Z","embedding":null,"createdAt":"2026-05-07T20:43:08.570Z","updatedAt":"2026-05-18T19:13:57.035Z","lastSeenAt":"2026-05-18T19:13:57.035Z","tsv":"'/deps':319 '1':49,59 '2':62,95 '3':66,175 '4':69,244 '5':72,289 'ad':8 'alreadi':47,109,114,122,134,140,144,166,263 'alway':192 'anyth':101 'ask':75 'assist':31 'assumpt':335 'auto':36,190 'auto-detect':35 'auto-instal':189 'autom':241 'avail':304 'biom':16,108,153,161,200,278 'biome.json':106 'biome.jsonc':107 'brew':348 'bun':65 'bun.lock':63 'bun.lockb':64 'chain':291,325 'check':53,226,275,298 'command':86 'commit':210,217,284 'commitlint':18,116,121,208 'complet':256,297 'config':117,187 'configur':48,105,110,115,123,135,141,145,167,264 'convent':209 'dep':301 'detail':183 'detect':37,50,80,93,96,222 'directori':112,314 'display':252 'end':174 'equival':352 'eslint':148 'eslint.config':147 'eslintrc':146 'everyth':43 'exist':97,104,317,330 'explicit':233 'file':90,181,188 'format':10,202 'git':11,205,287,353 'gitleak':23,136,139,220,342,350 'harden':292,321 'hook':12,206,288 'huski':17,111,113,204 'husky/pre-commit':138 'initialis':355 'instal':15,42,85,100,176,191,251,257,261,344,349 'instruct':185 'js/ts':25,33,340 'key':128 'lint':9,20,126,132,201,213,218 'lint-stag':19,125,131,212 'lintstagedrc':124 'list':118,258,265 'lockfil':55,74 'look':306 'make':281 'manag':52,82,94 'migrat':151,159 'miss':40,196 'next':271 'npm':71,323 'opt':229 'opt-in':228 'order':58 'output':245 'packag':51,81 'package-lock.json':70 'package.json':130,339 'pnpm':61 'pnpm-lock.yaml':60 'pre':216 'pre-commit':215 'present':149,157 'prettier':156 'prettier.config':155 'prettierrc':154 'project':7,34,336,341,358 'purpos':198,236 'read':178 'reason':270 'relat':309 'releas':240 'replac':87 'report':168 'request':234 'rule':89,180,199,237 'rules/biome.md':203 'rules/commitlint.md':120,211 'rules/gitleaks.md':223 'rules/husky.md':207 'rules/lint-staged.md':219 'rules/semantic-release.md':243 'rules/typescript.md':227 'run':273,274,318 'scan':102 'secret':221 'semant':239 'semantic-releas':238 'set':4,193 'setup':1,30,184,255,295 'silent':334 'skill':302,312 'skill-setup' 'skills/deps/skill.md':308 'skip':162,171,262,268,331 'source-tartinerlabs' 'stage':21,127,133,214 'step':272,333 'suggest':150,158 'summari':246,254 'suppli':290,324 'system':347 'test':283 'tool':29,98,163,177,197,235,249,260,267,294 'topic-agent-skills' 'topic-automation' 'topic-claude-code' 'topic-claude-code-skills' 'topic-cli' 'topic-code-quality' 'topic-developer-tools' 'topic-github-actions' 'topic-productivity' 'topic-tailwind-css' 'tsconfig.json':142 'type':225 'typescript':14,143,224 'use':2,78 'user':77 'verifi':277,286 'version':242 'work':280 'yarn':68 'yarn.lock':67","prices":[{"id":"014f096f-fbbb-4ee9-b8fe-1ab6c54275ee","listingId":"ba00b2f9-8355-4fa3-9e02-b4b3c853fac9","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"tartinerlabs","category":"skills","install_from":"skills.sh"},"createdAt":"2026-05-07T20:43:08.570Z"}],"sources":[{"listingId":"ba00b2f9-8355-4fa3-9e02-b4b3c853fac9","source":"github","sourceId":"tartinerlabs/skills/setup","sourceUrl":"https://github.com/tartinerlabs/skills/tree/main/skills/setup","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:01.786Z","lastSeenAt":"2026-05-18T19:13:57.035Z"},{"listingId":"ba00b2f9-8355-4fa3-9e02-b4b3c853fac9","source":"skills_sh","sourceId":"tartinerlabs/skills/setup","sourceUrl":"https://skills.sh/tartinerlabs/skills/setup","isPrimary":true,"firstSeenAt":"2026-05-07T20:43:08.570Z","lastSeenAt":"2026-05-07T22:42:00.465Z"}],"details":{"listingId":"ba00b2f9-8355-4fa3-9e02-b4b3c853fac9","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"tartinerlabs","slug":"setup","github":{"repo":"tartinerlabs/skills","stars":7,"topics":["agent-skills","automation","claude-code","claude-code-skills","cli","code-quality","developer-tools","github-actions","productivity","tailwind-css"],"license":"mit","html_url":"https://github.com/tartinerlabs/skills","pushed_at":"2026-05-17T09:09:47Z","description":"Claude Code skills for git workflows, GitHub automation, security audits, code refactoring, and project tooling","skill_md_sha":"49722db94041bda63fd74152c879caeb236aa6c2","skill_md_path":"skills/setup/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/tartinerlabs/skills/tree/main/skills/setup"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"setup","description":"Use when setting up a project, adding linting, formatting, git hooks, or TypeScript. Installs Biome, Husky, commitlint, lint-staged, and GitLeaks for JS/TS."},"skills_sh_url":"https://skills.sh/tartinerlabs/skills/setup"},"updatedAt":"2026-05-18T19:13:57.035Z"}}