By the end of this lesson, you'll be able to apply the Single Responsibility Principle to skill files — drawing clear boundaries that prevent scope creep, reduce token usage, and make skills composable.
After this lesson, you'll instinctively decompose a "do-everything" skill into focused, single-purpose skills that compose cleanly.
David Parnas wrote in 1972 that modules should be decomposed based on information hiding — each module encapsulates one design decision. The same principle applies to skills:
Consider a "business-operations" skill that handles invoices, sends emails, and manages inventory. This monolith causes four concrete problems:
| Problem | Impact |
|---|---|
| Increased token usage | The full skill definition (all three domains) loads into context even when only invoicing is needed |
| Reduced reliability | An email-sending bug breaks invoice processing too |
| Difficult maintenance | Changes to inventory logic require re-testing email workflows |
| Poor reusability | Another team needs email-sending but gets forced to take the whole bundle |
The fix is composition. Split along domain boundaries:
Each skill now:
The AWS governance guide adds an enterprise reason for tight scope: access control. Each agent operates with a core identity that defines its scope of permissions. A monolithic skill requires broad permissions (read invoices AND send emails AND modify inventory). Focused skills enable least-privilege — the invoice skill only needs invoice-system access.
Tool invocations must respect both the agent's capabilities and the user's access rights. Tightly scoped skills make permission boundaries enforceable. A monolithic skill with broad access becomes a privilege escalation vector.
Use these heuristics to decide if two capabilities belong in one skill or two:
A skill handles both "create Jira ticket" and "send Slack notification." Should these be one skill or two?
What is the primary security risk of a monolithic skill?
Look at your largest skill file. Ask yourself the four heuristic questions for each capability it contains. If any capability answers differently from the others, extract it into its own skill.
Read Parnas (1972), "On the Criteria to Be Used in Decomposing Systems into Modules" — the foundational paper on information hiding that underpins this entire approach.