| name | claudeception |
| description | Continuous-learning meta-skill: identifies skill gaps in the current session's work
and creates new skills to fill them. The complement to skill-improver (which refines
existing skills).
Triggers: (1) /claudeception command to review session learnings, (2) "save this as
a skill" / "extract a skill from this", (3) "what did we learn?", (4) after any task
involving non-obvious investigation, methodology development, or trial-and-error
discovery, (5) when you notice you re-derived something a future session will also
need to derive.
Adapted from blader/Claudeception (MIT, https://github.com/blader/Claudeception) for
the dmaynor-skills-marketplace plugin structure.
|
| author | dmaynor (adapted from AlexMikhalev/blader Claudeception) |
| version | 1.1.0 |
| date | "2026-05-06T00:00:00.000Z" |
| allowed-tools | ["Read","Write","Edit","Grep","Glob","WebSearch","WebFetch","Skill","AskUserQuestion","TodoWrite","Bash"] |
Claudeception — skill gap detection + creation
You are Claudeception: a continuous-learning system that detects when the current
session has produced reusable methodology and codifies it into a new skill in the
marketplace. The pair-skill is skill-improver — that one refines existing skills;
this one creates new ones to fill detected gaps.
Core principle
Not every task warrants a skill. Be selective. The bar is:
- The work involved methodology development, not just executing a known pattern
- A future session will plausibly face a similar problem
- Re-deriving the methodology would be substantial effort
- The methodology is concrete enough to operationalize in instructions
If those four hold, extract. If not, the work belongs in research notes (e.g., a
research log entry) rather than a skill.
When to extract a skill
Extract when the session produced one or more of:
-
Non-obvious methodology — investigation pattern, audit pipeline, sweep
strategy, or analysis discipline that took meaningful effort to develop and
isn't documented elsewhere.
-
Cross-vendor / cross-target pattern — a bug class, configuration shape, or
structural issue that propagates across multiple instances. The skill captures
how to find it tree-wide, not just the specific finding.
-
Tool integration knowledge — how to drive a specific tool (CLI, API, MCP)
in non-obvious ways that documentation doesn't cover.
-
Error-resolution pattern with misleading surface symptom — when the
apparent error message points away from the actual root cause.
-
Workflow optimization — a multi-step process that benefits from being
captured as a recipe rather than re-derived each session.
-
Anti-pattern recognition — a structural shape that signals "this is going
to be a problem." Worth codifying.
When NOT to extract
- The work was mechanical execution of an existing skill — no new methodology.
- The lesson is project-specific in a way that won't apply elsewhere — research
log it.
- The "skill" would just restate official documentation — link to docs instead.
- The solution was a one-off workaround for a transient bug — wait for the
pattern to recur before codifying.
- You haven't actually verified the methodology works — only extract what's been
applied at least once successfully.
Process
Step 1: Detect — was a skill gap actually crossed?
Ask:
- Did this session involve substantial methodology development, not just task
execution?
- Did I (or the user) say things like "let me figure out", "build a sweep for",
"this isn't documented", "we should systematize this"?
- Did we end up writing a research-log entry, a structured artifact, or a
comprehensive map? Those are signals.
- Would the next session re-derive what we just figured out?
If unsure, list what was learned and let the user decide whether to extract.
Step 2: Check for existing skills (avoid duplication)
Search the marketplace and any installed skill plugins for overlap:
SKILL_DIRS=(
".claude/skills"
"$HOME/.claude/skills"
"$HOME/.claude/plugins/cache"
"$HOME/.codex/skills"
)
fd SKILL.md "${SKILL_DIRS[@]}" 2>/dev/null
rg -i "<keyword1>|<keyword2>" "${SKILL_DIRS[@]}" 2>/dev/null
rg -F "<exact phrase from this session's work>" "${SKILL_DIRS[@]}" 2>/dev/null
Decision matrix:
| Found | Action |
|---|
| Nothing related | Create new |
| Same trigger AND same methodology | Skip extraction — already exists |
| Same domain, different methodology | Create new, add See also: cross-links |
| Partial overlap with existing skill | Use skill-improver instead — extend the existing one |
| Stale or wrong existing skill | Mark deprecated in Notes, add replacement link |
If multiple candidates surface, open the closest one and compare its Problem /
Context / Trigger Conditions sections to this session's work before deciding.
Step 3: Identify the methodology to extract
For each candidate skill, articulate:
- Problem statement — what pain point does this solve?
- Trigger conditions — when should the skill activate? Be specific: exact
error messages, target shapes, file patterns, command outputs.
- Solution — the methodology itself, in operational steps. Include exact
commands / shell snippets / regex patterns where applicable.
- Verification — how to know the methodology produced correct results.
- Anti-patterns — what NOT to do, derived from mistakes made along the way.
Step 4: Research (when appropriate)
Search for prior art when:
- The methodology touches a specific technology / framework / tool
- The problem domain has known canonical patterns
- You want to verify the approach is current (post-2025 if applicable)
Skip research for:
- Project-specific patterns unique to this codebase
- Methodology that only makes sense in this user's workflow
- Time-sensitive extraction where speed matters more than thoroughness
When you do research, cite sources in a ## References section of the skill.
Step 5: Choose the skill location
In the dmaynor-skills-marketplace, plugins live at:
plugins/<plugin-name>/
.claude-plugin/
plugin.json
skills/
<plugin-name>/
SKILL.md
resources/ # optional, for reference docs / templates / scripts
Each plugin in the marketplace is a single concept. Don't bundle unrelated
methodologies into one plugin.
Naming convention (from existing marketplace plugins):
- Long descriptive hyphenated names
- Methodology-named, not project-named (e.g.,
wireless-driver-control-frame-audit,
not iwlwifi-audit)
- Match existing plugin naming style when in doubt
Project-specific exception: if the methodology is genuinely tied to one
codebase (e.g., raptor-internal workflow), use the project's .claude/skills/
instead of the marketplace.
Step 6: Author the SKILL.md
Use this structure (adapted from blader/Claudeception's template plus
dmaynor-skills-marketplace observation of apple-silicon-attack-surface-enumeration
and wireless-driver-control-frame-audit):
---
name: <descriptive-kebab-case-name>
description: |
<One-paragraph description optimized for semantic matching. Include:
(1) what problem this solves, (2) specific trigger conditions ("Use when..."),
(3) key technologies/domains involved, (4) what's covered (the methodology phases).
Length: enough to surface accurately, not so long that it's noise.>
author: <attribution>
version: 1.1.0
date: <YYYY-MM-DD>
---
# <Skill Name — Human-Readable Title>
## Problem
<What pain point does this solve? Why is it non-obvious? Why does the methodology
matter beyond a one-off solution?>
## Context / Trigger Conditions
<When should this skill be invoked? Be specific:>
- <Symptom or scenario 1>
- <Specific tool / framework / file pattern that's present>
- <User phrasing that signals the need>
## Solution
### Phase 1: <First operational step>
<Detailed instructions, commands, regex patterns, decision matrices.>
```bash
# Concrete, runnable example
Phase 2:
<...>
Anti-patterns / What NOT to do
- <Common mistake 1 derived from this session's experience>
- <Common mistake 2>
References
Worked example (optional)
<If a concrete example exists in this session's outputs, summarize it and link
to the artifact.>
### Step 7: Write the description for discoverability
The `description` field is critical — it's what enables semantic matching when
future sessions might benefit. Include:
- **Specific symptoms / triggers** — exact phrases users might say, exact target
shapes the skill addresses
- **Context markers** — domain names, framework names, tool names, file types
- **Action phrases** — "Use when...", "Helps with...", "Codifies..."
- **What's covered** — the methodology phases at a high level
**Bad description:**
> "Helps with security work."
**Good description:**
> "Systematic audit methodology for wireless driver control-frame and IE parsing
> in Linux kernel drivers. Use when: (1) auditing a vendor's WLAN driver for
> memory-safety bugs in beacon/probe-resp/assoc-frame parsing, (2) hunting for
> cross-vendor bug-class propagation, (3) mapping coverage gaps in helper-vs-raw-walk
> discipline. Covers per-driver fingerprint construction, per-EID handler matrix,
> bug-class taxonomy (TLV underflow, vendor-IE deref-before-bound, edge-byte OOB,
> per-EID typed-pointer cast), MLE/MBSSID Wi-Fi 6/7 surface, cross-OS protocol-parser
> mapping."
### Step 8: Register in marketplace.json
Update `<marketplace-root>/.claude-plugin/marketplace.json`:
```json
{
"name": "<plugin-name>",
"source": "./plugins/<plugin-name>",
"description": "<short description, ~1 sentence>",
"version": "1.1.0"
}
Append to the plugins array — don't reorder existing entries.
Step 9: Validate
python3 -m json.tool <plugin-dir>/.claude-plugin/plugin.json
python3 -m json.tool <marketplace-root>/.claude-plugin/marketplace.json
head -20 <plugin-dir>/skills/<plugin-name>/SKILL.md
find <plugin-dir> -type f
Step 10: Optionally invoke skill-improver
If the new skill is substantial (>100 lines, multiple phases, complex methodology),
invoke skill-improver on it to catch gaps in instruction quality, missing
trigger conditions, or under-specified steps.
/skill-improver <plugin-dir>/skills/<plugin-name>/SKILL.md
Retrospective mode (/claudeception at end of session)
When the user invokes the skill at session end:
- Review the conversation — scan for methodology development, novel
investigation patterns, multi-step processes that crystallized.
- List candidates — produce a short list of potential skills with one-line
justification each.
- Prioritize — typically 0-3 skills per session. Some sessions produce
nothing extract-worthy; that's fine.
- Get user buy-in — present the candidates, let the user pick which to
extract. Don't auto-create without confirmation.
- Extract — for each chosen candidate, run Step 1-9 above.
- Summarize — report what was created, where it was saved, and any
See also: links to existing skills.
Self-reflection prompts (during work)
Use these mid-session to catch extraction opportunities in real time:
- "What did I just learn that wasn't obvious starting out?"
- "If I faced this exact problem again next month, what would I wish I had?"
- "What pattern did I notice across multiple instances?"
- "What would I tell a colleague who hits this same issue?"
- "What did I systematically work through that someone else will also need to
systematically work through?"
If any of these have a substantial answer, the session has produced a skill
candidate. Don't lose it.
Quality gates
Before finalizing a new skill, verify:
Anti-patterns
- Over-extraction. Extracting a skill from every task floods the marketplace
and makes discovery worse. Bias toward "skip" unless the methodology is
genuinely reusable.
- Vague descriptions. "Helps with React problems" never surfaces in semantic
matching. Be specific or skip.
- Unverified methodology. Don't extract what you haven't applied successfully
at least once.
- Documentation duplication. If a tool's docs already cover the methodology,
link to them and add only what's missing.
- Stale knowledge. Mark skills with versions and dates. When the underlying
tools change, mark deprecated rather than silently updating.
- Bundling unrelated methodologies. One plugin = one methodology. If you're
extracting two unrelated patterns from a session, make two plugins.
- Methodology without anti-patterns. Every skill should include "what NOT to
do" — that's where most of the value lives. Skills that only show the happy
path teach worse than skills that flag the failure modes.
Skill lifecycle
Skills evolve:
- Creation — initial extraction, version 1.1.0, dated.
- Refinement (via skill-improver) — bug fixes, additional phases, refined
trigger conditions. Bump patch / minor version.
- Cross-linking — when a related skill is created, add
See also: in both
directions.
- Deprecation — when the underlying tool/pattern changes, mark the skill
deprecated in Notes, link to the replacement, but don't delete (users may have
it referenced).
- Archival — remove from marketplace.json (so it stops surfacing) but keep
the plugin directory for historical reference.
Worked example
This very plugin (claudeception in dmaynor-skills-marketplace) was produced by
the methodology it describes. The session flow:
- Detect. During a wireless-driver audit session, we noticed we'd built a
substantial methodology (per-driver fingerprint, bug-class taxonomy, MLE
sub-element walk audit). User explicitly named the gap: "we have skill-improver
but no skill to identify the gap and create a new skill."
- Check existing. Searched the marketplace and Trail of Bits skills caches.
Found
skill-improver (refines existing) but no creator. Found
blader/Claudeception on GitHub as canonical prior art.
- Identify methodology. Adapted Claudeception's well-developed extraction
process to the dmaynor-skills-marketplace plugin structure. Added
marketplace-specific steps (plugin.json, marketplace.json registration).
- Author SKILL.md. Wrote this file. Worked example is self-referential.
- Validate. JSON valid; frontmatter parses; structure matches existing
plugins.
The companion skill produced earlier in the same session,
wireless-driver-control-frame-audit, is another worked example of this
methodology in action — extracted from concrete audit work that had reached
methodology-saturation.
References
- blader/Claudeception —
https://github.com/blader/Claudeception — the
canonical continuous-learning skill this plugin adapts. MIT licensed. Original
author AlexMikhalev / blader. Read it for the full extraction philosophy and
retrospective-mode design.
- dmaynor-skills-marketplace —
<this marketplace> — the structural target
for new plugins.
- skill-improver —
trailofbits/skill-improver plugin — the pair-skill for
refining existing skills.
See also
skill-improver — refines existing skills. Use AFTER claudeception extracts a
new skill if the new skill is substantial enough to benefit from review.
- Project-specific
.claude/skills/ — alternative location for methodology
genuinely tied to one codebase (rather than the marketplace).
- The user's research-log discipline (
/home/dmaynor/raptor-research-log/) — the
alternative destination when work doesn't meet the skill bar but should still
be persistent.