Crush Configuration
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
Create or advance a full OSpec goal using the current document, task graph, worker, review, and evidence workflow.
$ npx skills add clawplays/ospec --skill ospec-goal -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install clawplays/ospec ospec-goal --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/clawplays/ospec.git skills-src && mkdir -p .claude/skills && cp -r skills-src/assets/global-skills/codex/ospec-goal .claude/skills/ospec-goal && 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 "ospec-goal" agent skill from https://github.com/clawplays/ospec/tree/main/assets/global-skills/codex/ospec-goal into .claude/skills/ospec-goal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ospec-goal", 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/clawplays/ospec/tree/main/assets/global-skills/codex/ospec-goalType 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 clawplays/ospec --skill ospec-goal -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install clawplays/ospec ospec-goal --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/clawplays/ospec.git skills-src && mkdir -p .agents/skills && cp -r skills-src/assets/global-skills/codex/ospec-goal .agents/skills/ospec-goal && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ospec-goal" agent skill from https://github.com/clawplays/ospec/tree/main/assets/global-skills/codex/ospec-goal into .agents/skills/ospec-goal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ospec-goal", 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 clawplays/ospec --skill ospec-goal -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install clawplays/ospec ospec-goal --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/clawplays/ospec.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/assets/global-skills/codex/ospec-goal .cursor/skills/ospec-goal && 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 "ospec-goal" agent skill from https://github.com/clawplays/ospec/tree/main/assets/global-skills/codex/ospec-goal into .cursor/skills/ospec-goal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ospec-goal", 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/clawplays/ospec.git --path assets/global-skills/codex/ospec-goal--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 clawplays/ospec --skill ospec-goal -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install clawplays/ospec ospec-goal --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/clawplays/ospec.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/assets/global-skills/codex/ospec-goal .gemini/skills/ospec-goal && 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 "ospec-goal" agent skill from https://github.com/clawplays/ospec/tree/main/assets/global-skills/codex/ospec-goal into .gemini/skills/ospec-goal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ospec-goal", 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 clawplays/ospec ospec-goalInstalls 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 clawplays/ospec --skill ospec-goal -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/clawplays/ospec.git skills-src && mkdir -p .github/skills && cp -r skills-src/assets/global-skills/codex/ospec-goal .github/skills/ospec-goal && 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 "ospec-goal" agent skill from https://github.com/clawplays/ospec/tree/main/assets/global-skills/codex/ospec-goal into .github/skills/ospec-goal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ospec-goal", 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 clawplays/ospec --skill ospec-goal -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install clawplays/ospec ospec-goal --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/clawplays/ospec.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/assets/global-skills/codex/ospec-goal .opencode/skills/ospec-goal && 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 "ospec-goal" agent skill from https://github.com/clawplays/ospec/tree/main/assets/global-skills/codex/ospec-goal into .opencode/skills/ospec-goal/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ospec-goal", 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.
ospec-goalCreate or advance a full OSpec goal using the current document, task graph, worker, review, and evidence workflow.
Ospec Goal is an agent skill from clawplays/ospec. Create or advance a full OSpec goal using the current document, task graph, worker, review, and evidence workflow.
Its SKILL.md is about 6.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `agents/openai.yaml` and `skill.yaml`).
It sits in Agent Workflows. It works with Model Context Protocol. The repository describes itself as: Spec-driven, agentic workflow framework for AI coding agents. Turn a request into a verifiable goal loop — plan, act, verify — with durable specs and evidence in your repo. Works… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit be449f2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudegeminiopencodecursordockerFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker, 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.
Ospec Goal loads about 6.4k tokens when it runs. Until then it costs about 31 tokens; SKILL.md has 3,145 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 clawplays/ospec at commit be449f2, republished under its MIT licence (© clawplays). 3,145 words, ~6,353 tokens.
.claude/skills/ospec-goal/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Use this skill for complex work that needs the full OSpec workflow. A goal is intentionally heavier than a change and is the place to use design docs, implementation planning, task graph dispatch, worker/reviewer handoffs, and durable evidence.
Every rule you need in order to act is in this file. for-ai/execution-protocol.md is the authoritative detail behind those rules — open it only when a named situation actually comes up (per-harness wait primitives, lease expiry, repair convergence, cross-task finding scope, worker-report repair binding, allowlist CAS semantics, deferred external acceptance, force-archive detail), never on goal entry and never on every turn. That file is the goal profile's reference; a classic change reads for-ai/change-protocol.md instead and must never be sent here.
ospec goal creates a session-bound Loop automatically (artifacts/loop/loop.json + state.json + run-log.jsonl). There is no separate init step.
ospec loop run --once first observes the previous task, review, or verification evidence, then emits a bounded batch of action items from task-graph.json. Execute each one only through the model-native subagent primitive named by its target-bound runtimeAdapter, then record durable evidence.ospec loop run <goal-path> --once --compact-json, consume every returned action, record evidence as each executor finishes, and tick again without another user prompt. Stop only for a required user decision, an unavailable independent/isolated executor, a blocking safety gate, a configured guard/STOP, a terminal failure that needs user authority, an explicit user pause, or done.ospec loop step <goal> --batch-file <path|-> applies every claim and every result and ticks in ONE process, then emits the next action batch as compact JSON. It replaces loop heartbeat x N + loop finalize x N + loop run --once; at the default concurrency of 3 that is a measured 7 controller calls down to 2. The ceiling is 2C+1 in the DECLARED capacity C (C=5 measures 11), not in the task count, so the win does not grow as the goal gets more tasks. Send {"claims":[...]} with --no-tick right after dispatching, then {"results":[...]} when the children finish. A missing or mis-keyed envelope key is a hard error, never an empty batch; a partial failure stops, does not tick, and prints exactly which items are already durable.claims array of ospec loop step, or ospec loop heartbeat per item), run ospec loop poll <goal> --json between native waits (it refreshes every lease and reports tickNow), and full-tick only on tickNow=true or right after dispatching. Never make one indefinite wait: stay inside maxWaitMs (60s) while other work is dispatchable; the single idleMaxWaitMs (10min) wait is only for the last outstanding batch. Commit each finished child with its emitted ospec loop finalize ... command, and use ospec loop recover --force only when the prior session or child is known to be gone.depends_on must be semantically necessary, and the planning review treats an unjustified fully serial chain as a finding. On a reported serialBottleneck the controller may implement that one task inline (executor id controller-inline); reviews stay independent subagents. --review-gating optimistic fits low-risk goals; keep the strict default for high_risk/security_related work.NEEDS_CHANGES permits one grouped repair and at most one delta-scoped re-review; a repeated semantic failure is a stable blocker, never an open-ended loop.[verify:<id>] and record ospec execute verify ... --satisfies <id> so ospec execute sync auto-ticks them. Archiving blocks on unchecked items. review.md is derived by sync from the final review — never edit it by hand.--answered-by user before the loop proceeds. Brainstorm resolutions need the same provenance./goal is capability-probed, not inferred from a target name. ospec execute launch --primitive goal emits a native-/goal instruction only when the harness explicitly reports support; otherwise the same controller runs the verify-driven loop through native subagents.maxParallel only from an authoritative current-session capacity report — never from a provider name or a stale session — and never over dependencies, file conflicts, token funding, or the configured maximum.state.json is the status source of truth. Task status, review decisions, repair waves, evidence, state.json, and run-log.jsonl carry progress between fresh contexts, and process exit alone does not complete an action. When a document and state.json disagree, reconcile toward state.json instead of reporting the document's value. Dispatch only items returned in actions; a durable pending record with an empty action list is observation state, not work.ospec execute sync [changes/active/<goal>] so artifacts/agents/worker-status.md and the derived checklists rebuild from authoritative state — never only at closeout.for-ai/execution-protocol.md; read it when a finding actually reaches past its own task.docker compose up --build as a required preflight: check repository release guidance and prefer explicit service names. Never rebuild or download unrelated runtimes to verify a scoped change.ospec execute defer-blocker and loop allowlist semantics are in for-ai/execution-protocol.md — open it when either situation actually arises.ospec execute verify --status, then confirm with ospec verify.This skill covers the full lifecycle inside an initialized OSpec project: requirement intake; goal naming or matching; proposal, design, implementation-plan, task graph, and task refinement; deterministic design/plan preflight with inline approval artifacts at artifacts/reviews/design-review.md and artifacts/reviews/implementation-plan-review.md; worker dispatch, launch, collection, retry, and review packets; user decision gates; workspace and worktree planning; TDD, debug, and verification evidence; a single combined final code review; and finish planning, verification, archive readiness, and finalize closeout.
Use ospec-change for small routine changes that only need the classic fast flow.
.skillrcospec index query <keyword...> for the relevant .ospec/SKILL.index.json entries — never read the whole index file, which grows without bound as changes archive.ospec/session-brief.md and ospec execute status [goal] --brief. When the brief is missing, run ospec session [path] first: it writes .ospec/session-brief.json and .ospec/session-brief.md with the active profile, queue state, and profile-aware next commands, and it launches no workers and edits no source filesSKILL.index.json and docs/project/feature-catalog.md; use ospec docs locate --feature <slug> to read one section rather than a whole documentOn-demand only, never at entry: the project conventions under for-ai/ (naming-conventions.md, skill-conventions.md, workflow-conventions.md, development-guide.md), and for-ai/execution-protocol.md for the situations named above.
Read proposal.md, design.md, implementation-plan.md, task graph, worker status, evidence, and review artifacts only when the current stage or packet needs their detail. The packet is the default worker context; do not reload every goal artifact on every turn.
For legacy root-layout projects, use the same paths without the .ospec/ prefix.
Write every goal document, artifact, and brainstorm you author in the project document language (.skillrc documentLanguage / managed for-ai/ guidance / existing change docs). Never infer that language from product copy, site locale, or an "English-first" requirement, never switch an already-started goal unless the project rules explicitly say so, and never mix languages within one goal.
Announce-Before-Act: never run the goal workflow silently. Announce the current skill and stage, the ospec execute ... command and the artifact it writes, the selected runtime adapter, and how many workers you launch and which task each owns — naming the actual native mechanism (Claude Task, Codex/GPT spawn_agent, Gemini @generalist, OpenCode @mention, or the registered native primitive). When a gate blocks progress, state what is blocked and what unblocks it.Brainstorm-First: open each goal with a short brainstorming pass before locking design, and raise a durable gate (ospec execute decision ... --required) rather than guessing on direction, architecture, API, data, UI, risk, or scope. Never auto-select a recommended option or resolve a gate yourself — recommended is a hint you show the user, never a choice you may take; ask one question at a time and record the answer with --answered-by user. Present every gate through the capability ladder, in this order: a harness-native question UI when the harness has one (Claude Code AskUserQuestion, Gemini ask_user), otherwise its plan/approval UI (for example Codex plan mode), otherwise the decision report Chat Prompt as plain chat text. You always ask the user and wait for their actual answer; only the presentation differs. A required pending decision blocks implementation and ospec execute dispatch identically on every harness, so it can never be skipped. In Claude Code the managed session hook re-injects this contract and hard-blocks Task dispatch while a required decision is pending, but that hook is a Claude-only convenience, not the source of the rule — the contract above binds unchanged on Codex, Gemini, Grok, OpenCode, Cursor and Copilot. Only record an autonomous assumption in design.md, labelled as an assumption to confirm, when the user explicitly defers or is unavailable; otherwise raise the gate. Authoritative detail: for-ai/execution-protocol.md. If you ran ospec brainstorm, do not leave it an unanswered template — resolve each gate with ospec brainstorm resolve [path] --brainstorm <id> --gate <gate-id> --select <option-id> --answered-by user while its change is active (or pass --change <name>) so it archives with that change.Explicit-Verification-Intent: a user-requested verification surface such as $browser, a real browser E2E run, or another named skill/tool is a hard requirement. Persist it immediately with ospec execute require-verification and satisfy it with ospec execute verify ... --satisfies <id>. Final verification and archive stay blocked while required evidence is missing or stale; never offer an option that removes it.Zero-Setup: the user only starts a goal and describes the requirement — you run every OSpec command yourself and they only answer questions in chat. In a Claude Code harness at goal entry, if .claude/settings.json does not yet reference .ospec/hooks/claude/ospec-claude-hook.cjs, run ospec session hook --target claude --apply once (idempotent).ospec goal <goal-name> [path]; in Codex pass --target codex --execution-model controller --harness-interactive true --native-subagents supported so the persisted capability snapshot represents this IDE session.design.md from the requirement, proposal.md, and project context, then implementation-plan.md from design.md — identifying target files, expected results, verification commands, dependencies, parallelizable work, and conflicts — before deriving artifacts/agents/task-graph.json, editing tasks.md, or editing code.ospec execute preflight [changes/active/<goal>] --stage design, then ospec execute preflight [changes/active/<goal>] --stage plan. Both deterministically validate readiness (plan also re-checks the current design preflight) and record inline approval evidence. Resolve reported readiness errors in the authoritative documents; never launch a reviewer child for these stages.artifacts/agents/task-graph.json from implementation-plan.md and tasks.md from the graph, then let Loop run the combined planning review before workspace or implementation dispatch. Every task node carries id, status, dependencies, parallel safety, conflicts, target files, verification commands, expected result, worker role, and documentation_updates — archive is blocked while any task is missing one of them, has an invalid dependency, or the graph status is not completed. Honour the rest of the task-shape contract, specified in for-ai/execution-protocol.md: parallelizable: true for dependency/file-safe tasks with serial_reason / maxParallelReason where they are not; broad tasks split unless one atomic verification boundary requires the scope; a red test kept with the implementation it validates; automatic checks separated from external device, credential, third-party, or manual acceptance; and a documentation_updates array on every task ([] when none) whose declared docs paths also appear in that task's target_files with meaningful-change evidence from dispatch to completion — reviewed deletion is valid when completion evidence proves an existing baseline became missing. The documentation_updates entries may be written for you: ospec docs obligations --apply injects each required obligation's document path into the tasks carrying the array and records the resolved path#section in state.json.docs_obligations; read the obligation for the section to edit, and use ospec docs confirm --id <obligation-id> for a verification-type obligation whose behaviour genuinely did not change.ospec execute decision for direction, architecture, API, UI, risk, or scope choices that need explicit user selection, always with --answered-by user when persisting the answer. Persist every named browser/E2E/manual verification requirement before implementation.ospec execute bootstrap, workspace, worktree, dispatch, launch, complete, retry, feedback, repair, sync, tdd, debug, and verify as each stage needs them (ospec execute --help for their flags); never start another agent CLI as a fallback. Inside a controller Loop the reviews come from ospec loop tick — it is what binds real executor provenance and the scoped review diff — so use ospec execute review only outside a controller Loop. Model profiles resolve through .skillrc.workflow.model_profiles; complete --usage-file may record provider usage. Prefer ospec execute complete <task-id> --report-file <json> (status/summary/changedPaths/evidence/concerns, validated; the CLI renders the Markdown human view) and ospec execute review-decision --review <artifact> --decision-file <json> (settles the review and writes the sibling *.findings.json so severities are explicit — a Markdown-only review is read as severity: unknown, which the planning gate blocks on). The hand-written Markdown paths keep working for one version cycle. If final review is NEEDS_CHANGES, create one grouped repair task instead of one worker per finding.tdd_cycle, root_cause_debug, or verification_evidence is active, it must appear in tasks.md, verification.md, and artifacts/agents/task-graph.json with matching evidence before closeout, and each activated step that passed must be listed in the verification.md frontmatter field passed_optional_steps — archive validates that field; for tdd_cycle record the red phase with ospec execute tdd --phase red before the implementation, because green requires a prior red FAILED record.ospec execute finish before finalize when the goal used task graph execution or worktree planning, then ospec finalize [changes/active/<goal>] as the normal closeout path. Closeout is automatic when ready: once the goal is complete and ospec verify passes with no required user decision or blocking gate pending, run ospec finalize yourself — do not stop at ospec archive ... --check (preview only) or wait for the user to ask. ospec execute finish strategy prompts (PR / merge / branch / worktree) are optional with safe defaults (direct-closeout + manual merge) — do NOT ask the user about them; uncommitted change/OSpec files are normal and do not block archive. Only open a PR if the user explicitly asked. Only pause for a genuine human gate: a pending required decision, real verify/archive blockers, or an explicit user request to preview or approve first.ospec execute sync after closeout so status and checklists derive from authoritative state. Finalize compares the first baseline with the final completed state, requires the workspace to match the latest declared-owner evidence, writes the archived change's index entry, and updates the feature catalogue — nothing is generated under docs/project/changes/; render the archived change later with ospec changes show <archive>.NOT_VERIFIED item first. The CLI enforces its own confirmation flags. See for-ai/execution-protocol.md.Token economy:
--briefonospec execute …returns a lean summary instead of the full report (the artifacts are still written in full).ospec loop run --once --compact-jsonalready embeds agraphsummary and lease-leanitemStates; drive each step from that plusospec loop pollinstead of re-readingtask-graph.json/worker-status.md/launch-plan.mdor running extra status calls every turn.
Three commands per action item come back already written in the tick output and stay correct in
--compact-json: heartbeatCommand (claim), resultCommand (ospec loop finalize …), and
completionCommand (ospec execute complete …). Copy those; never retype them from memory. Batch
their --action-item/--executor/--exit-code values into one ospec loop step --batch-file
envelope instead of running them one at a time.
# The tick loop — you originate these on every cycle
ospec loop step [changes/active/<goal>] --batch-file batch.json # preferred: claims + results + tick + next batch, in one call
ospec loop step [changes/active/<goal>] --batch-file claims.json --no-tick # claim the batch you just dispatched
ospec loop run [changes/active/<goal>] --once --compact-json # per-item fallback: observe evidence, emit the next action batch
ospec loop poll [changes/active/<goal>] --json # between every bounded native wait: refreshes leases, reports tickNow
# Stage gates — you originate these; the tick never hands them to you
ospec goal <goal-name> [path] [--flags flag1,flag2] [--target ...] [--execution-model controller] [--harness-interactive true|false] [--native-subagents supported|unknown|unsupported]
ospec execute decision [changes/active/<goal>] --id <id> --question "..." --option id:label:impact --required
ospec execute decision [changes/active/<goal>] --id <id> --select <option-id> --answered-by user
ospec execute dispatch [changes/active/<goal>] [--task task-id] [--limit N]
ospec execute launch [changes/active/<goal>] [--task task-id] [--target codex|gpt|claude|gemini|grok|opencode|cursor|copilot|shell|generic] [--primitive subagent|goal|loop]
ospec execute complete <task-id> [changes/active/<goal>] --dispatch <id> --report-file report.json
ospec execute review-decision [changes/active/<goal>] --review artifacts/reviews/... --decision-file decision.json
ospec execute verify [changes/active/<goal>] --command "..." --status PASSED --exit-code 0 --satisfies <id>
ospec verify [changes/active/<goal>]
ospec finalize [changes/active/<goal>]
ospec loop configure [changes/active/<goal>] <flags> # rare; `ospec loop --help` names only --max-parallel/--review-every/--execution-model for it, so the full flag set lives here: --execution-model --max-parallel(-reason) --review-gating strict|optimistic --fresh-context --max-task-repair-rounds --max-final-repair-rounds --continue-while-progressing --max-iterations --budget-tokens --budget-minutes --expires-at --allow-path --allow-command --allow-command-policy --test-commandEverything else is one help call away — run it instead of guessing a flag. ospec execute --help
lists all 25 controller subcommands with their flags, ospec loop --help lists the loop subcommands,
and ospec loop allowlist with no sub-action fails with its own usage line. ospec triage is the
exception: bare ospec triage runs list against the project rather than printing usage, so ask for
its help explicitly with ospec triage --help (subcommands: list, claim, promote). Also
available: ospec status [path] and ospec archive [changes/active/<goal>] --check (preview only —
do not stop there).
runtimeAdapter.selected.nativeSubagent, never from a process name or PATH probe: it exists only when the capability target matches, the session is current, and native subagents are supported, so a target name alone proves nothing. Missing, mismatched, future-dated, or expired capability is a hard dispatch gate — refresh the current model session capability; there is no Orca, target-CLI, agent-CLI, or current-controller fallback.*.findings.json.changes/archived/. Report metadata concerns instead of rewriting history — the knowledge index derives from the authoritative documents and self-heals its cache.© clawplays, 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 2 other files in assets/global-skills/codex/ospec-goal of clawplays/ospec.
Open the folder on GitHubat commit be449f2
Ospec Goal 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 |
|---|---|---|---|---|---|---|
| Ospec Goal this skillclawplays/ospec | 452 | — | ~6.4k | Automated safety check: Pass | MIT | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence | |
| Orca Run Replayiflytek/skillhub | 5.2k | 4 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Ixix-infrastructure/Ix | 1.1k | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| PicoClaw Agentsipeed/picoclaw | 30k | — | ~7.2k | Automated safety check: Notes | MIT | |
| Chatgpt AppsHaohao-end/openagent | 791 | 1 repos | ~4.9k | Automated safety check: Pass | Apache-2.0 |
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
iflytek/skillhub
Answers questions about a past agent run from its recording, using causal graphs and replay, instead of reconstructing events from memory.
ix-infrastructure/Ix
Answer structural questions about a codebase — what a symbol is, what calls it, what a change breaks, where the hotspots are — from a persistent code graph via the ix CLI, instead of grepping.
sipeed/picoclaw
Answers questions about running and changing PicoClaw, from onboarding and model selection to MCP server setup, skill loading and scheduled jobs.
Haohao-end/openagent
Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI.
alpic-ai/skybridge
Guide developers through creating and updating ChatGPT plugins.
clawplays/ospec
Document-driven OSpec workflow for initialization, change/goal routing, validation, archiving, and durable project knowledge.
clawplays/ospec
Create or advance a lightweight OSpec change using the classic fast workflow.
Works with
Categories
Create or advance a full OSpec goal using the current document, task graph, worker, review, and evidence workflow. Ospec Goal is an agent skill from clawplays/ospec. Create or advance a full OSpec goal using the current document, task graph, worker, review, and evidence workflow.
Ospec Goal fits situations like: agent Workflows work in your project.
Run `npx skills add clawplays/ospec --skill ospec-goal -a claude-code`. Or copy the skill folder (assets/global-skills/codex/ospec-goal in clawplays/ospec) into .claude/skills/ospec-goal in your project. Claude Code loads it when a task matches its description.
Run `npx skills add clawplays/ospec --skill ospec-goal -a codex`. Or copy the skill folder (assets/global-skills/codex/ospec-goal in clawplays/ospec) into .agents/skills/ospec-goal 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 clawplays/ospec --skill ospec-goal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ospec-goal, .gemini/skills/ospec-goal, .github/skills/ospec-goal and .opencode/skills/ospec-goal in your project.
Going by SKILL.md and its folder, Ospec Goal needs the command-line tools its instructions call (claude, gemini, opencode, cursor and docker). Our summary lists: Docker.
SKILL.md contains no URLs. Its commands use docker, 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.
Ospec Goal is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.4k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ospec Goal: Crush Configuration (charmbracelet/crush, 29k stars), Orca Run Replay (iflytek/skillhub, 5.2k stars), Ix (ix-infrastructure/Ix, 1.1k stars) and PicoClaw Agent (sipeed/picoclaw, 30k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
clawplays (a GitHub user) maintains it in clawplays/ospec, which has 452 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 26, 2026.
Source: clawplays/ospec on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.