product-content
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…
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-product-content
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: 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/product-content
What's inside
- Skill name
product-content- Description
- 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, covering voice and tone, grammar and mechanics, terminology, the message patterns for error/empty/loading/partial/recovered states, the accessibility bar for text, and localization rules. The peer of the CDO's DESIGN.md — how something looks belongs there, what it says belongs here. Requires Content Manager posture (halts outside a content-manager session or subagent). Non-interactive by design — it derives the whole verbal language best-effort off the settled UXD and the product's existing strings, and surfaces its load-bearing calls into a companion open-issues file for the owner to sign off async. On re-run it folds their answers in and clears the companion when nothing is left unresolved — its absence means the verbal language is done. Use when authoring, continuing, or revising a product's verbal language, content standard, voice and tone guide, terminology governance, or UX-writing rules — including when the request never says "CONTENT.md", such as "define how this product talks", "we need a voice and tone standard", or "our error messages are inconsistent". Do not use for per-change copy or interface strings, the design language (product-design), the experience definition (product-uxd), the PRD (product-prd), the SRS (product-srs), the project's Agari (project-agari), or downstream documents (SDD / Delivery Plan / FDR / ADR / NFDR).
- License
- MIT
- Metadata
- risk: safe · tags: content-design, verbal-language, voice-and-tone, terminology, content-manager, product-definition, upstream-chain · author: Eyal Golan · created: 2026-08-05 · version: 1.4.5 · category: product-definition
- Instructions
- 332 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- description: longer than 1024 characters
Files (8)
- SKILL.md
- claude.md · intelligence/
- codex.md · intelligence/
- gemini.md · intelligence/
- ollama.md · intelligence/
- launcher.md
- rich.md · prompts/
- stack.json
SKILL.md (first lines)
# product-content ## Purpose Author a project's **verbal language** (`CONTENT.md`) — the standing source of truth for everything the product says to a person. It is written **off the UXD**, which is the document that names the states its message patterns answer to, and it holds **no per-change copy** — where that boundary falls is the prompt's § What belongs in this document. **The peer of the design language, not a part of it.** `DESIGN.md` is the visual language and is the CDO's; this is the verbal one. A value carried in both is a defect of whichever document copied it. This file is the **orchestrator** — posture, the file loop, path resolution, staging, and the commit. **How to author** — the completeness lens, the behaviour rule, the corpus test, the checkability bar, the terminology rule, the stability rule and the boundaries — is the authoring prompt **`prompts/rich.md`**, applied at Step 2; a rule referenced below by name lives there and is not restated here. The document's **section shape as stamped** is the template **`<CORE>/templates/product-templates/content_template.md`**; the companion's shape is **`content_open_issues_template.md`** beside it. **Non-interactive.** The run never blocks on the owner — it derives the whole verbal language best-effort, writes its load-bearing calls into a companion open-issues file 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.** Its peer runs an external linter before committing; nothing publishes a schema or a lint for a verbal language, so this skill has no such step and no such evidence. The bar is carried entirely in how each rule is worded, which is the prompt's § The checkability bar — the one place this document can fail silently, and the reason that section is not optional reading. --- ## Posture **Content Manager role required.** If invoked outside Content Manager posture (neither a `content-manager:` session nor the `content-manager` subagent), stop and say — *"product-content requires Content Manager posture. Switch? (Open a session with the `content-manager:` prefix, or run the `content-manager` subagent.)"* Do not shed the role. Where this seat ends and the CDO's begins is a posture fact the Content Manager loader stack owns, and the split that governs *while authoring* is the prompt's § The ground you stand on — neither is restated here. --- ## The files and the loop product-content produces the files below under the product's `docs/` — the skill resolves the locations (next section); a caller names the **project**, never the paths. | File | What it is | Lifecycle | |---|---|---| | `<Product path>/docs/CONTENT.md` | The verbal language — best-effort complete on every run. | Permanent; one document, revised and versioned in place (the bump-on-revision rule is the template's own header note), never forked. | | `<Product path>/docs/CONTENT_open_issues.md` | The companion, holding the calls awaiting the owner's sign-off and the few things the run could not settle, in the buckets `content_open_issues_template.md` defines — kept distinct, never blurred. Which bucket an item lands in is the prompt's. | Transient — exists only while something is unresolved. **Its absence is the done signal.** | | `<Product path>/docs/trail/content/cycle-<N>.md` | Each answered companion, retired whole. | Permanent. | **Cycle numbering:** `N` is one higher than the **highest** `cycle-<N>.md` already in `trail/content/` — list the directory and take the max, so a removed or renamed cycle can't make you collide with an existing one. The first is `cycle-1.md`; create `trail/content/` if it isn't there. Never overwrite an existing cycle. **The loop, repeated until clean:** 1. The run derives/updates the verbal language and writes the companion with what it couldn't ground. 2. The **owner answers inline** — filling the companion's answer slots, whose names and shape are `content_open_issues_template.md`'s, stated there and not here — and re-runs the skill. 3. The run **copies the answered companion whole to the next trail cycle**, folds the answers into the verbal language, and rewrites the companion with only what is still unresolved — an answer the fold leaves unsettled still drops, its residue re-raised as a fresh unanswered item. This is the ordinary cycle. A run where nothing would survive is step 4's, and step 4 alone says what it may touch. 4. When the answers resolve everything, the run is the close — one run that folds, copies the answered companion to the trail, and **removes** the companion instead of rewriting it, through the builder's `--rm` at Step 3, never a hand-`rm`. **No open-issues file = the verbal language is done.** The close has a precondition the ordinary cycle does not — the owner's answers must already be committed (Step 3 owns the rule and why). 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; the companion survives intact, answers and all, for the owner to commit. It reports the state and asks for that commit; the re-run after it is the close, start to finish, in one run. 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 for a decision survives only in git history. The trail costs one `cp` on the same commit and makes every owner answer permanently citable. It is the skill's job; the owner never manages it. --- ## Inputs and where the files land - **The UXD** — your primary input; read it in full. Its location is `product-uxd`'s to name — that skill wrote it, and its own file table owns where the UXD lands under the product's `docs/`; resolve the path from `<CORE>/../skills/cdo/.claude/skills/product-uxd/SKILL.md`, never from a path remembered here. It must exist — if nothing is at the resolved path, halt and report, because the states that carry the product's words are named there and there is nothing to derive patterns from without them. What its content means for the derivation is the prompt's rule. - **The product's existing strings — the corpus.** Locate and read them. What counts as the corpus, where it is kept, and what to do when there is none, is the prompt's § Inputs you work from. Finding nothing is a finding the prompt says how to route, never a halt. - **The PRD** — beside the UXD under the product's `docs/`; its location is `product-prd`'s to name, resolved from `<CORE>/../skills/cpo/.claude/skills/product-prd/SKILL.md`. Read it if it is there; what it feeds is the prompt's. **Its absence does not halt the run** — the state reaches the owner through the companion like any other input gap. - **`system/projects/<name>/agari.md`** — the project's 上がり Agari, beside the card below. Read it in full; what the terminus bounds is the prompt's rule. **Absence does not halt the run**, nor does an unfilled placeholder — the state reaches the owner through the companion. - **`system/projects/<name>/doctrine/`** — the project's own doctrine, if the folder holds anything. Read what is there; what it binds is the prompt's rule. Empty or absent is silence, not a halt. - **The product's `docs/` folder** — read it by **listing the directory**, not by recalling a set of filenames. Beyond the files named here and the loop files above, whatever else the folder holds is input the run is entitled to — brand material, a tone-of-voice note, the design language, the upstream trails of owner answers. What each carries, and which supersedes which, is the prompt's § Inputs you work from. Skip binary assets. Enumerating rather than naming is deliberate — a list of filenames kept here goes stale the day the product gains a document, and the run would never know what it had missed. - **Context and constraints** — whatever the owner hands you, or the docs it points at. - **`system/projects/<name>/project.md`** — the directed project's card. Its `Product path:` field resolves where every output lands; the field is the card template's (`<CORE>/templates/project_template.md`, the shape `project-stamp` stamps the card from), so
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-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-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 - 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
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.4.5
- 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
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
Cite this page
product-content skill. Agent Mart. https://agentmart.dev/skills/eyalgo-product-content (last updated 2026-10-24)