Reference

What you get

Every document, skill, hook and stack seam riprap ships, catalogued. You can read all of it before installing anything.

riprap is two halves. The plugin carries 21 guardrail documents, twelve skills, twelve hook registrations and one agent, and puts no file in your repository. /riprap:install adds the half that has to live in the repo: the guardrail scripts, their shared pattern libraries, the git hooks, and the four stack commands the hooks call.

Nothing on this page needs an installation to read. That is the point of it — deciding whether to hand a tool write access to your repository is easier when you can see the inventory first.

The guardrail documents

Grouped by task rather than alphabetically, mirroring the router Claude Code injects and Codex skills load on demand. That grouping is deliberate: git.md and git-hooks.md sound interchangeable and cover different problems, and the file you want when CI is red is not named after CI in most repositories. Guessing from filenames costs more than reading a map.

The router also carries a line count next to each entry. Those are there so the model can budget context — two 80-line files usually beat one 215-line file when either would answer the question — and they are left off this page, because a human reader gets nothing from them and they would rot on every edit of every document.

Starting work

Writing code

Testing

Committing and merging

Security

Extending the guardrails

All 21 guardrail documents, alphabetically

The other view: what to scan when you want to be sure you have seen everything.

Document Covers
ci-hygiene.md Re-running CI without corrupting the result or burning the budget
code-review.md Reviewing a diff before the pull request, and staying with it after
code-style.md Naming, structure, comments — what a formatter cannot decide
communication-preferences.md How long a conversational reply should be, and what to cut
design.md Mocking up a UI change before building it, inside the existing design system
design-principles.md How much structure to build, and when
development-workflow.md When to plan, how to scope a fix, cleaning up, what “done” has to mean
error-handling.md Letting errors surface; keeping secrets out of logs
git.md Branching, committing, merging, and the costly failure modes
git-hooks.md The two hook families, and telling them apart
guardrail-template.md The shape every guardrail document follows
handoffs.md Where session handoffs go, and why not docs/
interaction-preferences.md When to argue, where a plan goes, what to ask first
mcp-servers.md Whether a capability belongs in an MCP server
merge-gates.md Changes that never merge autonomously
permissions.md What allow/deny/ask can and cannot do
project-standards.md Repo-wide conventions. Read first
secret-hygiene.md Credentials never enter context or a tracked file
tech-footprint.md Never add a language, runtime or tool without asking
testing.md Writing tests first, reading failures, the four costly mistakes
writing-style.md Voice, tense and word choice for everything riprap writes

The twelve skills

Namespaced by the harness, so a repository with its own /learn keeps it.

None of them carry settings for you to edit. What a skill needs to know about your project it works out, confirms with you once, and writes into your own .riprap/instructions/ — a value edited into a skill would be reverted the next time the plugin updates.

Fuller descriptions, and what each one costs you in context, are on what riprap tells the model. How the five that carry a feature from a stakeholder ask to a published release chain together — what each hands the next, and where “deploy” fits — is on the feature cycle.

The agent

Namespaced the same way skills are, and discovered the same way: nothing to configure, nothing to install separately.

What is enforced

Twelve hooks are registered, six of which can stop a tool call. The table naming each one, what triggers it and whether it blocks is on guardrail architecture, rather than repeated here.

What lands in your repository

Only these files, and nothing else in your project is touched.

Path What it is
bin/{test,lint,format,setup} The four stack seams. Yours to fill in; written once, never replaced
bin/riprap wire and verify — what a fresh clone and CI run
bin/hooks/git/{pre-commit,pre-push} Your entry points, delegating to riprap’s. Written once, never replaced
bin/hooks/lib/ Your own pattern libraries. riprap never writes here
bin/hooks/riprap/claude/ Twelve hook scripts: eleven wired, plus lint-example.sh, an inert template
bin/hooks/riprap/git/ riprap’s own pre-commit and pre-push, called by yours
bin/hooks/riprap/lib/ Six libraries: five pattern libraries shared by both hook families, plus the handoff helpers the native hooks share with each other
bin/hooks/riprap/tests/ The regression suites, runnable in your own repo
bin/hooks/riprap/LICENSE riprap’s licence, carried with the files it covers
bin/hooks/riprap/VERSION What bin/riprap verify compares against the plugin
tmp/.gitignore Keeps session artifacts — handoffs, scratch mockups — out of commits. Written once, never replaced

Everything under bin/hooks/riprap/ and bin/riprap is riprap’s: refreshed wholesale on every install, and files riprap stops shipping are pruned rather than left running. The rest is yours from the moment it lands.

MANIFEST is the allowlist of record. The installer copies only what it names and refuses anything else, rather than copying whatever happens to sit in the payload directory. A recursive copy will carry a .pyc, a .DS_Store, or an editor backup into someone else’s public repository, and a compiled artifact embeds absolute source paths that no text scrubber can see inside.

The commands

Command What it does
/riprap:install Installs or updates the repo-side half. Idempotent; run it as often as you like
bin/riprap wire Points core.hooksPath at the repo’s hooks. Needed once per clone, per person
bin/riprap verify Checks the hooks are present, executable, wired, and that the seams are filled in
bin/riprap wire --uninstall Unwires the git hooks, leaving another tool’s configuration alone