dppdppd/rpm/init-rpm
Claude Code and agent skill by dppdppd/rpm
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
rpm project setup and verification. First run scaffolds docs/rpm/ infrastructure and agent instructions; repeat runs verify and migrate an existing rpm setup to the latest expected layout. User-invocable only — never auto-trigger.
Install
npx vskill@latest install dppdppd/rpm/init-rpmSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
/init-rpm — Full Instructions
Project setup and verification. First run creates rpm context for a project. Repeat runs verify that an existing rpm setup matches the latest expected layout and apply safe migrations.
Run once per project, or run again after installing rpm in a new agent runtime such as Codex. On repeat runs, do not re-ask first-run project context questions unless a required canonical file is missing and the answer cannot be inferred from existing files. If docs/rpm/context.md already exists, read it and augment — do not overwrite. Merge in missing sections only.
If any docs/rpm/ content already exists, treat this as an rpm migration/update, not a brand-new install. Preserve existing rpm files, create only missing canonical files (context.md, past/log.md, present/status.md, future/tasks.org, future/done.org, reviews/), and migrate legacy names when present:
docs/rpm/FUTURE.orgordocs/rpm/future/FUTURE.org->docs/rpm/future/tasks.orgdocs/rpm/PRESENT.mdordocs/rpm/present/PRESENT.md->docs/rpm/present/status.mddocs/rpm/RPM-LOG.mdordocs/rpm/past/RPM-LOG.md->docs/rpm/past/log.mddocs/rpm/RPM.md->docs/rpm/context.md
Narrate as you go. At each phase, tell the user what's about to happen in one short sentence before doing it — users should never be surprised by what /init-rpm creates or writes.
Phase 0: Introduce
Before running anything, detect whether this is a first run:
- If
docs/rpm/does not exist, use the first-run introduction below. - If any
docs/rpm/content exists, this is a repeat run. Use the
verification introduction below, then follow Repeat-run verification mode.
First-run wording (adapt freely):
Do NOT wait for confirmation — this is informative, not gating. Proceed immediately to Phase 1.
Repeat-run wording (adapt freely):
Do NOT wait for confirmation — this is informative, not gating.
Repeat-run verification mode
Run this mode when docs/rpm/ exists, docs/rpm/context.md exists, or any legacy rpm file exists (docs/rpm/RPM.md, docs/rpm/FUTURE.org, docs/rpm/PRESENT.md, docs/rpm/RPM-LOG.md).
- Scan current state. Run the Phase 1 detector and read existing
docs/rpm/context.md, docs/rpm/present/status.md, docs/rpm/future/tasks.org, docs/rpm/future/done.org, and docs/rpm/past/log.md only when they exist.
- Verify canonical rpm files. Create only missing canonical
files/directories:
docs/rpm/context.mddocs/rpm/past/log.mddocs/rpm/present/status.mddocs/rpm/future/tasks.orgdocs/rpm/future/done.orgdocs/rpm/reviews/
- Apply safe legacy migrations. Move legacy names listed above
to the canonical paths only when the canonical target is missing. If both old and new paths exist, do not overwrite; report the old path as leftover legacy state.
- Repair stale configs. Run the unified repair pass — see
the Phase 4a: Repair stale configs section below. It brings .gitignore and AGENTS.md in line with the current rpm layout (wildcard ignore rule + # include: directive for Codex).
- Verify agent guidance layout. If
CLAUDE.mdexists and
AGENTS.md is missing or CLAUDE.md appears to contain general project guidance, ask the Claude guidance migration question from Phase 4. Do not move guidance without confirmation.
- Verify runtime-specific permissions. Run Phase 6 checks, but
only apply permission changes for runtimes that support them.
- Verify current-session activation. Ensure
docs/rpm/~rpm-session-start exists for the current session when the active runtime uses rpm lifecycle hooks.
- Summarize and stop. Print:
``` ## /init-rpm verification complete
Verified: {list} Created: {list or "nothing"} Migrated: {list or "nothing"} Repaired: {list or "nothing"} Needs attention: {list or "nothing"} ```
Do not continue into the first-run Phase 2 question flow after repeat verification mode completes.
Phase 1: Detect Project State
Say to user: "Scanning the project…"
!bash "${CLAUDE_SKILL_DIR}/scripts/detect.sh"
Classify silently (do NOT ask the user):
- GREENFIELD: Empty or near-empty directory
- EXISTING: Has source code, build system, tests
- HAS_AGENT_INSTRUCTIONS: Already has
AGENTS.md,CLAUDE.md,
.cursorrules, or another project-level agent instructions file
Phase 2: Gather Project Context
Say to user: "A few quick questions I can't answer from the code:"
Ask the user ONLY these questions (skip any answerable from codebase). Ask one at a time — each question ends its response, and you wait for the answer before asking the next. Never stack multiple questions in a single response.
- What is this project? (one sentence)
- What's the tech stack? (or confirm what was detected)
- What's the team size? (solo / small 2-5 / medium 5-10 / large 10+)
Do NOT ask more than 3 questions.
Phase 3: Create rpm Infrastructure
Say to user: "Creating the rpm scaffolding under docs/rpm/ — context.md, past/log.md, reviews/ directory."
Create or update these files:
3a. docs/rpm/context.md — project-local rpm context
Injected into every session via the SessionStart hook. Keep it under 30 lines — this is hot context, not documentation.
3b. docs/rpm/past/log.md — append-only history
3c. docs/rpm/reviews/ — plan file directory
Phase 4: Scaffold Missing Project Infrastructure
Say to user: "Checking for missing project files (agent instructions, spec template, trackers) and creating only what isn't already there."
For each item below, check if it exists first. Only create what's missing. Never overwrite existing files.
Agent instructions file and Claude guidance migration
Target 60-120 lines for greenfield, up to 150 for existing projects. If an agent instructions file already exists, augment it only when a short rpm section is clearly missing; never overwrite it.
Default general-purpose target file:
- Codex:
AGENTS.md - opencode:
AGENTS.md - Unknown/generic runtime:
AGENTS.md - Claude Code: use
AGENTS.mdfor general project/agent guidance
and keep CLAUDE.md only for Claude Code-exclusive directives.
If CLAUDE.md exists, do not silently leave general guidance trapped there. Tell the user:
If the user says yes:
- Read
CLAUDE.mdand classify each section:
- General guidance: project summary, commands, architecture,
workflow, testing, guardrails, coding conventions, repository paths, domain notes, rpm process.
- Claude-exclusive guidance: Claude Code tool names, Claude
permissions, Claude hook behavior, Claude native tasks, Claude-specific slash-command mechanics, .claude/ settings, model-specific Claude instructions.
- Create or update
AGENTS.mdwith the general guidance. Preserve
existing AGENTS.md content and merge without duplication.
- Rewrite
CLAUDE.mdso it keeps only Claude-exclusive directives
and includes this policy near the top:
```markdown # Claude Code Directives
General project and agent guidance belongs in AGENTS.md by default. Keep this file limited to Claude Code-exclusive directives: Claude-specific tools, hooks, permissions, native task behavior, and slash-command mechanics.
Claude Code should read AGENTS.md first, then apply the Claude-only directives below. ```
- If there is no Claude-exclusive guidance, leave
CLAUDE.mdas the
policy stub above plus a short pointer to AGENTS.md.
If the user says no, preserve CLAUDE.md exactly as-is. Still create AGENTS.md if missing, using the template below, so future general guidance has a runtime-neutral home.
If only AGENTS.md exists, update it directly. If neither exists, create AGENTS.md from the template below. Do not create CLAUDE.md unless Claude Code-exclusive guidance exists or the project already had CLAUDE.md.
When creating a new AGENTS.md, keep the # include: directive at the very top of the file. It points to a transient session-context file written by the rpm SessionStart hook (docs/rpm/~rpm-context.md, deleted by /session-end). Codex runtimes that don't capture SessionStart stdout pick the context up through this include; Claude Code already receives the same content via the hook itself, so the line is harmless there.
When augmenting an existing AGENTS.md, add this # include: line near the top if it's missing — without it, the SessionStart context won't reach Codex agents in this project.
Spec template (if no spec workflow exists)
Create docs/spec/_template.md:
Present tracker (if none exists)
Create docs/rpm/present/status.md for current project state:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/init-rpm/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/dppdppd/rpm/init-rpm)