Files
agent-skills/skills/tsdown/references/option-lint.md
Jason Woltje f5792c40be 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>
2026-02-16 16:27:42 -06:00

2.9 KiB

Package Validation (publint & attw)

Validate your package configuration and type declarations before publishing.

Overview

tsdown integrates with publint and Are the types wrong? (attw) to catch common packaging issues. Both are optional dependencies.

Installation

# 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

export default defineConfig({
  publint: true,
})

Configuration

export default defineConfig({
  publint: {
    level: 'error', // 'warning' | 'error' | 'suggestion'
  },
})

CLI

tsdown --publint

attw (Are the types wrong?)

Verifies TypeScript declarations are correct across different module resolution strategies (node10, node16, bundler).

Enable

export default defineConfig({
  attw: true,
})

Configuration

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

tsdown --attw

CI Integration

Both tools support CI-aware options:

export default defineConfig({
  publint: 'ci-only',
  attw: {
    enabled: 'ci-only',
    profile: 'node16',
    level: 'error',
  },
})

Both tools require a package.json in your project directory.