principle-boundary-discipline
- Use it when:
- Wiring validation, error handling or framework adapters.
- It does:
- Validates and handles errors defensively at CLI arguments, config files, external APIs and network protocols, then trusts typed data inside with no re-checks.
- Two tests:
- Is this data crossing a boundary right now? If not, validation is redundant. Can this be a pure function the shell calls? Then extract it.
- Runs:
- Only when you call it.
Skill 9 of 14 in the pstack bundle, after unslop and before principle-type-system-discipline.
TL;DR
One of pstack's principle skills, in Cursor's plugin repo. Scattered validation is noisy and redundant and gives a false sense of safety, and logic kept out of framework wiring can be tested without the framework. Config is validated when it's parsed, raw data becomes domain types at the boundary, and nil checks deep in call chains go when the boundary already checked. Across a boundary it exposes domain concepts, not the boundary's private representation: no transport, storage, framework or wire types re-exported through the public surface, general mechanism inside and special-purpose policy at the edge. Parsing, prompt construction and scoring are each pure transforms: raw bytes to typed state, structured state to a string, state to results.
Summarizes the skill at 8ecfb19.
npx skills add https://github.com/cursor/plugins --skill principle-boundary-discipline skills.sh pageSource on GitHubAll skills from cursor/plugins
- Total Downloads
- 5,100 on skills.sh, Nov 9, 2026
- Repo stars
- 15,776 cursor/plugins
- First seen
- May 24, 2026 on skills.sh
Weekly values
| Week to | Installs |
|---|---|
| Sep 21 | 324 |
| Sep 28 | 360 |
| Oct 5 | 423 |
| Oct 12 | 334 |
| Oct 19 | 360 |
| Oct 26 | 470 |
| Nov 2 | 360 |
| Nov 9 | 320 |
| Category |
Test-first work, implementation from specs, git hygiene and scope control. Everything for building software: planning, coding, debugging, design, frameworks, cloud, agents and skills. |
|---|---|
| Type |
Knowledge and rules the agent applies while it works: best practices, design principles, API references. |
| Effect |
Adds no side effects of its own. It shapes how the agent thinks, writes or reviews. Guidelines and routers are always effect:none, even when the task they support edits code. |
| Needs |
Instructions only. Works in any agent that supports skills. |
| Publisher |
Everyone else. Unverified vendor claims default to community. |
| Topics |
SKILL.md
From cursor/plugins at 8ecfb19. Checked daily, last changed Nov 6, 2026.
Frontmatter
name: principle-boundary-discipline
description: "Apply when wiring validation, error handling, or framework adapters. Concentrate guards at system boundaries (CLI, config, network, external APIs); trust internal types and keep business logic in pure functions."
disable-model-invocation: trueBoundary Discipline
Place validation, type narrowing, and error handling at system boundaries. Trust internal code unconditionally. Business logic lives in pure functions. The shell is thin and mechanical.
Why: Scattered validation is noisy, redundant, and gives a false sense of safety. Keep logic out of framework wiring so it can be tested without the framework.
The pattern:
- At boundaries (CLI args, config files, external APIs, network protocols): validate, return errors, handle defensively.
- Inside the system: typed data, error propagation, no re-validation. Trust the types.
- Across the boundary. Expose domain concepts, not the boundary's private representation. Keep general-purpose mechanism inside and special-purpose policy at the edge.
Applications:
Validation and error handling:
- Validate config at parse time (the boundary), not inside business logic
- Parse raw data into domain types at the boundary
- Do not re-export transport, storage, framework, or wire types through the public surface
- No redundant nil checks deep in call chains if the boundary already validated
Code organization:
- Business logic in pure functions with no framework dependencies
- Parse functions: pure transforms from raw bytes to typed state
- Prompt construction: structured state in, string out
- Scoring and assessment: pure transforms from state to results
The tests:
- "Is this data crossing a system boundary right now?" If not, validation is redundant.
- "Can this be a pure function that the shell just calls?" If yes, extract it.