On this page
  1. Install the guidance layers
  2. Emit the lint fragment
  3. Synchronize Skills
  4. Check both layers together

Lint and Skills

Combine deterministic Playstack checks with versioned, repository-local guidance for contextual decisions.

@playstack/lint and @playstack/skills are installed independently from the CLI. The CLI adopts their output without making either package a runtime dependency.

Install the guidance layers

sh
npm install --save-dev @playstack/cli @playstack/lint @playstack/skills
npx playstack init

The two layers serve different work:

LayerResponsibility
Lint and doctorDeterministic rules that should produce the same result on every run.
SkillsContextual judgement about boundaries, ownership, extraction, and tradeoffs.

Emit the lint fragment

sh
npx playstack lint init --diff
npx playstack lint init

The managed output is a flat ESLint configuration fragment. Import it from the repository's root ESLint configuration.

The recommended preset can start as warnings so existing projects adopt checks deliberately. Extension and Chakra presets require explicit file globs because those rules are only valid inside their corresponding boundaries. Chakra configuration may also declare the permitted semantic tokens.

json
{
  "lint": {
    "target": "eslint.playstack.config.mjs",
    "recommended": true,
    "extension": {
      "files": ["apps/extension/src/**/*.{ts,tsx}"]
    },
    "chakra": {
      "files": ["apps/site/src/**/*.{ts,tsx}"],
      "tokens": ["fg.default", "bg.canvas", "border.default"]
    }
  }
}

Synchronize Skills

sh
npx playstack skills sync --diff
npx playstack skills sync
npx playstack skills sync --check

The CLI validates @playstack/skills/playstack.skills.json and every declared content hash before writing to the configured targets. The default target is .agents/skills.

Installed state records the package version, stable skill ID, source, individual file hashes, and aggregate content hash in .playstack/skills.json. A local edit is reported as unsafe and is never overwritten silently.

A repository-specific skill should live in a user-owned override directory. Map that directory to the packaged stable ID in playstack.json; the override then shadows the managed source without modifying it.

Check both layers together

sh
npx playstack doctor --check

Doctor verifies the managed lint fragment, Skills corpus, package artifacts, and ejected upstream state in one CI-safe command.

Explore the Skills overview or the complete @playstack/skills reference for the seven included reviewers and their boundaries.

Go

Playstack Pro tag
OriginsPricingBlogNewsletterChangelogStatusRoadmap
ContributorsCommunityIn Use ShowcaseCase StudiesPartnersSponsors
FAQsSupportContact

© 2026 Playstack. All rights reserved.

With OSS
Terms of ServicePrivacy PolicyCookie PolicyImprint

By

Commune Software