Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ozzy-labs/suasor --skill proposal-reviewgit clone --depth 1 https://github.com/ozzy-labs/suasorWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ozzy-labs/suasor/proposal-review)<a href="https://agentmods.dev/skills/ozzy-labs/suasor/proposal-review"><img src="https://agentmods.dev/badge/skills/ozzy-labs/suasor/proposal-review/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ozzy-labs/suasor/proposal-review"><img src="https://agentmods.dev/badge/skills/ozzy-labs/suasor/proposal-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00126 | $0.01361 |
| Opus 5 | $0.00063 | $0.00681 |
| Sonnet 5 | $0.00025 | $0.00272 |
| Haiku 4.5 | $0.00013 | $0.00136 |
Grade A, and why
proposal-review scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 50 lines — stays where its author put it; the contents beside it link to each section on GitHub.
proposal-review
各 skill(reply-draft / source-extract / meeting-followup / inbox-triage / commitment-review)が貯めた pending 候補をまとめてレビューし、承認/却下する HITL write skill。propose.* ライフサイクル(Issue #89)の「出口」= 承認キューに当たる(ADR-0004)。
いつ発火するか
- 「保留中の提案を確認」「pending な候補をレビュー」「pending を片付けて」
- 「溜まってる draft を捌いて」「提案を承認/却下」「承認待ちある?」
何をするか(MCP tool flow)
read で集めて、write は HITL。auto-apply 経路は存在しない(ADR-0004)。
propose.list(state=pending)で承認待ち候補を一覧する。kind(task/decision/reply_draft/triage/commitment)やupdated_at時間窓で絞り込める。各行はcandidateId/mode/kind/summary/createdAt。既に却下した候補とその理由を振り返るときはstate=rejectedで一覧する(各行のreasonに却下理由が入る、#197)- 候補を kind / mode 別に整理し、ユーザーに提示して 1 件ずつ(または一括で)承認 / 却下の判断を取る(native framing: ホスト側で人の承認を促す)
- 承認分は
propose.applyでまとめて適用する(対応する domain event を append、idempotent。既適用はskipped)。適用で ledger がpending→appliedに遷移する - 却下分は
propose.reject(candidateId、任意でreason)で却下する。ledger がpending→rejectedに遷移し、以後propose.listのpendingに現れない(再提示しない) - 承認と却下が混在するときは
propose.batch(operations: [{action: "apply", candidate}, {action: "reject", candidateId, reason?}])で 1 RPC・単一トランザクションにまとめられる(atomic、apply/reject と同じ semantics)。HITL(人の一括判断後にのみ呼ぶ、#197) - 却下でも承認でもなく「修正して再生成」したいときは
proposal.feedback(candidateId、reason必須)で再生成ヒントを記録する(#279)。候補はpendingのまま(state を遷移させない)で、記録したreasonはpropose.listで読める。ユーザーがその方向で作り直したいときは生成元 skill(reply-draft 等)でpropose.generateし直す
制約
- HITL。人の承認なしに
propose.apply/propose.rejectを呼ばない。auto-apply しない。propose.listは read(候補確認) - 候補は生成元 skill が
propose.generateで作る。本 skill は候補を生成しない(横断レビューに専念)。新規候補が要るなら生成元 skill(reply-draft 等)を使う - 状態依存:
propose.rejectはpendingのときのみ却下。applied(適用済み)/missing(該当なし)は遷移させず status で報告し、rejected再呼び出しはalready_rejected(no-op)。proposal.feedbackもpendingのときのみ reason を記録(state 据え置き)。applied/rejected/missingは status 報告のみ - 本 skill は手順書のみで実処理を持たない
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 50 lines · 126 tokens per session scan A 8a4250ab8643
proposal-review is a skill published in the GitHub repository ozzy-labs/suasor (0 stars, last pushed 1mo ago), licensed MIT. It adds 126 tokens to every session and 1,361 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
issue-triage
Triage Paperclip inbox issues that are stale, blocked, in-review, or assigned-but-not-progressing, and decide a single next action per issue (resume, reassign, unblock, escalate, or close).
Jira QA Workflows
Run QA work in Jira like a professional, bug lifecycle and triage, JQL queries for testers, quality dashboards, sprint QA rituals, and REST API automation for bulk bug operations and reporting.
gitlab-issues
Issue review and tracking on GitLab via the gitlab-api MCP server — review a project's issues, review issues across a whole group/organization, and read, create, update, or close an issue with the domain-typed tool. Use when the agent must triage a project's issues, see every issue affecting a group, open a new issue…
DSAR Workflow
Use when an organization receives a data subject access request (or any data subject rights request) and needs a structured triage, handling record, and response plan for attorney review.
Legal Intake Triage
Use when an inbound business request reaches the legal team — an email, ticket, form submission, or chat ask — to produce a structured intake triage that classifies the request, captures urgency as stated, surfaces conflict-check and confidentiality questions, and proposes a routing recommendation for the legal team…
triage
Read-only grounding phase for a card — every card's pickup. /super-bootstrap:triage {ID} dispatches the triage subagent (Opus) to ground the card cold — premise verify, aim validate, blast collect — and append a Verdict block — ## Verdict — auto-fix · {date} (Fix-shape / Probe-deps / Execution tags) or ## Verdict …