agentleFS
Tamircohen28Tamircohen28/tamirs-superpowers/AGENTS.md

tamirs-superpowers

AGENTS.md2 starsChanged 3 months agoMITView on GitHub

A multi-platform agent plugin: bundled skills, specialist agents, worktree hooks, and MCP server stubs, shipped to five platforms and, underneath them, six supported runtime surfaces: Claude (Claude Code, Claude Desktop), Codex (Codex CLI), Cursor (Cursor IDE), Gemini (Gemini CLI, gemini-extension.json), and OpenCode (OpenCode CLI). The four non-Claude platforms each have a further surface — the Codex IDE extension, the Cursor CLI, Gemini Code Assist, the OpenCode desktop app — that has never been measured here; claim nothing about them in…

  • Installs packages

The file

We split this AGENTS.md into the rules it gives an agent

11 rules. About 0 are common, 2 are distinctive, and 9 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 9

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Very specific:

    All JSON must parse (jq empty) — checked by make validate.

    line 66
  2. Very specific:

    Every SKILL.md must validate against the portable schema, core/schemas/skill-frontmatter.json, enforced by …

    line 68
  3. Very specific:

    Commit format <type>(<scope>): <description> — types feat, fix, chore, docs, refactor.

    line 70
  4. Very specific:

    Never add runs-on: [self-hosted] to a workflow — use ubuntu-latest.

    line 71
  5. Very specific:

    Never commit secrets — .mcp.json uses ${ENV_VAR} placeholders only.

    line 72
  6. Distinctive:

    Never add employer-internal references (internal domains, private orgs, internal tooling names).

    line 73
  7. Very specific:

    Never add a marketplace.json here — publication goes through the separate Tamircohen28/tamirs-marketplace catalog.

    line 74
  8. Very specific:

    Never modify hooks/lib/worktree-common.sh without running shellcheck and testing both capture-task-slug.sh and worktree-create.sh.

    line 75
  9. Very specific:

    Never hand-write a SKILL.md — use the skill-creator skill.

    line 76
  10. Very specific:

    No install step for plugin content.

    line 77
  11. Distinctive:

    When a situation arises that a bundled skill covers, either invoke the skill or tell the user in one line that it exists — do not silently …

    line 81

≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

tamirs-superpowers — agent entrypoint

A multi-platform agent plugin: bundled skills, specialist agents, worktree hooks, and MCP server stubs, shipped to five platforms and, underneath them, six supported runtime surfaces: Claude (Claude Code, Claude Desktop), Codex (Codex CLI), Cursor (Cursor IDE), Gemini (Gemini CLI, gemini-extension.json), and OpenCode (OpenCode CLI). The four non-Claude platforms each have a further surface — the Codex IDE extension, the Cursor CLI, Gemini Code Assist, the OpenCode desktop app — that has never been measured here; claim nothing about them in either direction. It is not a Node/Python/Go app — no build step, no package.json, no compiled output. All content is Markdown, JSON, and Bash.

This file is a thin entrypoint, not the policy. Canonical policy lives in core/ and rules/; this page tells you which of those to read and gives you the commands. When this file and a canonical rule disagree, the canonical rule wins — say so rather than following the stale copy.


Read this first

You are about to…Read
Do anything at allcore/policies/safety.md — the hard invariants
Branch, commit, or pushcore/policies/git.md + rules/dev/git-worktree-agent-workflow.md
Run tests or checkscore/policies/validation.md — which tier applies where
Open a PR / shipcore/policies/delivery.md — one objective, one PR
Take on a role (implementer, reviewer, …)core/roles/README.md — role is not provider
Pick which provider runs a taskcore/providers/selection.md
Hand work to another providerrules/dev/cross-platform-handoff.md
Write a plan, review, or scratch filerules/dev/dev-files-workspace.md — it goes in .dev-files/
Author or edit a SKILL.mdrules/dev/skill-quality-standards.md + core/schemas/skill-frontmatter.json
Write a human-facing doc, or draw a diagramrules/dev/documentation-standards.md — themed Mermaid, the two-link footer; bash scripts/check-doc-standards.sh --fix
Write a script or a hookrules/dev/user-facing-script-standards.md
Touch GitHubrules/dev/gh-cli-preference.md — gh is optional; degrade explicitly
Change shipped contentrules/dev/plugin-version-bump.md — bump plugin-version.json, then --sync

The full index, including the hard-invariant vs configurable-policy split and the adapter map, is rules/README.md.


Work model in one paragraph

A user objective decomposes into worker tasks (a DAG). Each task runs in its own worktree on worker/<slug>/NNN, ends at commit + handoff, and never opens a PR. Workers compose into one integration worktree on objective/<slug>, which is where cross-worker review and full validation happen, and where the single PR is opened. Which provider ran a task is metadata recorded in .dev-files/objectives/<id>/, never encoded in a path or a branch name. Worker validation is targeted (Tier 1); full validation runs once at integration (Tier 2); CI is the final authority (Tier 3).


Commands

make validate           # shellcheck + JSON + skill frontmatter + repo contract + doc claims + Claude-only distribution check
make check-claude-dist  # build the Claude-only distribution to a temp dir and hold it to the plugin directory's rules
make lint               # shellcheck only
make test               # same as validate
make test-repo-contract # scaffold-gold (app-gold) + scaffold-plugin-gold (plugin-gold)
bash scripts/doctor.sh  # detected platform, version, dependencies, available capabilities
make install            # bootstrap Claude machine settings + agents (from a clone)
make update
make uninstall

Claude Code marketplace install:

/plugin marketplace add Tamircohen28/tamirs-marketplace
/plugin install tamirs-superpowers@tamirs-marketplace

Per-surface install guides: docs/user/install/ — one per supported surface, none for an unverified one. The machine-readable target list is platform-targets.json; the machine-readable capability list is core/capabilities/platforms.json.


Repo-specific expectations

These are true of this repository and are not in core/:

  • All JSON must parse (jq empty) — checked by make validate.
  • All .sh must pass shellcheck at -S warning — make lint.
  • Every SKILL.md must validate against the portable schema, core/schemas/skill-frontmatter.json, enforced by scripts/validate-skill-frontmatter.py. Claude-specific fields are a documented extension of that schema, not a universal requirement — see rules/dev/skill-quality-standards.md.
  • The version lives in one file, plugin-version.json. Never hand-edit a manifest, badge, or platform-targets.json version — run bash scripts/check-version-truth.sh --sync.
  • Commit format <type>(<scope>): <description> — types feat, fix, chore, docs, refactor; scopes skills, hooks, core, rules, marketplace, ci, docs.
  • Never add runs-on: [self-hosted] to a workflow — use ubuntu-latest.
  • Never commit secrets — .mcp.json uses ${ENV_VAR} placeholders only.
  • Never add employer-internal references (internal domains, private orgs, internal tooling names).
  • Never add a marketplace.json here — publication goes through the separate Tamircohen28/tamirs-marketplace catalog.
  • Never modify hooks/lib/worktree-common.sh without running shellcheck and testing both capture-task-slug.sh and worktree-create.sh.
  • Never hand-write a SKILL.md — use the skill-creator skill.
  • No install step for plugin content; make install only bootstraps machine settings and agents.

Surface skills at the moment they apply

When a situation arises that a bundled skill covers, either invoke the skill or tell the user in one line that it exists — do not silently hand-roll the work. One suggestion per situation per session; never repeat a declined suggestion.

SituationSkill
The user asks what something cost, how many tokens it used, or why a session got expensivesession-report
The user wants to record or query live LLM request metrics (model, latency, local JSONL)usage-capture
A stack trace, traceback, panic or crash log is pasted, or a file:line is namedtargeted-debug
A model/session refused or blocked and the user needs which layer did it (harness, LiteLLM, provider, model)diagnose-refusal
"am I up to date", "what new features am I missing", "latest docs" — or a *-plugin/plugin.json or CHANGELOG.md is being bumpedplatform-sync
A rate limit is hit, or an objective is still open and the session is endingswitch-dev
An objective failed or stalled and the user asks why, which task is stuck, or what to run nextdiagnose-objective
You are about to hand-write a capability a public skill or plugin plausibly already providesfind-skill
A PR is about to open or a security-sensitive diff needs a pass before pushCursor native /review-security (Teams Security Review bot) — complements security-reviewer
The session had repeated failures on the same thing, or the user corrected you several timesretro

Why the rule and not just good trigger descriptions: skill_auto_invocation in core/capabilities/platforms.json is partial on Cursor and unknown on Codex, Gemini CLI and OpenCode. Description-based auto-triggering only fires reliably on Claude Code and Claude Desktop, and the UserPromptSubmit hook that reinforces it (hooks/skill-suggest.sh) is unsupported on OpenCode. This rule is the only surfacing mechanism that works on every supported surface, which is why it is written down rather than left to the matcher.

Key paths

PathPurpose
core/Portable framework — policies, roles, workflow schemas, capabilities
platforms/<id>/adapter.yamlPer-target adapter metadata; authoritative capabilities stay in core/capabilities/platforms.json
rules/Canonical contributor rules (all providers) — see rules/README.md
plugin-version.jsonSingle source of truth for the version; every consumer listed inside
.claude-plugin/plugin.jsonClaude Code / Claude Desktop manifest
.cursor-plugin/plugin.jsonCursor manifest — shared by the Cursor IDE and the Cursor CLI (skills + MCP; no hooks)
.codex-plugin/plugin.jsonCodex manifest (skills + hooks + MCP)
gemini-extension.jsonGemini CLI extension manifest (platform-targets.json key: gemini_cli)
opencode.jsonOpenCode config (no version field — installs by path)
hooks/hooks.jsonHook event wiring (Claude Code + Codex)
skills/<domain>/<name>/SKILL.mdBundled skills, grouped by domain
agents/*.mdSpecialist agent definitions; each declares a role: from core/roles/
skills/repo/_contract/Shared repo scaffold/standards contract — templates, scoring, gold fixtures (not a skill)
scripts/User-facing scripts + validators

Cloud and headless runbook

Applies to Cursor Cloud, Codex sandboxes, Claude Code remote sessions, Gemini CLI, and CI — any non-interactive shell.

There is no app server or build output. "Running" this repo means exercising the validation harness:

CheckCommand
Full validationmake validate
Repo-standards gatemake repo-standards-gate
Plugin healthbash .claude/skills/run-tamirs-superpowers/smoke.sh </dev/null
Statusline render (Claude Code)echo '<session-json>' | bash scripts/statusline.sh
Environment / dependenciesbash scripts/doctor.sh

Gotchas:

  • scripts/statusline.sh reads JSON from stdin. With no piped input it blocks in non-interactive shells — always pipe or redirect (</dev/null). smoke.sh inherits stdin, so run it as smoke.sh </dev/null. The non-blocking requirement for new scripts is in user-facing-script-standards.md §4.
  • shellcheck is required for shell coverage in make lint/make validate; if absent those targets skip shellcheck rather than failing. Install it via your system package manager.
  • make check-manifest-versions needs network to compare against the latest release tag; it works offline against the current checkout.
  • Cursor Cloud agents boot a fresh Linux VM — install shellcheck and pip install -r scripts/requirements-validate.txt first.

Platform-specific addenda: CLAUDE.md (Claude Code / Desktop), .cursor/rules/*.mdc (Cursor IDE), .codex/config.toml (Codex), docs/user/install/gemini.md (Gemini CLI), docs/user/install/opencode.md (OpenCode — note what does not port). Host-version notes — what each host release changed and what this repo adopted or declined because of it — live in docs/engineering/host-notes/, not in the platform files; the evidence-bearing record stays platform-targets.json.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.