Atlas / Skills / snowflake-labs / Cocosentinel

CocosentinelSAFE

skills/snowflake-labs/cocosentinel

CocoPlus is an Agentic Operating System for Snowflake Coco. It brings structured, multi-agent workflows to data engineering projects — covering everything from project initialization through spec, plan, build, test, review, and ship phases.

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
1.0.0
Hosts
—
License
MIT
Stars
724
01

Overview

CocoPlus is an Agentic Operating System for Snowflake Coco. It brings structured, multi-agent workflows to data engineering projects — covering everything from project initialization through spec, plan, build, test, review, and ship phases.

Read from source at commit 6b58edc143d7OBSERVED · 2026-10-13
Advertisement
02

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: sentinel-approve
description: CocoSentinel approval — records SHA-bound approval for a previously evaluated artifact. Invoked via $sentinel --approve [file]. Voids automatically if the artifact is modified after approval.
version: "1.0.0"
author: CocoPlus
tags:
  - cocosentinel
  - artifact-quality
  - approval
user-invocable: true
blocking: true
---

## 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: <path>." 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`:

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

## Step 5 — Output Confirmation

Display:
```
CocoSentinel: approval recorded.
  Artifact: <path>
  SHA: <sha>
  Outcome: <APPROVED|CONDITIONAL>
  Approved at: <timestamp>

This approval is bound to SHA <sha>. If the artifact is modified, the approval will be automatically voided
and you will be notified at the next session start.
```

## Anti-Rationalization Table

| Shortcut / Temptation | Why It Fails |
|-----------------------|--------------|
| Approve a BLOCKED artifact | BLOCKED means FAIL — the approval gate exists to prevent bypassing critical quality findings |
| Accept empty rationale for CONDITIONAL | Empty rationale makes the approval unauditable — future reviewers cannot understand why the concern was accepted |
| Write approval without evaluating first | Approval without evaluation SHA creates a record that refers to no known quality assessment |

## Exit Criteria

- Approval record written to `approvals.jsonl` with correct SHA
- CONDITIONAL approvals include substantive written rationale
- BLOCKED artifacts are rejected — no approval written
03

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeNA
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (0)

No findings outside the package's declared scope.

Gates applied: no_behavioural_pass.

Audited 2026-10-13 · audit v0.4.1 · source sha 6b58edc143d7full audit observations/trust-audit/skill/snowflake-labs__cocosentinel.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-136b58edc143d7SAFEB89first audit
05

Questions

What does the Cocosentinel skill do?

CocoPlus is an Agentic Operating System for Snowflake Coco. It brings structured, multi-agent workflows to data engineering projects — covering everything from project initialization through spec, plan, build, test, review, and ship phases.

Is Cocosentinel safe to install?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.

What can Cocosentinel access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

How current is this page?

The grade is for one exact copy of the source (6b58edc143d7), read on 2026-10-13. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement