experience-voice
Content-Manager-posture skill that authors a kensaiapp instance's verbal experience layer — the limits and the inherited voice every product under that…
Skill by Eyal Golan
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/eyalgo-experience-voice
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, design, writing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/experience-voice
What's inside
- Skill name
experience-voice- Description
- Content-Manager-posture skill that authors a kensaiapp instance's verbal experience layer — the limits and the inherited voice every product under that instance holds, written into `system/experience/voice_restrictions.md` and `voice_direction.md`, each with an open-issues companion whose absence is the done signal. Instance-level, never per-product — where `product-content` writes one product's words, this writes how every product under the instance is allowed to sound. Requires Content Manager posture (halts if invoked outside a `content-manager:` session or the `content-manager` subagent). Non-interactive by design — it authors both documents best-effort from the instance's own identity, doctrine and evidence, and instead of interviewing live it surfaces its load-bearing calls into companion files the owner answers on their own time; a re-run folds those answers in, retires the answered companion to a permanent trail, and deletes the companion when nothing is left unresolved. It is the second half of an ordered pair — it reads the fence entries `experience-visual` marked in `system/experience/visual_voice_contract.md` and records its own there. Use when authoring, continuing, or revising an instance's verbal experience layer, at instance setup or any time after. Do not use for one product's words (`product-content`), the visual half (`experience-visual`), the instance's identity or Michi (`kensaiapp-michi`), or any product document.
- License
- MIT
- Metadata
- risk: safe · tags: experience-layer, instance-setup, content-manager, voice, ordered-pair · author: Eyal Golan · created: 2026-08-12 · version: 1.6.6 · category: instance-setup
- Instructions
- 308 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- description: longer than 1024 characters
Files (6)
- SKILL.md
- claude.md · intelligence/
- codex.md · intelligence/
- ollama.md · intelligence/
- launcher.md
- rich.md · prompts/
SKILL.md (first lines)
# experience-voice ## Purpose Author the **instance's** verbal experience layer — the two documents that say how this instance's products are allowed to sound: - `system/experience/voice_restrictions.md` — the limits. - `system/experience/voice_direction.md` — what products inherit, and the fallback a run authoring one product's words reads when nothing else answers it. This runs at the **instance** altitude. Nothing it writes says anything about any one product; where that line sits, and the setup sequence this step belongs to, are `<CORE>/doctrine/setup/setting_up_an_instance.md`, which owns them. This file is the **orchestrator**: posture, the file loop, path resolution, the contract, staging, and the commit. **How to author** — what belongs at this altitude, what evidence an entry needs, which medium a limit reaches, the markers, when a category is left open, the bar an entry is worded to, and what goes to the owner instead of being settled — is the authoring prompt **`prompts/rich.md`**, applied at Step 2; a rule named below without its content lives there. The documents' **section shape** is the templates **`<CORE>/templates/experience-templates/voice_restrictions_template.md`** and **`voice_direction_template.md`**; the companions' shape is **`voice_open_issues_template.md`** beside them. None of the four is summarised here. **Non-interactive.** The run never blocks on the owner. It authors both documents best-effort, writes its load-bearing calls into companion files the owner signs off on their own time, and a re-run folds those answers in. That is what lets it run headless (as the `content-manager` subagent) as well as in an interactive `content-manager:` session. **There is no machine gate, which is why this Workflow has four steps where its peer has five.** `experience-visual` lints `visual_direction.md` against an external format before it commits; neither document here has a machine-checkable format, so there is no such step and no exit code to read. What stands in its place is the bar the prompt's § *There is no machine that can check this* carries — met by how an entry is worded, never by passing anything. --- ## Posture **Content Manager role required.** If invoked outside Content Manager posture (neither a `content-manager:` session nor the `content-manager` subagent), stop and say: *"experience-voice requires Content Manager posture. Switch? (Open a session with the `content-manager:` prefix, or run the `content-manager` subagent.)"* Do not shed the role. **The seat's reach over this altitude is the loader's, and this skill grants nothing.** `<CORE>/roles/loaders/content_manager_global.md` § *What you own*, item 2, gives the Content Manager the instance's own verbal rules — its writing bar and its verbal experience layer — and says what makes them this seat's. Read it there. --- ## The files and the loop Everything lands under `system/experience/` in the instance repo. A caller names nothing — there is one instance, and this skill is running in it. | File | What it is | Lifecycle | |---|---|---| | `system/experience/voice_restrictions.md` | The limits — best-effort complete on every run. | Permanent; one document, revised and versioned in place. | | `system/experience/voice_direction.md` | What products inherit, plus the fallback section. | Permanent; one document, revised and versioned in place. | | `system/experience/voice_restrictions_open_issues.md` | The limits document's companion — the calls awaiting the owner and the few things the run could not settle, in the buckets `voice_open_issues_template.md` defines. | Transient. **Its absence is the done signal for that document.** | | `system/experience/voice_direction_open_issues.md` | The direction document's companion, same shape. | Transient. **Its absence is the done signal for that document.** | | `system/experience/trail/voice/cycle-<N>.md` | Each answered companion, retired whole. | Permanent. | | `system/experience/visual_voice_contract.md` | The handoff this run reads and records into — see the section below. | Permanent. **`experience-visual` creates it**, on the first run of the pair; never this skill, whose rows are always added to a file already there. | **The two documents are tracked separately.** A run can finish the limits and still be open on the direction document, so each companion's absence answers for its own document only. What answers for the whole layer is a separate gate, and it is not this skill's. **Cycle numbering:** `N` is one higher than the **highest** `cycle-<N>.md` already in `trail/voice/` — list the directory and take the max, so a removed or renamed cycle cannot make you collide with an existing one. The first is `cycle-1.md`; create `trail/voice/` if it isn't there. Never overwrite an existing cycle. Where both companions are answered in one round, each is copied to its own cycle file. **The loop, repeated until clean:** 1. The run authors or updates both documents and writes each companion with what it could not ground. 2. The **owner answers inline** — filling the companion's answer slots, whose names and shape are `voice_open_issues_template.md`'s — and re-runs the skill. 3. The run **copies each answered companion whole to the next trail cycle**, folds the answers into its document, and rewrites the companion with only what is still unresolved. An answer that leaves something unsettled still drops its item, and the residue re-enters as a fresh unanswered item. 4. When the answers resolve everything in a companion, that companion is **removed** rather than rewritten — through the builder, Step 3's `--rm`, never a hand-`rm`. **No open-issues file = that document is done.** The close has a precondition the ordinary cycle does not: the owner's answers must already be committed, because git will not remove a file with uncommitted edits in it and their words are not yours to commit. Re-entry is inline answers, so the first closing touch normally finds them uncommitted — and then it **changes nothing at all**: no fold, no trail copy, no rewrite, no commit. It reports the state, asks for that commit, and the re-run after it is the close. That stop is a report with an ask, not a live interview. Step 3 is why the trail exists. Folding rewrites the companion and the close removes it, so without the trail the owner's answers are destroyed twice and their reasoning survives only in git history. The trail costs one `cp` on the same commit and makes every owner answer permanently citable. It is this skill's job; the owner never manages it. --- ## The contract, which this run reads before it writes `system/experience/visual_voice_contract.md` is **an input to this run, not only a place it leaves rows.** It carries every fence entry the visual half wrote, with the ones reaching this medium marked, and those marks are the work list this run starts from. Read it at Step 1, before either document. Why the marks exist and what the order between the two halves buys is `<CORE>/doctrine/setup/setting_up_an_instance.md` § The three rules, rule 1 — read there, not here; what a mark obliges you to *write* is the prompt's § The marks you are reading. **Neither this skill nor the prompt owns the contract's columns**, and neither restates them: they are `<CORE>/templates/experience-templates/visual_voice_contract_template.md`'s, and the file on disk carries them in its own header. **If the file is not on disk, do not create it and do not guess its shape.** It is `experience-visual`'s to create, on the first run of the pair — so its absence means step 4a has not run, or ran without leaving one. The pair has run out of order, and that is a defect to report rather than a hole to fill. Record in both companions that the handoff is missing and that this run
From eyalgo/kensaiapp, MIT.
More from eyalgo/kensaiapp
- 0.570score
development-content
eyalgo
Content-editor-posture skill for ongoing work.
SkillAFreshness: AClaude Code +9 - 0.570score
development-design
eyalgo
Architect-posture skill for ongoing work on an existing project.
SkillAFreshness: AClaude Code +9 - 0.565score
first-what-left
eyalgo
CPO-posture skill that writes a product's first what-left file, docs/what_left.md, once the project's Agari is settled.
SkillAFreshness: AClaude Code +9 - 0.565score
product-prd
Eyal Golan
CPO-posture skill that authors a project's PRD — the product source of truth and the head of the definition sequence.
SkillAFreshness: AClaude Code +9 - 0.565score
product-srs
Eyal Golan
CTO-posture skill that authors a project's SRS — the technical source of truth, written off the settled PRD alongside the CDO's UXD.
SkillAFreshness: AClaude Code +9 - 0.565score
refactor-for-optimize
eyalgo
Refactor code for performance — algorithmic complexity, data structure selection, unnecessary I/O, hot-path improvement, and memory usage.
SkillAFreshness: AClaude Code +9 - 0.565score
refactor-for-clarity
eyalgo
Refactor code for clarity without changing behavior.
SkillAFreshness: AClaude Code +9 - 0.565score
readme-status
eyalgo
Content-editor-posture skill that brings a product README's Status section up to what is built.
SkillAFreshness: AClaude Code +9 - 0.561score
refactor-for-reuse
eyalgo
Refactor changed code to eliminate duplication, extract shared logic, and remove dead code.
SkillAFreshness: AClaude Code +9 - 0.560score
product-content
Eyal Golan
Content-Manager-posture skill that authors a project's verbal language (CONTENT.md) — the standing source of truth for everything a product says to a person…
SkillAFreshness: AClaude Code +9 - 0.560score
experience-visual
Eyal Golan
CDO-posture skill that authors a kensaiapp instance's visual experience layer — the fence and the direction every product under that instance inherits…
SkillAFreshness: AClaude Code +9 - 0.560score
product-design
Eyal Golan
CDO-posture skill that authors a project's design language — the visual source of truth in Google's DESIGN.md format, written off the settled UXD's…
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 19, 2026 (10 days ago)
- Last release
- Oct 22, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.6.6
- License
- MIT
- Repository
- github.com/eyalgo/kensaiapp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Eyal Golan
- 0.565score
product-prd
Eyal Golan
CPO-posture skill that authors a project's PRD — the product source of truth and the head of the definition sequence.
SkillAFreshness: AClaude Code +9 - 0.565score
product-srs
Eyal Golan
CTO-posture skill that authors a project's SRS — the technical source of truth, written off the settled PRD alongside the CDO's UXD.
SkillAFreshness: AClaude Code +9 - 0.560score
product-sdd
Eyal Golan
CTO-posture skill that authors a project's SDD — the architecture-and-cut document, written off the settled SRS and UXD.
SkillAFreshness: AClaude Code +9 - 0.560score
project-agari
Eyal Golan
CPO-posture skill that declares a project's Agari (上がり) — the terminus that says when the product is complete or shipped.
SkillAFreshness: AClaude Code +9 - 0.560score
product-uxd
Eyal Golan
CDO-posture skill that authors a project's UXD — the experience source of truth, written off the settled PRD alongside the CTO's SRS and read by the SDD.
SkillAFreshness: AClaude Code +9 - 0.560score
product-content
Eyal Golan
Content-Manager-posture skill that authors a project's verbal language (CONTENT.md) — the standing source of truth for everything a product says to a person…
SkillAFreshness: AClaude Code +9
Cite this page
experience-voice skill. Agent Mart. https://agentmart.dev/skills/eyalgo-experience-voice (last updated 2026-10-24)