<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Skills on</title><link>https://augmentedresilience.com/tags/skills/</link><description>Recent content in Skills on</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 15 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://augmentedresilience.com/tags/skills/index.xml" rel="self" type="application/rss+xml"/><item><title>Claude Code Has Skills. PAI Has a Skill System. Here's the Difference.</title><link>https://augmentedresilience.com/posts/augmented-resilience-posts/claude-code-has-skills.-pai-has-a-skill-system.-heres-the-difference/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://augmentedresilience.com/posts/augmented-resilience-posts/claude-code-has-skills.-pai-has-a-skill-system.-heres-the-difference/</guid><description>&lt;h1 id="claude-code-has-skills-pai-has-a-skill-system-heres-the-difference">Claude Code Has Skills. PAI Has a Skill System. Here&amp;rsquo;s the Difference.&lt;/h1>
&lt;p>There&amp;rsquo;s a word that shows up in both Claude Code&amp;rsquo;s documentation and in PAI&amp;rsquo;s architecture: &lt;strong>skills&lt;/strong>. And because they share the same word — and even the same file conventions — it&amp;rsquo;s easy to assume they&amp;rsquo;re roughly equivalent. One is just a slightly fancier version of the other.&lt;/p>
&lt;p>They&amp;rsquo;re not. The relationship is closer to HTTP and a web framework. Claude Code&amp;rsquo;s skill mechanism is the protocol. PAI is the framework built on top of it.&lt;/p></description><content>&lt;h1 id="claude-code-has-skills-pai-has-a-skill-system-heres-the-difference">Claude Code Has Skills. PAI Has a Skill System. Here&amp;rsquo;s the Difference.&lt;/h1>
&lt;p>There&amp;rsquo;s a word that shows up in both Claude Code&amp;rsquo;s documentation and in PAI&amp;rsquo;s architecture: &lt;strong>skills&lt;/strong>. And because they share the same word — and even the same file conventions — it&amp;rsquo;s easy to assume they&amp;rsquo;re roughly equivalent. One is just a slightly fancier version of the other.&lt;/p>
&lt;p>They&amp;rsquo;re not. The relationship is closer to HTTP and a web framework. Claude Code&amp;rsquo;s skill mechanism is the protocol. PAI is the framework built on top of it.&lt;/p>
&lt;p>Understanding that distinction changed how I think about what I&amp;rsquo;ve actually built on my machine.&lt;/p>
&lt;hr>
&lt;h2 id="start-here-what-claude-codes-skill-mechanism-actually-is">Start Here: What Claude Code&amp;rsquo;s Skill Mechanism Actually Is&lt;/h2>
&lt;p>Before explaining what PAI adds, it&amp;rsquo;s worth being precise about what Claude Code provides natively — because it&amp;rsquo;s both more minimal and more elegant than most people realize.&lt;/p>
&lt;p>Claude Code&amp;rsquo;s skill system works like this:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>At startup&lt;/strong>, Claude reads every &lt;code>SKILL.md&lt;/code> file it finds under &lt;code>~/.claude/skills/&lt;/code>&lt;/li>
&lt;li>&lt;strong>The &lt;code>description&lt;/code> field&lt;/strong> in each skill&amp;rsquo;s YAML frontmatter determines when that skill activates — it&amp;rsquo;s pure intent matching. Anthropic caps this at 1024 characters.&lt;/li>
&lt;li>&lt;strong>When a skill matches your request&lt;/strong>, the &lt;code>Skill&lt;/code> tool injects the full SKILL.md content into Claude&amp;rsquo;s context window&lt;/li>
&lt;li>&lt;strong>Claude follows the instructions&lt;/strong> in that file&lt;/li>
&lt;/ol>
&lt;p>That&amp;rsquo;s the entire mechanism. It&amp;rsquo;s a &lt;em>context injection system with a routing layer&lt;/em>.&lt;/p>
&lt;p>The &lt;code>USE WHEN&lt;/code> clause in a skill description is the key piece. Here&amp;rsquo;s a simplified example from my OracleHCM skill:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">name&lt;/span>: &lt;span style="color:#ae81ff">OracleHCM&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">description&lt;/span>: &lt;span style="color:#ae81ff">Expert Oracle HCM Cloud troubleshooting. USE WHEN user mentions&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ae81ff">Oracle HCM, HCM Cloud, HDL, HCM Data Loader, Journey, Checklist, workflow&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ae81ff">approvals, autocomplete rules, fast formulas, security profiles...&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When I describe an Oracle HCM problem in natural language, Claude Code matches my intent against that description and loads the skill. I never have to say &amp;ldquo;use the Oracle HCM skill.&amp;rdquo; The intent matching handles it.&lt;/p>
&lt;p>Elegant. Minimal. And — on its own — surprisingly limited.&lt;/p>
&lt;hr>
&lt;h2 id="the-gap-between-context-injection-and-operational-capability">The Gap Between &amp;ldquo;Context Injection&amp;rdquo; and &amp;ldquo;Operational Capability&amp;rdquo;&lt;/h2>
&lt;p>Imagine a skill that&amp;rsquo;s just a long markdown file. When it loads, Claude reads the instructions and tries to follow them. If the instructions are clear and the task is simple, that works fine. But for anything complex — something that involves multiple steps, personalized behavior, CLI tooling, external APIs, or parallel agents — a single markdown file loaded into context starts to break down.&lt;/p>
&lt;p>The instructions get long. They can&amp;rsquo;t be personalized without making the skill personal (and therefore un-shareable). There&amp;rsquo;s no way to dispatch to a sub-procedure. There&amp;rsquo;s no tooling layer. There&amp;rsquo;s no way to say &amp;ldquo;if the user wants to &lt;em>create&lt;/em> a blog post, follow &lt;em>this&lt;/em> procedure; if they want to &lt;em>publish&lt;/em>, follow &lt;em>that&lt;/em> one.&amp;rdquo;&lt;/p>
&lt;p>This is the gap PAI fills.&lt;/p>
&lt;hr>
&lt;h2 id="what-pai-builds-on-top-nine-layers">What PAI Builds on Top: Nine Layers&lt;/h2>
&lt;p>PAI&amp;rsquo;s &lt;a href="https://github.com/danielmiessler/PAI" target="_blank" rel="noopener noreferrer">&lt;code>SKILLSYSTEM.md&lt;/code>&lt;/a>
defines a canonical structure that every skill must follow. It&amp;rsquo;s not a suggestion — it&amp;rsquo;s enforced by convention and by the &lt;code>CreateSkill&lt;/code> skill that scaffolds new ones. Here&amp;rsquo;s what each layer adds.&lt;/p>
&lt;h3 id="layer-1--canonical-structure">Layer 1 — Canonical Structure&lt;/h3>
&lt;p>Claude Code just needs a &lt;code>SKILL.md&lt;/code>. PAI requires a specific directory layout:&lt;/p>
&lt;pre tabindex="0">&lt;code>SkillName/
├── SKILL.md ← minimal routing only (40-50 lines)
├── Workflows/ ← execution procedures, one per task
│ ├── Create.md
│ └── Update.md
├── Tools/ ← TypeScript CLI tools (always present)
│ └── Generate.ts
└── ApiReference.md ← context files loaded on demand
&lt;/code>&lt;/pre>&lt;p>SKILL.md stays minimal. Complexity lives in workflows and context files that load when actually needed.&lt;/p>
&lt;h3 id="layer-2--workflow-routing">Layer 2 — Workflow Routing&lt;/h3>
&lt;p>This is the most immediately useful layer. Claude Code routes &lt;em>to&lt;/em> a skill. PAI routes &lt;em>within&lt;/em> a skill.&lt;/p>
&lt;p>The routing table in every SKILL.md dispatches sub-tasks to specific workflow files:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-markdown" data-lang="markdown">&lt;span style="display:flex;">&lt;span>| Workflow | Trigger | File |
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>|-------------|----------------------------|---------------------------|
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>| &lt;span style="font-weight:bold">**Create**&lt;/span> | &amp;#34;write a post&amp;#34; | &lt;span style="color:#e6db74">`Workflows/Create.md`&lt;/span> |
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>| &lt;span style="font-weight:bold">**Publish**&lt;/span> | &amp;#34;publish&amp;#34;, &amp;#34;deploy&amp;#34; | &lt;span style="color:#e6db74">`Workflows/Publish.md`&lt;/span> |
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>| &lt;span style="font-weight:bold">**Header**&lt;/span> | &amp;#34;create header image&amp;#34; | &lt;span style="color:#e6db74">`Workflows/Header.md`&lt;/span> |
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&amp;ldquo;Write a post&amp;rdquo; and &amp;ldquo;publish the site&amp;rdquo; both activate the same skill, but they route to completely different procedures. Without this, a skill that handles multiple operations becomes one giant file Claude has to navigate by itself.&lt;/p>
&lt;h3 id="layer-3--the-personalization-layer">Layer 3 — The Personalization Layer&lt;/h3>
&lt;p>Every system skill in PAI checks for user overrides before executing:&lt;/p>
&lt;pre tabindex="0">&lt;code>~/.claude/skills/PAI/USER/SKILLCUSTOMIZATIONS/{SkillName}/
├── EXTEND.yaml ← merge strategy (append | override | deep_merge)
└── PREFERENCES.md ← user-specific behavior
&lt;/code>&lt;/pre>&lt;p>The system skill stays generic and shareable. My preferences — color palettes for the Art skill, voice configurations for the Agents skill, output format defaults for Research — live separately and merge in at runtime. The skill author never needs to know about my preferences. I never need to fork the skill to add my own.&lt;/p>
&lt;h3 id="layer-4--system-vs-personal-skill-separation">Layer 4 — System vs Personal Skill Separation&lt;/h3>
&lt;p>PAI enforces a hard naming convention that determines portability:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>TitleCase&lt;/strong> (&lt;code>Research&lt;/code>, &lt;code>Browser&lt;/code>, &lt;code>OracleHCM&lt;/code>) = system skills, no personal data, shareable via PAI Packs&lt;/li>
&lt;li>&lt;strong>&lt;code>_ALLCAPS&lt;/code>&lt;/strong> (&lt;code>_BLOGGING&lt;/code>, &lt;code>_MAQINA&lt;/code>) = personal skills, private by convention, never exported&lt;/li>
&lt;/ul>
&lt;p>Claude Code has no concept of skill visibility. PAI makes it structural.&lt;/p>
&lt;h3 id="layer-5--cli-tooling-convention">Layer 5 — CLI Tooling Convention&lt;/h3>
&lt;p>Every PAI skill has a &lt;code>Tools/&lt;/code> directory. When a workflow needs to do something repeatable — generate an image, manage a server, sync a repository — it calls a TypeScript CLI tool instead of embedding logic in the workflow markdown itself.&lt;/p>
&lt;p>Tools use &lt;code>#!/usr/bin/env bun&lt;/code>, expose configuration via flags, and have &lt;code>.help.md&lt;/code> documentation files. This keeps workflows simple (intent routing) and tools encapsulated (execution). You can test a tool independently of its workflow.&lt;/p>
&lt;h3 id="layer-6--ai-powered-hooks">Layer 6 — AI-Powered Hooks&lt;/h3>
&lt;p>PAI runs 17 event hooks that fire at specific moments: session start, prompt submission, pre-tool, post-tool, and others. The most important one for response quality is &lt;code>FormatReminder&lt;/code> — it runs AI inference on your &lt;em>raw prompt&lt;/em> before Claude even starts responding, classifies the depth required (FULL / ITERATION / MINIMAL), and injects that classification as authoritative context.&lt;/p>
&lt;p>This is hooks doing real work, not just shell scripts appending text to prompts.&lt;/p>
&lt;h3 id="layer-7--the-algorithm">Layer 7 — The Algorithm&lt;/h3>
&lt;p>Every response PAI generates runs through a 7-phase problem-solving framework: &lt;strong>OBSERVE → THINK → PLAN → BUILD → EXECUTE → VERIFY → LEARN&lt;/strong>.&lt;/p>
&lt;p>This isn&amp;rsquo;t decorative structure. The OBSERVE phase reverse-engineers your actual intent. The THINK phase selects capabilities and validates skill choices against the problem. The VERIFY phase uses &lt;code>TaskCreate&lt;/code>/&lt;code>TaskUpdate&lt;/code> to track measurable success criteria. The LEARN phase captures what to improve next time.&lt;/p>
&lt;p>Skills feed into this framework — they&amp;rsquo;re not parallel to it. When a skill activates, it executes inside the Algorithm, with its results held accountable to the ISC criteria created in OBSERVE.&lt;/p>
&lt;h3 id="layer-8--agent-composition-patterns">Layer 8 — Agent Composition Patterns&lt;/h3>
&lt;p>PAI skills can spawn specialized subagents and compose them using named patterns:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Pattern&lt;/th>
&lt;th>Shape&lt;/th>
&lt;th>When&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>Pipeline&lt;/strong>&lt;/td>
&lt;td>A → B → C&lt;/td>
&lt;td>Sequential domain handoff&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>TDD Loop&lt;/strong>&lt;/td>
&lt;td>Engineer ↔ QATester&lt;/td>
&lt;td>Build-verify cycle&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Fan-out&lt;/strong>&lt;/td>
&lt;td>→ [A, B, C]&lt;/td>
&lt;td>Multiple perspectives needed&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>Gate&lt;/strong>&lt;/td>
&lt;td>A → check → B or retry&lt;/td>
&lt;td>Quality gate before progression&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>A skill that just loads into context can&amp;rsquo;t orchestrate parallel agents. A PAI skill that routes to a workflow that invokes a Fan-out pattern can research, build, and verify in parallel — with a spotcheck agent at the end synthesizing results.&lt;/p>
&lt;h3 id="layer-9--dynamic-loading">Layer 9 — Dynamic Loading&lt;/h3>
&lt;p>Large skills use deferred loading. Only the SKILL.md loads on invocation. Reference documents, API guides, and style specs load only when the specific workflow that needs them runs. This actively manages token budget rather than blowing it on context that might not be needed.&lt;/p>
&lt;hr>
&lt;h2 id="the-feature-gap-in-one-table">The Feature Gap in One Table&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Feature&lt;/th>
&lt;th>Claude Code (Native)&lt;/th>
&lt;th>PAI System&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Skill discovery&lt;/td>
&lt;td>YAML &lt;code>description&lt;/code> at startup&lt;/td>
&lt;td>Same + &lt;code>USE WHEN&lt;/code> intent parsing&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Sub-routing&lt;/td>
&lt;td>None&lt;/td>
&lt;td>Workflow routing table&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Personalization&lt;/td>
&lt;td>None&lt;/td>
&lt;td>&lt;code>SKILLCUSTOMIZATIONS&lt;/code> layer&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Skill visibility&lt;/td>
&lt;td>All equal&lt;/td>
&lt;td>System vs Personal convention&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Tooling&lt;/td>
&lt;td>None&lt;/td>
&lt;td>TypeScript CLI tools&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Hooks&lt;/td>
&lt;td>Basic&lt;/td>
&lt;td>17 AI-powered hooks&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Response structure&lt;/td>
&lt;td>Free-form&lt;/td>
&lt;td>Algorithm (7 phases, ISC, verify)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Agents&lt;/td>
&lt;td>None&lt;/td>
&lt;td>15+ specialized subagent types&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Memory&lt;/td>
&lt;td>None&lt;/td>
&lt;td>File-based cross-session memory&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Dynamic loading&lt;/td>
&lt;td>Full file loaded&lt;/td>
&lt;td>Context files on demand&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Portability&lt;/td>
&lt;td>No convention&lt;/td>
&lt;td>PAI Packs&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="why-this-matters-practically">Why This Matters Practically&lt;/h2>
&lt;p>The single most useful shift in mental model: &lt;strong>Claude Code skills are context&lt;/strong>. PAI skills are &lt;strong>operational units&lt;/strong>.&lt;/p>
&lt;p>When I ask my system to publish a blog post, the publishing skill doesn&amp;rsquo;t just remind Claude how publishing works. It dispatches to the Publish workflow, which runs image conversion, calls &lt;code>hugo&lt;/code>, commits, pushes to GitHub, and triggers the Actions pipeline that deploys to Namecheap FTP — all as a structured procedure with steps that can fail, be verified, and be corrected independently.&lt;/p>
&lt;p>That&amp;rsquo;s not context injection. That&amp;rsquo;s execution.&lt;/p>
&lt;p>The 34 skills on my system aren&amp;rsquo;t 34 long markdown files. They&amp;rsquo;re 34 capabilities, each with their own routing logic, personalization layer, tooling, and agent integration. Claude Code&amp;rsquo;s mechanism made them possible. PAI&amp;rsquo;s framework made them reliable.&lt;/p>
&lt;hr>
&lt;h2 id="where-to-go-from-here">Where to Go from Here&lt;/h2>
&lt;p>If you&amp;rsquo;re new to PAI and want to understand the broader architecture this sits inside — the memory system, the agent tiers, how RAG ties everything together — the prior post &lt;a href="https://augmentedresilience.com/posts/rag-agents-and-skills-the-three-pillars-inside-my-personal-ai">&lt;em>RAG, Agents, and Skills: The Three Pillars Inside My Personal AI&lt;/em>&lt;/a>
covers the full picture.&lt;/p>
&lt;p>If you want to go deeper on the skill system itself, the canonical reference is &lt;code>~/.claude/skills/PAI/SYSTEM/SKILLSYSTEM.md&lt;/code> — it&amp;rsquo;s the document all skills are built against, and it explains every convention described here in precise detail.&lt;/p>
&lt;p>PAI is open source at &lt;a href="https://github.com/danielmiessler/PAI" target="_blank" rel="noopener noreferrer">github.com/danielmiessler/PAI&lt;/a>
.&lt;/p></content></item><item><title>RAG, Agents, and Skills: The Three Pillars Inside My Personal AI</title><link>https://augmentedresilience.com/posts/augmented-resilience-posts/rag-agents-and-skills---the-three-pillars-inside-my-personal-ai/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>https://augmentedresilience.com/posts/augmented-resilience-posts/rag-agents-and-skills---the-three-pillars-inside-my-personal-ai/</guid><description>&lt;h1 id="rag-agents-and-skills-the-three-pillars-inside-my-personal-ai">RAG, Agents, and Skills: The Three Pillars Inside My Personal AI&lt;/h1>
&lt;p>This site — Augmented Resilience — didn&amp;rsquo;t get built the way most blogs do. There was no staring at blank Hugo config files, no manually hunting down Namecheap SSH docs, no scrambling to remember whether the deploy script needed the &lt;code>public/&lt;/code> folder cleaned before each build.&lt;/p>
&lt;p>Instead, I described what I wanted. The AI knew my hosting setup (Namecheap shared hosting), my stack (Hugo with the re-terminal theme), my repo (GitHub, SSH-keyed), and my editor (Obsidian). When a build error surfaced — a theme name mismatch between &lt;code>hugo.toml&lt;/code> and the actual directory — it was diagnosed and fixed before I had time to Google it. When the deploy script needed writing, it was scaffolded against my specific environment. When I accidentally left sensitive data in an early draft, it caught it before the commit.&lt;/p></description><content>&lt;h1 id="rag-agents-and-skills-the-three-pillars-inside-my-personal-ai">RAG, Agents, and Skills: The Three Pillars Inside My Personal AI&lt;/h1>
&lt;p>This site — Augmented Resilience — didn&amp;rsquo;t get built the way most blogs do. There was no staring at blank Hugo config files, no manually hunting down Namecheap SSH docs, no scrambling to remember whether the deploy script needed the &lt;code>public/&lt;/code> folder cleaned before each build.&lt;/p>
&lt;p>Instead, I described what I wanted. The AI knew my hosting setup (Namecheap shared hosting), my stack (Hugo with the re-terminal theme), my repo (GitHub, SSH-keyed), and my editor (Obsidian). When a build error surfaced — a theme name mismatch between &lt;code>hugo.toml&lt;/code> and the actual directory — it was diagnosed and fixed before I had time to Google it. When the deploy script needed writing, it was scaffolded against my specific environment. When I accidentally left sensitive data in an early draft, it caught it before the commit.&lt;/p>
&lt;p>None of that context lived in the prompt. It lived in the infrastructure.&lt;/p>
&lt;p>The system behind it is called &lt;strong>PAI (Personal AI Infrastructure)&lt;/strong> — an open-source framework I run locally on top of Claude Code. And the reason it could handle an entire site build end-to-end without constant hand-holding comes down to three architectural pillars: &lt;strong>RAG&lt;/strong>, &lt;strong>Agents&lt;/strong>, and &lt;strong>Skills&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="what-is-pai">What Is PAI?&lt;/h2>
&lt;p>PAI is an open-source personal AI infrastructure system that runs on top of Claude Code. It&amp;rsquo;s not a SaaS product — it&amp;rsquo;s a framework you install on your own machine. The system is built around a central idea: &lt;strong>AI systems need structure to be reliable&lt;/strong>. Like scaffolding supports construction, PAI provides the architectural patterns that make AI assistance consistent, contextual, and capable of compounding over time.&lt;/p>
&lt;p>There are 34 skills installed on my system, 17 event hooks, 141 workflows, and a memory system that learns from every interaction. But none of that would matter without three core mechanisms working in concert.&lt;/p>
&lt;p>&lt;img src="https://augmentedresilience.com/images/2026-02-24_18-07-16.png" alt="Image Description">
&lt;em>The PAI statusline — live system stats showing version (v2.4), algorithm (ALG:v0.2.25), skill count (SK: 34), workflows (WF: 141), hooks (17), context usage (48%), memory signals (144 ratings), and a rolling quality score trend.&lt;/em>&lt;/p>
&lt;hr>
&lt;h2 id="pillar-1-rag--your-personal-knowledge-base-in-every-response">Pillar 1: RAG — Your Personal Knowledge Base In Every Response&lt;/h2>
&lt;p>RAG (Retrieval-Augmented Generation) is the pattern of &lt;em>retrieving&lt;/em> relevant documents from a knowledge store and &lt;em>augmenting&lt;/em> the AI&amp;rsquo;s prompt with that context before generating a response. In enterprise AI, this is how you get a chatbot that can answer questions about your internal policies without hallucinating.&lt;/p>
&lt;p>In PAI, RAG is the engine that makes the AI feel like it &lt;em>knows&lt;/em> you.&lt;/p>
&lt;h3 id="how-it-works-in-pai">How It Works in PAI&lt;/h3>
&lt;p>When a session starts, PAI&amp;rsquo;s hook system loads a foundational context layer: my identity, my name, the current date, and the core behavioral rules (the Algorithm). This is the retrieval index — a lightweight map of everything the system knows how to find.&lt;/p>
&lt;p>When I make a request, the system retrieves additional context on demand:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Skills frontmatter&lt;/strong> — Each of the 34 skills has a &lt;code>description&lt;/code> field with a &lt;code>USE WHEN&lt;/code> clause. These descriptions load at startup as a routing index. When my request matches a skill&amp;rsquo;s intent, the full skill content loads. This is retrieval — pulling in the right expertise document for the task.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>USER/ context files&lt;/strong> — There&amp;rsquo;s a structured personal knowledge base living at &lt;code>~/.claude/skills/PAI/USER/&lt;/code>. It contains my resume, my TELOS life goals, my contacts, my projects, my tech stack preferences. When I ask a question where my professional background is relevant, that context gets retrieved and injected.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>MEMORY/ directory&lt;/strong> — Every session, every correction, every insight gets captured in a structured memory system organized into &lt;code>WORK/&lt;/code>, &lt;code>LEARNING/&lt;/code>, &lt;code>SIGNALS/&lt;/code>, and &lt;code>RESEARCH/&lt;/code> directories. Past work items, completed tasks, and quality signals from previous interactions can all be retrieved to inform the current one.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Hook-injected context&lt;/strong> — Event hooks fire at specific moments (session start, before each prompt, after tool use) and inject dynamic context — things like the current depth classification, relevant behavioral rules, or system state.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="practical-scenario-building-augmented-resilience">Practical Scenario: Building Augmented Resilience&lt;/h3>
&lt;p>When I was setting up this site and ran into the Hugo theme mismatch error, here&amp;rsquo;s what PAI retrieved without me explaining any of it:&lt;/p>
&lt;ol>
&lt;li>My tech stack preferences from the USER context — Hugo, GitHub, Namecheap, Obsidian as editor&lt;/li>
&lt;li>The WebSavant skill loaded automatically (matched &amp;ldquo;Hugo site&amp;rdquo;, &amp;ldquo;deployment&amp;rdquo; intent), bringing with it Hugo-specific knowledge about theme configuration, &lt;code>hugo.toml&lt;/code> structure, and build pipelines&lt;/li>
&lt;li>My project context from MEMORY — the repo name, the hosting environment, decisions made in prior sessions about the deploy workflow&lt;/li>
&lt;/ol>
&lt;p>By the time I described the error, PAI already knew the environment it was debugging. It didn&amp;rsquo;t need me to explain what kind of hosting I had, which theme I was using, or what my folder structure looked like. The retrieval layer had already assembled that context before a single word of the solution was written.&lt;/p>
&lt;p>That&amp;rsquo;s the difference RAG makes — not smarter AI, but &lt;em>contextually equipped&lt;/em> AI.&lt;/p>
&lt;hr>
&lt;h2 id="pillar-2-skills--domain-expertise-that-activates-itself">Pillar 2: Skills — Domain Expertise That Activates Itself&lt;/h2>
&lt;p>If RAG is how PAI &lt;em>knows&lt;/em> context, Skills are how PAI &lt;em>does&lt;/em> work. A skill is a self-contained expertise module that activates automatically based on intent, routes to the right workflow, and executes a structured procedure.&lt;/p>
&lt;p>Think of each skill as a senior specialist on call — and you never have to explicitly page them.&lt;/p>
&lt;h3 id="the-anatomy-of-a-skill">The Anatomy of a Skill&lt;/h3>
&lt;p>Every skill follows the same structure:&lt;/p>
&lt;pre tabindex="0">&lt;code>SkillName/
├── SKILL.md ← Routing layer (loads on invocation)
├── Workflows/ ← Step-by-step execution procedures
│ └── Create.md
│ └── Update.md
└── Tools/ ← CLI automation scripts (TypeScript)
└── Generate.ts
&lt;/code>&lt;/pre>&lt;p>The &lt;code>SKILL.md&lt;/code> file has two parts:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>YAML frontmatter&lt;/strong> with a &lt;code>USE WHEN&lt;/code> clause — this is how Claude Code knows when to activate the skill&lt;/li>
&lt;li>&lt;strong>Workflow routing table&lt;/strong> — once activated, this routes the request to the correct workflow file&lt;/li>
&lt;/ol>
&lt;p>The magic is in &lt;code>USE WHEN&lt;/code>. Here&amp;rsquo;s a simplified example from the OracleHCM skill:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">description&lt;/span>: &lt;span style="color:#ae81ff">Expert Oracle HCM Cloud troubleshooting and guidance. USE WHEN user&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ae81ff">mentions Oracle HCM, HCM Cloud, HDL, HCM Data Loader, Journey, Checklist,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ae81ff">workflow approvals, autocomplete rules, fast formulas, security profiles...&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>I never have to say &amp;ldquo;use the Oracle HCM skill.&amp;rdquo; I just describe my problem in natural language. The intent matching system routes it.&lt;/p>
&lt;h3 id="practical-scenario-configuring-seo-and-geo-for-augmentedresiliencecom">Practical Scenario: Configuring SEO and GEO for augmentedresilience.com&lt;/h3>
&lt;p>Before the site went live, I needed proper SEO and GEO — Open Graph tags for social sharing, meta descriptions for search, canonical URLs, a sitemap, and schema.org structured data so AI-powered search engines like Perplexity, ChatGPT, and Claude could understand and cite the content accurately. None of that comes configured out of the box with the re-terminal theme. I said:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;Set up SEO and apply Generative Engine Optimization to augmentedresilience.com.&amp;rdquo;&lt;/p>&lt;/blockquote>
&lt;p>The system:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Activated the WebSavant skill&lt;/strong> (matched &amp;ldquo;SEO&amp;rdquo; + &amp;ldquo;GEO&amp;rdquo; + &amp;ldquo;site&amp;rdquo; intent — no skill named, no flags set)&lt;/li>
&lt;li>&lt;strong>Routed to the SEO and AddSchema workflows&lt;/strong> inside that skill&lt;/li>
&lt;li>&lt;strong>Created the correct Hugo partial override&lt;/strong> at &lt;code>layouts/partials/extended_head.html&lt;/code> — the exact injection point the re-terminal theme exposes without touching any theme files&lt;/li>
&lt;li>&lt;strong>Added the full Open Graph tag set&lt;/strong> (&lt;code>og:title&lt;/code>, &lt;code>og:description&lt;/code>, &lt;code>og:image&lt;/code>, &lt;code>og:url&lt;/code>, &lt;code>og:type&lt;/code>) wired to Hugo&amp;rsquo;s page variables&lt;/li>
&lt;li>&lt;strong>Injected schema.org JSON-LD&lt;/strong> for every page type: &lt;code>WebSite&lt;/code> and &lt;code>Person&lt;/code> on the homepage, &lt;code>Article&lt;/code> and &lt;code>BreadcrumbList&lt;/code> on every post, and &lt;code>AboutPage&lt;/code> on &lt;code>/about&lt;/code> — giving AI crawlers a machine-readable knowledge graph of the site&lt;/li>
&lt;li>&lt;strong>Created &lt;code>robots.txt&lt;/code>&lt;/strong> explicitly permitting GPTBot, ClaudeBot, PerplexityBot, and other AI crawlers — with the sitemap URL wired in&lt;/li>
&lt;li>&lt;strong>Configured &lt;code>hugo.toml&lt;/code>&lt;/strong> for canonical URL generation and enabled the built-in sitemap output&lt;/li>
&lt;/ol>
&lt;p>Without the skill, this is a day of Hugo documentation, schema.org spec-reading, and trial-and-error. With it, the full SEO and GEO stack was complete in a single pass — because the skill had already encoded where everything goes in Hugo&amp;rsquo;s directory structure, which schema types matter for which page contexts, and how to wire Hugo&amp;rsquo;s template variables into valid JSON-LD that AI search engines can actually parse.&lt;/p>
&lt;h3 id="the-34-skills-i-have-installed">The 34 Skills I Have Installed&lt;/h3>
&lt;p>My current skill roster includes tools for Oracle HCM support, security recon, OSINT research, browser automation, art generation, document processing, code generation, red teaming, and more. Each one is a packaged capability that activates without friction.&lt;/p>
&lt;p>The system is also designed to be extended — building a new skill means writing a &lt;code>SKILL.md&lt;/code> with a &lt;code>USE WHEN&lt;/code> clause, a workflow routing table, and the workflow files. The CreateSkill skill handles the scaffolding automatically.&lt;/p>
&lt;hr>
&lt;h2 id="pillar-3-agents--parallel-specialized-brains">Pillar 3: Agents — Parallel Specialized Brains&lt;/h2>
&lt;p>Skills handle individual domain expertise. Agents handle &lt;em>scale&lt;/em> and &lt;em>specialization&lt;/em> when a task is too complex for a single pass or requires multiple perspectives simultaneously.&lt;/p>
&lt;p>PAI has a three-tier agent system:&lt;/p>
&lt;h3 id="tier-1-task-tool-subagents-internal-workhorses">Tier 1: Task Tool Subagents (Internal Workhorses)&lt;/h3>
&lt;p>These are pre-built specialist agents that skills and workflows invoke internally: &lt;code>Engineer&lt;/code>, &lt;code>Architect&lt;/code>, &lt;code>Explore&lt;/code>, &lt;code>QATester&lt;/code>, &lt;code>Pentester&lt;/code>, &lt;code>ClaudeResearcher&lt;/code>, &lt;code>GeminiResearcher&lt;/code>, &lt;code>GrokResearcher&lt;/code>, and others.&lt;/p>
&lt;p>When I ask PAI to research something deeply, it doesn&amp;rsquo;t just run one search. It can fan out to multiple research agents simultaneously — Claude, Gemini, and Grok each investigating from different angles — then synthesize the results with a &amp;ldquo;spotcheck&amp;rdquo; agent that verifies consistency.&lt;/p>
&lt;p>This is parallel processing that would take me hours of manual work, running in minutes.&lt;/p>
&lt;h3 id="tier-2-named-agents-persistent-specialists">Tier 2: Named Agents (Persistent Specialists)&lt;/h3>
&lt;p>Named agents are recurring characters with rich backstories, persistent identities, and unique voices via ElevenLabs text-to-speech. They build relationship continuity across sessions.&lt;/p>
&lt;p>My installed named agents include:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Serena Blackwood&lt;/strong> — Architect. Long-term system design decisions.&lt;/li>
&lt;li>&lt;strong>Marcus Webb&lt;/strong> — Engineer. Strategic technical leadership.&lt;/li>
&lt;li>&lt;strong>Rook Blackburn&lt;/strong> — Pentester. Security testing with a distinct personality.&lt;/li>
&lt;li>&lt;strong>Ava Sterling&lt;/strong> — Researcher (Claude). Strategic deep-dive analysis.&lt;/li>
&lt;li>&lt;strong>Alex Rivera&lt;/strong> — Researcher (Gemini). Multi-perspective comprehensive analysis.&lt;/li>
&lt;/ul>
&lt;p>When Rook runs a security assessment, he doesn&amp;rsquo;t just return findings — he announces them in his own voice through my speakers. It sounds minor. It&amp;rsquo;s not. Distinct voices make it cognitively easier to understand &lt;em>who&lt;/em> did what work and &lt;em>why&lt;/em> you should trust it.&lt;/p>
&lt;h3 id="tier-3-custom-agents-on-demand-compositions">Tier 3: Custom Agents (On-Demand Compositions)&lt;/h3>
&lt;p>For tasks that don&amp;rsquo;t fit a named agent, PAI can compose agents dynamically from trait combinations:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Expertise traits:&lt;/strong> &lt;code>security&lt;/code>, &lt;code>legal&lt;/code>, &lt;code>finance&lt;/code>, &lt;code>medical&lt;/code>, &lt;code>research&lt;/code>, &lt;code>technical&lt;/code>, &lt;code>creative&lt;/code>&lt;/li>
&lt;li>&lt;strong>Personality traits:&lt;/strong> &lt;code>skeptical&lt;/code>, &lt;code>enthusiastic&lt;/code>, &lt;code>analytical&lt;/code>, &lt;code>contrarian&lt;/code>, &lt;code>meticulous&lt;/code>&lt;/li>
&lt;li>&lt;strong>Approach traits:&lt;/strong> &lt;code>thorough&lt;/code>, &lt;code>rapid&lt;/code>, &lt;code>systematic&lt;/code>, &lt;code>adversarial&lt;/code>, &lt;code>synthesizing&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Each unique trait combination maps to a different ElevenLabs voice. A &lt;code>security + adversarial&lt;/code> agent gets Callum&amp;rsquo;s edgy voice. An &lt;code>analytical + meticulous&lt;/code> agent gets Charlotte&amp;rsquo;s precise cadence.&lt;/p>
&lt;p>The trait system means I can spin up a custom agent for any edge case without writing a new agent from scratch.&lt;/p>
&lt;h3 id="practical-scenario-pre-launch-validation-of-augmented-resilience">Practical Scenario: Pre-Launch Validation of Augmented Resilience&lt;/h3>
&lt;p>Before pushing the first real commit to augmentedresilience.com, I wasn&amp;rsquo;t going to just cross my fingers and run &lt;code>deploy.py&lt;/code>. I asked PAI to validate the site was actually ready. What happened next wasn&amp;rsquo;t a single check — it was a parallel review board.&lt;/p>
&lt;p>PAI spawned three agents simultaneously:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Rook Blackburn&lt;/strong> (Pentester) scanned the entire repo for credentials, API keys, and sensitive data I might have accidentally left in a config file or draft post — and announced his findings in his own voice through my speakers&lt;/li>
&lt;li>&lt;strong>A QA agent&lt;/strong> opened the Hugo local preview, walked every page, verified links weren&amp;rsquo;t broken, images loaded, and the deploy pipeline produced a clean &lt;code>public/&lt;/code> build&lt;/li>
&lt;li>&lt;strong>A Researcher agent&lt;/strong> audited the site&amp;rsquo;s meta tags, Open Graph data, and &lt;code>hugo.toml&lt;/code> settings against SEO best practices for a new blog&lt;/li>
&lt;/ol>
&lt;p>A fourth &lt;strong>spotcheck agent&lt;/strong> then reviewed all three outputs for conflicts — did Rook&amp;rsquo;s findings overlap with anything the QA agent flagged? Were there config issues that touched both SEO and security?&lt;/p>
&lt;p>The result was a single consolidated pre-launch checklist. Two issues surfaced: a leftover draft post with personal notes still marked &lt;code>draft: false&lt;/code>, and a missing &lt;code>og:image&lt;/code> tag. Both fixed before the first visitor ever landed.&lt;/p>
&lt;p>The site you&amp;rsquo;re reading right now went live clean because three agents checked it in parallel before I touched the deploy button. That&amp;rsquo;s the difference between asking a question and deploying intelligence.&lt;/p>
&lt;hr>
&lt;h2 id="when-all-three-work-together">When All Three Work Together&lt;/h2>
&lt;p>The real power of PAI isn&amp;rsquo;t any single pillar — it&amp;rsquo;s the composition.&lt;/p>
&lt;p>Here&amp;rsquo;s what happened when I needed to go from &amp;ldquo;Obsidian draft&amp;rdquo; to &amp;ldquo;live on augmentedresilience.com&amp;rdquo; without a manual process I&amp;rsquo;d eventually forget or skip.&lt;/p>
&lt;p>&lt;strong>RAG&lt;/strong> assembled the context before I described the problem. From MEMORY it already knew: Namecheap shared hosting doesn&amp;rsquo;t support native &lt;code>git pull&lt;/code> — content has to be pushed via FTP through GitHub Actions. It knew the Obsidian vault was the content source, that &lt;code>images.py&lt;/code> had to run before &lt;code>hugo&lt;/code> to convert image links, and that Python was the right tool for the orchestration script. Not one of those constraints was in my prompt.&lt;/p>
&lt;p>&lt;strong>Skills&lt;/strong> handled the architecture. WebSavant recognized a Hugo deployment pipeline request and routed to a workflow already aware of the full delivery chain: sync posts from Obsidian → convert images → &lt;code>hugo&lt;/code> build → &lt;code>git commit&lt;/code> → &lt;code>git push&lt;/code> → GitHub Actions → Namecheap FTP. It knew the sequence. It knew why each step had to happen in that order.&lt;/p>
&lt;p>&lt;strong>Agents&lt;/strong> built it. An Engineer agent wrote &lt;code>deploy.py&lt;/code> — the script that runs the whole sequence in a single command. An Architect agent designed the GitHub Actions workflow that picks up after the push and handles the Namecheap delivery step automatically. Two agents, two distinct responsibilities, running the job that a solo developer would have spent an afternoon piecing together from Stack Overflow answers.&lt;/p>
&lt;p>The result:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>python3 deploy.py &lt;span style="color:#e6db74">&amp;#34;Add new post&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>That&amp;rsquo;s it. One command. Every post that has ever gone live on this site — including this one — passed through a pipeline that RAG, Skills, and Agents built together. It&amp;rsquo;s not running because I set it up manually. It&amp;rsquo;s running because three systems knew what the job required before I finished explaining it.&lt;/p>
&lt;hr>
&lt;h2 id="the-compounding-effect">The Compounding Effect&lt;/h2>
&lt;p>What makes this architecture meaningful over time isn&amp;rsquo;t any single interaction — it&amp;rsquo;s that the system gets better at helping you with every session.&lt;/p>
&lt;p>The MEMORY system captures learnings. The SIGNALS directory tracks your implicit feedback. When something goes wrong, it logs the full context under LEARNING/FAILURES. When a workflow produces a 9-10 response, that signal is captured too. The system adjusts.&lt;/p>
&lt;p>Generic AI starts fresh every time. PAI compounds.&lt;/p>
&lt;p>I&amp;rsquo;m still early in this — the personal profile files still have template placeholders I haven&amp;rsquo;t filled in, and there are skills I&amp;rsquo;ve barely touched. But even at partial configuration, the system already thinks more like a senior colleague than a search engine.&lt;/p>
&lt;p>That&amp;rsquo;s what RAG, Agents, and Skills make possible together: &lt;strong>an AI that knows your context, activates the right expertise automatically, and scales parallel intelligence for complex work&lt;/strong> — all without you having to manage the machinery.&lt;/p></content></item></channel></rss>