Authority. This skill is maintained only in ariestools/ariestools-skills. Copies under XYOracleNetwork/xyo-skills are redirect stubs — edit here, never there. If the repository also has xylabs-* skills, .claude/rules/xylabs-*.md, or .claude/commands/xy-*.md and xylabs-*.md, they are retired output of the removed xy claude command; this skill supersedes them. Since 10.1.2, xy skills lint reports them and --fix removes most of them (legacy agent files).
Toolchain versions. This skill is verified against @ariestools/toolchain 10.1.5; anything not marked "(since X)" exists from 9.0.0. Find the installed version with pnpm list @ariestools/toolchain --depth 0 (pnpm xy --version is reliable only from 10.0.6). A top-level command the installed version lacks prints Command not found. From 10.1.2 that exits 1; through 10.1.1, where newer commands are the ones missing, it exits 0, even under --strict. A missing subcommand may be silently ignored (for example, xy node <typo> prints only its banner and exits 0) or read as a package target, so check the output and the Version notes, not only the exit code. Version notes collects the gates.
Skill identity. When you present a plan, an acknowledgement, or a completion summary, state which skills informed it as xy-toolchain v<version>, and list each other active skill from this pack the same way. Read the version from this file's metadata.version, never from an example or from verified-toolchain.
Use the active @ariestools/toolchain packages. Do not install the retired @xylabs/* compatibility names in new work.
Channels. xy is semver-stable. xyex (since 9.2.0) is an experimental superset whose commands, flags, and config may change on a minor release. Prefer xy; run the commands that pnpm xy --stability marks experimental, such as work, dead, and plan, as pnpm xyex <cmd> (before 9.2.0, see channels).
Inspect the repository's package.json, lockfile, xy.config.ts, ESLint config, TypeScript configs, and test config before choosing commands. Prefer existing repository scripts; use the xy CLI directly when the repository exposes no narrower wrapper.
This skill builds on xy-development, which covers language and workflow principles. Load only the reference needed for the task:
References
Project profiles
Read first when classifying a package's role (library, library/CLI, CLI, service, app, workspace-root, tooling), visibility, runtime, and framework; choosing neutral/node/browser/React guidance; overriding a misdetected deplint role, such as a single-package service detected as workspace-root; deciding how monorepo and single-package setup differ; or determining whether framework tooling or xy compile owns production output.
Toolchain and project setup
Read when installing the toolchain with pinned TypeScript and ESLint ranges, setting up pnpm and pnpm-workspace.yaml, choosing between xy and xyex, wiring root scripts and their hand-off from xy, distinguishing xy commands from package-* hooks, scaffolding with xy repo init or meeting the new-project baseline, migrating from @xylabs/*, upgrading 9.x to 10.x, removing legacy xy claude agent files, checking which toolchain version added a command, or troubleshooting project setup.
Compilation and package output
Read when editing xy.config.ts (including which settings cascade from the root), selecting neutral/node/browser targets, choosing library/bundle/transpile/monolith/vendor mode, configuring type validation or the experimental native compiler, keeping a monolith's #imports aligned with its exports, or debugging emitted files and export layouts.
Command and policy catalog
Read when choosing between xy and xyex commands; running lifecycle or CI gates (build, check, fix, test); fixing deplint (package roles, not-public, placement/presence, pick), api-exposure, publint, license, secure, or repository-policy findings (including nodeTrack); checking AGENTS.md and docs with xy agent (since 10.1.1; xy check runs its lint, since 10.1.2 only when AGENTS.md exists or commands.agentLint is declared; the experimental --fix-interactive since 10.1.5); managing xy skills (tiers, package.json xy.skills, per-skill presence, pick); tracking work with xyex work (GitHub Issues dual-write and sync, multi-folder --workspace scope); configuring clean; releasing with deploy and publish (--tag, --defer); maintaining dependencies (install, reinstall, up, updo with commands.updo.ignoreDeps); using other experimental xyex commands (dead, plan, npm-org, …); or setting rule levels and using --rules, --json, --strict, and automation behavior.
Plan tooling
Read when scaffolding a product repository for the xy-product-plan process (papers, docs/ROADMAP.md, per-version PRDs), or when deciding whether and how to use the experimental xyex plan lint or .xy/plan.json with it. Covers what xy repo init and xy agent init create, what xy agent lint checks on papers, the roadmap and PRDs (and that no tool checks version pins), the plan lint rules that conflict with product-prefixed, Red and Light papers and how to turn them off, the manifest's paper slots and roadmap phases, and linking xyex work items to a PRD.
ESLint configuration
Read when creating or repairing an ESLint flat config (xy lint init or by hand), selecting a rule tier, fixing the rules you hit at the default tier, enabling or scoping type-aware linting, honoring .gitignore, overriding import restrictions without dropping the shared bans, diagnosing lint caching or performance, or using lint lint and lint config.
TypeScript configuration
Read when selecting @ariestools/tsconfig, -dom, or -react with a pinned typescript range (never 7), interpreting base options such as noEmit, erasableSyntaxOnly, and the tslib that decorators need, configuring Node types and per-target type passes, using @ariestools/lib-neutral ambient globals, or separating type validation from toolchain emission.
Testing with Vitest
Read when configuring Vitest (the @ariestools/vitest-config preset and its version-dependent default include, or a hand-rolled config), choosing spec locations and node/browser routing, installing Chromium for browser tests, running a workspace or path and understanding how xy test hands off to a root script, placing full-app Playwright e2e, clearing the test cache, or distinguishing test failures from build failures.
Related skills
These are navigation links, not dependencies; each skill installs separately.
- xy-development — the base skill: TypeScript, Git, testing principles, and the Definition of Done. Install:
npx skills add ariestools/ariestools-skills --skill xy-development. - ariestools-sdk —
@ariestools/sdkutilities and specialist packages fromsdk-js; it builds on this skill. Install:npx skills add ariestools/ariestools-skills --skill ariestools-sdk. - ariestools-sdk-react — React UI on
@ariestools/sdk-react*: packages, peers, the import rule and house patterns; it builds on this skill and its React profile. Install:npx skills add ariestools/ariestools-skills --skill ariestools-sdk-react, or, since 10.1.4,pnpm xy skills pick --skill ariestools-sdk-react, which also records it as required;xy skills lintrequires it where@ariestools/sdk-react*packages are used (xy skills). - ariestools-actor — actor-kit actors, providers and the actor engine, hosted by cli-kit or browser-kit; it builds on this skill. Install:
npx skills add ariestools/ariestools-skills --skill ariestools-actor, or, since 10.1.4,pnpm xy skills pick --skill ariestools-actor, which also records it as required;xy skills lintrequires it where actor-kit, cli-kit or browser-kit packages are used (xy skills). - xy-agent — AGENTS.md,
docs/, andpapers/conventions, checked by the stablexy agent lint(since 10.1.1;xy checkruns it, since 10.1.2 only when AGENTS.md exists orcommands.agentLintis declared), withxy agent init|audit|index|archiveas helpers (xy agent). Install:npx skills add ariestools/ariestools-skills --skill xy-agent, orpnpm xy skills pick --skill xy-agent(since 10.1.2), which also records it as required. - xy-product-plan — the tool-independent product-planning process (White, Yellow, Green, Red and Light papers, the roadmap's MVP line, per-version PRDs) that Plan tooling supports. Install:
npx skills add ariestools/ariestools-skills --skill xy-product-plan. It is outside thexy skillscatalog, soxy skills pickrejects it. - Domain scaffolds (for example XL1 apps in the separate xyo-skills pack) should still depend on the active
@ariestools/*toolchain packages described here.