Memory

claudify

Try it

Convert functionality into Claude Code automations (Agent, Skill, Rule, Hook, Command)

What it does

Routes functionality to the right Claude Code automation type — Agent, Skill, Rule, Slash Command, or Hook — via a decision matrix, candidate scanning, merge logic, and global-vs-project scope routing. Includes subagent dispatch rules for context-heavy reads, AskUserQuestion patterns with multiSelect rules, and a Ralph Mode branch for autonomous loops. Three companion topics cover self-improvement, knowledge persistence, and ScheduleWakeup polling discipline for 5+ minute background dispatches.

When to use it

  • Pick the right Claude Code automation type for a workflow
  • Run a self-improving review loop after a session
  • Persist session learnings to docs and memory
  • Enforce polling discipline on long-running background dispatches

The skill document

Claudify

Guide users to convert functionality into the appropriate Claude Code automation type (Agent, Skill, Rule, Command, or Hook).

Topic Dispatch

When this skill is invoked with a topic specifier (e.g., Skill("claudify", "improve") or /claudify improve), load and follow ONLY the matching topic file below — do NOT default to the creation-wizard body (Decision Matrix / Workflow) in this SKILL.md. A bare invocation (no topic, agentify, or create) uses the creation workflow below.

Topic argFilePurpose
create / agentify / (none)this SKILL.md (below)Convert functionality into an automation (Agent/Skill/Rule/Command/Hook)
improveimprove.mdSelf-improving loop: retrospect + hook/skill review + pattern detect
persistpersist.mdKnowledge persistence: documentation + memory save
background-pollingbackground-polling.mdScheduleWakeup/timeout polling discipline for 5min+ background dispatches

For improve / persist / background-polling, Read that topic file and follow it — the Decision Matrix and creation Workflow below apply only to the create/agentify/(none) creation path. For any other/unrecognized topic arg, fall back to the create/agentify/(none) creation workflow below rather than assuming a matching topic file exists.

Decision Matrix

TypeWhen to useImplementation
AgentHigh autonomy, multi-tool.claude/agents/name.md
SkillDomain expertise, logic.claude/skills/name/SKILL.md
RuleConstraints, styling.claude/rules/name.md
Slash CommandUser types /cmdSimple prompt templates
HookEvents (tool use, etc)Automation on actions

Full comparison: automation-decision-guide.md

Workflow

Step 0: Output-size routing (HARD STOP — before Step 1)

Before any large-output operation, decide: inline vs subagent vs script. Parent context bloat from claudify itself reduces the budget available for the actual automation creation work.

Routing decision matrix

OperationInline OK?Dispatch to subagent?Script?
Read 1 resource file (template/guide)✅ Inline——
Read 2+ large resource files (>200 lines each)❌✅ general-purpose subagent—
Scan transcript for automation patterns (no target)❌✅ Explore or general-purpose—
Enumerate ~/.claude/plugins/marketplaces/*/plugins/*/❌—✅ find / ls 1-liner
Create single agent/rule/command file (inputs known)✅ Inline——
Create multi-topic skill (writer + multiple topic files)❌✅ skill-writer subagent—
Marketplace remote search (WebFetch + parsing)❌✅ general-purpose subagent—

Don't / Do table

#Don'tDo
1Read resources/agent-templates.md (358 lines) + automation-decision-guide.md + askuserquestion-patterns.md inline before creating one agentDispatch general-purpose subagent: "Read these 3 templates and create agent at `` with name=X, tools=Y, description=Z. Return the created file path only."
2Inline scan transcript for candidates by Read-ing the full session JSONLDispatch Explore subagent: "Find verbose tool-output patterns (>500 tokens repeated 2+ times) in conversation. Return candidate list (label + 1-line description) under 200 words."
3Inline Glob + Read all marketplace plugin SKILL.md filesBash 1-liner: find ~/.claude/plugins/marketplaces/*/plugins/*/ -name SKILL.md -exec head -3 {} \; returns names without body
4"Just one more Read" cumulative inline readingQuantify: if next operation expected to add >2K tokens to parent context AND result is not the deliverable itself, dispatch subagent
5Dispatch subagent with vague prompt ("create the agent")Subagent prompt must include: target file path, name, tools, model, description (single-line YAML), trigger keywords. Return only the file path

Self-check (before each Read/Glob/WebFetch in claudify workflow)

  1. Is the read result the deliverable, or intermediate context that the subagent's parent doesn't need?
  2. Will this Read + subsequent Reads cumulatively add >2K tokens to parent context?
  3. Is the operation parallelizable (multiple Reads, multiple files)?
  4. If 1=intermediate OR 2=yes OR 3=yes → dispatch subagent

Subagent return contract: subagent returns only the deliverable path(s). No template dump, no intermediate analysis, no confirmation text.

Step 1: Identify Candidates

If no target specified ("agentify" alone):

  • Review conversation for automation candidates
  • Look for: verbose outputs, multi-step workflows, repeated patterns
  • MUST use multiSelect: true when presenting candidates (users often want multiple)

If target specified:

  1. Check local marketplaces first:
    • ~/.claude/plugins/marketplaces/*/plugins/*/
    • Use /skill-dedup command to find overlaps
  2. If not found locally, search remote: WebFetch https://claudemarketplaces.com/?search=[keyword]
  3. If found, recommend existing or extend. If not, proceed to create

Step 1 Guards (HARD STOP):

  • No immediate-execution options: AskUserQuestion options must all be automation types (Skill/Agent/Rule/Hook/Command). "Just execute now" or "Execute without automation" options are forbidden — claudify's purpose is creating/extending automation, not executing the underlying task.
  • Scope check when extending existing skills: Before proposing to extend a global skill (~/.claude/skills/), verify the change is project-agnostic. Project-specific variables, hostnames, or environment values must NOT be added to global skills. If the automation is project-specific, recommend a project-level skill (.claude/skills/) or a project rule (.claude/rules/) instead.

Step 1.5: Merge logic / Grouping / AskUserQuestion

When duplicate or similar automation candidates are found, confirm grouping and merge options with the user using AskUserQuestion.

Grouping criteria:

  • Similarity in model or functionality
  • Contextual similarity
  • Keyword grouping (e.g., "openclaw management")

Merge criteria:

ConditionRecommendation
3+ similar topicsmulti-topic Skill
Different triggers + same skillGeneral Agent
Simple instructions + Bash scriptSkill (Agent with skill)
Complex multi-step + multiple toolsAgent

AskUserQuestion (merge options): "Candidates found. How should I structure them?" options:

  • "Merge related topics into one multi-topic skill (e.g., openclaw: exec/gateway/test)"
  • "Create separate agents for each functionality"
  • "Skill + Agent combination (instruction=skill, implementation=agent)"

PROHIBITED: Do not create separate agents without merging candidates into a logical structure if they are related.

Step 2: Gather Requirements

Use AskUserQuestion to clarify:

  • Triggers: Commands or conditions that activate the automation
  • Tools: Required tools or skills
  • Scope: Global (~/.claude/) / Project (.claude/)
  • Language: code comments, variable names, documentation

Question patterns: askuserquestion-patterns.md

Step 3: Recommend Type

Use the automation-decision-guide.md to recommend the best type.

Step 4: Create

CRITICAL: Follow the creation method for each type. Apply Step 0 routing first — multi-template Reads or transcript scans dispatch to subagent.

Skill with scripts (If scripts are required, use skill directory structure):

skill-name/
├── SKILL.md          # frontmatter + documentation + node scripts/xxx.js (mode)
├── topic-a.md        # topic file
├── topic-b.md        # topic file
└── scripts/
    └── xxx.js        # actual logic (temp location, permanent storage)
  • Do not create tmp_*.js in current directory; move to scripts/
  • Call in SKILL.md: node /scripts/xxx.js
  • Use relative path from __dirname in scripts
  • Separate implementation logic and topic files

Skill (no scripts): MUST use skill-writer (do NOT create directly)

Skill tool: skill: "project-automation:skill-writer"

Agent: Create in ~/.claude/agents/ or .claude/agents/

  • agent-templates.md

Rules: Create in ~/.claude/rules/ or .claude/rules/

  • rules-guide.md

Slash Command: Create in ~/.claude/commands/ or .claude/commands/

  • slash-command-syntax.md

Hook: Add to settings.json

  • hook-examples.md

Plugin (open source):

  • plugin-creation.md

Step 5: Validate

  1. Register or copy to target location
  2. Reload Claude Code:
    1. Manual sync to cache, OR
    2. New session to reload

Auto-sync hook: plugin-cache-sync.sh syncs marketplace to cache on Edit/Write

Output Guidelines

Keep responses concise:

  1. List identified candidates (with multiSelect)
  2. Summarize the recommended structure (Merge logic)
  3. Provide the creation plan
ContextmultiSelect
Automation candidatestrue (users often want multiple)
Merge options (Complexity)false (merge vs separation - mutually exclusive)
Type selectionfalse (mutually exclusive)
Scope selectionfalse (one location)
Feature selectiontrue (additive choices)

Success Case

Scenario (2026-03-09):

  • Found 3 openclaw-related functions
  • Proposed 3 options for merging
  • Result: Implementation success, user satisfied

Key factors:

  1. Identification of 3 functions
  2. "Merge?" AskUserQuestion
  3. merging skills using skill-writer (multi-topic)

Ralph Mode (AskUserQuestion bypass)

Detection condition: do not judge by .ralph/ presence alone. Ralph mode requires all of:

  1. .ralph/ directory exists AND
  2. Environment variable RALPH_LOOP=1 is set (Ralph autonomous loop sets this)

Even when .ralph/ exists, an interactive user session is normal mode — AskUserQuestion works as usual.

Workflow Change:

StepUser InteractionWorkflow
Step 1: Auto-detectAskUserQuestion (multiSelect)Summary info to .ralph/improvements.md
Step 1.5: Merge logic / Structure-improvements.md recording
Step 2: RequirementsAskUserQuestiontrigger/scope recommendation to improvements.md
Step 3: Type recommendationRecommend onlyimprovements.md recording
Step 4: ImplementationDirect actionPROHIBITED - Use [NEEDS_REVIEW] tag
Step 5: ValidationValidationAuto validation (after changes are complete)

Scope note (HARD STOP): this table governs the creation workflow only (new agent/skill/rule/hook). It does not extend to passive, no-ask persistence steps elsewhere in this skill's topics (improve/persist RAG session/discovery-chunk store) — those follow the narrower carve-out in persist.md's own "Ralph Mode" section, not this table. Do not generalize "Ralph Mode = record-only, nothing runs" from this table alone.

improvements.md recording example

## Agentify Candidate (Implementation)

### [Candidate Name]
- **Context**: [Why it was found]
- **Recommended Type**: [Skill/Agent/Hook/Slash Command]
- **Recommended Structure**: [Topics]
- **Rationale**: [Why it's recommended]
- **Tag**: [NEEDS_REVIEW]

Self-Improvement

After changes are complete, Self-improve based on conversation:

  1. Identify failure and workaround patterns

Questions people ask

Which automation types are supported?
Agent, Skill, Rule, Slash Command, and Hook, plus Plugin for open-source distribution. A decision matrix maps use cases to the appropriate type.
How are related candidates handled?
When multiple candidates are found, the skill groups them by similarity and offers merge options via AskUserQuestion before creation. Multi-topic skills, agents, or skill-plus-agent combinations are the typical recommendations.
What does the background-polling topic enforce?
For background dispatches expected to run five minutes or longer, it mandates ScheduleWakeup/timeout polling discipline rather than synchronous waits.

Related skills

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván559 installs18 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai22 installs8 stars

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

More from drumrobot

Browse all skills

Run a 4-stage research → plan → review → TDD-implement workflow for code changes with optional PR capture.

by drumrobot27 installs

Manage Claude Code sessions: lookup, search, repair, migration, compression, and cleanup in one command surface.

by drumrobot26 installs

Manage Git worktrees, ghq clones, SourceGit registration, and multi-account credentials with safety checks.

by drumrobot26 installs

Diagnose agent mistakes, harden the prompt that caused them, and finish the original task.

by drumrobot25 installs

Convert plans and code changes into GitHub issues and PRs, with auth handling, dependency tracking, and pre-publish scans.

by drumrobot18 installs

Manage the full lifecycle of Claude Code skills: create, lint, merge, convert, upgrade, and discover them.

by drumrobot25 installs