Skip to content
Back to skills

Cocogrove

ASecurity

Scan project artifacts for domain vocabulary candidates and propose additions to the CocoGrove ubiquitous language glossary — developer reviews and confirms before entries are written

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

Security analysis

A100/100

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

Scanned September 5, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Cocogrove?

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

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

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: grove-glossary
description: Scan project artifacts for domain vocabulary candidates and propose additions to the CocoGrove ubiquitous language glossary — developer reviews and confirms before entries are written
version: 1.0.2
user-invocable: true
command: $grove glossary
author: "CocoPlus"
tags:
  - cocoplus
feature: CocoGrove — Ubiquitous Language Section (Feature 12 improvement)
---

# $grove glossary

Scan project artifacts for candidate domain terms and propose additions to `.cocoplus/grove/language/glossary.md`. Developer reviews and confirms each proposed entry before it is written.

## Preconditions

- `.cocoplus/` must be initialized
- At least one of: `lifecycle/spec.md`, `flow.json`, `lifecycle/plan.md`, `prompts/*.md`, or CocoCupper findings must exist

## Step-by-Step Behavior

1. **Verify initialization:** Check `.cocoplus/` exists. If not, output: "CocoPlus not initialized. Run `$pod init` first." and exit.

2. **Create glossary directory:** Ensure `.cocoplus/grove/language/` exists. Create if missing.

3. **Read existing glossary:** Read `.cocoplus/grove/language/glossary.md` if it exists. Extract already-defined terms and aliases using case-insensitive normalization:
   - Trim leading/trailing whitespace
   - Collapse repeated spaces
   - Compare lowercase term text
   - Compare aliases as duplicate keys for the canonical term

4. **Scan project artifacts for candidate terms:**
   - `lifecycle/spec.md` — function names, capability descriptions, domain nouns
   - `.cocoplus/flow.json` — stage names and descriptions
   - `lifecycle/plan.md` — decision terms, evaluation references
   - `lifecycle/discuss.md` — threshold names, methodology terms
   - `.cocoplus/prompts/*.md` — AI function input/output descriptions
   - `.cocoplus/grove/cupper-findings.md` — pattern names, anti-pattern terms
   - `.cocoplus/map/coco-map.json` — capability names from domain section (if exists)

5. **Extract candidate terms:** Look for multi-word noun phrases that appear as key concepts:
   - Function names used as domain concepts (e.g., "sentiment score", "churn propensity")
   - Metric and threshold names (e.g., "accuracy baseline", "gold standard dataset")
   - Process terms that appear in multiple artifacts (e.g., "evaluation harness", "prompt iteration")
   - Exclude generic technical terms (SQL keywords, standard Snowflake function names)

6. **Filter known terms:** Remove any candidates that already appear in the existing glossary as either a canonical term or an alias. If a candidate duplicates an alias but adds useful context, propose an update to the existing entry instead of a new term.

7. **Present candidates to developer** one at a time (or in a numbered list for batch review):
   ```
   Proposed glossary additions ([N] candidates):
   
   [N] terms found that are not yet in the glossary.
   
   1. "customer churn propensity"
      Appears in: spec.md, prompts/classifier-v2.md
      Proposed definition: [AI-inferred brief definition based on context]
      Aliases (optional): churn score, propensity score
      Associated functions: [function names where this term appears]
      
      Accept? [Y to add / N to skip / E to edit definition]
   
   2. "gold standard dataset"
      ...
   ```

8. **For each accepted entry or update:** Write to `.cocoplus/grove/language/glossary.md` in the following format:
   ```markdown
   ## [Term]
   
   **Definition:** [definition text]
   **Aliases:** [alias1, alias2] (or "None")
   **Associated functions:** [list of function names]
   **Added:** [ISO8601 date]
   ```

   If updating an existing term, preserve its current definition unless the developer explicitly accepts the edited definition. Append new aliases/functions without duplicating existing values.

9. **Create git commit** after all accepted entries are written: `feat(grove): add [N] glossary terms`

10. **Confirm to developer:**
    ```
    ✓ Glossary updated
    [N] terms added. [M] skipped.
    
    View glossary: $grove glossary view
    Glossary is available to CocoScout for context loading.
    ```

## Empty results case

If no new candidates are found beyond existing glossary terms:
```
No new domain terms found.
[N] terms already in glossary.

Run $grove glossary view to see existing entries.
```

## Error Cases

- **No source artifacts found:** Output warning and list which artifacts are missing; suggest running `$spec` first
- **Cannot write glossary file:** Output filesystem error; do not commit partial entries
- **Developer skips all candidates:** Output: "No terms added. Run again after adding more project artifacts."

## Exit Criteria

This skill is complete when:
- Candidate terms have been presented for developer review
- Accepted terms are written to `glossary.md`
- Git commit is created (if at least one term was added)

## Anti-Rationalization

Do NOT:
- Auto-write any term without developer confirmation
- Add generic SQL/Snowflake technical terms (SELECT, CREATE, AI_CLASSIFY without domain context)
- Fail silently if no artifacts are found — always report what was scanned
- Create a new glossary entry when the term already exists as an alias or case-only variant

Files in this skill

  • grove-glossary-view.skill.md2.9 KB
  • grove-glossary.skill.md5.1 KB
  • grove-score.skill.md1.5 KB
  • patterns-promote.skill.md5.7 KB
  • patterns-view.skill.md1.8 KB

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…