principle-boundary-discipline
GitHub指导在系统边界(如CLI、API)集中处理验证和错误,内部代码信任类型并依赖纯函数。旨在消除冗余校验,简化框架适配,确保业务逻辑可测试且无副作用。
Trigger Scenarios
Install
npx skills add sediman-agent/OpenSkynet --skill principle-boundary-discipline -g -y
SKILL.md
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": true
}
Boundary 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. Validate data once at the boundary. 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.
Applications:
Validation and error handling:
- Validate config at parse time (the boundary), not inside business logic
- Store raw data at boundaries; parse lazily at use-site
- 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.
Version History
- c9d8953 Current 2026-07-05 19:52


