culture
Primarily the agent's internal-thinking skill — invoke it silently to model a problem, identify trade-offs, and decide what to do, BEFORE asking the user anything or dispatching another skill. Workflow skills call `/culture` as their step-1 reasoning pass; the agent does not surface the dialogue. Only treat this as a user-facing skill when the user has explicitly opted out of writes — phrases like "no writes", "just rubber-duck this", "let's only talk", "/culture". In the user-facing path the output is conversation; the only sanctioned artifact is an opt-in `.cheese/notes/<slug>.md` handoff slug at session end if the user asks for notes. Culture never writes to production code, never commits, never opens PRs. If the dialogue reveals real work, recommend `/mold` (fuzzy → spec) or `/cook` (clear ask → code) and stop. Before `/mold` or `/cook`.
NPX Install
npx skill4agent add paulnsorensen/easy-cheese cultureTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →/culture
- Internal mode (default). Other workflow skills — and itself — invoke
/cheesesilently as a thinking pass: restate the question, list assumptions, name candidate options, run a quick shape check, pick the next action. The dialogue does not surface to the user; only the resulting decision (and any code edits the calling skill makes) does. The most common callers are:/culture- step 1 — silent classification reasoning before announce.
/cheese - tier-2 escalation (see
/cheese§ Escalation) — fills missing context when the cook-fast-path clarity check fails on the raw input; the synthesis lands in the mini-spec'sskills/cheese/SKILL.mdsection.## Provenance - Other workflow skills' own pre-dispatch reasoning passes (mold, cook taste-test, etc.).
- User-facing mode. The user has explicitly opted out of writes for this session. Conversation is the deliverable; no code, no spec, no PR. Reach this mode only when the user said "no writes" / "rubber-duck this" / "just talk" or equivalent.
/mold/cook/age/briesearchInvariant
/culture.cheese/notes/<slug>.md## Handoff slug/mold/cookFlow
- Restate the question or tension in one sentence. If the question rests on a false premise or a loaded assumption, name it.
- Identify assumptions, constraints, and decision criteria.
- Explore trade-offs and likely blast radius. When the trade-off hinges on "what does this touch", run a read-only shape check on the candidate seam — a callers query (
cheez-search) plustilth_search kind: "callers"— and label each optiontilth_deps. Procedure mirrors[low | medium | high blast radius]; culture stops at the verdict and never drafts signatures. Steelman the rejected option before settling on a recommendation.../mold/references/shape-check.md - Use evidence only when it helps the reasoning; avoid deep research unless explicitly asked.
- Converge on a single recommended next action. In internal mode, return that recommendation and stop. In user-facing mode, render a compact summary, open questions tagged with confidence (), and a
certain | speculating | don't knowprompt (see below).## Handoff
Preferred tools and fallbacks
cheez-*/cheez-search/cheez-readcheez-searchkind: "callers"tilth_depscheez-*| Need | Prefer | Fallback |
|---|---|---|
| Visualizing diffs or examples | | plain |
| External sanity check | | clearly mark as an assumption |
Output
- Current understanding
- Trade-offs or options
- Open questions
Handoff slug
.cheese/notes/<slug>.md/cheese --continue <slug>status: ok | halt: <one-line reason>
next: mold | cook | ultracook | stop
artifact: <path-if-any>
<one-line orientation: what the culture session converged on>next:moldcookultracookstop/mold/cookHandoff
../../shared/handoff-gate.mdhandoff_context:
source_skill: /culture
summary: <one factual sentence>
open_questions: [<only blockers, if any>]
artifact: <.cheese/notes/<slug>.md if written, otherwise none>- Shape this into a written spec (recommended when the idea is still fuzzy) — with the context packet, or
/moldwhen a notes slug exists./mold .cheese/notes/<slug>.md - Implement it directly (recommended when the ask is clear and unambiguous) — with the context packet as the accepted contract.
/cook - Implement and auto-review — with the context packet, chains through
/cook --autoautonomously, fixing every medium-or-above finding plus cheap (contained-fix) lows across up to two cure passes. Stops at the final cure pass; opening or updating the PR stays a manual step. Pre-select this when the conversation reached an unambiguous contract; offer the non-auto/press → /age → /cureas an alternative when the user wants per-step approval./cook - Research more first (when the conversation hit a factual gap external docs could close) — .
/briesearch - Pause — dispatch none; keep the dialogue in head.
/ageRules
- No production-code writes, no commits, no PRs. The only sanctioned write is the opt-in handoff at session end, and only when the user asks for it.
.cheese/notes/<slug>.md - Ask one useful question at a time when the user is exploring.
- Prefer clarity over completeness.
- Agree when agreement is warranted; do not manufacture counterpoints to seem balanced.
- When external evidence raises an alternative ("X uses Y or Z"), name it as a trade-off in the dialogue and a candidate option — never silently recommend "add both" or "expose a knob". Design choices need explicit user adjudication, not agent inference from a citation.
- Apply the shared voice kernel (lives at in this repo): lead with the answer, flag confidence as
skills/age/references/voice.md, steelman, track contradictions across turns.certain | speculating | don't know