arch-tsdown-monorepo
pnpm monorepo starter for TypeScript libraries with tsdown per package. Use when scaffolding or maintaining a multi-package TS/ESM repo with workspace deps and npm Trusted Publisher.
Works with
--- name: arch-tsdown-monorepo description: pnpm monorepo starter for TypeScript libraries with tsdown per package. Use when scaffolding or maintaining a multi-package TS/ESM repo with workspace deps and npm Trusted Publisher. license: MIT --- arch-tsdown-monorepo is a **pnpm monorepo** starter for TypeScript libraries (based on [hairyf/starter-monorepo](https://github.com/hairyf/starter-monorepo)). Each package uses **tsdown** for building. It provides shared tooling (ESLint, Vitest, TypeScript), **pnpm catalogs** for versions, **workspace dependencies**, and optional **npm Trusted Publisher** for CI-based releases. > The skill is based on hairyf/starter-monorepo, generated at 2026-02-02. **Recommended practices:** - Use pnpm catalogs for devDependency versions; reference with `catalog:cli`, `catalog:testing`, etc. - Use `workspace:*` for inter-package dependencies; publish once manually, then use npm Trusted Publisher for CI releases. - Run build/typecheck/test from root with `pnpm -r run ...` and a single Vitest config with projects (root + packages/*). ## Core References | Topic | Description | Reference | |-------|-------------|-----------| | Overview | Monorepo purpose, structure, when to use | [core-overview](references/core-overview.md) | | Workspace | pnpm workspace, catalogs, workspace:* deps | [core-workspace](references/core-workspace.md) | | Packages | Package layout, exports, inter-package deps | [core-packages](references/core-packages.md) | | Package Exports | Dual exports (dev vs publish), main/module/types, files, sideEffects | [core-package-exports](references/core-package-exports.md) | | tsdown (per package) | entry, dts, exports, publint | [core-tsdown-per-package](references/core-tsdown-per-package.md) | | Scripts | Root and package scripts — build, dev, typecheck, test, release | [core-scripts](references/core-scripts.md) | | Testing | Vitest projects — root + packages/* | [core-testing](references/core-testing.md) | | Tooling | ESLint, TypeScript, .gitignore, .vscode | [core-tooling](references/core-tooling.md) | | CI | GitHub Actions — lint, typecheck, test matrix | [core-ci](references/core-ci.md) | | Release | npm Trusted Publisher, bumpp, release workflow | [core-release](references/core-release.md) | | Git Hooks | simple-git-hooks, lint-staged, pre-commit | [core-git-hooks](references/core-git-hooks.md) | ## Features | Topic | Description | Reference | |-------|-------------|-----------| | Exports Snapshot | Per-package export snapshot tests (vitest-package-exports, runIf(IS_READY)) | [features-exports-snapshot](references/features-exports-snapshot.md) | | Add Package | Step-by-step adding a new workspace package | [features-add-package](references/features-add-package.md) | ## Best Practices | Topic | Description | Reference | |-------|-------------|-----------| | Monorepo | Catalogs, workspace deps, release, build order | [best-practices-monorepo](references/best-practices-monorepo.md) |
More Git Workflows skills
git-commit
github/awesome-copilot
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
git-workflow-and-versioning
addyosmani/agent-skills
Structures git workflow practices. Use when making any code change. Use when committing, branching, resolving conflicts, or when you need to organize work across multiple parallel streams. Use when cutting a release, choosing a semantic version bump, tagging, or writing a changelog.
resolve-merge-conflicts
warpdotdev/common-skills
Resolve Git merge conflicts by extracting only unresolved paths, conflict hunks, and compact diffs instead of loading whole files into context. Use when a merge, rebase, cherry-pick, or stash pop stops on conflicts, when `git status` shows unmerged paths, or when files contain conflict markers.

