docent-ar — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited docent-ar (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are running the entire docent cascade in architecture-review mode against a repository the user named: survey → treatment → spec → tts → clips → render → open. The output is one MP4 that explains the system the way a distinguished engineer would: the components, the flow, the idioms, the failure modes, the trade-offs, with a verdict.
/docent-ar <repo> [--subsystem X] [--id X] [--scale S] [--no-open]
<repo> — a local repo path, a GitHub URL, or the bare owner/nameform.
--subsystem X — scope the review to one subsystem. The surveyresolves this to a concrete code boundary (a directory, a package, a set of files) before starting.
--id X — override the auto-derived film id (default: <repo-name>).--scale S — render scale. Default 1. Pass 0.5 for fastturnarounds.
--no-open — render without opening the result in the system player.bun, ffmpeg, and the agent CLI are onPATH. If anything obvious is missing, suggest /docent-doctor and stop.
bun packages/agent/scripts/survey.ts <repo> --mode ar [--subsystem X] [--id X]The survey lands at analysis/<id>.md. When a subsystem is named, section 0 of the survey template resolves it to concrete files first — surface that boundary to the user before moving on. The survey's job here is to interrogate the system: not a tour that admires it, but a depth-first reading that names the trade-off and the failure mode.
Before moving on, surface the lineage sections to the user:
about the world.
somewhere a prior system did not.
the film will compare against and the dimension on which each diverges. Confirm with the user that the named lineage is the right lineage before moving on — the rest of the cascade reads from it.
register the film renders in:
bun run docent style recommend <id>For architecture-review films the recommender will return engineering when the subject is a code repository (most ARs) and paper when the subject is a research-shaped artefact. Take the recommendation unless the survey surfaces a specific reason to override. Surface the choice in one line — "rendering in engineering — system-level architecture review; rationale: ..." — and move on. The spec compilation reads this off the survey's "Style commitment" section and pins it as the spec's style: {preset, intent, rationale} field. The depth-review judge fails the style-committed dimension if the spec ships without it.
3b. Commit to a scene set. Same shape as the style commitment, one layer down — the cognitive moves the film will make.
bun run docent scene-fit recommend <id>The recommender reads the survey and prints the top scene types with rationales tying each to a specific survey finding. Architecture films almost always want prior-art (the lineage from § 1.7), structure (the components), and either tension (the trade-off the design made) or causal-loop / mechanism (when the dynamics matter more than the layout). If the recommender returns warningOnDefault: true, the survey collapsed to the default rut — re-read § 1.5/1.6 and ask whether the system's bet is genuinely about components or about something specific (feedback dynamics → causal-loop; a working motion → mechanism; a regional topology → map). Pin the chosen scene set in the survey's "Scene-set commitment" section.
bun packages/agent/scripts/treatment.ts <id>Writes treatments/<id>.md. Print the Angle line so the user sees the through-line you committed to.
bun packages/agent/scripts/treatment.ts <id> --to-spec
bun packages/agent/scripts/flywheel.ts <id> --max-rounds 2The first compiles the treatment into films/<id>.json. The second is mandatory — review runs the adversarial judge → revise → re-judge loop bounded to two rounds. On the corpus this reliably lifts a first-draft spec by ~7 points / 30 — the difference between an architecture film that passes the depth contract and one that does not. Surface the verdict score and the weakest dimension (often trade-off, the-numbers, or novelty-named / prior-art-honest for AR films) before rendering. If review exhausts its round budget, stop and ask — do not ship a film the judge rejected.
Before rendering, surface the Prior Art table and the novelty dimension to the user. Open films/<id>.json, find the type: 'prior-art' scene, and tell the user, in one line:
"This film argues that <subject>'s novelty is <dimension label>: <novelty.statement>. The lineage: <system labels>. Confirm before render."
Wait for confirmation. A user who pushes back on the novelty dimension is steering the film's spine — do not render past their objection.
bun run docent build <id> --scale 1--no-open). On macOS: open out/<id>.mp4./docent-build <id>),Pause and ask the user instead when:
Surface a candidate list of 2–4 subsystems with one-line summaries; let the user pick.
data-plane reading, a present vs. historical reading) — let the user pick the one the film should commit to.
review exhausts its round budget without passing the depth contract.Surface the failing dimensions; do not silently ship a film the judge rejected.
survey --mode ar clones the repo when given aURL. If the clone fails (auth, network), surface the failure and stop.
survey and treatment shell out to claudeor codex. If neither is on PATH, suggest /docent-doctor.
named components and flow but did not name what the system gives up by being what it is. Ask the user what the load-bearing trade-off is, or drop back to /docent-survey <repo> --mode ar and steer the analysis directly.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.