/abstraction-power
Activate ATLAS pattern recognition mode. Identify repeated patterns, extract essential characteristics, and create reusable abstractions from concrete examples.
$ npx -y skills add syahiidkamil/Software-Engineer-AI-Agent-Atlas --skill abstraction-power --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/abstraction-power
Context preview
The summary Claude sees to decide when to auto-load this skill.
Activate ATLAS pattern recognition mode. Identify repeated patterns, extract essential characteristics, and create reusable abstractions from concrete examples.
SKILL.md
abstraction-power.SKILL.mdname: abstraction-power
description: Activate ATLAS pattern recognition mode. Identify repeated patterns, extract essential characteristics, and create reusable abstractions from concrete examples.
Activate ATLAS abstraction thinking mode.
What is Abstraction?
Abstraction is the process of identifying essential features while hiding unnecessary details. It involves moving from specific, concrete examples to general, conceptual models.
The Abstraction Process
1. **Identify multiple concrete examples** 2. **Analyze common patterns and features** 3. **Remove specific details** 4. **Extract essential characteristics** 5. **Create a generalized model**
Abstraction Example
**Concrete instances**:
- `sendEmail(to, subject, body)` → connects to SMTP, formats message, delivers
- `sendSMS(phone, message)` → connects to Twilio API, formats payload, delivers
- `sendPush(deviceId, title, body)` → connects to FCM, formats notification, delivers
**Pattern recognized**: All three connect to a service, format a message, and deliver it.
**Abstraction**:
NotificationChannel {
connect()
format(content) → payload
deliver(payload)
}Three specific implementations collapsed into one interface. New channels (Slack, WhatsApp) plug in without changing the system.
Generalization Example
**Concrete observations**:
- "Every time we add a new payment method, we modify the checkout function"
- "Every time we add a new report type, we modify the export function"
- "Every time we add a new auth provider, we modify the login function"
**Generalized insight**: The system violates the Open/Closed Principle. Adding a new variant forces modification of existing code.
**Generalized solution**: Use a registry/strategy pattern. New variants register themselves; the core function iterates over registered strategies without knowing their specifics.
The generalization isn't about one specific fix. It's recognizing the *shape* of the problem so you see it everywhere it appears.
When Invoked
Apply this abstraction lens to the current context:
1. **If analyzing code**: Look for repeated patterns, similar structures, or duplicated logic that can be abstracted into reusable components 2. **If designing systems**: Identify common behaviors and create generalized models 3. **If solving problems**: Find the underlying pattern across specific examples
Visualization
Prefer **flowcharts** over sequence diagrams when visualizing abstractions. Flowcharts show the structure and relationships between abstracted components. Sequence diagrams show temporal interactions, which is useful but secondary to understanding the shape of the abstraction.
Use Mermaid diagrams. Default to `graph TD` (top-down flow) or `graph LR` (left-right flow). Only use `sequenceDiagram` when the insight is specifically about message ordering between actors.
Output Format
When applying abstraction power, provide:
Input (Concrete Examples)
List the specific instances being analyzed
Abstraction Process
- Common features identified
- Differences to ignore
- Essential characteristics extracted
Output (Abstract Model)
The generalized model, class, pattern, or solution — with a Mermaid flowchart when the relationships benefit from visualization.
Key Benefits to Communicate
- **Reusability**: Abstract models can be applied to many specific cases
- **Simplification**: Complex systems become easier to understand
- **Maintenance**: Changes to the abstract model propagate to all implementations
- **Scalability**: New concrete instances can be created from the abstract template
Read more
name: abstraction-power description: Activate ATLAS pattern recognition mode. Identify repeated patterns, extract essential characteristics, and create reusable abstractions from concrete examples.
Activate ATLAS abstraction thinking mode.
What is Abstraction?
Abstraction is the process of identifying essential features while hiding unnecessary details. It involves moving from specific, concrete examples to general, conceptual models.
The Abstraction Process
1. **Identify multiple concrete examples** 2. **Analyze common patterns and features** 3. **Remove specific details** 4. **Extract essential characteristics** 5. **Create a generalized model**
Abstraction Example
**Concrete instances**:
- `sendEmail(to, subject, body)` → connects to SMTP, formats message, delivers
- `sendSMS(phone, message)` → connects to Twilio API, formats payload, delivers
- `sendPush(deviceId, title, body)` → connects to FCM, formats notification, delivers
**Pattern recognized**: All three connect to a service, format a message, and deliver it.
**Abstraction**:
NotificationChannel {
connect()
format(content) → payload
deliver(payload)
}Three specific implementations collapsed into one interface. New channels (Slack, WhatsApp) plug in without changing the system.
Generalization Example
**Concrete observations**:
- "Every time we add a new payment method, we modify the checkout function"
- "Every time we add a new report type, we modify the export function"
- "Every time we add a new auth provider, we modify the login function"
**Generalized insight**: The system violates the Open/Closed Principle. Adding a new variant forces modification of existing code.
**Generalized solution**: Use a registry/strategy pattern. New variants register themselves; the core function iterates over registered strategies without knowing their specifics.
The generalization isn't about one specific fix. It's recognizing the *shape* of the problem so you see it everywhere it appears.
When Invoked
Apply this abstraction lens to the current context:
1. **If analyzing code**: Look for repeated patterns, similar structures, or duplicated logic that can be abstracted into reusable components 2. **If designing systems**: Identify common behaviors and create generalized models 3. **If solving problems**: Find the underlying pattern across specific examples
Visualization
Prefer **flowcharts** over sequence diagrams when visualizing abstractions. Flowcharts show the structure and relationships between abstracted components. Sequence diagrams show temporal interactions, which is useful but secondary to understanding the shape of the abstraction.
Use Mermaid diagrams. Default to `graph TD` (top-down flow) or `graph LR` (left-right flow). Only use `sequenceDiagram` when the insight is specifically about message ordering between actors.
Output Format
When applying abstraction power, provide:
Input (Concrete Examples)
List the specific instances being analyzed
Abstraction Process
- Common features identified
- Differences to ignore
- Essential characteristics extracted
Output (Abstract Model)
The generalized model, class, pattern, or solution — with a Mermaid flowchart when the relationships benefit from visualization.
Key Benefits to Communicate
- **Reusability**: Abstract models can be applied to many specific cases
- **Simplification**: Complex systems become easier to understand
- **Maintenance**: Changes to the abstract model propagate to all implementations
- **Scalability**: New concrete instances can be created from the abstract template
The senior-engineer layer for Claude Code. Explore before you build, clarify only what matters, capture it in living HTML, then hand it to Claude Code's native plan / goal / workflow loop.
Repo: syahiidkamil/Software-Engineer-AI-Agent-Atlas
Other skills on software-engineer-ai-agent-atlas.
- /adversarial-review
Adversarially review something just built — presume it is broken and find where. Use after implementing a feature, finishing a build, or before shipping, or whenever ATLAS or Boss wants a hostile second opinion on a diff, a running app, or a whole codebase. Spawns clean-context
Open skill - /algorithmic-art
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing
Open skill - /anthropic-product-knowledge
Stop and consult this skill whenever your response would include specific facts about Anthropic's products. Covers: Claude Code (how to install, Node.js requirements, platform/OS support, MCP server integration, configuration), Claude API (function calling/tool use, batch
Open skill - /find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist
Open skill - /free-will
Deliberate-choice procedure for a medium-to-high-stakes engineering fork — when the first plausible solution (the instinct, the default next-token pull) would be costly to get wrong. Fires AUTONOMOUSLY: invoke proactively whenever a fork fits, never wait to be asked — mechanical
Open skill - /frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or
Open skill

