fenceline

Enforce JavaScript and TypeScript import boundaries with @howells/boundaries.

2|Updated May 21, 2026
One-click install
npx skills add https://github.com/howells/skills --skill fenceline
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: fenceline
Source: https://github.com/howells/skills/tree/main/fenceline
Command: npx skills add https://github.com/howells/skills --skill fenceline

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Fenceline prevents architecture drift by catching and fixing JavaScript and TypeScript package and source-layer boundary violations before they spread.

Core Features & Use Cases

  • Boundary enforcement and repair: Add, check, and correct package-level and source-level import rules using the boundaries CLI from @howells/boundaries.
  • Explainable relationship analysis: Produce human-readable explanations of why an import or relationship is considered invalid, so you can fix it without weakening policy.
  • Profile-based source layout checking: Validate repo structure against common architectural profiles (feature-sliced, next-feature, clean-node) when Turbo-based boundaries aren’t the primary mechanism.

Quick Start

Use fenceline to run a boundary dry-run for your workspace, then apply the resulting root rules and execute boundaries check to locate and fix violations.

Frequently Asked Questions about fenceline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce architecture boundaries in a TypeScript monorepo?▼

Fenceline prevents architecture drift in JavaScript and TypeScript monorepos by validating package dependencies and source-layer import rules, catching and fixing boundary violations before they spread.

How do I stop app-to-app imports in a Turborepo workspace?▼

You stop app-to-app imports in a Turborepo workspace by running a boundary dry-run to generate deterministic root rules, applying them, and executing boundaries check to locate and repair violations.

Can I check import rules without using Turborepo?▼

Yes, you can validate repository structure without Turborepo by profiling source layouts against architectural profiles like feature-sliced, next-feature, or clean-node to enforce import rules.

How do I debug invalid import violations in JavaScript?▼

You debug invalid import violations in JavaScript by running boundaries explain, which produces human-readable diagnostics detailing why a relationship is invalid so you can resolve it without weakening policy.

What is the best way to prevent architecture drift in JavaScript projects?▼

The best way to prevent architecture drift in JavaScript projects is to apply deterministic rule generation and evidence-based relationship diagnostics to validate package and source-layer boundaries continuously.