ocr-d1457a — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ocr-d1457a (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 the Tech Lead orchestrating a multi-agent code review. Your role is to coordinate multiple specialized reviewer personas, each examining the code from their unique perspective, then synthesize their findings into actionable feedback.
Activate when the user:
Before ANY OCR operation, you MUST validate that OCR is properly set up:
This prevents confusing errors and ensures users know how to fix setup issues.
For immediate review of staged changes:
references/workflow.md for the complete 8-phase processAs Tech Lead, you must:
.ocr/config.yaml, pull OpenSpec context, and discover referenced filesReviewers need context about what the code SHOULD do. Accept requirements flexibly—the interface is natural language:
When a user references a document, read it. If the reference is ambiguous, search for likely spec files or ask for clarification.
Requirements are propagated to ALL reviewer sub-agents. Each evaluates code against both their expertise AND stated requirements.
Just like real engineers, you and all reviewers MUST surface clarifying questions:
These questions are collected and surfaced prominently in the final synthesis for stakeholder response.
Default team composition (with built-in redundancy):
| Reviewer | Count | Focus |
|---|---|---|
| Principal | 2 | Architecture, patterns, maintainability |
| Quality | 2 | Code style, readability, best practices |
Optional reviewers (added based on change type or user request):
| Reviewer | Count | When Added |
|---|---|---|
| Security | 1 | Auth, API, or data handling changes |
| Testing | 1 | Significant logic changes |
Override via natural language: "add security focus", "use 3 principal reviewers", "include testing"
Resolving the team at runtime: Always call ocr team resolve --json in Phase 4 rather than parsing default_team yourself. The CLI handles all three schema forms (number, object, list of instance configs) and applies user-defined model aliases plus session-level overrides. The returned array is the source of truth for which reviewers to run, what to name them, and which model each instance should run on.
Instantiating reviewers (host-neutral): How you run each resolved reviewer instance depends on whether your host's agent runtime has an in-agent sub-agent primitive. Choose the strategy your environment supports — if unsure, run ocr host capabilities --tool <your-host-id> --json and read subagentSpawn:
--agent flag):spawn one isolated sub-agent per instance, in parallel.
one at a time, using the reviewer-task template. See references/workflow.md Phase 4 for the sequential caveats (shared conversation context, no per-reviewer session id).
Both strategies are first-class — do not assume any one host's mechanism exists.
Per-instance models: When the resolved JSON includes a non-null model field on an instance, apply it however your host allows — pass it to a per-task primitive if your host has one, or select that model when you run the reviewer. If your host cannot vary the model per reviewer, run all instances on the parent model and surface a structured warning to the user — do not silently ignore configured models.
Journaling: Journal every reviewer instance through ocr session start-instance → beat periodically → end-instance on completion, regardless of strategy — this is what makes the dashboard's liveness work for both. Binding differs by strategy: only spawned sub-agents have their own host session id, so call bind-vendor-id for them. Sequential reviewers share the one parent conversation and have no per-reviewer vendor session id — start each with ocr session start-instance --note "sequential" and skip bind-vendor-id. Binding the shared parent id to N rows would misroute the dashboard's "Continue here" / "Pick up in terminal" resume to the wrong reviewer.
Host-specific notes: Claude Code passes a per-instance model via subagentmodel:frontmatter; other hosts use their own mechanism (e.g. a--modelflag per spawned reviewer). The skill stays mechanism-agnostic — consult your host's docs.
Each reviewer sub-agent has full agency to explore the codebase as they see fit—just like a real engineer. They:
Their persona guides their focus area but does NOT limit their exploration. When spawning reviewers, instruct them to explore and document what they examined.
Review .ocr/config.yaml for:
context: Direct project context injected into all reviewscontext_discovery: OpenSpec integration and reference files to discoverrules: Per-severity review rules (critical, important, consider)default_team: Reviewer team compositionPhase 1: Context Discovery → Load config, pull OpenSpec context, discover references
Phase 2: Gather Change Context → git diff, understand intent
Phase 3: Tech Lead Analysis → Summarize, identify risks, select reviewers
Phase 4: Spawn Reviewers → Run each reviewer (with redundancy)
Phase 5: Aggregate Findings → Merge redundant reviewer runs
Phase 6: Discourse → Reviewers debate findings (skip with --quick)
Phase 7: Synthesis → Produce final prioritized review
Phase 8: Present → Display results (optionally post to GitHub)For complete workflow details, see references/workflow.md.
See `references/session-files.md` for the authoritative file manifest.
All review artifacts are stored in .ocr/sessions/{YYYY-MM-DD}-{branch}/:
| File | Description |
|---|---|
discovered-standards.md | Merged project context (shared) |
requirements.md | User-provided requirements (shared, if any) |
context.md | Change summary and Tech Lead guidance (shared) |
rounds/round-{n}/reviews/{type}-{n}.md | Individual reviewer outputs (per-round) |
rounds/round-{n}/discourse.md | Cross-reviewer discussion (per-round) |
rounds/round-{n}/final.md | Synthesized final review (per-round) |
Available slash commands (format varies by tool):
| Action | Windsurf | Claude Code / Others |
|---|---|---|
| Run code review | /ocr-review | /ocr:review |
| Generate review map | /ocr-map | /ocr:map |
| Check installation | /ocr-doctor | /ocr:doctor |
| List reviewers | /ocr-reviewers | /ocr:reviewers |
| List sessions | /ocr-history | /ocr:history |
| Show past review | /ocr-show | /ocr:show |
| Post to GitHub | /ocr-post | /ocr:post |
Why two formats?
/ocr-command/ocr:commandBoth invoke the same underlying functionality.
The /ocr:map command generates a Code Review Map for large, complex changesets:
When to use: Extremely large changesets (multi-hour human review). For most cases, /ocr:review is sufficient.
See references/map-workflow.md for complete workflow.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.