first-what-left
CPO-posture skill that writes a product's first what-left file, docs/what_left.md, once the project's Agari is settled.
Skill by eyalgo
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-first-what-left
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
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/first-what-left
What's inside
- Skill name
first-what-left- Description
- CPO-posture skill that writes a product's first what-left file, docs/what_left.md, once the project's Agari is settled. One run checks eight conditions in a fixed order, and the first that holds stops it with no file written. Otherwise it reads the Agari and the PRD, keeps each want the product's code can be shown not to do at the tip of main and drops each want only the owner's judgement can pass, writes the file in the shape of the what-left template, and makes one commit of that file in the product's repository. Never edits an existing list. Halts outside CPO posture. Run once for a project whose product has no what-left file yet.
- License
- MIT
- Metadata
- version: 1.1.0
- Instructions
- 124 lines in SKILL.md · view on GitHub
Files (7)
- SKILL.md
- claude.md · intelligence/
- codex.md · intelligence/
- gemini.md · intelligence/
- ollama.md · intelligence/
- launcher.md
- thin.md · prompts/
SKILL.md (first lines)
# first-what-left **The prompt owns judgment, and this file owns the loop.** `prompts/thin.md` decides which wants qualify, how an entry is worded and what every final message says. This file resolves the product, runs the checks in order, builds the file and makes the one commit. It reads that one prompt and no other judgment body. The posture refusal below runs before the prompt is read. ## When to Use - A project's Agari is settled and its product has no `docs/what_left.md`. Start it with `<CORE>/launchers/skill/launcher.sh first-what-left <project>`. - **CPO role only.** Outside a `cpo:` session or the `cpo` subagent, the run writes no file, makes no commit, and its final message says it needs CPO posture. It reads no project input first. **Refused for posture — the session is not a CPO session or the `cpo` agent** > first-what-left wrote no file and made no commit. > It needs CPO posture. > Open a session or subagent as `cpo` and run first-what-left again. **Do not use for:** - Adding, rewording, reordering or removing an entry in a list that exists. The run leaves any existing list as it is (`<CORE>/doctrine/setup/kensaiapp_structure.md` § 3, *The what-left file*). - Writing the Agari or the PRD (`project-agari`, `product-prd`). - A product whose card names a nominal Product path. The run writes only inside a product's own `docs/`. ## Input **The project** — `<project>`, one name. The run asks no question. ## The checks, in order Run from the instance root. The first condition that holds decides the run: it writes no file anywhere, makes no commit in any repository, and its final message opens with the refusal sentence and gives the sentences of that condition, from `prompts/thin.md`. Items 1 to 6 are the conditions in that order, and items 7 and 8 follow them, still before any write. 1. `project.md` — read `system/projects/<project>/project.md`. Refuse if there is no card, or the card has no `**Product path:**` line. Resolve the value as every stage does: relative from the instance root, absolute as written, a leading `~/` as the home directory. The result is `<product>`. 2. `nominal` — read `<CORE>/doctrine/setup/kensaiapp_structure.md` § 1 *Instance-level* now, to get the directories it places in the instance itself. Never copy that list into this file or into a note. Resolve `<product>` and the instance root to real paths, and compare by prefix. Refuse when `<product>` is the instance root, or is at or under one of those directories. A path outside the instance, or in an instance directory § 1 does not claim, names a product. 3. `docs/what_left.md` — refuse if `<product>/docs/what_left.md` exists, whatever it holds. Do not read it. 4. `agari.md` — refuse if `system/projects/<project>/agari.md` does not exist. 5. `agari_open_issues.md` — refuse if `system/projects/<project>/agari_open_issues.md` exists. The Agari is settled only when `agari.md` exists and this companion does not. 6. `docs/PRD.md` — refuse if `<product>/docs/PRD.md` does not exist, whether the file or the whole product directory is missing. 7. `git` — find the repository holding `<product>` with `git -C <product> rev-parse --show-toplevel`. Refuse if there is none, or if that repository has no `main` branch. 8. `staged` — refuse if `git -C <checkout> diff --cached --name-only` lists any path. The run's commit may hold only the one file, and the builder's staged-set guard would refuse after the write. Any other condition that stops the run before a write is refused in the closing sentence of `prompts/thin.md`'s refusals. ## Workflow After the checks pass, read `prompts/thin.md`. ### 1 — Record `main` Record `main`'s tip once with `git -C <checkout> rev-parse main`, and write its first nine hexadecimal digits down as `<tip>`. Never switch a branch and never open a worktree. Every want is judged at that one commit, so every entry shares one `**Missing at:**` value. ### 2 — Read and judge Read `system/projects/<project>/agari.md` and `<product>/docs/PRD.md`. Judge each want they state by `prompts/thin.md`. Evidence comes from `git -C <checkout> grep … <tip> -- <sub>`, where `<sub>` is `<product>` relative to `<checkout>`, which needs no copy. Code is run only in a disposable copy — a fresh clone at `<tip>` (`git clone --quiet <repo> <scratch> && git -C <scratch> checkout --quiet <tip>`; never `git archive`, which drops the history a check may read), never in the product's checkout (`<CORE>/roles/CROSS_ROLE.md` § *Every seat*). Run the checks from a subshell, never `cd` your own shell into the copy, and remove the copy when you have read the result, in a command of its own run from outside it. A want only the owner's judgement can pass gets no entry. ### 3 — Build the file Shape it by `<CORE>/templates/product-templates/what_left_template.md`: the H1 heading and the lead sentence, then one or more entries or the empty marker `Nothing is left to build.`, never both and never neither. No `<…>` placeholder and no HTML comment survives. The product name in the heading is the PRD's H1, and the project name where the PRD gives none. Check the candidate before writing: each entry has the three labels exactly, each `Source` names a section heading that exists in its document, and each `Missing at` is `<tip>` and passes `git -C <checkout> merge-base --is-ancestor <tip> main`. ### 4 — Re-check, write, commit once Re-check `test -e <product>/docs/what_left.md` just before writing, and `main`'s tip. Refuse with the sentence of that state if the file has appeared. Write `<product>/docs/` first if it is missing, then write only that one file. Make **exactly one commit** through `<CORE>/tools/commit_builder.py`, following `<CORE>/doctrine/governance/commit_via_builder.md`: `--repo` is the product's repository (`<checkout>`), `--add` is that one file's path relative to `<checkout>`, **`--actor cpo`**, **`--skill first-what-left`**, the runtime's surface and identity, and `--reasoning-effort` when the launch resolved one. The directional line follows `<CORE>/doctrine/governance/commit_format.md` § Directional trailer. Write the body through a file. When the builder refuses, say so in the final message with its message verbatim. Use no empty commit, no index waiver and no second commit to get past it. ## Final message The one outcome, in the sentences of `prompts/thin.md`: a refusal, the builder refusal, or the completion message, followed by one sentence for each want the list leaves out. The run writes no report file, writes nothing in a satellite and writes no file but `<product>/docs/what_left.md`. ## Critical Rules - **CPO posture only**, checked before any input is read. - **The first condition that holds decides the run**, in the order of the checks list. - **Only `docs/what_left.md` is written**, only inside a product's own `docs/`, in one commit. - **An existing list is never read, changed or replaced.** - **A want only the owner's judgement can pass gets no entry.**
From eyalgo/kensaiapp, MIT.
More from eyalgo/kensaiapp
- 0.570score
development-design
eyalgo
Architect-posture skill for ongoing work on an existing project.
SkillAFreshness: AClaude Code +9 - 0.570score
development-content
eyalgo
Content-editor-posture skill for ongoing work.
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-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.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.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
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 - 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.1.0
- License
- MIT
- Repository
- github.com/eyalgo/kensaiapp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from eyalgo
- 0.570score
development-design
eyalgo
Architect-posture skill for ongoing work on an existing project.
SkillAFreshness: AClaude Code +9 - 0.570score
development-content
eyalgo
Content-editor-posture skill for ongoing work.
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.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.561score
refactor-for-reuse
eyalgo
Refactor changed code to eliminate duplication, extract shared logic, and remove dead code.
SkillAFreshness: AClaude Code +9
Cite this page
first-what-left skill. Agent Mart. https://agentmart.dev/skills/eyalgo-first-what-left (last updated 2026-10-24)