# @shadowclone/tooling

The repository checks that `bun run lint` runs. They check conventions, package boundaries, privacy terms, bundled skills, prose, and package guides.

<!-- package-facts:start -->

(generated by `bun run guides`; do not edit by hand)

- Package name: `@shadowclone/tooling`
- Workspace dependencies: `@shadowclone/core`, `@shadowclone/skills`
- External dependencies: `prettier`, `typescript`, `zod`
- Export subpaths: none

<!-- package-facts:end -->

## Owns

- `src/conventions.ts`: file length, no comments, and no dashes.
- `src/boundaries.ts` and `src/boundaries/`: the package graph in `packages.ts`, import checks, and manifest checks.
- `src/privacy.ts` and `src/skills.ts`: privacy terms and bundled skill quality.
- `src/releasePackages.ts`: checks CLI and skill-content publication independently for partial-release retries.
- `src/skillVersions.ts` and `src/releaseVersions.ts`: recorded skill fingerprints and release versions.
- `src/prose.ts` and `src/packageGuides.ts`: Markdown prose and links, and the package guides.

## Rules

- Each check is a script with an `import.meta.main` block and a function that tests call. It exits with 1 on a finding.
- `src/boundaries/packages.ts` is the only package graph. Edit it, with a design record, before you add a dependency.
- `src/prose/exclusions.ts` holds every excluded path. `src/prose/ste.ts` runs `skills/write-plain-english/scripts/check-ste.mjs`.
- Do not edit the checker script. A recorded fingerprint covers it.
- `src/packageGuides.ts --write` rewrites only the package-facts block of a guide.

## Tests

Run `bun test` in this folder, or `bun test tooling` from the root. Tests build temporary trees with `treeWith` from `src/boundaries/testing.ts`. Each test fails when its rule is off.

Update this file in the same commit when you change the package purpose, public exports, dependencies, or a rule above.
