feat: Complete fleet — 94 skills across 10+ domains
Pulled ALL skills from 15 source repositories: - anthropics/skills: 16 (docs, design, MCP, testing) - obra/superpowers: 14 (TDD, debugging, agents, planning) - coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth) - better-auth/skills: 5 (auth patterns) - vercel-labs/agent-skills: 5 (React, design, Vercel) - antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo) - Plus 13 individual skills from various repos Mosaic Stack is not limited to coding — the Orchestrator and subagents serve coding, business, design, marketing, writing, logistics, analysis, and more. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
127
skills/tsdown/references/option-lint.md
Normal file
127
skills/tsdown/references/option-lint.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# Package Validation (publint & attw)
|
||||
|
||||
Validate your package configuration and type declarations before publishing.
|
||||
|
||||
## Overview
|
||||
|
||||
tsdown integrates with [publint](https://publint.dev/) and [Are the types wrong?](https://arethetypeswrong.github.io/) (attw) to catch common packaging issues. Both are optional dependencies.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
# publint only
|
||||
npm install -D publint
|
||||
|
||||
# attw only
|
||||
npm install -D @arethetypeswrong/core
|
||||
|
||||
# both
|
||||
npm install -D publint @arethetypeswrong/core
|
||||
```
|
||||
|
||||
## publint
|
||||
|
||||
Checks that `package.json` fields (`exports`, `main`, `module`, `types`) match your actual output files.
|
||||
|
||||
### Enable
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
publint: true,
|
||||
})
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
publint: {
|
||||
level: 'error', // 'warning' | 'error' | 'suggestion'
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
### CLI
|
||||
|
||||
```bash
|
||||
tsdown --publint
|
||||
```
|
||||
|
||||
## attw (Are the types wrong?)
|
||||
|
||||
Verifies TypeScript declarations are correct across different module resolution strategies (`node10`, `node16`, `bundler`).
|
||||
|
||||
### Enable
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
attw: true,
|
||||
})
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
attw: {
|
||||
profile: 'node16', // 'strict' | 'node16' | 'esm-only'
|
||||
level: 'error', // 'warn' | 'error'
|
||||
ignoreRules: ['false-cjs', 'cjs-resolves-to-esm'],
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
### Profiles
|
||||
|
||||
| Profile | Description |
|
||||
|---------|-------------|
|
||||
| `strict` | Requires all resolutions to pass (default) |
|
||||
| `node16` | Ignores `node10` resolution failures |
|
||||
| `esm-only` | Ignores `node10` and `node16-cjs` resolution failures |
|
||||
|
||||
### Ignore Rules
|
||||
|
||||
Suppress specific problem types with `ignoreRules`:
|
||||
|
||||
| Rule | Description |
|
||||
|------|-------------|
|
||||
| `no-resolution` | Module could not be resolved |
|
||||
| `untyped-resolution` | Resolution succeeded but has no types |
|
||||
| `false-cjs` | Types indicate CJS but implementation is ESM |
|
||||
| `false-esm` | Types indicate ESM but implementation is CJS |
|
||||
| `cjs-resolves-to-esm` | CJS resolution points to an ESM module |
|
||||
| `fallback-condition` | A fallback/wildcard condition was used |
|
||||
| `cjs-only-exports-default` | CJS module only exports a default |
|
||||
| `named-exports` | Named exports mismatch between types and implementation |
|
||||
| `false-export-default` | Types declare a default export that doesn't exist |
|
||||
| `missing-export-equals` | Types are missing `export =` for CJS |
|
||||
| `unexpected-module-syntax` | File uses unexpected module syntax |
|
||||
| `internal-resolution-error` | Internal resolution error in type checking |
|
||||
|
||||
### CLI
|
||||
|
||||
```bash
|
||||
tsdown --attw
|
||||
```
|
||||
|
||||
## CI Integration
|
||||
|
||||
Both tools support CI-aware options:
|
||||
|
||||
```ts
|
||||
export default defineConfig({
|
||||
publint: 'ci-only',
|
||||
attw: {
|
||||
enabled: 'ci-only',
|
||||
profile: 'node16',
|
||||
level: 'error',
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
Both tools require a `package.json` in your project directory.
|
||||
|
||||
## Related Options
|
||||
|
||||
- [CI Environment](advanced-ci.md) - CI-aware option details
|
||||
- [Package Exports](option-package-exports.md) - Auto-generate exports field
|
||||
Reference in New Issue
Block a user