sentinel-approve

sentinel-approve is a skill for Claude Code from Snowflake-Labs/cocoplus. It costs 43 tokens per session (799 once invoked), scanned A, original, MIT.

A command that records approval for a previously evaluated file and ties that approval to the file's exact content using a SHA-256 fingerprint.

In plain words
What is it for?
Use it to approve an evaluated artifact, or provide a reason when the evaluation requires a conditional approval.
Why use it?
It prevents an approval from remaining valid after the approved file changes.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter.

Good fit Use it to approve an evaluated artifact, or provide a reason when the evaluation requires a conditional approval.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/snowflake-labs/cocoplus/sentinel-approve
Install

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.

Any agent
npx skills add Snowflake-Labs/cocoplus --skill sentinel-approve
Clone the repo
git clone --depth 1 https://github.com/Snowflake-Labs/cocoplus

Made for: Claude Code.

Wrote 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.

agentmods badge for sentinel-approve

README.md
[![agentmods](https://agentmods.dev/badge/skills/snowflake-labs/cocoplus/sentinel-approve/github.svg)](https://agentmods.dev/skills/snowflake-labs/cocoplus/sentinel-approve)
Your own site
<a href="https://agentmods.dev/skills/snowflake-labs/cocoplus/sentinel-approve"><img src="https://agentmods.dev/badge/skills/snowflake-labs/cocoplus/sentinel-approve/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.

agentmods 80×15 button for sentinel-approve

Your own site · 80×15
<a href="https://agentmods.dev/skills/snowflake-labs/cocoplus/sentinel-approve"><img src="https://agentmods.dev/badge/skills/snowflake-labs/cocoplus/sentinel-approve.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 43 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 799 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00043 $0.00799
Opus 5 $0.00022 $0.00400
Sonnet 5 $0.00009 $0.00160
Haiku 4.5 $0.00004 $0.00080

Measured 6d ago against content hash b21f6c025e9e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

sentinel-approve 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 6d 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.

.cortex/skills/cocosentinel/sentinel-approve.skill.md · 92 lines

How it starts

The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Objective

You are recording a SHA-bound approval for an artifact that has been evaluated by CocoSentinel. Your task is to write a formal approval record to .cocoplus/sentinel/approvals.jsonl.

Before proceeding, verify that .cocoplus/ exists in the current directory. If it does not, output: "CocoPlus is not initialized in this directory. Run $pod init to set up the CocoPlus project bundle and try again." Then stop.

Step 1 — Identify Artifact

The developer invoked $sentinel --approve [file]. If no file was provided, ask: "Which file are you approving? Provide the file path."

Read the artifact file. If it does not exist, output: "File not found: ." Then stop.

Step 2 — Load Evaluation Result

Compute SHA-256 of the artifact content. Look up .cocoplus/sentinel/<sha>.json.

If no evaluation result exists for this SHA, output: "No CocoSentinel evaluation found for this artifact at its current state. Run $sentinel <file> first." Then stop.

Read the evaluation result. Check the outcome field.

Step 3 — Determine Approval Path

If outcome is APPROVED:

  • No rationale required. Proceed to Step 4.

If outcome is CONDITIONAL:

  • Ask: "This artifact has CONDITIONAL outcome with the following BLOCKING concerns: [list all CONCERN (BLOCKING) findings]

    Provide written rationale for accepting this artifact despite these concerns:

    "

  • Wait for developer input. The rationale must be non-empty and substantive (at least 20 words). If too short, ask to elaborate.

If outcome is BLOCKED:

  • Output: "Artifact is BLOCKED — one or more FAIL verdicts exist. Address the FAIL findings and re-run $sentinel <file> before approving."
  • Then stop.

Step 4 — Write Approval Record

Append to .cocoplus/sentinel/approvals.jsonl:

{
  "artifact_path": "<path>",
  "artifact_sha": "<sha256>",
  "approved_at": "<ISO8601 timestamp>",
  "outcome": "<APPROVED|CONDITIONAL>",
  "conditional_rationale": "<rationale or null>"
}

Step 5 — Output Confirmation

Read the full file on GitHub · 92 lines

Changes

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.

  1. 6d ago First seen · 92 lines · 43 tokens per session scan A b21f6c025e9e

Subscribe to this mod's changes

sentinel-approve is a skill published in the GitHub repository Snowflake-Labs/cocoplus (720 stars, last pushed 7d ago), licensed MIT. It adds 43 tokens to every session and 799 once invoked, about $0.0002 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-09-03.