layer-boundaries

Validate crate dependencies against layering rules in a Solid Modeling project.

20|3|Updated Mar 2, 2026
One-click install
npx skills add https://github.com/andymai/brepkit --skill layer-boundaries
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: layer-boundaries
Source: https://github.com/andymai/brepkit/tree/main/.claude/skills/layer-boundaries
Command: npx skills add https://github.com/andymai/brepkit --skill layer-boundaries

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill helps maintain a clean and structured dependency boundary in the brepkit workspace, ensuring adherence to layering and dependency rules.

Core Features & Use Cases

  • Dependency Validation: Checks crate dependencies against predefined allowlist to ensure proper layering.
  • EdgeCurve & FaceSurface Management: Guidelines for adding new variants to EdgeCurve or FaceSurface.
  • CI Integration: Checks are integrated into the CI pipeline to catch issues early.
  • Use Case: Before merging code, you can use this Skill to verify that dependencies follow the layering rules, preventing issues related to incorrect or transitive dependencies.

Quick Start

Run the command ./scripts/check-boundaries.sh to verify all crate boundaries are valid in the brepkit workspace.

Frequently Asked Questions about layer-boundaries

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

FAQPage Schema
How do I check crate dependencies in a Rust project to enforce layered architecture?

To enforce layered architecture, run the `check-boundaries.sh` script to validate crate dependencies against a predefined allowlist within a brepkit workspace. This ensures proper layering and catches issues early in the CI pipeline before merging code.

What is a strict layered Directed Acyclic Graph (DAG) for dependency management?

A strict layered DAG for dependency management defines a directional architecture where crates can only depend on specific allowed lower layers. This structure prevents transitive dependency violations and maintains a clean project boundary in Solid Modeling systems.

How do I manage EdgeCurve and FaceSurface variants in a Solid Modeling project?

Managing EdgeCurve and FaceSurface variants requires following specific dependency guidelines to maintain crate boundaries. The boundary checker validates these dependencies against the layered DAG rules to ensure structural integrity across the workspace.

Can I integrate dependency validation checks into my CI pipeline?

Yes, dependency validation checks can be integrated directly into the CI pipeline. By running the boundary check script, the system catches incorrect or transitive dependencies early, preventing architectural violations from being merged into the main codebase.

Does boundary checking work with WebAssembly and Rust?

Yes, the boundary checking mechanism is designed for Solid Modeling projects built using Rust and WebAssembly. It specifically targets crate dependency management within this technology stack to enforce strict layering rules.

Why do I need a dependency allowlist for a strict layered workspace?

A dependency allowlist is needed to prevent transitive dependencies from bypassing architectural rules. By explicitly defining allowed dependencies, the system ensures all crates adhere to the strict layered DAG and prevents structural violations.