.claude/skills/ralph/SKILL.md
Convert PRDs to prd.json format for the Ralph autonomous agent system. Use when you have an existing PRD and need to convert it to Ralph's JSON format. Triggers on: convert to ralph, convert this prd, turn this into ralph format, create prd.json, ralph json, run ralph on this.
npx skillsauth add grenos/gh-viewer ralphInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Converts existing markdown PRDs to the prd.json format that Ralph uses for autonomous execution.
tasks/prd-[feature-name].md (or ask user which PRD)ralph-cc/prd.jsonEach story must be completable in ONE Ralph iteration (one context window).
Ralph spawns a fresh Claude Code instance per iteration with no memory of previous work. If a story is too big, Claude runs out of context before finishing and produces broken code.
If you cannot describe the change in 2-3 sentences, it is too big.
Stories execute in priority order. Earlier stories must NOT depend on later ones.
Correct order:
Wrong order:
{
"project": "BYB React",
"branchName": "ralph/[feature-name-kebab-case]",
"description": "[Feature description from PRD]",
"userStories": [
{
"id": "US-001",
"title": "[Story title]",
"description": "As a [user], I want [feature] so that [benefit]",
"acceptanceCriteria": ["Criterion 1", "Criterion 2", "Typecheck passes"],
"priority": 1,
"passes": false,
"notes": ""
}
]
}
Each criterion must be something Ralph can CHECK, not something vague.
types/Feature.ts with Feature interface"useFeatureStore to /stores with state and actions""Typecheck passes"
passes: false and empty notesralph/If a PRD has stories that are too big, split them:
Original:
"US-003: Create favorites feature UI"
Split into:
{
"id": "US-003",
"title": "Create FavoriteButton component",
"acceptanceCriteria": [
"Create components/FavoriteButton.tsx",
"Props: trackId, isFavorite, onToggle",
"Shows heart icon with fill/outline states",
"Typecheck passes"
],
"priority": 3
},
{
"id": "US-004",
"title": "Create FavoritesList component",
"acceptanceCriteria": [
"Create components/FavoritesList.tsx",
"Renders list of favorited tracks",
"Shows empty state when no favorites",
"Typecheck passes"
],
"priority": 4
},
{
"id": "US-005",
"title": "Integrate FavoriteButton into TrackCard",
"acceptanceCriteria": [
"Import FavoriteButton into TrackCard",
"Connect to useFavoritesStore",
"Position in top-right of card",
"Typecheck passes"
],
"priority": 5
}
Before writing a new prd.json, check if there's an existing one from a different feature:
ralph-cc/prd.json if it existsbranchName differs from the new featureralph-cc/progress.txt has content:
ralph-cc/archive/YYYY-MM-DD-feature-name/prd.json and progress.txt to archiveprogress.txt with fresh headerNote: The ralph.sh script handles this automatically, but if manually updating between runs, archive first.
### US-001: Create Favorite type definitions
**Description:** As a developer, I need TypeScript types for favorites.
**Acceptance Criteria:**
- [ ] Create types/Favorite.ts with Favorite interface
- [ ] Include fields: id, odTid, favoritedAt
- [ ] Typecheck passes
### US-002: Create useFavoritesStore
**Description:** As a developer, I need a store to manage favorites.
**Acceptance Criteria:**
- [ ] Create stores/useFavoritesStore.ts
- [ ] State: favorites array, isLoading
- [ ] Actions: addFavorite, removeFavorite
- [ ] Typecheck passes
{
"project": "BYB React",
"branchName": "ralph/favorites",
"description": "Add ability for users to favorite workout tracks",
"userStories": [
{
"id": "US-001",
"title": "Create Favorite type definitions",
"description": "As a developer, I need TypeScript types for favorites so the feature is type-safe.",
"acceptanceCriteria": [
"Create types/Favorite.ts with Favorite interface",
"Include fields: id, odTid, favoritedAt",
"Typecheck passes"
],
"priority": 1,
"passes": false,
"notes": ""
},
{
"id": "US-002",
"title": "Create useFavoritesStore Zustand store",
"description": "As a developer, I need a store to manage favorites state.",
"acceptanceCriteria": [
"Create stores/useFavoritesStore.ts",
"State: favorites array, isLoading boolean",
"Actions: addFavorite, removeFavorite, setFavorites",
"Typecheck passes"
],
"priority": 2,
"passes": false,
"notes": ""
}
]
}
Tell the user:
PRD converted and saved to ralph-cc/prd.json
Branch: ralph/[feature-name]
Stories: [X] total
Estimated iterations: [X]
To run Ralph:
cd ralph-cc && ./ralph.sh
To monitor progress:
- Watch terminal output
- Check ralph-cc/progress.txt for learnings
- Review git commits as they're created
ralph/ prefix?If the user says "convert to ralph" but no PRD exists in tasks/:
/prd first:No PRD found in tasks/. Would you like me to:
A. Create a PRD first (recommended) - I'll ask clarifying questions and generate tasks/prd-[feature].md
B. Create prd.json directly from your description (skip the markdown PRD step)
For complex features, option A is recommended as it produces better-structured user stories.
documentation
Generate a Product Requirements Document (PRD) for a new feature. Use when planning a feature, starting a new project, or when asked to create a PRD. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out.
testing
Coding principles for simplicity, clarity, and surgical precision. Use when you want Claude to think before coding, keep solutions minimal, make surgical changes, and define verifiable success criteria. Triggers on: karpathy mode, think before coding, simplicity first, surgical changes.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.