Asd Ste100
danyuchn/asd-ste100-skill
A skill your agent uses when English text must be parsed without a human to resolve ambiguity — tool descriptions, error messages, inter-agent instructions, system prompts, status reports — and…
ALWAYS invoke this skill when work wraps up or the user asks how it went - "done or not", "are we done", "what happened", "report", "what's the status of this ticket" - in any language, and when a…
$ npx skills add kharmanskyi/open-steps --skill os-done-or-not -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kharmanskyi/open-steps os-done-or-not --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/kharmanskyi/open-steps.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/os-done-or-not .claude/skills/os-done-or-not && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "os-done-or-not" agent skill from https://github.com/kharmanskyi/open-steps/tree/main/skills/os-done-or-not into .claude/skills/os-done-or-not/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "os-done-or-not", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/kharmanskyi/open-steps/tree/main/skills/os-done-or-notType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add kharmanskyi/open-steps --skill os-done-or-not -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kharmanskyi/open-steps os-done-or-not --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kharmanskyi/open-steps.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/os-done-or-not .agents/skills/os-done-or-not && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "os-done-or-not" agent skill from https://github.com/kharmanskyi/open-steps/tree/main/skills/os-done-or-not into .agents/skills/os-done-or-not/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "os-done-or-not", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kharmanskyi/open-steps --skill os-done-or-not -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kharmanskyi/open-steps os-done-or-not --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kharmanskyi/open-steps.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/os-done-or-not .cursor/skills/os-done-or-not && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "os-done-or-not" agent skill from https://github.com/kharmanskyi/open-steps/tree/main/skills/os-done-or-not into .cursor/skills/os-done-or-not/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "os-done-or-not", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/kharmanskyi/open-steps.git --path skills/os-done-or-not--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add kharmanskyi/open-steps --skill os-done-or-not -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kharmanskyi/open-steps os-done-or-not --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kharmanskyi/open-steps.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/os-done-or-not .gemini/skills/os-done-or-not && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "os-done-or-not" agent skill from https://github.com/kharmanskyi/open-steps/tree/main/skills/os-done-or-not into .gemini/skills/os-done-or-not/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "os-done-or-not", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install kharmanskyi/open-steps os-done-or-notInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add kharmanskyi/open-steps --skill os-done-or-not -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kharmanskyi/open-steps.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/os-done-or-not .github/skills/os-done-or-not && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "os-done-or-not" agent skill from https://github.com/kharmanskyi/open-steps/tree/main/skills/os-done-or-not into .github/skills/os-done-or-not/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "os-done-or-not", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kharmanskyi/open-steps --skill os-done-or-not -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kharmanskyi/open-steps os-done-or-not --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kharmanskyi/open-steps.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/os-done-or-not .opencode/skills/os-done-or-not && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "os-done-or-not" agent skill from https://github.com/kharmanskyi/open-steps/tree/main/skills/os-done-or-not into .opencode/skills/os-done-or-not/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "os-done-or-not", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
os-done-or-notALWAYS invoke this skill when work wraps up or the user asks how it went - "done or not", "are we done", "what happened", "report", "what's the status of this ticket" - in any language, and when a…
Os Done Or Not is an agent skill from kharmanskyi/open-steps. ALWAYS invoke this skill when work wraps up or the user asks how it went - "done or not", "are we done", "what happened", "report", "what's the status of this ticket" - in any language, and when a Stop hook asks for a session report. Produces a ten-line plain- language report: a lead, a checkmark table, and a verdict - fully done, anything needed from you, new debt, safe to close. Every "yes" names its proof; unverified says "not checked". Saves the report so the next session starts from it instead of…
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/01-prod-promote.md`).
It sits in Writing & Content, covering Plain language and style rules. The repository describes itself as: Plain-language agent skills for Claude Code, Codex, Cursor and Gemini CLI: honest session reports, straight verdicts, steps you can follow. MIT. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4fa744b. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Read(~/.claude/open-steps/**)Edit(~/.claude/open-steps/**)Bash(gh pr view *)Bash(gh pr checks *)Bash(gh pr checks)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Os Done Or Not loads about 1.8k tokens when it runs, and up to ~2.7k if it reads all its reference files. Until then it costs about 136 tokens; SKILL.md has 869 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from kharmanskyi/open-steps at commit 4fa744b, republished under its MIT licence (© kharmanskyi). 869 words, ~1,803 tokens.
.claude/skills/os-done-or-not/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.One question, one screen: did the agent finish, and what actually happened, in words a reader who does not code will understand. Nothing happened (pure questions, no files touched) → one line saying so, no report.
The user's language in this session, detected from the conversation. Translate every template label. Code, files, commands stay English.
Fast checks only; never re-run the test suite - use results this session already produced. Not confirmable in seconds, or still running → "not checked", never "yes".
git status --porcelain # uncommitted?
git log --oneline -10 # what landed
git log HEAD --not --remotes --oneline 2>/dev/null | head -20 # unpushed? (no remote: say so)
gh pr view --json state,mergeStateStatus && gh pr checks # if a PR existsSessions end one of eight ways; pick the match before writing, or the report says "fully done: yes" and "safe to close: no" in the same breath.
| # | Outcome | Verdict shape |
|---|---|---|
| 1 | Shipped and verified | done Yes · nothing needed · close Yes |
| 2 | Done - one action is yours | done Yes · needed = that action · close Yes |
| 3 | Stalled on your decision | done No · needed = the decision · close No |
| 4 | Partly done, rest deferred | core Yes, rest recorded as debt · close Yes |
| 5 | Didn't work - rolled back | done No · lead = what was learned · close Yes |
| 6 | Something broke | lead opens with ⚠️ · risk in full (rule 7) · close No |
| 7 | Research only | the answer is the result · skip ship rows · close Yes |
| 8 | Nothing to report | one line, no report, no file |
Outcomes 5 and 6 are where reports start lying; "the approach failed and was rolled back" is a complete result.
<Lead: 1–2 sentences. What changed for the product. Best result first.>
| | |
|---|---|
| ✅ | <done, and what proves it> |
| ⚠️ | <surprise or bad news> |
| ⏳ | <deferred, and until when> |
**Verdict**
| | |
|---|---|
| Fully done? | Yes / No / Not checked |
| Anything needed from you?| No / <one concrete action> |
| New debt? | No / <how many, where recorded> / Not checked |
| Safe to close? | Yes / No - <reason in five words> |Checkmark rows: two to five; drop an empty row, never a non-empty ⚠️. Verdict cells are one line each - detail lives in the checkmark rows, not the verdict.
Two conditional rows, only when the session makes them real - never "not applicable": Easy to undo? (Yes - how / Hard - why) and Security touched? only when yes - one line: exposed what, closed how. Deliberately no "live for users?" row: unmerged it repeats the action line; merged but not reaching users is a surprise - a ⚠️ row.
Write both, creating folders as needed. The paths are the same on every tool.
If the file tool refuses them as outside the workspace, use the shell. Save
nowhere else, and never in the user's project. <project> is the name of the
folder the session started in, or of its repository's top folder when it is
inside one (the name only, not the path):
~/.claude/open-steps/reports/<project>/latest.md (overwritten)~/.claude/open-steps/reports/<project>/history/<YYYY-MM-DD-HHMM>.mdHead the file with date, project, ticket. Two parts; only part one goes in the chat. Part one - the report above, for the person. Part two - for the next session, which reads it instead of re-exploring the repository; the only home for engineering identifiers.
---
## Technical detail - for the next session, not the reader above
- Branch / worktree / PR and their state; commits made this session
- Files changed, with paths; test and check results as measured
- Commands worth re-running; the first thing to look at nextTerse, factual, a handover note; nothing changed → omit part two.
The report describes one session. BIG-PICTURE.md holds the standing picture
of the product, and this is the moment it goes out of date. Use the
os-big-picture skill to update only the rows this session touched - a new
feature, a stage that moved, a deferred item joining the backlog.
Skip it in two cases only: outcome 8, or no BIG-PICTURE.md and the user has
never asked for one. A session that changed no row still runs it, because the
map's measured columns went stale while the session ran.
Examples of the move - apply it in the user's language. A ticket or PR number naming an action ("review PR #892") stays; elsewhere say what it changed.
| Don't write | Write |
|---|---|
a1b2c3d, commit, SHA | "the version" - or drop it |
| deploy, prod | "put it on the live product", "the live product" |
| CI green, checks passed | "all the automatic checks passed" |
| fail-closed, the gate fired | "the safety check refused to ship it - correctly" |
| migration / rollback | "a change to the database" / "put it back as it was" |
| tech debt / flaky test | "an unfinished bit, written down" / "a check that sometimes lies" |
© kharmanskyi, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/os-done-or-not of kharmanskyi/open-steps.
Open the folder on GitHubat commit 4fa744b
Os Done Or Not next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Os Done Or Not this skillkharmanskyi/open-steps | 1.3k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Asd Ste100danyuchn/asd-ste100-skill | 4.3k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Ponytail AuditDietrichGebert/ponytail | 160k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Technical Writing Standardcursor/plugins | 11k | 10 repos | ~2.4k | Automated safety check: Pass | None | |
| Natural Japanese Business Writingcoji/natural-japanese | 1.9k | — | ~2.1k | Automated safety check: Pass | MIT | |
| PgjevrealZachi/pg-jev | 1.1k | — | ~2.9k | Automated safety check: Pass | Custom licence |
danyuchn/asd-ste100-skill
A skill your agent uses when English text must be parsed without a human to resolve ambiguity — tool descriptions, error messages, inter-agent instructions, system prompts, status reports — and…
DietrichGebert/ponytail
Quality audit of a whole repo: bugs, security holes, what breaks under real load, risky code without tests, slow paths, and what to delete, merge or split.
cursor/plugins
Applies four layers of technical-writing rules to docs, RFCs, readmes, PR descriptions and commit messages so a tired engineer follows them on the first read.
coji/natural-japanese
Writes and edits Japanese business documents so they read clearly and naturally, removes AI-sounding phrasing and can score how AI-like a text reads.
realZachi/pg-jev
Install, configure, query and explain pgjev (the jev PostgreSQL extension that filters, ranks and classifies rows with plain-language conditions via TypeSafe's Jev model).
lennney/stop-that-shit
Cuts defensive disclaimers, stacked hedging and self-protective narration from proposals and summaries, keeping only limits that affect the reader's decision.
kharmanskyi/open-steps
ALWAYS invoke this skill when the user asks where the project as a whole stands - "where are we", "what's the big picture", "what have we built", "what is in this project", "map the project", "what…
kharmanskyi/open-steps
ALWAYS invoke this skill before asking the user any technical question or offering options, and whenever they ask to be asked in plain words - "ask simple", "ask me simply", "ask me in plain words"…
kharmanskyi/open-steps
ALWAYS invoke this skill when the user asks about work done outside this session - "check work", "check the others", "check other sessions" - or to accept one: "the session is done, check it", "can…
kharmanskyi/open-steps
ALWAYS invoke this skill when the user asks what to do next, what is left, or what is blocked - "what's next", "what now", "what should we work on", "anything I can do" - in any language.
kharmanskyi/open-steps
ALWAYS invoke this skill when the user asks for simpler or shorter about something said or written - "say it simply", "what does this mean", "I don't understand your answer", "too long", "wait…
kharmanskyi/open-steps
ALWAYS invoke this skill when you need the user to act - run a command, paste a secret, click, approve - and whenever they ask how to do something or say they do not know what to do: "step by step"…
Categories
ALWAYS invoke this skill when work wraps up or the user asks how it went - "done or not", "are we done", "what happened", "report", "what's the status of this ticket" - in any language, and when a…. Os Done Or Not is an agent skill from kharmanskyi/open-steps. ALWAYS invoke this skill when work wraps up or the user asks how it went - "done or not", "are we done", "what happened", "report", "what's the status of this ticket" - in any language, and when a Stop hook asks for a session report.
Os Done Or Not fits situations like: tasks that involve Plain language and style rules.
Run `npx skills add kharmanskyi/open-steps --skill os-done-or-not -a claude-code`. Or copy the skill folder (skills/os-done-or-not in kharmanskyi/open-steps) into .claude/skills/os-done-or-not in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kharmanskyi/open-steps --skill os-done-or-not -a codex`. Or copy the skill folder (skills/os-done-or-not in kharmanskyi/open-steps) into .agents/skills/os-done-or-not in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kharmanskyi/open-steps --skill os-done-or-not -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/os-done-or-not, .gemini/skills/os-done-or-not, .github/skills/os-done-or-not and .opencode/skills/os-done-or-not in your project.
Going by SKILL.md and its folder, Os Done Or Not needs the command-line tools its instructions call (git and gh). Its frontmatter pre-approves these tools: Read(~/.claude/open-steps/**), Edit(~/.claude/open-steps/**), Bash(gh pr view *), Bash(gh pr checks *), Bash(gh pr checks).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Os Done Or Not is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 925 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Os Done Or Not: Asd Ste100 (danyuchn/asd-ste100-skill, 4.3k stars), Ponytail Audit (DietrichGebert/ponytail, 160k stars), Technical Writing Standard (cursor/plugins, 11k stars) and Natural Japanese Business Writing (coji/natural-japanese, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kharmanskyi (a GitHub user) maintains it in kharmanskyi/open-steps, which has 1,279 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 5, 2026.
Source: kharmanskyi/open-steps on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.