Markdown Converter
Agent skill for markdown-converter
This project uses the **Ralph Loop Framework v2.0** for autonomous AI development.
Sign in to like and favorite skills
This project uses the Ralph Loop Framework v2.0 for autonomous AI development.
Two variants are available: Shell (bash) and PowerShell. Both have identical functionality and prompts.
prd.md with requirementsfeature_list.json (50-200 atomic features)./ralph.sh init (Shell) or .\ralph.ps1 init (PowerShell)./ralph.sh validate (Shell) or .\ralph.ps1 validate (PowerShell)./ralph.sh run (Shell) or .\ralph.ps1 run (PowerShell)Ralph Loop is an iterative AI coding methodology where:
"Ralph is a Bash loop." — Geoffrey Huntley
Both variants follow the same structure. Use
shell/ for bash or powershell/ for PowerShell:
claude-code/ ├── shell/ # Bash variant │ ├── ralph.sh # Main entry point │ ├── prompts/ # Agent prompts (references .sh scripts) │ └── .claude/ │ ├── skills/ralph/ # Companion .sh scripts + SKILL.md │ └── rules/ # Auto-loaded coding rules │ ├── powershell/ # PowerShell variant │ ├── ralph.ps1 # Main entry point │ ├── prompts/ # Agent prompts (references .ps1 scripts) │ └── .claude/ │ ├── skills/ralph/ # Companion .ps1 scripts + SKILL.md │ └── rules/ # Auto-loaded coding rules │ └── (shared docs: README.md, QUICKSTART.md, CLAUDE.md)
After copying to your project, auto-created files include:
project/ ├── prd.md # Your requirements (YOU write this) ├── feature_list.json # Features with status tracking ├── validation-state.json # Validation coverage tracking ├── claude-progress.txt # Iteration log with failure details └── .claude/ ├── skills/ # Auto-discovered skills │ ├── ralph/ # Core Ralph loop skills │ │ ├── get-next-feature/ │ │ ├── update-feature-status/ │ │ ├── increment-feature-attempts/ │ │ ├── get-feature-stats/ │ │ ├── prd-author/ # User-invocable as /prd-author │ │ └── validate-prd/ │ ├── test-driven-development/ # TDD Red-Green-Refactor │ ├── docs-lookup/ │ ├── nuget-manager/ │ └── get-branch-name/ └── rules/ # Auto-loaded coding rules ├── csharp.md └── playwright-dotnet.md
prd.mdYour Product Requirements Document. Include:
feature_list.jsonTracks all features with:
status: "pending" | "in_progress" | "complete" | "blocked"attempts: Number of implementation attemptslast_error: Error from most recent failed attemptsource_requirement: (Optional) Which PRD requirement this coversvalidation-state.jsonTracks validation coverage:
coverage_percent: How much of the PRD is coveredgaps: Requirements that need featuresfeatures_added: Features added by validatorclaude-progress.txtDetailed log of each iteration:
.claude/skills/)Skills are auto-discovered by Claude Code from
.claude/skills/. Each skill has a SKILL.md with YAML frontmatter defining name, description, and user-invocable.
ralph/)These are used internally by the framework agents during the init/validate/implement loop:
/prd-author) — Interactive PRD authoring assistant. Guides you through creating a structured prd.md from your project idea.Core Ralph skills include companion scripts for both environments:
Shell (.sh)
.claude/skills/ralph/get-next-feature/get-next-feature.sh .claude/skills/ralph/update-feature-status/update-feature-status.sh <feature_id> <status> .claude/skills/ralph/increment-feature-attempts/increment-feature-attempts.sh <feature_id> "<error>" .claude/skills/ralph/get-feature-stats/get-feature-stats.sh
PowerShell (.ps1)
.claude\skills\ralph\get-next-feature\get-next-feature.ps1 .claude\skills\ralph\update-feature-status\update-feature-status.ps1 -FeatureId F001 -Status in_progress .claude\skills\ralph\increment-feature-attempts\increment-feature-attempts.ps1 -FeatureId F001 -ErrorMessage "Build failed" .claude\skills\ralph\get-feature-stats\get-feature-stats.ps1
.claude/rules/)Rules are auto-loaded by Claude Code based on file path patterns. When working with files matching a rule's
paths: glob, the rule's coding standards are automatically active.
| Rule | Applies To | Purpose |
|---|---|---|
| | C# coding conventions |
| , | Playwright .NET test patterns |
To add custom rules, create a new
.md file in .claude/rules/ with YAML frontmatter:
--- paths: - "**/*.your-pattern" --- Your coding standards here...
./ralph.sh auto # Automatic (all phases) ./ralph.sh author # PRD authoring assistant ./ralph.sh init # Phase 1: PRD -> features ./ralph.sh validate # Phase 2: Ensure coverage ./ralph.sh run # Phase 3: Implement ./ralph.sh status # Check status
.\ralph.ps1 auto # Automatic (all phases) .\ralph.ps1 author # PRD authoring assistant .\ralph.ps1 init # Phase 1: PRD -> features .\ralph.ps1 validate # Phase 2: Ensure coverage .\ralph.ps1 run # Phase 3: Implement .\ralph.ps1 status # Check status # PowerShell-specific flags .\ralph.ps1 run -v -DangerouslySkipPermissions -Stream .\ralph.ps1 auto -MaxIterations 100 -CoverageThreshold 100
Completion is data-driven — the loop queries
feature_list.json directly after each iteration. No magic strings or signal files.
"status": "complete" in validation-state.json → Coverage met, proceed to implementation"status": "blocked" → Human review needed (ambiguous requirements)The loop checks feature statuses in
feature_list.json after each iteration:
"complete" (none pending/in_progress/blocked) → Loop exits successfully"blocked" → Loop exits, human intervention neededBecause completion is derived from the data, you can add new features at any time:
feature_list.json with "status": "pending"./ralph.sh run — the loop detects remaining work and continuesThe framework allows:
The framework prevents:
Always run in a git repository for easy rollback.
"The technique is deterministically bad in an undeterministic world. It's better to fail predictably than succeed unpredictably." — Geoffrey Huntley
Failures are data. Each failed attempt teaches the next iteration what NOT to do.
The Validation Phase adds an extra layer: ensuring that what we BUILD matches what was REQUESTED. No more lost requirements.