openspec-conductor-powerups
CLAUDE.md1 starsChanged 9 days agoMITView on GitHub
A Claude Code plugin, babysitter, with opinionated skills for people who use OpenSpec inside Conductor. Mostly solo developers, on local and cloud Conductor workspaces. Public, MIT. See README.md for what each skill does. Every commit to main is a release. Users with auto-update get it the next time a session starts (open sessions keep their version until /reload-plugins), so main must always work. Test before merging. Never add a version to plugin.json. Never rename the plugin (babysitter) without a renames…
In this repository9 other files it gives its agents.
- better-decisionSkill
- browser-handoffSkill
- doctorSkill
- hqSkill
- keep-goingSkill
- new-batch-exploreSkill
- pauseSkill
- safe-to-archiveSkill
- status-checkSkill
The file
We split this CLAUDE.md into the rules it gives an agent
7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Every commit to main is a release.
- Very specific: line 15
Never add a version to plugin.json.
- Distinctive: line 21
Test-install into a throwaway config:
- Very specific: line 28
If you touched conductor-local.py, state.py or watch.py: python3 -m py_compile it, and keep its asserts passing (check_stage() runs first …
- Distinctive: line 38
No details from any one project: accounts, domains, people, product names.
- Very specific: line 52
Commit messages say what changed for the user, starting with the skill when it's one skill (babysitter: ...).
- Distinctive: line 54
Ask Aaron before pushing to main or merging.
≈ “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
A Claude Code plugin, babysitter, with opinionated skills for people who use OpenSpec inside Conductor. Mostly solo developers, on local and cloud Conductor workspaces. Public, MIT. See README.md for what each skill does.
Layout
.claude-plugin/plugin.json: the plugin.nameisbabysitter. Noversion, on purpose..claude-plugin/marketplace.json: the marketplace, alsobabysitter, with one plugin at./.skills/<name>/SKILL.md: one skill each.cloud.mdbeside it holds the cloud steps.skills/hq/conductor-local.pyholds babysitter's local, deterministic steps (scan, send, watch);skills/hq/state.pykeeps its state file (IDs, workspace table, counts, merge lock) and works locally and in the cloud.skills/hq/watch.pyis the cloud watcher and re-scan.skills/doctor/doctor.pyis the read-only health check.
Releases
Every commit to main is a release. Users with auto-update get it the next time a session starts (open sessions keep their version until /reload-plugins), so main must always work. Test before merging.
Never add a version to plugin.json. Never rename the plugin (babysitter) without a renames entry in marketplace.json. Don't rename the marketplace (babysitter): renames doesn't cover it, so every install would have to remove it and add it again.
Testing a change
tests/check.sh: compiles the scripts and runs their self-tests, checks the prompt invariants that drifted once (explore asks one decision at a time, local and cloud prompts match, the digest pastesstate.py tableandcounts), every skill is in the README, the skills are generic, and the plugin validates. Add a line to it when you fix a drift.claude plugin validate .passes. Three warnings are expected: no version, no icon, and this CLAUDE.md not being loaded as plugin context (it's for working on this repo, not for users).- Test-install into a throwaway config:
export CLAUDE_CONFIG_DIR=$(mktemp -d) claude plugin marketplace add "$PWD" claude plugin install babysitter@babysitter - For a live run, start a session with
claude --plugin-dir .. - If you touched
conductor-local.py,state.pyorwatch.py:python3 -m py_compileit, and keep its asserts passing (check_stage()runs first onscan;check()instate.pyandwatch.pyruns first on every command). Add an assert when you change logic.
Local and cloud
Each skill checks CONDUCTOR_IS_LOCAL. Locally (1) it uses Conductor's SQLite database (CONDUCTOR_DB_PATH) and conductor:// links. In the cloud (0) it uses the conductor CLI, as written in that skill's cloud.md. A change to one side needs the matching change on the other, so both behave the same. Update the README's "Local vs cloud" table too.
Conductor's database is undocumented. Anything that writes to it backs it up first (sqlite3 "$CONDUCTOR_DB_PATH" ".backup ...") and has a fallback when a Conductor update breaks it. Read with ?mode=ro when you only read.
Keep the skills generic
No details from any one project: accounts, domains, people, product names. The skills read each user's own AGENTS.md/CLAUDE.md for project rules. Say "the user" or "the owner", not a name. Don't assume main; use CONDUCTOR_DEFAULT_BRANCH or origin/HEAD where you can.
Writing skills and the README
- Plain words, short sentences, concrete examples. Write for the reader.
- Skills are prompts: shorter beats longer. Cut what the model would do anyway.
skills/<name>/examples/*.mdare golden examples of what a skill's output should look like: few-shot for the model, and the reference when reviewing a change. Made-up product, no real project. Update them when the shape changes.- Deterministic steps (queries, parsing, loops) belong in a script, not prose.
- Skill frontmatter:
descriptionsays what it does and when to use it. Usedisable-model-invocation: truefor skills that should only run when the user types them (hq, pause, keep-going, better-decision). - A new skill also goes in the README table and, if it changes what the plugin does, in the descriptions in plugin.json and marketplace.json.
Git
- Commit as
Aaron Cohn <32344260+aaroncohn@users.noreply.github.com>. - Commit messages say what changed for the user, starting with the skill when it's one skill (
babysitter: ...). - Work on a branch, open a PR, and rebase-merge: one commit per change.
- Ask Aaron before pushing to
mainor merging.
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.

