Quickstart — RDF on Your Repo in 5 Minutes
No rfxn context required. You need git, bash 3.2+ (macOS system bash works — CI-verified), jq, and an AI coding runtime — Claude Code, Codex, or Antigravity CLI (Gemini CLI is supported as a legacy tier). Examples below use Claude Code.
1. Install RDF (once per machine)
git clone https://github.com/rfxn/rdf.git ~/rdf && cd ~/rdf
bin/rdf generate claude-code # build adapter output from canonical sources
bin/rdf deploy claude-code # symlink deploy (~/.claude/skills/<n> -> output/skills/<n>; regeneration auto-updates)
Verify:
bin/rdf doctor
# expect: 0 FAIL — WARNs are fine on a fresh install
Prefer a one-command install? RDF is also a Claude Code plugin: /plugin marketplace add rfxn/rdf then /plugin install rdf@rdf. Plugin commands are namespaced (/rdf:r-start instead of /r-start). Note: a SessionStart hook bootstraps the ~/.rdf/state/ helpers on the plugin’s first session start after install; the state-backed commands (r-spec, r-plan, r-build, r-ship, r-status, r-save, r-refresh, r-context-audit, r-vpe, r-util-mem-compact) run in a degraded mode only before that first restart (parity details). Hooks auto-register on the plugin path (declared in plugin.json); the symlink deploy below is the mode that needs a manual merge of adapters/claude-code/hooks/hooks.json into ~/.claude/settings.json (see rdf deploy help). Hooks and the status line also require jq.
2. Initialize your project
Point rdf init at any existing project directory — it fails with directory not found if the path does not exist, so clone any small repo or use a project you already have (the transcript below is a two-file Flask app). It auto-detects the stack and scaffolds governance:
bin/rdf init ~/projects/my-app
Real output from a plain Flask project:
rdf: auto-detected profiles: python
rdf: initializing: my-app (profiles=python, version=0.1.0)
rdf: created CLAUDE.md (profiles=python, sections=18)
rdf: added 6 entries to .git/info/exclude
rdf: created .rdf/{governance,work-output,memory,scopes}
rdf: created .rdf/docs-level (floor)
rdf: copied reference docs from 2 profile(s)
rdf: created SECURITY.md
rdf: created CONTRIBUTING.md
rdf: created MEMORY.md placeholder
rdf: init complete: my-app
What you now have:
| Artifact | Purpose |
|---|---|
CLAUDE.md | Project conventions the AI must follow (stack-specific) |
.rdf/governance/ | Domain reference docs pulled from matching profiles |
.rdf/memory/, .rdf/work-output/ | Session state + agent output (never committed) |
SECURITY.md, CONTRIBUTING.md | Community-health starters (edit to taste) |
Force a stack instead of auto-detect with --type (e.g. --type rust,infrastructure); preview with --dry-run.
3. Start a session
Open your project in Claude Code and run:
/r-start
You get a project dashboard: version, branch, plan progress, in-flight work, warnings. From there the pipeline is four commands:
/r-spec design: research + brainstorm -> spec + adversarial review
/r-plan decompose spec into a phased plan
/r-build execute phases via TDD with quality gates
/r-ship preflight -> verify -> release
Small change? Skip the pipeline — governance and quality gates apply to normal sessions too. Run /r-verify for a QA pass or /r-review for an adversarial review of any diff.
4. Keep it healthy
bin/rdf doctor ~/projects/my-app # convention drift, stale state, sync health
Where next
Something break in the first five minutes? That’s a bug — open an issue.