Skip to content
Back to skills

Cocobrew

ASecurity

Enter the Plan phase of CocoBrew. Runs CocoSpec quality gate pre-flight, reads spec.md and discuss.md (if present), invokes Coco native plan mode as a mandatory gate, captures the approved plan to plan.md, creates initial flow.json template, and commits. Must have $spec completed first.

  • 724 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 5, 2026
ai-agentsgogitsecurityperformance

Security analysis

A100/100

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

Scanned September 5, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Cocobrew?

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

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

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: "plan"
description: "Enter the Plan phase of CocoBrew. Runs CocoSpec quality gate pre-flight, reads spec.md and discuss.md (if present), invokes Coco native plan mode as a mandatory gate, captures the approved plan to plan.md, creates initial flow.json template, and commits. Must have $spec completed first."
version: "1.0.2"
author: "CocoPlus"
tags:
  - cocoplus
  - lifecycle-engine
---

You are executing the Plan phase (2/6) of CocoBrew. Your objective is to transform the approved specification into an executable plan.

Before proceeding, verify that `.cocoplus/` exists in the current directory.
If it does not, output: "CocoPlus not initialized in this directory. Run `$pod init` to begin." Then stop.

Read `.cocoplus/lifecycle/meta.json`. Verify `phases_completed` contains `"spec"`.
If not: output "The Spec phase must be completed before planning. Run `$spec` to capture requirements first." Then stop.

## CocoSpec Pre-Flight Quality Gate

Before entering plan mode, run the CocoSpec scoring gate. Spawn a background Haiku subagent (read-only) to score `spec.md` and `discuss.md` (if it exists) against five dimensions:

| Dimension | Score 0 | Score 1 | Score 2 |
|-----------|---------|---------|---------|
| **Value** | No rationale | Rationale present but benefits not measurable | Clear rationale with verifiable success metrics |
| **Scope** | No scope definition | MVP defined but out-of-scope not stated | Both MVP and explicit out-of-scope defined |
| **Acceptance** | No acceptance criteria | Criteria stated but not testable | Testable criteria with clear pass/fail determination |
| **Boundaries** | None addressed | Partial coverage | All four (error handling, performance, compatibility, security) addressed |
| **Risk** | No risk assessment | Risks identified but no mitigation | Risks identified with explicit mitigation or escalation plan |

The scoring agent writes the score and per-dimension rationale to `lifecycle/spec-score.md`.

**Gate behavior:**
- Score ≥9: Gate passes. Check Quick Mode eligibility (see below).
- Score 8: Hold. Show which dimension scored below 2. Ask developer to address the gap before proceeding.
- Score ≤7: Hold. Output an Uncertainty Declaration for every sub-2 dimension — name each assumption being made rather than stated. Developer must address before planning proceeds.

**Uncertainty Declaration format (for score ≤7):**
```
UNCERTAIN: [dimension description] | ASSUMPTION: [what is being assumed]
```

**Quick Mode check (score ≥9 only):** If score ≥9 AND spec scope is ≤3 files (detectable from spec.md's Deliverables section) AND no EHRB indicators in the planned operations: offer Quick Mode — "Your specification qualifies for Quick Mode. Skip Plan phase and proceed directly to Build?" Quick Mode requires explicit developer confirmation. If accepted, record `"quick_mode": true` in `lifecycle/meta.json` and add `"plan"` to `phases_completed` with a note, then skip to Build.

## Read the Specification

Read `.cocoplus/lifecycle/spec.md` completely. If `lifecycle/discuss.md` exists, also read it and extract any additional decisions (evaluation methodology, accuracy threshold, model selection, warehouse assignment, production safety requirements) that must be honored in the plan.

Extract from spec:
- Goal
- Deliverables
- Personas list
- Constraints

## Invoke Coco Native Plan Mode (MANDATORY)

This is a hard gate. You MUST invoke Coco's native `$plan` mode. You cannot skip this step.

Tell the developer:
"Entering Coco plan mode to generate the execution plan. This will structure the work into a reviewable plan before any code is written."

Enter Coco's native plan mode with the spec context loaded. The plan mode will:
1. Analyze the specification
2. Generate a structured execution plan
3. Present it to the developer for review and approval

Wait for developer approval. Do NOT proceed until the developer explicitly approves.

## Capture the Approved Plan

Generate a plan ID: `plan-YYYYMMDD-NNN`.

Write `.cocoplus/lifecycle/plan.md`:

```markdown
# Execution Plan

**Date:** [ISO 8601 timestamp]
**Phase:** Plan (2/6)
**Phase ID:** [plan ID]
**Spec ID:** [spec ID from meta.json]

## Overview
[Summary of the approved plan from Coco plan mode]

## Workstreams
[Numbered list of workstreams from the plan]

## Dependencies
[Dependency relationships between workstreams]

## Estimated Duration
[Developer-provided or inferred estimate]

## Personas Required
[Which personas will work on which workstreams]

## Approved By
Developer — [timestamp]
```

## Initialize flow.json Template

Update `.cocoplus/flow.json` to add metadata (stages remain empty — CocoHarvest fills them in Build phase):

```json
{
  "meta": {
    "name": "[project name from project.md]",
    "version": "1.0",
    "phase": "plan",
    "plan_id": "[plan ID]",
    "spec_id": "[spec ID]",
    "created": "[timestamp]"
  },
  "defaults": {
    "model": "claude-sonnet-4-20250514",
    "context": "isolated",
    "on_failure": "stop"
  },
  "stages": []
}
```

## Update AGENTS.md and meta.json

Append to AGENTS.md (keep ≤200 lines):
```
Phase: Plan (2/6)
Plan ID: [plan-id]
Plan completed: [timestamp]
```

Update `lifecycle/meta.json` — add plan to phases_completed and phase_history.

## Create Git Commit

```
git add .cocoplus/lifecycle/plan.md .cocoplus/flow.json .cocoplus/lifecycle/meta.json .cocoplus/AGENTS.md
git commit -m "feat(plan): approved execution plan v1"
```

## Completion Output

Output: "Plan captured and approved. Commit created: `feat(plan): approved execution plan v1`. You may now proceed to `$build`."

## Anti-Rationalization

| Temptation | Why Not |
|------------|---------|
| Skip CocoSpec gate | CocoSpec is a pre-flight check that prevents plan-time decisions from filling in missing spec content silently; never skip |
| Skip Coco native plan mode | Plan mode is a HARD GATE — it is not optional under any circumstances |
| Proceed without explicit developer approval | Developer must approve before plan.md is written |
| Create detailed flow.json stages here | CocoHarvest creates stages — plan.skill.md only creates the empty skeleton |
| Ignore discuss.md when it exists | Decisions captured in $discuss must be traceable into the plan and are checked again at review time |

## Exit Criteria

- [ ] `lifecycle/spec-score.md` exists with CocoSpec scores for all five dimensions and the total score
- [ ] CocoSpec gate passed (score ≥9) or developer explicitly addressed gaps before proceeding
- [ ] `.cocoplus/lifecycle/plan.md` exists with YAML-like header fields (Date, Phase, Phase ID, Spec ID) and a `## Workstreams` section
- [ ] If `discuss.md` exists, plan.md reflects the key decisions from it (evaluation target, model, threshold, warehouse, safety requirements)
- [ ] `.cocoplus/flow.json` exists with `meta.phase` set to `"plan"` and an empty `"stages": []` array
- [ ] `.cocoplus/lifecycle/meta.json` `phases_completed` array contains `"plan"`
- [ ] Git commit with message `feat(plan): approved execution plan v1` exists in log

Files in this skill

  • build.skill.md4.1 KB
  • distribute.skill.md2.8 KB
  • observer.skill.md2.6 KB
  • plan.skill.md6.9 KB
  • review.skill.md5.3 KB
  • ship.skill.md8.2 KB
  • spec.skill.md10.4 KB
  • test.skill.md3.9 KB
  • worktree-utils.md580 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…