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.


GPL-2.0 · R-fx Networks — the team behind APF, LMD, and BFD

This site uses Just the Docs, a documentation theme for Jekyll.