one-by-one — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited one-by-one (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.
<!-- Copyright (C) 2026 Gregory R. Warnes SPDX-License-Identifier: AGPL-3.0-or-later
This file is part of Oboe MCP. For commercial licensing, contact [email protected] -->
Process multiple items sequentially with priority scoring, dependency analysis, and persistent session state.
Prefer the oboe-mcp MCP tools for .github/oboe_sessions/ state. Do not read or write session JSON directly when the MCP tools can perform the operation. If oboe-mcp is unavailable, stop and surface the blocker instead of silently falling back.
| Operation | How |
|---|---|
| List existing sessions | oboe_list_sessions(base_dir, status_filter?) |
| Create new session | oboe_create(base_dir, title, description, items?=[...]) |
| Merge into session | oboe_merge_items(session_file, items=[...], base_dir?) |
| Mark item blocked | oboe_mark_blocked(session_file, item_id, blocker, base_dir?) |
| Mark item complete | oboe_mark_complete(session_file, item_id, resolution, base_dir?) |
| Skip item | oboe_mark_skip(session_file, item_id, base_dir?, reason?) |
| Mark item in progress | oboe_mark_in_progress(session_file, item_id, base_dir?) |
| Set approval | oboe_set_approval(session_file, item_id, approval_status, base_dir?, approval_mode?, note?, lifecycle_status?) |
| Create child session | oboe_create_child_session(parent_session_file, title, description, items?=[...], base_dir?, parent_item_id?, session_filename?) |
| Complete child session | oboe_complete_child_session(child_session_file, base_dir?, resolution?) |
| Update a field | oboe_update_field(session_file, item_id, field, value, base_dir?) |
| Find next item | oboe_next(session_file, base_dir?) |
| Session status | oboe_session_status(session_file, base_dir?) |
| Complete session | oboe_complete_session(session_file, base_dir?) |
priority_score = urgency + importance + (6 - effort) + dependencies
All four components are integers in the range 0-5. A non-numeric or out-of-range value is rejected with an error naming the item and the field; no session or item is written.
| Component | Default | Meaning |
|---|---|---|
urgency | 3 | How time-sensitive the item is. Higher sorts first. |
importance | 3 | How much the item matters. Higher sorts first. |
effort | 3 | How much work it is. Higher effort lowers the score. |
dependencies | 1 | How much other work is waiting on this item — dependency pressure, as a number. Not a description of what the item depends on; that belongs in description. |
Lifecycle status values:
pending | in_progress | deferred | blocked | completed | skipped
Approval status values:
unreviewed | approved | denied
Approval mode values:
immediate | delayed | null
Definitions:
pending: queued but not startedin_progress: actively being workeddeferred: approved to do later; still open, but held behind the primary review queueblocked: cannot continue until the blocker is resolvedcompleted: finished and closedskipped: intentionally not being executedunreviewed: no approval decision has been recorded yetapproved: the user authorized the workdenied: the user explicitly rejected the workactive | paused | completed
oboe_create or oboe_merge_items. items is optional in oboe_create and oboe_create_child_session; if items are not yet known, create the session first and populate it later with oboe_merge_items.blocked when progress cannot continue and store the blocker.oboe_set_approval for approval metadata such as approval_status, approval_mode, and approval_note.oboe_set_approval call with approval_status=approved and approval_mode=delayed.Use the agent's structured question tool (askQuestions, ask_questions, AskUserQuestion, or equivalent) by default for predefined OBO choices such as resume, merge, replace, approval, navigation, stop, restore, and reorder. Only fall back to plain text when the structured question tool is unavailable, failing, or the prompt genuinely requires unrestricted freeform input; when that happens, state the reason explicitly.
For the full step-by-step conversational workflow, use the packaged /obo prompt at .github/prompts/obo.prompt.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.