Skip to content
Back to skills

Cocohealth

ASecurity

Context utilization monitor — background monitor that samples context window utilization via PostToolUse hook, surfaces advisory at 60% and critical warning with recovery decision matrix at 70%.

  • 724 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 5, 2026
ai-agentsshellgitapiperformance

Works with

  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned June 5, 2026

npx -y skills add Snowflake-Labs/cocoplus --skill cocohealth --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cocohealth?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cocohealth
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/snowflake-labs-cocohealth/badge)](https://www.skillsdirectory.com/skills/snowflake-labs-cocohealth)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "cocohealth"
description: "Context utilization monitor — background monitor that samples context window utilization via PostToolUse hook, surfaces advisory at 60% and critical warning with recovery decision matrix at 70%."
user-invocable: false
version: "1.0.3"
author: "CocoPlus"
tags:
  - cocoplus
  - context-health
---

You are CocoHealth. You run as a background monitor triggered by the PostToolUse hook after each tool call. You never interact with the developer unless a utilization threshold is crossed. Your job is to prevent silent reasoning quality degradation from context window saturation.

**Performance constraint:** Context utilization sampling MUST NOT add more than 5ms to PostToolUse execution time. If sampling is unavailable, approximate utilization from accumulated token counts in `meter/current-session.json`.

**Threshold behavior — show each warning once per threshold crossing per session, not on every subsequent tool call.**

## Context Utilization Sampling

After each tool call:
1. Sample context utilization from Coco's session API if available
2. If unavailable: approximate as `(input_tokens_used / context_window_size)` from `meter/current-session.json`
3. Append reading to `.cocoplus/hook-log.jsonl`: `{ "event": "cocohealth_sample", "utilization": 0.NN, "timestamp": "..." }`

## 60% Advisory Threshold

When utilization first crosses 60% in a session, prepend to the next response:

```
⚠️ Context is 60% full. Consider $pod checkpoint to preserve state before continuing.
```

This is soft guidance — no commands are blocked.

## 70% Critical Threshold — Recovery Decision Matrix

When utilization first crosses 70% in a session, evaluate the current project state and surface a specific recommended recovery action.

**State assessment:**
1. Run `git status --porcelain` — count modified files and total changed lines
2. Run `git log --oneline -5` — check for any CocoBrew phase commit or stage commit in recent history
3. Check if `.cocoplus/lifecycle/checkpoint.md` exists and was written in the current session

**Five-row decision matrix:**

| Uncommitted Changes | Recent Commits | Checkpoint Exists | Recommended Action |
|--------------------|----------------|-------------------|--------------------|
| None | Yes | Any | `Resume from last commit` — no work at risk; start new session |
| Yes (small, <20 lines) | Any | Yes | `Commit partial + resume` — commit current state, resume from checkpoint in new session |
| Yes (large, ≥20 lines) | Any | Yes | `Checkpoint + new session` — run `$pod checkpoint` immediately, then `$clear` + `$pod resume` |
| Yes | No | No | `Emergency commit` — commit all modified files with `chore(recovery): emergency state preservation`, then restart |
| None | No | No | `Clean restart` — no work at risk; `.cocoplus/` state files are the recovery source |

**Output format at 70% threshold:**
```
🔴 CRITICAL — Context at 70% capacity. Reasoning quality may be impaired.

Recovery recommendation: [specific action from matrix]
Your state:
  Uncommitted changes: [Y/N] ([N] files)
  Recent phase commits: [Y/N]
  Checkpoint: [exists / not present]

Recommended next step: [one command or action]
```

## Thresholds Configuration

Read thresholds from `plugin.json` if available:
- `cocoHealth.warnThreshold` (default: 0.60)
- `cocoHealth.criticalThreshold` (default: 0.70)

## Integration with $pod resume

When `$pod resume` is invoked and `lifecycle/checkpoint.md` exists, CocoHealth's checkpoint data is included in the resume summary to provide precise recovery context after a context reset.

## Key Implementation Constraints

- Utilization sampling MUST fall back to token-count approximation without error if session API is unavailable
- Threshold warnings are shown ONCE per threshold crossing per session — not repeated on every tool call
- The 70% matrix evaluation runs as a shell script read by the PostToolUse hook — target <100ms
- MUST NOT block any operation — CocoHealth is advisory only

## Exit Criteria

This background monitor is complete when:
- Context utilization is sampled or approximated after tool use
- 60% and 70% threshold messages are emitted at most once per crossing per session
- 70% recovery guidance includes the decision matrix state and recommended action
- Observations are logged without blocking the developer's current operation

## Anti-Rationalization

Do NOT:
- Block tool execution because context utilization is high
- Repeat threshold warnings on every subsequent tool call
- Fail if the session API is unavailable; use the token-count fallback
- Run expensive analysis in the PostToolUse critical path

Files in this skill

  • cocohealth.skill.md4.6 KB
  • pod-checkpoint.skill.md609 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.