stackup
Stack up a new or under-tooled side project with the current best tooling — package manager, type checker, linter, formatter, dead-code detection, tests, git…
Skill by pratikpakhale
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pratikpakhale-stackup
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/stackup
What's inside
- Skill name
stackup- Description
- Stack up a new or under-tooled side project with the current best tooling — package manager, type checker, linter, formatter, dead-code detection, tests, git hooks, and CI — picking one tool per job so nothing conflicts. Use when the user says 'stackup', 'stack up this project', 'set up tooling', 'bootstrap this repo', 'add linting/formatting/hooks', or when starting a new project or finding a repo with no lint/format/typecheck scripts.
- License
- MIT
- Metadata
- author: pratikpakhale · version: 1.0.0
- Instructions
- 90 lines in SKILL.md · view on GitHub
Files (5)
- SKILL.md
- hooks-ci.md · references/
- python.md · references/
- react.md · references/
- typescript.md · references/
SKILL.md (first lines)
# Stackup Stack a project up with the current best tool for each job. **One tool per job** — the failure mode this skill exists to prevent is two tools owning the same job and fighting each other (ESLint next to oxlint, Prettier next to oxfmt, black next to ruff, husky next to lefthook). ## Rules - **Detect, don't ask.** Read the repo first — `package.json`, `pyproject.toml`, lockfiles, existing configs. Install only what's missing; never re-pin what's already working. - **Replace, don't stack.** If a job already has an owner you're replacing, remove the old one in the same change — config file, dependency, and scripts. A half-migration is worse than either tool alone. - **Every tool gets a script and a hook.** A linter nobody runs is dead weight. Each tool lands in `package.json` scripts (or `pyproject.toml`), then in the hook config, then in CI. - **Pin the toolchain.** The versions in CI, in hooks, and on the machine must match. - **Green before you leave.** Run the full check once at the end. Config that has never been executed is not configured. ## The stack | Job | Tool | Never also install | | --- | --- | --- | | Runtime, package manager, workspaces | `bun` | npm/yarn/pnpm, `tsx`, `ts-node` | | Type checking | `typescript@7` (`tsc`) | `tsgo`, `@typescript/native-preview` | | Linting | `oxlint` + `oxlint-tsgolint` | ESLint, Biome | | Formatting | `oxfmt` | Prettier, Biome, dprint | | Unused files/exports/deps | `knip` | depcheck, ts-prune | | Tests | `bun test` (`vitest` for DOM) | jest, mocha | | Python everything | `uv` | pip, poetry, pyenv, pipx | | Python lint + format | `ruff` | black, isort, flake8, autopep8 | | Python type checking | `ty` | mypy, pyright (see reference) | | Git hooks | `lefthook` | husky, lint-staged, pre-commit, prek | | Secret scanning | `gitleaks` | — | | Toolchain versions | `mise` | nvm, pyenv, asdf | `typescript@7` is the Go compiler, shipped stable July 2026 — it is the `typescript` package and the `tsc` binary. `tsgo` and `@typescript/native-preview` were the preview channel and are obsolete; if you find them in a repo, migrate off. ## Order of operations Do these in order — later steps depend on scripts the earlier ones create. 1. **Pin the toolchain** — `mise.toml` at the repo root (see [references/hooks-ci.md](references/hooks-ci.md)). 2. **Install per-stack deps and configs** — read the reference for each stack present: | Stack | Read | | --- | --- | | `.ts`, `.js`, Node, Bun | [references/typescript.md](references/typescript.md) | | `.tsx`, React, Next.js | [references/react.md](references/react.md) | | `.py` | [references/python.md](references/python.md) | 3. **Write the scripts** — every tool reachable by name, plus one aggregate `check`. 4. **Wire hooks and CI** — [references/hooks-ci.md](references/hooks-ci.md). 5. **Run `bun run check` and fix the fallout.** Expect the first run to be noisy on an existing codebase: auto-fix what's mechanical, and for the rest either fix it or downgrade the specific rule in config with a one-line comment saying why. Do not blanket-disable a plugin to get to green. ## Fast vs. whole-project This split matters everywhere — hooks, CI, and which script you reach for. - **Per-file, milliseconds** — formatting, non-type-aware lint, secret scan. Runs on staged files at `pre-commit`. - **Whole-program, seconds** — `tsc`, type-aware lint, `ty`, `knip`, tests. These cannot be scoped to staged files without being wrong. Runs at `pre-push` and in CI. Putting `tsc` in `pre-commit` is the most common way to make a team disable hooks entirely. ## Also worth setting up Raise these with the user rather than installing silently — they are project-shaped, not universal: - **Conventional commits** — `commitlint` on the `commit-msg` hook. Cheap, and it's the commit convention already in use. - **`AGENTS.md`** at the repo root with a `CLAUDE.md` symlink to it — the project's own instructions for coding agents. Worth writing on day one, while the architecture is a decision rather than an archaeology problem. - **Env var validation** — parse `process.env` once at startup through a schema (`arktype` or `zod`) and export the typed object. Only for projects with real config. - **Publishing** (libraries only) — `tsdown` to build, `publint` and `@arethetypeswrong/cli` to verify the published shape. - **Dependency freshness** — `bun outdated` / `bun audit`, `uv lock --upgrade`. Renovate only if the project will outlive your attention span. - **`.editorconfig`** — one file, stops editors from re-indenting what `oxfmt` formatted.
From pratikpakhale/pakhale, MIT.
More from pratikpakhale/pakhale
- 0.570score
consistency-check
pratikpakhale
Audit a set of changes (a branch, PR, or working tree) for consistency with the codebase's established conventions across many dimensions — code idioms…
SkillAFreshness: AClaude Code +9 - 0.570score
deslop
pratikpakhale
Clean up generated code changes — strip slop (dead code, one-use abstractions, redundant guards, comment noise, unnecessary effects), fix what the change…
SkillAFreshness: AClaude Code +9 - 0.565score
sync-from-live
pratikpakhale
Detect drift between the live coding-agent state on this machine (~/.claude, ~/.agents, ~/.claude.json, ~/.config/opencode) and this repo's declarations, then…
SkillAFreshness: AClaude Code +9 - 0.561score
think-from-first-principles
pratikpakhale
Engage this skill fully on any request involving: - Design, architecture, invention, or optimization - Cost, efficiency, scalability, or “why is this…
SkillAFreshness: AClaude Code +9 - 0.550score
architecture
pratikpakhale
Visualize the codebase architecture provided a target.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 8, 2026 (2 months ago)
- Last release
- Oct 9, 2026 (20 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0.0
- License
- MIT
- Repository
- github.com/pratikpakhale/pakhale
- Website
- pakhale.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from pratikpakhale
- 0.570score
consistency-check
pratikpakhale
Audit a set of changes (a branch, PR, or working tree) for consistency with the codebase's established conventions across many dimensions — code idioms…
SkillAFreshness: AClaude Code +9 - 0.570score
deslop
pratikpakhale
Clean up generated code changes — strip slop (dead code, one-use abstractions, redundant guards, comment noise, unnecessary effects), fix what the change…
SkillAFreshness: AClaude Code +9 - 0.565score
sync-from-live
pratikpakhale
Detect drift between the live coding-agent state on this machine (~/.claude, ~/.agents, ~/.claude.json, ~/.config/opencode) and this repo's declarations, then…
SkillAFreshness: AClaude Code +9 - 0.561score
think-from-first-principles
pratikpakhale
Engage this skill fully on any request involving: - Design, architecture, invention, or optimization - Cost, efficiency, scalability, or “why is this…
SkillAFreshness: AClaude Code +9 - 0.550score
architecture
pratikpakhale
Visualize the codebase architecture provided a target.
SkillAFreshness: AClaude Code +9
Cite this page
stackup skill. Agent Mart. https://agentmart.dev/skills/pratikpakhale-stackup (last updated 2026-10-24)