/diamond-assess
Use to evaluate the current state of a diamond. Checks theory gates, confidence levels, and recommends next action.
Claude Code
$ npx -y skills add haabe/mycelium --skill diamond-assess --agent claude-code
Codex
$ npx skills add haabe/mycelium --skill diamond-assess -a codex -y
Cursor
$ npx skills add haabe/mycelium --skill diamond-assess -a cursor -y
Gemini CLI
$ npx skills add haabe/mycelium --skill diamond-assess -a gemini-cli -y
GitHub Copilot
$ npx skills add haabe/mycelium --skill diamond-assess -a github-copilot -y
OpenCode
$ npx skills add haabe/mycelium --skill diamond-assess -a opencode -y
Windsurf
$ npx skills add haabe/mycelium --skill diamond-assess -a windsurf -y
SKILL.md
diamond-assess.SKILL.mdname: diamond-assess
description: "Use to evaluate the current state of a diamond. Checks theory gates, confidence levels, and recommends next action."
metadata:
instruction_budget: "82"
framework_dependency: "mycelium"
framework_dependency_note: "This skill is designed to run within the Mycelium framework (https://github.com/haabe/mycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: /plugin install mycelium@haabe-mycelium."
Diamond Assess Skill
First: are Mycelium's hooks running here? (v0.286.0)
Run `find .claude/state/hooks-alive "${TMPDIR:-/tmp}/mycelium-hooks-alive-$(id -u)" -mmin -60 2>/dev/null`. If it prints a path (since v0.318.0 the hooks also stamp the temp folder in a project with no Mycelium state yet, where they do nothing else), say nothing about it and go on. If it prints nothing, Mycelium's hooks did not run in this session: its gates and the rules it gives the agent at session start are off, and nothing else will say so. Tell the user in one line before anything else: "Mycelium's hooks are not running in this session, so its gates are off. On Codex CLI, open `/hooks`, trust Mycelium's hooks and start a new session; on Claude Code, check the plugin is enabled in `/plugin`." Then carry on with this skill.
Evaluate current diamond state and recommend next action.
Preflight: Read-before-Recommend (gate-narration discipline)
**Hard rule** (per the operating contract's Communication Rules, anti-pattern #7 graduation v0.39.16). Every gate-status narration, blocker statement, hold claim, or "what's missing" verdict this skill emits MUST cite the canvas file + field path of the source evidence (e.g., `per purpose.yml#why`, `per opportunities.yml#opp-005#status`, `per landscape.yml:1520`). Adjacent-surface inference (different opportunity, different ht, different topic) MUST be tagged as inference, not asserted as gate state. This skill ran an un-mechanized version of its own diagnosis in cluster-instances.md instance #17 (2026-06-02) — confabulated an "L0 unclear" blocker from comms-friction evidence while the L0 purpose was clear and canvas-documented; collapsed only after the founder articulated the underlying model and grep verified the canvas already had it. The preamble exists so this skill stops being the recursive case.
Workflow
0. **Cognitive Forcing (ALWAYS FIRST — before any analysis)**:
Before presenting any assessment, ask the human for their unprimed judgment:
> "Before I run the gates — where do you think this diamond stands right now? What feels solid and what feels shaky?"
Wait for the human's response. Record it. Then proceed with the full assessment below. After presenting the assessment (step 10), compare:
> "You said [X]. The gates say [Y]. Where do we differ?"
**The turn that asks this question ends with a `Next:` line, like every turn in which a skill ran** (contract rule 12). The question is the next action: `Next: say where you think this diamond stands, what feels solid and what feels shaky (per: diamond-assess step 0)`. Without that line the Stop hook `hooks/next-action-check.sh` blocks the turn, and Claude Code shows the block to the person as "Stop hook error" under a question they have not answered yet. On the dogfood project, 3 of that hook's first 5 blocks were this pause (2026-10-05 to 2026-10-22).
This prevents the agent's analysis from anchoring the human's judgment. The human's pre-assessment often catches things the gates miss (Hoskins consistently outperformed the agent on product judgment calls).
*Source: Buçinca, Malaya & Gajos (Cognitive Forcing Functions, Harvard CHI/CSCW 2021) — forcing initial human judgment before AI output significantly reduces automation bias and over-reliance on incorrect AI recommendations.*
**Autonomous mode** (per `${CLAUDE_PLUGIN_ROOT}/engine/autonomous-mode.md`): in a declared autonomous run, substitute at rung (b) — record the declared persona's unprimed judgment BEFORE reading any canvas or gate state (the ordering is the load-bearing part, not the human authorship), tag it `source_class: internal_simulated`, and ledger the substitution. The post-assessment comparison still runs: persona judgment vs gate verdict.
1. **Identify the diamond**: Which diamond (ID, scale, position) is being assessed?
2. **Gather current state**:
- Where it is (`scale_locks.position`: no decision yet, target set, committed to build, released; the mode with it)
- Evidence collected so far
- Confidence score with breakdown
- Blockers or risks
2b. **Surface parked diamonds with resume conditions**:
- Read `.claude/diamonds/active.yml` for diamonds with `state: parked` (or a `parked_diamonds` section).
- For each, evaluate `resume_conditions` against current canvas/world state. If the awaited condition now holds, surface it as resumable: "Parked: [id] (parked [date], condition: '[condition]'). That looks satisfied — resume?" If not yet met, list it with its condition in one line. If a parked diamond has NO `resume_conditions`, flag it (unreachable except by memory — add conditions or decide park → kill).
- Implements the surface promised in `/mycelium:diamond-progress` § Park; found unimplemented by the 2026-06-12 gap analysis (no skill read `resume_conditions`).
2c. **Scale occupancy (records against cycles, v0.217.0)**:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/check_scale_occupancy.py" --canvas-dir .claude/canvasReport the line for each scale with records. Since v0.302.0 (DL-1367) it counts desired outcomes against L2s and chosen targets against L3s, since an L2 maps one outcome and an L3 works one target; before that, "73 opportunity records, 0 active L2 cycles" was the one-line diagnostic that would have surfaced the dogfood project's shape in May 2026, four months before a founder named it from lived experience ("how I never could get past L1 whilst the product alrea
Read more
name: diamond-assess description: "Use to evaluate the current state of a diamond. Checks theory gates, confidence levels, and recommends next action." metadata: instruction_budget: "82" framework_dependency: "mycelium" framework_dependency_note: "This skill is designed to run within the Mycelium framework (https://github.com/haabe/mycelium). Standalone use will skip the canvas state, theory gates, and harness behavior the skill assumes. Install: /plugin install mycelium@haabe-mycelium."
Diamond Assess Skill
First: are Mycelium's hooks running here? (v0.286.0)
Run `find .claude/state/hooks-alive "${TMPDIR:-/tmp}/mycelium-hooks-alive-$(id -u)" -mmin -60 2>/dev/null`. If it prints a path (since v0.318.0 the hooks also stamp the temp folder in a project with no Mycelium state yet, where they do nothing else), say nothing about it and go on. If it prints nothing, Mycelium's hooks did not run in this session: its gates and the rules it gives the agent at session start are off, and nothing else will say so. Tell the user in one line before anything else: "Mycelium's hooks are not running in this session, so its gates are off. On Codex CLI, open `/hooks`, trust Mycelium's hooks and start a new session; on Claude Code, check the plugin is enabled in `/plugin`." Then carry on with this skill.
Evaluate current diamond state and recommend next action.
Preflight: Read-before-Recommend (gate-narration discipline)
**Hard rule** (per the operating contract's Communication Rules, anti-pattern #7 graduation v0.39.16). Every gate-status narration, blocker statement, hold claim, or "what's missing" verdict this skill emits MUST cite the canvas file + field path of the source evidence (e.g., `per purpose.yml#why`, `per opportunities.yml#opp-005#status`, `per landscape.yml:1520`). Adjacent-surface inference (different opportunity, different ht, different topic) MUST be tagged as inference, not asserted as gate state. This skill ran an un-mechanized version of its own diagnosis in cluster-instances.md instance #17 (2026-06-02) — confabulated an "L0 unclear" blocker from comms-friction evidence while the L0 purpose was clear and canvas-documented; collapsed only after the founder articulated the underlying model and grep verified the canvas already had it. The preamble exists so this skill stops being the recursive case.
Workflow
0. **Cognitive Forcing (ALWAYS FIRST — before any analysis)**:
Before presenting any assessment, ask the human for their unprimed judgment:
> "Before I run the gates — where do you think this diamond stands right now? What feels solid and what feels shaky?"
Wait for the human's response. Record it. Then proceed with the full assessment below. After presenting the assessment (step 10), compare:
> "You said [X]. The gates say [Y]. Where do we differ?"
**The turn that asks this question ends with a `Next:` line, like every turn in which a skill ran** (contract rule 12). The question is the next action: `Next: say where you think this diamond stands, what feels solid and what feels shaky (per: diamond-assess step 0)`. Without that line the Stop hook `hooks/next-action-check.sh` blocks the turn, and Claude Code shows the block to the person as "Stop hook error" under a question they have not answered yet. On the dogfood project, 3 of that hook's first 5 blocks were this pause (2026-10-05 to 2026-10-22).
This prevents the agent's analysis from anchoring the human's judgment. The human's pre-assessment often catches things the gates miss (Hoskins consistently outperformed the agent on product judgment calls).
*Source: Buçinca, Malaya & Gajos (Cognitive Forcing Functions, Harvard CHI/CSCW 2021) — forcing initial human judgment before AI output significantly reduces automation bias and over-reliance on incorrect AI recommendations.*
**Autonomous mode** (per `${CLAUDE_PLUGIN_ROOT}/engine/autonomous-mode.md`): in a declared autonomous run, substitute at rung (b) — record the declared persona's unprimed judgment BEFORE reading any canvas or gate state (the ordering is the load-bearing part, not the human authorship), tag it `source_class: internal_simulated`, and ledger the substitution. The post-assessment comparison still runs: persona judgment vs gate verdict.
1. **Identify the diamond**: Which diamond (ID, scale, position) is being assessed?
2. **Gather current state**:
- Where it is (`scale_locks.position`: no decision yet, target set, committed to build, released; the mode with it)
- Evidence collected so far
- Confidence score with breakdown
- Blockers or risks
2b. **Surface parked diamonds with resume conditions**:
- Read `.claude/diamonds/active.yml` for diamonds with `state: parked` (or a `parked_diamonds` section).
- For each, evaluate `resume_conditions` against current canvas/world state. If the awaited condition now holds, surface it as resumable: "Parked: [id] (parked [date], condition: '[condition]'). That looks satisfied — resume?" If not yet met, list it with its condition in one line. If a parked diamond has NO `resume_conditions`, flag it (unreachable except by memory — add conditions or decide park → kill).
- Implements the surface promised in `/mycelium:diamond-progress` § Park; found unimplemented by the 2026-06-12 gap analysis (no skill read `resume_conditions`).
2c. **Scale occupancy (records against cycles, v0.217.0)**:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/check_scale_occupancy.py" --canvas-dir .claude/canvasReport the line for each scale with records. Since v0.302.0 (DL-1367) it counts desired outcomes against L2s and chosen targets against L3s, since an L2 maps one outcome and an L3 works one target; before that, "73 opportunity records, 0 active L2 cycles" was the one-line diagnostic that would have surfaced the dogfood project's shape in May 2026, four months before a founder named it from lived experience ("how I never could get past L1 whilst the product alrea
Mycelium won't make your idea good. It keeps you and your agent honest about whether it is, from first idea to market. Built on Claude Code, where the gates are structural. The files and skills port to opencode, Codex and Cursor. Outcome over output.
Other skills on mycelium.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about diamond-assess.
- Which coding agents can use diamond-assess?
- diamond-assess installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

