doctor
Audit a Rust off Rails app against the framework's conventions (structure, stack, banned crates, portability, security, tests, docs drift) and report or fix…
Skill by rust-off-rails
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/rust-off-rails-doctor
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/doctor
What's inside
- Skill name
doctor- Description
- Audit a Rust off Rails app against the framework's conventions (structure, stack, banned crates, portability, security, tests, docs drift) and report or fix violations. Use when the user asks to review, audit, lint, or "doctor" an Off Rails app, or after a human edited code by hand.
- License
- Apache-2.0
- Instructions
- 50 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# /offrails:doctor — convention audit
Only for Rust off Rails apps (a `.offrails/` directory exists). Mode: $ARGUMENTS (with `--fix`, fix the violations; otherwise only report them).
**Start with the script:** `sh .offrails/tools/offrails-check` (apps before 0.6.0: `sh ${CLAUDE_PLUGIN_ROOT}/tools/offrails-check`). Report its `FAIL` lines as violations verbatim; they are mechanical facts (header consistency, uncited ACs, missing Security-table tests, missing tenancy suites, unscoped lookups in handlers). Then read `.offrails/AGENTS.md`, `structure.md`, `stack.md` and `workflow.md`, plus the app's `AGENTS.md`, and check each remaining item and record a verdict (ok / violation with `file:line` / n/a):
**Structure** (`structure.md`)
- No top-level directories beyond the tree; nothing outside the app's `FRONTEND_MODE`.
- Naming table followed (tables, modules, handlers, routes, templates, jobs, migrations).
- Module rules: models import no controllers or views; views do no DB access; no `services/` directory.
**Stack** (`stack.md`)
- `Cargo.toml` / `web/package.json` contain no banned crates or packages (`cargo deny check bans` enforces the list mechanically via `deny.toml`; check direct dependencies by hand too). Any unlisted crate has a `docs/decisions.md` entry.
- `.offrails/` is unmodified (compare with `.offrails/VERSION` and the plugin copy if available).
**Data**
- No raw SQL outside `src/kernel/` or logged escape hatches (`guides/database.md`).
- Every migration has a working `down`. Foreign keys are indexed.
- The CI workflow runs tests on both SQLite and Postgres.
**HTTP & security** (`guides/routing.md`, `guides/security.md`)
- `ROUTES`, `paths::` and `routes.rs` agree. `docs/routes.md` is current (`cargo run -- routes`).
- Every mutating handler that needs auth takes `RequireUser` and calls a policy.
- CSRF, security headers, rate limit on login, and cookie flags are all present.
**Code hygiene** (Definition of Done checklist)
- No `unwrap()`/`expect()` outside tests and startup code. No `todo!()`. No `// TODO` without a linked open question.
- `web/src/types/` matches what ts-rs exports, and no hand-written TS duplicates a Rust type.
**Tests** (`guides/test-standards.md`)
- The app's archetypes (§2) are identified, and each one's required suites exist.
- `tests/app/security_test.rs` has the access matrix over `ROUTES`, and every `ROUTES` entry declares its access level.
- Apps with accounts: `tenancy_test.rs`'s `Tenant` holds a record of every tenant-owned model, and its `EXPECTED` entries each cite an AC that really makes that route shared (the script checks the files exist, not that they're complete).
- Public API: contract snapshots exist and none changed without a decision entry.
- No `sleep` in tests, no `#[ignore]` without a decision, and no assertions weakened in recent history (`git log -p tests/`).
**Accessibility** (`guides/test-standards.md` §10)
- An axe suite exists, covers every public route in both color schemes and both widths, and runs in CI as a required check.
- No global rule disables; every exception has a decision entry.
- Spot-check contrast of code blocks, terminal cards and focus rings in both themes.
**Specs ↔ code**
- Env vars agree across `Config`, `.env.example` and the deploy config.
- Code that looks human-written (check `git log`) has its intent captured in a spec or decision.
Finish with `/offrails:check` (with `--fix`), or run the DoD commands read-only.
Report: a table of findings grouped by area (most severe first), then the top 3 fixes. With `--fix`, apply them in vertical slices, keep the tree green, and log the decisions.From rust-off-rails/rustoffrails, Apache-2.0.
More from rust-off-rails/rustoffrails
- 0.652score
check
rust-off-rails
Run the Rust off Rails Definition of Done (fmt, clippy, tests on SQLite and Postgres, frontend checks, checklist) and fix what fails.
SkillAFreshness: A★ 45Claude Code +9 - 0.652score
deploy
rust-off-rails
Make a Rust off Rails app deployable and ship it (Docker, Fly.io, Kamal, Railway, Render), including production database setup and migrations on deploy.
SkillAFreshness: A★ 45Claude Code +9 - 0.652score
new
rust-off-rails
Create a new Rust off Rails web app (the `rails new` of Rust).
SkillAFreshness: A★ 45Claude Code +9 - 0.652score
scaffold
rust-off-rails
Generate a full resource (migration, model, policy, controller, routes, views or pages, tests) in a Rust off Rails app, like `rails g scaffold`.
SkillAFreshness: A★ 45Claude Code +9 - 0.652score
upgrade
rust-off-rails
Upgrade a Rust off Rails app's vendored framework (.offrails/) to the installed plugin's version and migrate the app to any changed conventions, like `rails…
SkillAFreshness: A★ 45Claude Code +9 - 0.649score
feature
rust-off-rails
Build or change a feature in a Rust off Rails app from a plain-language request or from the specs in product/.
SkillAFreshness: A★ 45Claude Code +9 - 0.360score
security
rust-off-rails
No description from the publisher yet.
SkillAFreshness: A★ 45Claude Code +9 - 0.357score
generate
rust-off-rails
No description from the publisher yet.
SkillAFreshness: A★ 45Claude Code +9
Signals
- Stars
- 45
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 13, 2026 (15 days ago)
- Last release
- Oct 20, 2026 (8 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/rust-off-rails/rustoffrails
- Website
- rustoffrails.org
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from rust-off-rails
- 0.652score
check
rust-off-rails
Run the Rust off Rails Definition of Done (fmt, clippy, tests on SQLite and Postgres, frontend checks, checklist) and fix what fails.
SkillAFreshness: A★ 45Claude Code +9 - 0.652score
deploy
rust-off-rails
Make a Rust off Rails app deployable and ship it (Docker, Fly.io, Kamal, Railway, Render), including production database setup and migrations on deploy.
SkillAFreshness: A★ 45Claude Code +9 - 0.652score
new
rust-off-rails
Create a new Rust off Rails web app (the `rails new` of Rust).
SkillAFreshness: A★ 45Claude Code +9 - 0.652score
scaffold
rust-off-rails
Generate a full resource (migration, model, policy, controller, routes, views or pages, tests) in a Rust off Rails app, like `rails g scaffold`.
SkillAFreshness: A★ 45Claude Code +9 - 0.652score
upgrade
rust-off-rails
Upgrade a Rust off Rails app's vendored framework (.offrails/) to the installed plugin's version and migrate the app to any changed conventions, like `rails…
SkillAFreshness: A★ 45Claude Code +9 - 0.649score
feature
rust-off-rails
Build or change a feature in a Rust off Rails app from a plain-language request or from the specs in product/.
SkillAFreshness: A★ 45Claude Code +9
Cite this page
doctor skill. Agent Mart. https://agentmart.dev/skills/rust-off-rails-doctor (last updated 2026-10-24)