yoke
CLAUDE.md1 starsChanged 4 months agoMITView on GitHub
yoke — a marketplace of skills and commands for Claude Code, inspired by obra/superpowers. Forked from projectory-com/sp. Distributed as a Claude Code plugin via .claude-plugin/marketplace.json. Components (skills/) live at the repository root, NOT inside .claude-plugin/. Skills write their artifacts under .yoke/ in the target project: .yoke/ is committed to git by default. Only .yoke/sync-docs-tmp/ is gitignored. Skills always write under .yoke/ and commit unless .yoke/ is ignored. /do is the universal execution tool and now finishes at the PR. It…
- Commits and pushes
In this repository19 other files it gives its agents.
- sync-docsSkill
- yoke-createSkill
- yoke-releaseSkill
- yoke-validateSkill
- bootstrapSkill
- doSkill
- draftSkill
- gcaSkill
- gpSkill
- grill-docsSkill
- grillSkill
- handoffSkill
- helpSkill
- issuesSkill
- journalSkill
- mergeSkill
- prdSkill
- prSkill
- reviewSkill
The file
We split this CLAUDE.md into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 28
Namespace: all components are available as /yoke:<name> after installation
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project
yoke — a marketplace of skills and commands for Claude Code, inspired by obra/superpowers. Forked from projectory-com/sp. Distributed as a Claude Code plugin via .claude-plugin/marketplace.json.
Architecture
.claude/
skills/ # local skills for plugin development (yoke-create, yoke-release, yoke-validate)
.claude-plugin/
plugin.json # plugin manifest (name, version, author)
marketplace.json # marketplace registry (name, owner, plugins[])
skills/ # skills — auto-discovered by SKILL.md in subdirectories
lib/ # shared scripts called from skills (notify.sh, flow-read.sh, gp-precheck.sh, gp-push.sh, pr-collect.sh)
docs/ # reference documentation for the plugin systemComponents (skills/) live at the repository root, NOT inside .claude-plugin/.
Plugin System
- Skills (
skills/<name>/SKILL.md): model-invoked, activated automatically bydescriptionin YAML frontmatter - Agents (
skills/<name>/agents/<agent>.md): model-invoked sub-agents dispatched by skill orchestrators via the Agent tool; YAML frontmatter withnameanddescription - Namespace: all components are available as
/yoke:<name>after installation $ARGUMENTS: placeholder for user-supplied arguments in skills and commands${CLAUDE_PLUGIN_ROOT}: for paths inside the plugin (e.g.${CLAUDE_PLUGIN_ROOT}/lib/notify.sh) in skills and MCP configs
Validation
# Validate JSON manifests
python3 -c "import json; json.load(open('.claude-plugin/plugin.json')); json.load(open('.claude-plugin/marketplace.json')); print('OK')"
# Validate YAML frontmatter in skills — first line must be ---
head -1 skills/*/SKILL.mdTesting locally
claude --plugin-dir .Conventions
- Content language: English by default. Skills adapt to the ticket/input language, or follow the project-level definition in CLAUDE.md / AGENTS.md.
- Commits:
TICKET type(SLUG): description; a commit that carries a decision gets a prose body plus decision trailers (Constraint:,Rejected:,Directive:,Related:) — the git memory, seeskills/gca/reference/commit-convention.md. Before modifying a file, read its history perskills/gca/reference/history-reading.md. - Files and directories: kebab-case
- Versioning: semver in
plugin.json(source of truth for the version) - marketplace.json: required top-level fields —
name,owner(object withname),plugins[] - Plugin source:
"./"for self-contained (plugin at the marketplace root),{ "source": "github", "repo": "owner/repo" }for external - SKILL.md frontmatter:
name(identifier),description(when to activate)
Artifact root (.yoke/)
Skills write their artifacts under .yoke/ in the target project:
.yoke/flow.md— flow map: repos + finish policies, branch cascade, deploy commands, tracker, artifacts (written by/bootstrap, read vialib/flow-read.sh;/doand/mergeconsume it).yoke/yoke-context.md— generated project profile (stack, architecture, conventions).yoke/context.md— domain glossary.yoke/adr/— architecture decision records.yoke/ai/<slug>/— per-task pipeline artifacts (PRD, task, plan, report, exploration, issues index).yoke/journal.md— session journal.yoke/handoff/— conversation handoffs,<YYYYMMDD-HHMMSS>-<slug>.md, always written to the root checkout (/handoff; see.yoke/adr/0009-handoff-under-yoke-root-checkout.md)
.yoke/ is committed to git by default. Only .yoke/sync-docs-tmp/ is gitignored. Skills always write under .yoke/ and commit unless .yoke/ is ignored.
Implemented skills
/do is the universal execution tool and now finishes at the PR. It auto-detects mode — no args → inline; an issue URL → sub-agents (plan, pausing only on a cold start); a PRD with sub-issues → team of parallel agents — then drives the run to a ready pull request (worktree, per-task commits, push, PR, ticket comment, notify) and stops. It never merges, except an explicit up-front "straight to main". /merge is the user-triggered finisher: once the user approves the PR on GitHub, it runs the post-PR tail per .yoke/flow.md (merge, cascade, deploy/release, ticket transition, worktree cleanup). /task and /plan are deprecated and have moved to deprecated/.
/draft is the optional marking step between grill and do: a do-shaped run that projects the agreed plan onto the code as Markup (TODO(yoke): Markers plus a compilable skeleton) and opens a GitHub Draft PR for remote review, instead of implementing. /do <draft-PR-URL> (or the drafted <slug>) later implements the reviewed Draft per comments > markers > plan and flips the same PR to ready.
<!-- yoke:skills:start -->/bootstrap— Prepares a project for the yoke flow — stack detection, scaffolding the.yoke/layout, and generation of CLAUDE.md,.yoke/yoke-context.md, and.yoke/flow.md./do— Executes a task per plan./draft— Projects the agreed plan onto the code as Markup — TODO markers plus a compilable skeleton — and opens a Draft PR for review, instead of implementing./gca— Git staging and commit with smart file grouping./gp— Git push with checks and report./grill— Interviews the user one interactive question at a time about a plan or design, walking each branch of the decision tree to a shared understanding; every question offers a recommended answer./grill-docs— Docs-aware grilling: interrogates the user's plan one question at a time AND maintains the domain glossary (.yoke/context.md) and architecture decision records (.yoke/adr/) inline as decisions crystallise./handoff— Saves the live state of the current conversation to.yoke/handoff/so a fresh session resumes where this one stopped, referencing existing artifacts instead of duplicating them./help— Explains how to use yoke and lists the available skills; also greets new users./issues— Breaks a plan, spec, or PRD into independently-grabbable GitHub issues using vertical slices (tracer bullets), publishes them in dependency order, and saves a local index in .yoke/ai./journal— Appends a concise, newest-first entry to.yoke/journal.mdsummarizing the session's real work and linking the relevant.yoke/ai/<slug>/artifacts — the first layer of yoke's connected memory./merge— The user-triggered finisher that executes the post-PR tail per.yoke/flow.md: merges the task's PR(s), runs cascade merges, runs deploy/release commands, moves the ticket to its target state, cleans up worktrees, and returns to the default branch./pr— Creates or updates a GitHub Pull Request./prd— Turns the current conversation and codebase understanding into a PRD, publishes it as a GitHub issue, and saves a local copy in .yoke/ai./review— Finds problems in code, fixes them and produces a report.
<!-- yoke:skills:end -->Local skills (development)
/yoke-create— skill factory: analysis, design, implementation, validation, integration/yoke-release— plugin release: quality checks, version bump, tag, push, GitHub release/yoke-validate— runs everySKILL.mdchanged in the current branch through elements-of-style (Strunk) and plugin-dev's skill-development conventions, auto-fixes safe findings, and reports the rest. Depends on theelements-of-styleandplugin-devplugins./sync-docs— regenerates the shipped skill catalog (per-skill MDX, README + CLAUDE.md sentinel blocks); repo-internal, not shipped to the marketplace.
Planned skills
/polish /qa /memorize
Reference docs
docs/notify.md— Telegram notifications: setup, types, map of trigger pointsskills/issues/reference/github-issues.md— GitHub issue tracker conventions, triage labels, issue types + sub-issues (used by/prd,/issues)skills/grill-docs/reference/domain-docs.md— domain-doc consumer rules for.yoke/context.md/ADRs (used by/prd,/issues)
Formatting
pnpm run format # format all *.{md,json}
pnpm run format:check # check formatting (CI-ready)Config: .prettierrc.json (proseWrap: preserve, printWidth: 120).
A pre-commit hook via Husky formats staged files automatically.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

