skills/generate-my-taste/SKILL.md
Evidence-first generator for a personal <name>-taste Claude Code skill. Mines local memories and agent histories for influences, slop bans, and overkill bans; asks compact confirmation forks; previews the synthesis; then writes a right-sized taste skill with exactly 5 anchors by default. Trigger with "generate my taste skill", "make my taste skill", or "derive my taste spine".
npx skillsauth add outlinedriven/odin-codex-plugin generate-my-tasteInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a personal Claude Code taste skill from local evidence. The output is a <name>-taste skill shaped like spine / taste: frontmatter, posture, modes, two-sided charter, anchors, audit output shape, anchor mode output shape, auto-clarity exception.
Evidence leads. Questions confirm. Generation writes only after a preview gate.
Derive taste from observed patterns, not self-report alone. Mine memories and local agent histories for repeated positive influences, Side A slop bans, and Side B overkill bans. Convert those signals into exactly 5 portable anchors unless the user explicitly selects update-in-place for an existing owned skill with a different anchor count.
Keep the generator right-sized: one generated SKILL.md, references/anchors.md, and references/charter.md. No scripts, no evals, no SOUL file, no elegance file, no examples skeleton.
This skill has one mode: generate. If invoked for audit of an artifact, route to an existing taste/spine skill instead.
SKILL.md last.Prefer indexed sources when available; fall back to files. Missing sources are not failures.
/home/alpha/.claude/projects/**/memory/*.md/home/alpha/.claude/projects/**/memory/**/*.md/home/alpha/.claude/CLAUDE.md/home/alpha/.claude/CLAUDE.local.md/home/alpha/.claude/projects/Treat Claude Code, Codex, Gemini CLI, OpenCode, Amp, Pi, and Cursor as optional source classes. Record missing classes in the evidence summary as not present or not readable; do not block.
Do not dump exhaustive transcripts. Extract compact evidence: quoted phrase, source class, path or index label, and inferred signal.
Use references/influence-catalogue.md as the candidate pool and gate. An influence can become an anchor only when it has:
If local evidence suggests an influence not in the catalogue, include it only when the same five criteria are satisfied; otherwise map the signal to the nearest catalogue influence and cite the mapping.
Ask at most three questions per fire. Axis-with-default questions are single-select via AskUserQuestion. Put the recommended option first and append (Recommended) to its label. Ask only unresolved forks; evidence-backed defaults can pass straight to preview.
Ask only if the name is ambiguous.
<user-or-handle>-taste (Recommended) — personal skill name derived from local context.spine update — only when existing spine is detected and update-in-place is intended.ICM + local files (Recommended) — indexed recall first, direct memory/transcript inspection as fallback.Local files only — memory indexes and transcript files without indexed tools.Current project only — restrict to current checkout and its memories.Prose + Code + Design + Decision (Recommended) — mirrors taste, spine, the user's two-sided table, and the fixed template fields.Four-domain with one emphasis — keep all four domains but weight examples toward the evidence-dominant domain.Stop for custom template — pause generation when a narrower domain set is required; conditional templates are out of scope for this right-sized generator.Q4 is the only multiSelect exception. Use it only after presenting evidence-ranked candidates. It is additive selection, not default override semantics.
multiSelect: true.Do not add more upfront questions merely to restate defaults. Derive these from evidence and show them in the synthesis preview:
spine or *-taste; otherwise keep the preview gate in control of whether any write occurs.If evidence contradicts one of these defaults, ask a separate single-select fork after Q4 and before preview. Never batch more than three questions in one AskUserQuestion call.
Never use multiSelect for Q1, Q2, Q3, preview-confirmed defaults, collision policy, or any axis-with-default question.
Before any discoverable write, show a preview containing:
name and compact description.Then ask a single-select gate:
Write draft (Recommended) — proceed with safe write.Revise preview — ask for specific corrections.Abort — write nothing.Do not write generated files before this gate.
Use a draft path for new writes when a collision exists. Recommended draft path:
/home/alpha/.claude/claude/skills/<name>-taste.draft/
For non-colliding writes, use:
/home/alpha/.claude/claude/skills/<name>-taste/
Write order:
references/anchors.md.references/charter.md.SKILL.md last.Do not overwrite unless update-in-place was explicitly selected. Existing spine or *-taste skills can be update candidates. Update-in-place replaces only:
SKILL.mdreferences/anchors.mdreferences/charter.mdPreserve every other file in the target skill. Preserve all files not owned by this generator.
Use assets/template/ as the skeleton. The generated SKILL.md order is fixed:
[LOAD-BEARING].Generated skill defaults:
Never generate:
Template slot markers may appear only in assets/template/, never in generated output.
| File | Load when |
|---|---|
| references/influence-catalogue.md | Building candidate anchors and applying inclusion criteria |
| references/charter-examples.md | Translating evidence into Side A / Side B charter clusters |
| references/anchor-derivation.md | Converting evidence into anchors and preview rationale |
| assets/template/SKILL.md | Writing generated skill body |
| assets/template/references/anchors.md | Writing generated anchor reference |
| assets/template/references/charter.md | Writing generated charter reference |
After writing a generated skill, verify:
multiSelect; Q4 requires exactly 5 picks.SKILL.md follows the fixed order above.SKILL.md; collisions used draft path unless update-in-place was selected.testing
ODIN's compress-operations dispatcher under the Compressor/Extender role. Invoke on "tidy", "clean up", "tidy this file/memory/workspace/git/docs", or when active context (current file, diff, stack, memory directory) has structural rot to resolve before touching behavior. Detects target domain from context and routes to the sibling skill. Requires explicit target or clear active-context signal — do not invoke speculatively.
development
Cross-domain taste skill — apply distinctive judgment to any artifact (prose, code, design, decisions) instead of converging to AI defaults. Two modes — `audit` (judge work against the two-sided charter and portable anchors) and `anchor` (load register before producing). Auto-detects by phrasing; override via `/taste audit | anchor`. Trigger on "is this slop?", "overkill?", "elegant?", "taste-test this".
tools
One-shot bootstrap of strict-mode tooling per ecosystem plus per-task GOALS.md scaffolding so an agentic loop can self-verify. Writes typechecker/linter/schema-validator config for TS (strict + noUncheckedIndexedAccess + exactOptionalPropertyTypes), Python (Pyright strict, Ruff strict), Rust (Clippy deny-correctness), Go (golangci-lint with staticcheck), OCaml (dune --release); establishes `.agent-tasks/<id>/GOALS.md` per-task convention distinct from project-stable AGENTS.md. C++/Java/Kotlin and framework specifics (Spring Boot, Nest, React-strict) are out of scope. Trigger on new project bootstrap, agentic-task setup, "make this self-verifying", "set the loop's goal", "scaffold goals for this issue". Pairs with `llm-self-loop` runtime.
tools
Install git pre-commit hooks via the project's hook tool — Husky+lint-staged (JS), pre-commit (Python/OCaml), lefthook (Go), cargo-husky (Rust). Use when the user wants commit-time formatting, linting, type-checking, or test gates. Detects ecosystem first.