fenceline
Installation
SKILL.md
Fenceline
Use @howells/boundaries for architecture boundary enforcement in JavaScript and TypeScript codebases. The executable is boundaries.
This collection copy is canonical. If @howells/boundaries ships a bundled skill, sync its guidance from this skill rather than maintaining divergent instructions.
State at the start that you are using the fenceline skill.
Workflow
- Confirm whether the repo is a Turborepo workspace by checking for
turbo.jsonand workspace packages inpackage.json,pnpm-workspace.yaml, or equivalent package-manager config. - Install or use
@howells/boundariesfrom the repo's chosen package manager, for examplepnpm add -D @howells/boundariesor a one-offnpx @howells/boundaries check. - For Turborepo package boundaries, run
boundaries init --dry-run --jsonfirst. - Review the generated root rules, package tags, and script changes. Fix incorrect tags before applying the generated config.
- Run
boundaries initonly after the dry run looks correct. - Run
boundaries check.--jsonworks on every command (init,check,check --profile, andexplain) and is the preferred output when an agent consumes the result programmatically.checkalso accepts--no-turboto skip the Turbo boundaries backend. - If a violation appears, prefer fixing the import or dependency declaration. The
boundariesCLI has no exception flag of its own: an exception is a narrow allow entry added to the Turborepo boundary rules inturbo.json(Turborepo's own mechanism), not something the CLI declares. Add such exceptions only when they stay narrow, temporary, and documented.
To explain a package relationship, run: