mirror of
https://github.com/wshobson/agents
synced 2026-06-21 14:13:58 +00:00
main
46 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
cc37bfdd29 |
feat: add fable model tier and refresh per-harness model aliases
Add Claude Fable 5 (model: fable) as the tier above opus across the adapter framework - native passthrough in Claude Code, mapped to each harness's top model elsewhere. No agents are promoted yet; tier criteria and cost guidance are documented in docs/agents.md and docs/authoring.md. Refresh MODEL_ALIASES against current harness catalogs (June 2026): - Codex: gpt-5 family -> gpt-5.5 / gpt-5.4-mini (per Codex model docs) - Copilot: GPT-5 stand-ins -> native Claude models (claude-opus-4.8, claude-sonnet-4.6, claude-haiku-4.5) now that Copilot CLI serves them - OpenCode: opus -> anthropic/claude-opus-4-8; haiku dated pin -> latest-tracking anthropic/claude-haiku-4-5 - Gemini: intentionally stays on GA gemini-2.5-* (3.x is preview-gated) - plugin-eval judge opus tier -> claude-opus-4-8 Gates: generate-all (no committed drift), validate STRICT=1, garden, test (442 passed), smoke-test all green. |
||
|
|
09250c0b50 |
fix: format tools/ with plugin-eval's ruff config (line-length 100)
The Code Quality job runs ruff from `plugins/plugin-eval/`, so that project's `[tool.ruff]` (line-length 100) governs the `../../tools/` sources too — there is no repo-root ruff config. The previous reformat was run from the repo root, where ruff fell back to its 88-col default, so CI disagreed. Reformat from the plugin-eval cwd to match CI exactly. |
||
|
|
d31e8b8fea |
fix: address PR review + upgrade ruff/ty so CI matches local
Review feedback:
- codex.py: Codex marketplace entries now conform to the openai/codex
core-plugins schema — source {source: "local", path}, policy
{installation, authentication}, and category (was missing required
fields; flagged P1). Top-level trimmed to {name, plugins}.
- codex.py: interface.shortDescription cuts on a word boundary + ellipsis
instead of a mid-word [:120] slice in committed .codex-plugin manifests.
- cursor.py: top-level .cursor-plugin/plugin.json displayName is now the
short "Claude Code Workflows" instead of the long marketplace description.
Tooling (local drives CI):
- Bump ruff 0.15.14 -> 0.15.15 and ty 0.0.39 -> 0.0.40 in plugin-eval's
uv.lock so CI installs the same versions we run locally, and reformat the
tools/ + plugin-eval sources to ruff 0.15.15 (fixes the failing
ruff format --check; the lock-hash change also busts CI's stale cache).
make validate STRICT=1 clean / garden 0 errors / 442 tests pass; regeneration
remains drift-free.
|
||
|
|
608c3840ca |
feat: native plugin-install for Codex/Cursor/Gemini + CLAUDE.md→AGENTS.md symlink
Add lean, native plugin-install entry points so each harness's own plugin manager can install this marketplace (mirroring obra/superpowers) — committing only small JSON registries, not duplicated skill/agent content trees. - Codex: committed marketplace registry (.agents/plugins/marketplace.json) + per-plugin manifests (plugins/*/.codex-plugin/plugin.json). Entries point at source ./plugins/<name>; Codex reads SKILL.md directly. Transformed .codex/skills|agents stay gitignored. - Cursor: commit the existing .cursor-plugin/ marketplace + .cursor/rules/ (these already point at source plugins/). - Gemini: gemini-extension.json already committed (contextFileName: AGENTS.md); transformed trees stay gitignored (install via clone + make generate). - OpenCode: unchanged — install via `make install-opencode` (transformed tree stays gitignored). - CLAUDE.md is now a symlink to AGENTS.md; Claude-Code addenda moved to docs/harnesses.md. - CI: new step fails if `make generate-all` drifts from the committed registries. Net new committed: ~720 KB of manifests (no skill/agent duplication). Adds round-trip tests for the new registries + the symlink. Docs updated across README, docs/harnesses.md, ARCHITECTURE.md, CONTRIBUTING.md, GEMINI.md, docs/authoring.md, and the PR template. |
||
|
|
6396498ed4 | fix: ruff format for plugin-eval config (double quotes, 100 line-length) | ||
|
|
9e14e351d7 | fix: import sorting for plugin-eval ruff config (I rule) | ||
|
|
4a3685ed6b | fix: ruff formatting and type fixes for CI quality gates | ||
|
|
f39402df5f |
fix(copilot): address PR #550 review feedback
- fix stem-parsing bug in doc_gardener.py (.agent suffix strip on Path.stem) - wrap skill.body with _rewrite_body_lowercase_tools() in copilot.py - add config_dir.is_dir() guard in install_copilot.py uninstall - fix ruff I001 import sorting across 5 files |
||
|
|
eb22976da8 | review: address code-audit findings — .omo/ artifact, docs drift, YAML quoting, validator helper | ||
|
|
a1b78ce68a |
review: address PR #550 review feedback — revert bot-driven changes to test and base adapter
- Delete agents_skills.txt and gemini_skills.txt (stale lint outputs) - Remove agents/*.agent.md gitignore guard - README.md: restore original table header, Claude Code row, simplify generate-all comment - docs/authoring.md: re-add Codex deprecated note alongside Copilot info - docs/usage.md: restore removed pr-enhance command - tools/adapters/base.py: remove AskUserQuestion mapping - tools/tests/test_cli_smoke.py: revert TTY skip in codex doctor test |
||
|
|
3487dc3f52 |
feat(copilot): emit plugin commands as runnable skills
Copilot does not support custom slash commands via `.copilot/commands/` — that path was a project invention with no official discovery mechanism. Plugin commands emitted there were invisible to Copilot CLI and VS Code. Instead, emit each plugin command as a Copilot skill SKILL.md with: - user-invocable: true (appears in VS Code / menu) - disable-model-invocation: true (not auto-loaded, only on demand) - hyphenated name `<plugin>-<command>` per VS Code Agent Skills spec Legacy `.copilot/commands/` emission retained for backward compat. Closes the loop on commands-not-working-in-Copilot-CLI investigation. |
||
|
|
f5ad900ee9 |
copilot: symlink command directories to ~/.copilot/<plugin>/commands/
- Commands now symlink to ~/.copilot/comprehensive-review/commands/ instead of ~/.copilot/commands/ - Adapter emits command files to .copilot/commands/<plugin>/ directory structure - Installer symlinks each command directory to ~/.copilot/<plugin>/commands/ - This matches Copilot CLI's discovery path for plugin commands Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|
|
9a178cb044 |
copilot: ensure command frontmatter has description (synthesize from H1 when missing)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|
|
52ced895f9 |
Automate Copilot cache clearing in install process
The 'make install-copilot' command now automatically clears Copilot's cache directories (pkg and marketplace-cache) after symlinking artifacts, ensuring new agents and skills are immediately discoverable without requiring manual cache clearing. This fixes the issue where installing agents like comprehensive-review required a separate manual cache clear step before they appeared in Copilot's agent discovery. - Add _clear_copilot_cache() to remove pkg/ and marketplace-cache/ - Update _print_report() to show cache clearing confirmation - Integrate cache clearing into main() install flow only Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|
|
07036e9689 |
feat: copilot harness follows OpenCode install pattern with .copilot/ output
- Generate to .copilot/agents/ and .copilot/skills/ (repo-local, gitignored) - make install-copilot symlinks to ~/.copilot/ for user-level discovery - tools/install_copilot.py + test_install_copilot.py (mirrors install_opencode) - tools/validate_generated.py: validate agents + skills - tools/doc_gardener.py: stale artifact detection for .copilot/ - tools/generate.py: _HARNESS_TARGETS + prune_orphans for .copilot/ - tools/tests/test_adapters.py: TestCopilotAdapter (9 tests) - tools/tests/test_round_trip.py: TestCopilotRoundTrip (3 tests) - tools/tests/test_validate_generated.py: expanded to 8 tests - docs/harnesses.md: install-copilot instructions + Pensyve entry - .gitignore: .copilot/ Closes #553 (follows same install pattern as OpenCode) |
||
|
|
4691655d3c |
feat: generate copilot artifacts directly to ~/.copilot/ instead of .github/
- CopilotAdapter now writes to ~/.copilot/agents/ and ~/.copilot/skills/ - Updated generate.py to pass ~/.copilot/ as output_root for copilot - Added copilot stale artifact detection to doc_gardener.py - Updated validate_generated.py to check ~/.copilot/agents/ (with fallback) - Removed old copilot gitignore entries and cleaned up stale artifacts - No install step needed — make generate HARNESS=copilot writes directly |
||
|
|
1db71ee658 | fix: copilot adapter output path respects output_root with .github/ prefix | ||
|
|
36eb3fa527 | style: ruff format copilot.py | ||
|
|
aa01539acf | docs: add missing docstrings to CopilotAdapter class and methods | ||
|
|
3afefa2a31 | fix: update copilot prune paths and _HARNESS_TARGETS; fix table separator | ||
|
|
b88ab1e5b1 | fix: move import re above stdlib imports to satisfy ruff | ||
|
|
c5bd699089 | feat: add Copilot harness adapter and fix test tooling | ||
|
|
3d72fae153 |
Revert "docs: increase validator docstrings to satisfy docstring coverage (addresses PR comment)\n\nAdds docstrings for validate_codex, validate_cursor, validate_opencode, validate_gemini, and main."
This reverts commit
|
||
|
|
0009a09978 | docs: increase validator docstrings to satisfy docstring coverage (addresses PR comment)\n\nAdds docstrings for validate_codex, validate_cursor, validate_opencode, validate_gemini, and main. | ||
|
|
39b33c67b4 | docs: add validator docstring for validate_copilot (addresses PR comment)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> | ||
|
|
bd5c049b61 | test: skip codex doctor in non-interactive envs; validator scoped to .copilot | ||
|
|
130384b7b3 |
revert: remove --commit flag and Makefile wiring (follow project contribution patterns)
- Keep generation local by default (.copilot) - Revert opt-in --commit behavior that wrote to .github/agents - Retain validator adjustments scoped to .copilot - Clean branch focuses only on adapter ergonomics and validator behavior Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|
|
c90f2c379c |
chore: copilot commit-mode support (clean branch)
- Add --commit flag to tools/generate.py and default .copilot output_root - Validate .github/agents in tools/validate_generated.py - Makefile wiring for COMMIT=1 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|
|
9b6b4c1254 |
Add OpenCode global install support (#555)
* Add OpenCode global install support * Format OpenCode PR updates * Address OpenCode install review feedback * Cover OpenCode skill name length validation * Guard OpenCode stale artifact scan |
||
|
|
8df77ecd46 |
Fix duplicate agent name collisions (#554)
* fix: namespace duplicate agent names * fix: format duplicate-name regression test * fix: align command phase output references * docs: clarify agent naming formula |
||
|
|
2d3f6a8527 |
chore: move toolchain to uv-native (no pip, no requirements.txt) (#543)
* chore: move toolchain to uv-native (no pip, no requirements.txt)
The repo previously mixed uv (for plugin-eval) with pip + requirements.txt
(for yt-design-extractor) and raw `python3` invocations in the Makefile and
CI workflows. This makes the toolchain uniformly uv-managed.
## yt-design-extractor
Moved `tools/yt-design-extractor.py` into `tools/yt-design-extractor/` with its
own `pyproject.toml` + `uv.lock`. EasyOCR (and its ~2 GB torch dependency)
becomes an optional extra (`uv sync --extra easyocr`). Deleted
`tools/requirements.txt`.
## Makefile
All targets now route through uv:
- `make install` / `make install-easyocr` / `make deps` / `make check` / `make run*`:
`cd tools/yt-design-extractor && uv run/uv sync`
- `make generate` / `make validate` / `make garden` / `make clean-generated`:
`uv run --project plugins/plugin-eval python tools/...` (reuses plugin-eval's
venv — it already has pyyaml and `extra-paths = ["../.."]` for tools/adapters)
- `make test` / `make smoke-test`: `uv run --project plugins/plugin-eval pytest`
## CI
- `.github/workflows/validate.yml`:
- `multi-harness-generate` swapped from `actions/setup-python@v5` to
`astral-sh/setup-uv@v5` + `uv sync` of plugin-eval before `make generate-all`
- Workflow-level `permissions: contents: read` + `persist-credentials: false`
on every checkout (carrying the security hardening forward consistently)
- `.github/workflows/code-quality.yml`:
- `json-lint` job swapped from `setup-python` to `setup-uv`
- YAML validator now uses `uv run --with pyyaml python` (no pre-step install)
- JSON/TOML validators use `uv run python` (stdlib `json.tool`, `tomllib`)
- Dropped the standalone `pip install pyyaml --quiet` line
## Inline hints
- `plugins/plugin-eval/src/plugin_eval/layers/judge.py`: error message
recommends `uv sync --extra llm` instead of `pip install plugin-eval[llm]`
- `tools/yt-design-extractor/yt-design-extractor.py`: usage docstring and
install hints now reference `make install` / `make install-easyocr` / `uv run`
The pip refs inside plugin-authored commands (deps-audit.md, doc-generate.md,
error-trace.md) describe scanning **user** Python projects — those legitimately
use pip and are out of scope.
Local gates green: make test (385 pass), make garden (0 errors), make validate
clean, ruff + format + ty all pass, markdownlint clean.
* chore: address PR #543 review feedback
- checkmake (Makefile): consolidate the multi-line `.PHONY:` declaration
onto a single line. The previous backslash-continued form was readable
but checkmake couldn't parse it, falsely flagging `validate` and
`clean-generated` as missing from .PHONY. They were already declared —
just invisible to the linter.
Other CodeRabbit feedback declined:
- pyproject.toml dep version constraints (CodeRabbit self-tagged "Low value"):
uv.lock pins exact versions for reproducibility; upper bounds on yt-dlp,
Pillow, etc. would invite stale-pin churn without changing the locked
installation. Tracking upstream aggressively is the right default for a
utility tool.
- SHA-pinning for GitHub Actions (CodeRabbit "Major" but defensible):
Workflow has no write scope (permissions: contents: read on both files),
no secrets are exposed, and the actions involved are first-party Anthropic
(astral-sh, actions/*, DavidAnson). Same policy decision as PR #542 —
blanket SHA pinning is a bigger commitment than this PR's scope warrants.
* chore: pin all GitHub Actions to commit SHAs
Addresses CodeRabbit's Major finding (zizmor `unpinned-uses`). Reverses the
earlier policy decision now that the workflow scope has grown — pins both
workflows consistently in one pass:
- actions/checkout v4 → 34e114876b0b11c390a56381ad16ebd13914f8d5
- actions/setup-node v4 → 49933ea5288caeca8642d1e84afbd3f7d6820020
- actions/upload-artifact v4 → ea165f8d65b6e75b540449e92b4886f43607fa02
- astral-sh/setup-uv v5 → e58605a9b6da7c637471fab8847a5e5a6b8df081
- DavidAnson/markdownlint-cli2-action v18 → eb5ca3ab411449c66620fe7f1b3c9e10547144b0
- oven-sh/setup-bun v2 → 0c5077e51419868618aeaa5fe8019c62421857d6
Each pin keeps the version tag in a trailing comment for human readability
and dependabot/renovate compatibility.
Both workflows YAML-validated locally; functionality unchanged.
|
||
|
|
03e6dae50a |
docs: remove redundant per-harness setup files
CODEX.md, CURSOR.md, and OPENCODE.md were human-readable setup guides that no harness actually loads as a context file — Codex, Cursor, and OpenCode all read AGENTS.md natively. The substantive content (install one-liner, capability deltas, authoring caveats) lives in: - README.md "Pick your harness" section — install flow - docs/harnesses.md — full capability matrix + graceful-degradation table - docs/authoring.md — portable-content style guide GEMINI.md stays because .gemini/settings.json includes it in context.fileName — it IS loaded into context every Gemini prompt. Updated references: - README.md — badge links + setup-guide line point at docs/harnesses.md - AGENTS.md, ARCHITECTURE.md — table-of-contents + tree diagram - docs/authoring.md — context-file cap rule - .github/PULL_REQUEST_TEMPLATE.md — scope checklist - tools/doc_gardener.py — CONTEXT_FILES map + dead-link traversal roots - tools/tests/test_round_trip.py — TestContextFileBudgets parametrize list Local lints: ruff (CI scope) clean, ruff format clean, ty clean, markdownlint clean, doc_gardener 0 errors, 31 round-trip + gardener tests pass. |
||
|
|
98862b56d8 |
feat: AGENTS.md canonical context + OpenAI harness-engineering layout (#542)
* feat: AGENTS.md canonical context + OpenAI harness-engineering layout Promote AGENTS.md to the committed cross-harness context file (per the agents.md convention and OpenAI's harness-engineering blog). Harness- specific files become thin redirects: - AGENTS.md — canonical, committed (~74 lines, table-of-contents) - CLAUDE.md — `@AGENTS.md` import + Claude-specific addenda - GEMINI.md — Gemini-specific setup only - .gemini/settings.json — redirects Gemini CLI's context to read AGENTS.md - ARCHITECTURE.md — new at root, top-level architectural map - gemini-extension.json — bumps version to 1.7.0, sets contextFileName: AGENTS.md - .gitignore — drops the AGENTS.md entry (file is now committed) Harness support verified: - Codex CLI reads AGENTS.md natively (root → cwd walk, 32 KiB cap) - Cursor 2.5+ reads AGENTS.md natively - OpenCode reads AGENTS.md natively (wins over CLAUDE.md if both exist) - Claude Code: `CLAUDE.md` first line is `@AGENTS.md` (Anthropic's documented interop pattern) - Gemini CLI: `.gemini/settings.json` context.fileName redirect (Gemini doesn't support @-imports) Codex adapter no longer generates AGENTS.md — `emit_global` instead validates the committed file fits Codex's 32 KiB cap and the 150-line table-of-contents convention. Tests updated. Clean-output target no longer touches AGENTS.md. ## Auxiliary files updated for multi-harness reality - `.github/ISSUE_TEMPLATE/bug_report.yml` — dropdown for harness + component path; renames "subagent" → "plugin/agent/skill/command" - `.github/ISSUE_TEMPLATE/feature_request.yml` — scope dropdown covers framework / harness / tooling / docs / CI in addition to components - `.github/ISSUE_TEMPLATE/new_subagent.yml` — relabeled "New Component Proposal" with component-type dropdown (plugin/agent/skill/command/ harness adapter) and cross-harness portability field - `.github/ISSUE_TEMPLATE/config.yml` — links to AGENTS.md, authoring guide, per-harness docs; updated Contributing link to root - `.github/CONTRIBUTING.md` — thin pointer to canonical root CONTRIBUTING.md - `.github/PULL_REQUEST_TEMPLATE.md` — new; scope + affected-harness checklists, test-plan checklist, portability-notes section - CONTRIBUTING.md (root) — updated to reference AGENTS.md / ARCHITECTURE.md - gemini-extension.json — version 1.6.0 → 1.7.0, count fixes, redirects to AGENTS.md as contextFileName ## Code-quality CI New `.github/workflows/code-quality.yml` with three jobs: - `python-lint` — `ruff check`, `ruff format --check`, `ty check` on the adapter framework + plugin-eval. yt-design-extractor.py legacy code excluded. - `markdown-lint` — markdownlint-cli2 against README, AGENTS, ARCHITECTURE, CLAUDE, top-level guides, and docs/. Config in `.markdownlint.json`. - `json-lint` — validates every JSON / TOML / YAML in the repo (excluding generated trees). Required ty environment config added to plugin-eval/pyproject.toml so `tools.adapters.*` resolves from outside the package. Fixed one ty error in `tools/adapters/base.py:HarnessAdapter.capabilities` (return-type annotation didn't match the `Capability` dataclass returned). Fixed two ruff SIM108 ternary suggestions in codex.py and doc_gardener.py. ruff format applied across all in-scope files (formatting-only diffs). ## Tests + verification - 387 pytest tests pass (1 new test for the AGENTS.md validate-don't-overwrite behavior) - `make validate STRICT=1` clean - `make garden` 0 errors (10 warnings — remaining oversize source skills) - `make smoke-test` clean against locally installed OpenCode/Gemini/Codex/Claude Code - Real-CLI round-trip: `opencode agent list` discovers 193 subagents, `gemini extensions validate .` succeeds, all 191 Codex agent TOMLs parse ## Tag recommendations (separate task — for repo About panel) Top 20 by reach + relevance (from `gh api search/repositories?q=topic:<tag>`): automation mcp ai-agents developer-tools claude-code anthropic agentic-ai agents prompt-engineering cursor multi-agent agent-skills orchestration opencode workflows gemini-cli codex-cli claude-code-skills cursor-rules claude-code-plugins * fix(ci): YAML multi-doc + markdownlint scope/rules Two CI failures on PR #542, both fixed: ## JSON/TOML/YAML syntax job (3 false-positive YAML errors) The job's YAML validation used `yaml.safe_load` which only reads the first document in a multi-document YAML stream. Three Kubernetes manifest templates use the standard `---` document separator (valid YAML) and were mis-flagged: plugins/kubernetes-operations/skills/k8s-manifest-generator/assets/configmap-template.yaml plugins/kubernetes-operations/skills/k8s-manifest-generator/assets/service-template.yaml plugins/kubernetes-operations/skills/k8s-security-policies/assets/network-policy-template.yaml Switched to `list(yaml.safe_load_all(...))` so multi-doc YAML is accepted. ## Markdown lint job (lots of pre-existing plugin-README violations) Two changes: 1. **Narrow the lint glob** — markdownlint now runs against top-level guides (README, AGENTS, ARCHITECTURE, CLAUDE, per-harness setup, CONTRIBUTING) and our authored `docs/` only. Per-plugin READMEs (`plugins/*/README.md`) are owned by their plugin authors and not lint-gated as part of this framework PR. Lint enforcement for those belongs at the plugin-author layer, not the framework PR layer. 2. **Tighten `.markdownlint.json`** — disable two rules that produce noise without catching real defects: - MD040 (fenced-code-language) — terminal output / shell command blocks frequently omit a language by convention - MD060 (table-column-style) — cosmetic table-pipe spacing; doesn't affect rendering Genuine formatting rules kept: MD029 (ol-prefix), MD031 (blanks- around-fences), MD032 (blanks-around-lists), MD056 (table-column- count), MD058 (blanks-around-tables). ## Real defects caught and fixed The narrower scope still caught 5 real issues: - `docs/agent-skills.md:397` — code fence inside an ordered list item needed a blank line before the fence - `docs/authoring.md:90` — bulleted list needed a blank line above - `docs/plugin-eval.md:87` — table needed a blank line above - `OPENCODE.md:39` — table-column-count error caused by literal `|` inside backticks: ``mode: primary|subagent|all`` (3 cells reads as 5) Rewrote as ``mode:` one of `primary` / `subagent` / `all`` ## Verification - `npx markdownlint-cli2 "*.md" "docs/*.md"` → 0 errors - `yaml.safe_load_all` accepts all multi-doc YAMLs (0 errors) - All other CI jobs already passing (Python ruff/ty, multi-harness generate, CLI smoke test, plugin-eval pytest, tools pytest) * fix: address PR #542 bot feedback - Codex P2 (chatgpt-codex-connector): emit_global now reads AGENTS.md from the repo root (WORKTREE), not output_root. Previously `--output-root <scratch>` produced a false "missing" warning even when AGENTS.md was committed at the real root, breaking --strict generation outside the repo. Added a constructor arg `repo_root` so tests can stage a fake AGENTS.md without touching the committed file, plus a regression test that proves the two paths are decoupled. - CodeRabbit nitpick (code-quality.yml): added workflow-level `permissions: contents: read` and `persist-credentials: false` on every checkout. Skipped the SHA-pinning recommendation — it's a heavier blanket-policy decision and the workflow has no write scope to abuse. - CodeRabbit nitpick (pyproject.toml): consolidated the duplicate `dev` groups by moving `ty` into `[project.optional-dependencies].dev` and removing the now-empty `[dependency-groups]` block. Dropped `--group dev` from `code-quality.yml`'s `uv sync` since `--all-extras` now covers it. - Verified gemini-extension.json counts (82/191/155/102) against the actual source-of-truth: 81 local plugins + 1 external = 82 in marketplace.json, 191 agent .md files, 155 SKILL.md files, 102 command .md files. Counts are correct as-is — CodeRabbit's quick-win was a regex miscount. |
||
|
|
be57c0b2e3 |
feat: multi-harness plugin marketplace (Codex, Cursor, OpenCode, Gemini) (#541)
* feat(adapters): multi-harness framework + harness_portability eval dimension
Turn this Claude Code plugin marketplace into a generic agentic-harness
marketplace. Adapters under tools/adapters/ emit harness-native artifacts
for OpenAI Codex CLI, Cursor, OpenCode, and Gemini CLI from a single
Markdown source. Source-of-truth stays under plugins/ — Claude Code is
unchanged.
Framework (tools/adapters/):
- base.py — PluginSource parser, HarnessAdapter ABC, write/mirror helpers
(path-traversal guard, UTF-8-safe), inline-list + block-list + block-scalar
YAML-ish parser, _utf8_safe_cut, _split_inline_list, _normalize_author
- capabilities.py — per-harness capability matrix, TOOL_NAME_MAPS,
MODEL_ALIASES, resolve_model() with explicit warnings
- codex.py — emits .codex/{skills,agents}/ + AGENTS.md (≤150-line
table-of-contents). Fence-aware body splitter, _utf8_safe_cut for
multibyte safety, _yaml_scalar with reserved-word + special-char quoting.
Skill/command name collision detection (and second-order __cmd fallback).
- cursor.py — emits .cursor-plugin/{plugin,marketplace}.json + curated
.cursor/rules/*.mdc. _validate_mdc_frontmatter handles YAML block scalars
(no false positives on colons in description body). _normalize_author
handles dict, npm-style strings, and author lists.
- opencode.py — transpiles agents to .opencode/agents/<id>.md with
mode:subagent + permission: deny-everything-else block (skill/task always
allowed as base capabilities — Claude's implicit defaults).
- gemini.py — emits native skills/, agents/, and commands/ at extension
root (April 2026 spec). Tool-allowlist remapped via TOOL_NAME_MAPS.
CLI + tooling:
- tools/generate.py — unified `make generate HARNESS=<x> [PLUGIN=<y>]`,
with --clean (containment-guarded; case-insensitive on Darwin/Win32),
--prune (orphan removal across all per-harness output trees), --strict
(warnings fail), per-plugin error aggregation, refuses --clean --plugin
(would silently wipe other plugins' artifacts).
- tools/validate_generated.py — structural validation across all four
harness outputs. Codex 8KB cap → error. _extract_permission_block
correctly handles nested permission keys (column-0 only).
- tools/doc_gardener.py — recurring drift detection per OpenAI harness-
engineering principle. STALE_ARTIFACT (info), DEAD_LINK (error),
MARKETPLACE_ORPHAN (error), SKILL_OVER_CODEX_CAP (warning), grouped
output sorted by severity.
plugin-eval (extends existing framework):
- New harness_portability dimension (6% weight, rebalanced from existing
static sub-scores). Surfaces non-portable patterns with concrete
remediation hints: SKILL_OVER_CODEX_CAP, CLAUDE_TOOL_REFS,
CLAUDE_TOOL_PROSE, AGENT_NAME_COLLISION, BARE_MODEL_ALIAS.
- _CAMEL_TOOL_PATTERN requires Claude-tool context (no false positives
on Rust's `Task` etc.). _TOOL_PROSE_PATTERN case-sensitive on tool
names, case-insensitive on the leading article.
- Findings do NOT also feed anti_pattern_penalty (no double-counting).
Documentation:
- Top-level guides: CODEX.md, CURSOR.md, OPENCODE.md (≤150 lines each,
table-of-contents pattern per OpenAI harness-engineering post)
- docs/harnesses.md — capability matrix, graceful-degradation table,
generated output paths
- docs/authoring.md — portable-content style guide (tools, models,
collision rules, fence-respect)
- docs/round-trip-results.md — real-CLI verification recipes (OpenCode
discovers 193 subagents, Gemini extensions validate passes, Codex
TOMLs all parse)
- CONTRIBUTING.md — new file pointing at docs/authoring.md
- README.md — rewritten for multi-harness (145 lines, was 460)
- CLAUDE.md — trimmed to 60-line table-of-contents
- GEMINI.md — trimmed from 1500 to 500 tokens (3× over budget previously)
Tests: 181 passing (103 plugin-eval + 78 tools/tests). Real-CLI round-trip
verified for OpenCode, Gemini, and Codex (TOML parses).
Replaces tools/generate_gemini_commands.py with the unified CLI.
* refactor(skills): extract detail to references/details.md (~75 skills)
Apply Anthropic's canonical SKILL.md progressive-disclosure pattern across
the marketplace: SKILL.md body becomes a navigation tier (trigger phrasing
+ quick start), detailed templates and worked examples move to
references/details.md (loaded on demand by the agent).
Motivation: OpenAI Codex CLI hard-truncates skills at 8 KB. Before this
change, ~90 skills exceeded that cap and would silently break on Codex.
The progressive-disclosure pattern is also Anthropic's documented
recommendation for token efficiency — Claude Code reads references/ files
on demand when the body navigation says to.
What's extracted, by pattern:
- Pass 1 (## Templates section): 19 skills — full template libraries
moved to references/details.md
- Pass 2 (## Implementation Patterns / ## Advanced Patterns): 13 skills
- Pass 3 (everything between nav-tier and wrap-tier headings): 53 skills
- Conservative re-extraction for 8 skills that got over-reduced — kept
~6-7 KB inline (most of the quick-start tier) plus references/ overflow
What stays inline (SKILL.md navigation tier):
- description: frontmatter (triggering — unchanged for all skills)
- ## When to Use This Skill / ## Core Concepts / ## Quick Start
- ## Best Practices / ## Troubleshooting / ## See Also wrap-ups
- A pointer note ("see references/details.md") so the agent knows where
to look for detail
What goes to references/details.md (detail tier, on-demand load):
- ## Templates (full code template libraries)
- ## Implementation Patterns / ## Advanced Patterns (deep examples)
- Mid-skill walkthroughs that exceed the inline budget
Also in this commit:
- plugins/brand-landingpage description trimmed from 958→543 chars
(preserves trigger phrasing, drops verbose example-quote list)
Net effect:
- SKILL_OVER_CODEX_CAP findings: 90 → 10 (88% reduction)
- All triggers unchanged — discovery behavior identical across harnesses
- 75 new references/details.md files with the extracted content
- Same depth of guidance, loaded progressively
Remaining 10 oversized skills are complex multi-section docs (e.g.
postgresql, code-review-excellence, evaluation-methodology) that need
per-skill manual judgment — flagged by `make garden` for future work.
* chore: bump all plugin versions (multi-harness release)
Patch-bump every local plugin (81) in both .claude-plugin/marketplace.json
entries and each plugins/<name>/.claude-plugin/plugin.json. Minor-bump the
top-level marketplace metadata.version (1.6.0 → 1.7.0) to signal the
multi-harness adapter framework addition.
The external git-subdir entry (qa-orchestra) is unaffected — its version
is governed by its upstream repo.
* fix(opencode): preserve explicit tools:[] + word-boundary subtask match
Addresses two Codex review findings on PR #541.
## P1 — `tools: []` silently upgraded to permissive (privilege escalation)
Before: `_build_permission_block` returned `{}` for any empty list, which
omits the `permission:` block entirely from the emitted agent. An author
who explicitly wrote `tools: []` to lock down an advisory-only agent got
an UNRESTRICTED agent in OpenCode. Affected agent in this tree:
`plugins/arm-cortex-microcontrollers/agents/arm-cortex-expert.md`.
Fix: `_build_permission_block` now takes a `has_tools_field` flag so the
caller can distinguish "tools: key missing" (Claude default permissive)
from "tools: []" (explicit lock-down). The lock-down case emits a
deny-everything block that allows ONLY the base capabilities (skill, task)
that Claude Code always grants implicitly. Verified against the real
arm-cortex-expert agent — now emits read/edit/write/bash/grep/glob/list:
deny, task/skill: allow.
## P2 — `"agent" in cmd.body.lower()` false-positives on substrings
Before: a command body containing `PerformanceReviewAgent` (class name
in a code snippet) or `useragent` triggered `subtask: true`, changing
runtime behavior based on incidental text.
Fix: switch to a compiled word-boundary regex `\b(agent|subagent)s?\b`
(case-insensitive). Tests confirm the substring `PerformanceReviewAgent`
no longer fires, while a real "spawn a subagent" sentence still does.
## Tests
3 new regression tests in tools/tests/test_adapters.py:
- `test_explicit_empty_tools_yields_locked_permission_block` (P1)
- `test_missing_tools_field_yields_no_permission_block` (P1 boundary)
- `test_subtask_inference_word_boundary` (P2)
184 total tests pass (was 181). OpenCode round-trip still discovers all
193 subagents; arm-cortex-expert agent is now properly locked down.
* test: behavioral verification + CI gates for multi-harness pipeline
Adds three layers of automated verification that pure-Python parser tests
miss, plus the CI jobs that turn them into hard gates. Catches the kinds
of issues that previously only surfaced when a real user installed the
marketplace and tried to use it.
## test_real_world.py — real-source structural tests
Runs against the actual `plugins/` tree (not synthetic fixtures). Catches
issues that only appear on real content:
- every marketplace entry resolves to a plugins/<name>/ dir
- every local plugin dir appears in marketplace.json
- marketplace.json version == per-plugin plugin.json version (catches drift)
- every plugin loads via load_plugin() without error
- no plugin name contains `__` (adapter namespace separator)
- every agent has name + description; every skill has a trigger phrase
(same regex plugin_eval's MISSING_TRIGGER check uses)
- no agent name collides with Codex built-ins
- every refactored skill (with `references/details.md`) has:
- meaningful detail content (>=500 B in details.md)
- a pointer to references/ in the SKILL.md body
- a navigation-tier heading preserved (When to Use, Overview, etc.)
- body >= 600 B (not a stub)
- every plugin.json has name + version matching the dir
This test pass found and fixed three real defects before commit:
- ship-mate/skills/scan: description had no trigger phrase ("Use when…")
- reverse-engineering/skills/memory-forensics: nav-tier section lost
during extraction
- reverse-engineering/skills/binary-analysis-patterns: same
All three are now fixed (preserved trigger phrasing, added When-to-Use
sections back to the skills my extraction over-trimmed).
## test_round_trip.py — generate→parse→verify
CI runs this AFTER `make generate-all`. Catches generation-time regressions:
- OpenCode/Codex/Gemini agent counts match source agent count (no skips)
- every Codex SKILL.md under 8 KB (the cap that would silently truncate)
- every Codex agent TOML has required fields + valid sandbox_mode
- every OpenCode agent has mode in {primary,subagent,all} and
provider-prefixed model
- locked agents (source `tools: []`) emit proper deny-everything permission
block with skill/task allow (regression guard for PR-541 P1)
- every Gemini @{path} injection resolves to a real source file
- every Gemini command TOML has prompt + {{args}} placeholder
- every context file (CLAUDE.md, AGENTS.md, GEMINI.md, etc.) within
150-line cap
- Cursor marketplace + per-plugin manifests cover all local plugins
- .cursor/rules/*.mdc only use the 3 documented frontmatter keys
## test_cli_smoke.py — real-CLI subprocess tests
Invokes the actual harness binaries (OpenCode, Gemini, Codex, Claude Code)
against the generated artifacts. Catches CLI-level issues pure-Python
parsing can't see: schema-loader drift, plugin-discovery bugs, version
incompatibilities.
- `opencode agent list` — must succeed AND discover every source agent
(currently 191 + 2 OpenCode built-ins)
- `gemini extensions validate <repo>` — must return success
- `codex doctor` — must report healthy install
- every Codex agent TOML must parse with stdlib `tomllib`
- `claude --version` — sanity check the Claude Code CLI loads
- marketplace.json must have owner + metadata.version for Claude Code's loader
Per-CLI tests skip gracefully when the binary isn't on PATH, so local
devs only exercise what they have installed. CI installs OpenCode +
Gemini and turns those skips into hard gates.
## Makefile + CI
- `make test` — full pytest suite (plugin-eval + tools/tests/)
- `make smoke-test` — generates if needed, then runs real-CLI smoke tests
- `.github/workflows/validate.yml` extended with:
- `tools-tests` job — runs pytest tools/tests/
- `multi-harness-generate` job — `make generate-all && make validate
STRICT=1 && make garden`, uploads generated artifacts on every run
- `cli-smoke-test` job — installs OpenCode + Gemini, runs test_cli_smoke.py
## Test counts
- Before: 184 tests
- After: 386 tests (parameterized real-source tests over all 82 plugins)
- All passing locally on OpenCode 1.15.7 + Gemini 0.42.0 + Codex 0.133.0
+ Claude Code 2.1.148
|
||
|
|
08ded5e7b0 |
fix: agent teams coordination guardrails (#535)
* fix agent teams coordination guardrails * address agent teams review feedback |
||
|
|
a935f698dd |
feat: add Gemini CLI extension support (150+ skills via gemini-extension.json + GEMINI.md) (#512)
* chore: add .worktrees/ to .gitignore Isolate git worktrees from version control to keep repository clean. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat: add Gemini CLI extension manifest - Declare claude-agents as a Gemini CLI extension - Point to GEMINI.md for bootstrap context - Enable auto-discovery via gemini-cli-extension topic Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat: add Gemini CLI bootstrap context - Document 150+ skills ecosystem for Gemini users - Explain differences from Claude Code platform - Provide plugin navigation and skill usage guidance - Link to tool mapping and plugin catalog Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: Add Gemini CLI tool mapping reference Add comprehensive docs/gemini-tool-mapping.md guide for users migrating from Claude Code to Gemini CLI. Includes: - Core Tools: Direct Equivalents (table format) - Platform-Specific Features: Claude Code Only (slash commands, subagents, model tiers) - Claude Code Specific: MCP Servers (description and migration guidance) - Platform Differences: Behavior & Constraints (context limits, tool availability) - Skill Design Guidelines (DO's and DON'Ts for Gemini compatibility) - Migration Path (step-by-step guide for adapting Claude Code skills) - Common Patterns (side-by-side code examples) - FAQ (troubleshooting and common questions) Document provides practical, self-contained guidance without requiring other docs, though cross-references to GEMINI.md and plugins.md are included. Co-authored-by: GitHub Copilot <noreply@github.com> * fix: Correct syntax errors in code examples - Lines 177-189: Convert Python pseudocode to valid bash for skill examples - Line 347: Remove invalid read_file() function call; use sed for line extraction - Lines 365-372: Replace mixed Python/bash with proper bash conditionals using exit codes All code examples now syntactically valid and follow Gemini CLI bash patterns. Co-authored-by: GitHub Copilot <copilot@github.com> * docs: add Gemini CLI section to README - Explain Gemini CLI extension availability and installation - Link to GEMINI.md for navigation and tool mapping for platform differences - Clarify multi-platform support (Claude Code primary, Gemini CLI skills) * docs: add Gemini CLI plugin discovery guide - List all 79 plugins organized by category with skill names - Include natural-language trigger examples for Gemini auto-activation - Complement GEMINI.md with detailed skill discovery navigation * docs: update GEMINI.md to reference Gemini-optimized plugin guide - Point plugin catalog navigation to gemini-plugin-guide.md for Gemini users - Keep reference to plugins.md as full technical catalog fallback * fix: remove trailing period from reference in GEMINI.md * fix: correct repo URL, extension version, gitignore, and doc references - Point install URL to upstream wshobson/agents (not fork) - Set extension version to 1.0.0 (initial release) - Fix .gitignore: restore .claude entry, add .worktrees/ - Fix broken @./plugins.md references → @./docs/plugins.md in tool-mapping doc * fix: align Gemini extension name with marketplace, fix @./ refs, deduplicate plugin listing, fix pseudo-code, update README plugin count * docs: add per-plugin GEMINI.md for all 79 plugins + generation script Generated programmatically from each plugin's agents/commands/skills frontmatter. Covers all three component types per plugin, providing scoped context for Gemini CLI slash commands and developer workflows inside the repo tree. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add ADR for Gemini CLI integration strategy Documents the four options considered, why hierarchical GEMINI.md scanning and per-repo splitting were rejected, and the key findings (slash commands are supported in Gemini; install granularity is a hard platform limit). Records pending Phase A work. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add Gemini CLI slash commands for all 100 plugin commands Creates commands/<plugin>/<cmd>.toml for each of the 100 Claude Code commands across 50 plugins, mapping /plugin:command to Gemini CLI's TOML command format. Prompts are self-contained (no extension-relative file inclusion) following confirmed patterns from real extension examples. Includes generator script at tools/generate_gemini_commands.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add ADRs for Phase A slash commands and Phase B distribution decision - 2026-05-01-gemini-slash-commands.md: documents TOML format, directory structure, self-contained prompt decision (no extension-relative @{path}), and auto-discovery. Includes primary source citations. - 2026-05-01-per-plugin-gemini-md-distribution.md: documents why per-plugin GEMINI.md files are kept in the repo despite not auto-loading for extension users. Refutes size/security liability claims with verified data. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add integration planning document Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * refactor: remove per-plugin GEMINI.md files and generator (option C) - Delete all 79 per-plugin GEMINI.md files (plugins/*/GEMINI.md) - Delete per-plugin file generator (tools/generate_plugin_gemini_md.py) - Eliminates false power user workflow benefit (files never auto-loaded) - Keeps TOML slash commands for real discovery mechanism - Single root GEMINI.md with bootstrap context remains Rationale: Per-plugin files were in wrong location for Gemini CLI auto-discovery. Power user benefit was fictional. Slash commands provide real discovery UX. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs(adr): update decisions to reflect Option C (removed per-plugin files) ADR Updates: - 2026-04-30-gemini-cli-integration.md: Explain Option C choice, document false power user claim - 2026-05-01-gemini-slash-commands.md: Clarify slash commands are primary power user feature - 2026-05-01-architecture-simplification.md (NEW): Document decision to remove per-plugin files - docs/decisions/README.md: Updated to reflect final decision - Archived: 2026-05-01-per-plugin-gemini-md-distribution.md Rationale: Audit revealed per-plugin GEMINI.md files don't auto-load (were positioned at root, not in .gemini/ subdirectory). False power user benefit justification invalidated the design. Slash commands (which do work) are the real power user feature. Simplified architecture removes 79 files, 1 generator script, keeps all functionality. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: remove false power user claim from GEMINI.md, correct tool mapping doc, fix status claim Critical fixes addressing three document contradictions: 1. GEMINI.md: Remove false auto-loading claim - Line 42 claimed: 'Power users (repo cloned) | Auto-loaded when you cd plugins/<name>/' - Audit + ADRs concluded this was INVALID (files never auto-loaded) - Yet GEMINI.md still published the lie as fact - Replaced with accurate description: slash commands are primary discovery mechanism 2. docs/gemini-tool-mapping.md: Correct slash commands status - Listed slash commands as 'Claude Code only' without noting Gemini TOML support - ADR 1 flagged: 'docs/gemini-tool-mapping.md requires correction (pending)' - Correction never happened - Updated to accurately describe Gemini's custom command support via TOML - Clarified difference: Gemini has extension-specific commands, not global shortcuts 3. docs/decisions/README.md: Fix 'IMPLEMENTED' status claim - Claimed: 'Status: IMPLEMENTED (2026-05-01)' - Reality: All work on feature/gemini-cli-integration, not merged to main - Main branch at |
||
|
|
5d65aa1063 |
Add YouTube design concept extractor tool (#432)
* feat: add YouTube design concept extractor tool Extracts transcript, metadata, and keyframes from YouTube videos into a structured markdown reference document for agent consumption. Supports interval-based frame capture, scene-change detection, and chapter-aware transcript grouping. https://claude.ai/code/session_01KZxeSK9A2F2oZUoHgxUUBV * feat: add OCR and color palette extraction to yt-design-extractor - Add --ocr flag with Tesseract (fast) or EasyOCR (stylized text) engines - Add --colors flag for dominant color palette extraction via ColorThief - Add --full convenience flag to enable all extraction features - Include OCR text alongside each frame in markdown output - Add Visual Text Index section for searchable on-screen text - Export ocr-results.json and color-palette.json for reuse - Run OCR in parallel with ThreadPoolExecutor for performance https://claude.ai/code/session_01KZxeSK9A2F2oZUoHgxUUBV * feat: add requirements.txt and Makefile for yt-design-extractor - requirements.txt with core and optional dependencies - Makefile with install, deps check, and run targets - Support for make run-full, run-ocr, run-transcript variants - Cross-platform install-ocr target (apt/brew/dnf) https://claude.ai/code/session_01KZxeSK9A2F2oZUoHgxUUBV * chore: move Makefile to project root for easier access Now `make install-full` works from anywhere in the project. https://claude.ai/code/session_01KZxeSK9A2F2oZUoHgxUUBV * fix: make easyocr truly optional, fix install targets - Remove easyocr from install-full (requires PyTorch, causes conflicts) - Add separate install-easyocr target with CPU PyTorch from official index - Update requirements.txt with clear instructions for optional easyocr - Improve make deps output with clearer status messages https://claude.ai/code/session_01KZxeSK9A2F2oZUoHgxUUBV * fix: harden error handling and fix silent failures in yt-design-extractor - Check ffmpeg return codes instead of silently producing 0 frames - Add upfront shutil.which() checks for yt-dlp and ffmpeg - Narrow broad except Exception catches (transcript, OCR, color) - Log OCR errors instead of embedding error strings in output data - Handle subprocess.TimeoutExpired on all subprocess calls - Wrap video processing in try/finally for reliable cleanup - Error on missing easyocr when explicitly requested (no silent fallback) - Fix docstrings: 720p fallback, parallel OCR, chunk duration, deps - Split pytesseract/Pillow imports for clearer missing-dep messages - Add run-transcript to Makefile .PHONY and help target - Fix variable shadowing in round_color (step -> bucket_size) - Handle json.JSONDecodeError from yt-dlp metadata - Format with ruff --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Seth Hobson <wshobson@gmail.com> |
||
|
|
20d4472a3b |
Restructure marketplace for isolated plugin architecture
- Organize 62 plugins into isolated directories under plugins/
- Consolidate tools and workflows into commands/ following Anthropic conventions
- Update marketplace.json with isolated source paths for each plugin
- Revise README to reflect plugin-based structure and token efficiency
- Remove shared resource directories (agents/, tools/, workflows/)
Each plugin now contains only its specific agents and commands, enabling
granular installation and minimal token usage. Installing a single plugin
loads only its resources rather than the entire marketplace.
Structure: plugins/{plugin-name}/{agents/,commands/}
|
||
|
|
786db18b8f |
feat: marketplace v1.1.0 - refactor to 62 focused plugins
Major marketplace refactoring to optimize plugin granularity and improve single-responsibility principle adherence, following Anthropic best practices. Plugin Architecture Changes (36 → 62 plugins) ------------------------------------------------ Split 12 monolithic plugins into focused units: - claude-code-essentials → code-documentation, debugging-toolkit, git-pr-workflows - full-stack-development → backend-development, frontend-mobile-development, full-stack-orchestration - testing-quality-suite → unit-testing, tdd-workflows, code-review-ai - infrastructure-devops → cloud-infrastructure, kubernetes-orchestration, ci-cd-automation - development-utilities → code-refactoring, dependency-management, error-debugging - security-hardening → web-security, mobile-security, devsecops-practices - data-ml-pipeline → data-engineering, machine-learning, mlops-automation - api-development-kit → rest-api-development, graphql-development, api-security Added 6 language-focused plugins for unused agents: - python-development, javascript-typescript, systems-programming - jvm-languages, web-scripting, functional-programming New Tools (6 tools, 2,084 lines) --------------------------------- 1. test-generate.md (302 lines) - Automated unit test generation 2. component-scaffold.md (388 lines) - React/React Native scaffolding 3. xss-scan.md (307 lines) - XSS vulnerability scanner 4. python-scaffold.md (316 lines) - Python project initialization 5. typescript-scaffold.md (346 lines) - TypeScript project setup 6. rust-project.md (425 lines) - Rust project creation Marketplace Cleanup ------------------- - Removed 2 empty plugins (advanced-testing, docker-containerization) - Assigned agents to 4 plugins missing them - Validated all file references (100% valid paths) Results ------- - 62 plugins (was 36) - 72% increase for better granularity - 84 agents (100% now assigned to plugins) - 42 tools (was 36) - 16.7% increase - Average 3.4 components per plugin (follows Anthropic 2-8 pattern) - 100% of plugins have agents (was 94%) - 66% of plugins have tools (was 50%) - Version bumped to 1.1.0 This refactoring optimizes token usage, improves plugin discovery, and makes installation more granular while maintaining the centralized file structure. |
||
|
|
8ddbd604bf |
feat: marketplace v1.0.5 - focused plugins + optimized tools
Major refactoring and optimization release transforming marketplace from bloated to focused, single-purpose plugin architecture following industry best practices. MARKETPLACE RESTRUCTURING (27 → 36 plugins) ============================================ Plugin Splits: - infrastructure-devops (22) → kubernetes-operations, docker-containerization, deployment-orchestration - security-hardening (18) → security-scanning, security-compliance, backend-api-security, frontend-mobile-security - data-ml-pipeline (17) → data-engineering, machine-learning-ops, ai-agent-development - api-development-kit (17) → api-scaffolding, api-testing-observability, data-validation-suite - incident-response (16) → incident-diagnostics, observability-monitoring New Extracted Plugins: - data-validation-suite: Schema validation, data quality (extracted duplicates) - deployment-orchestration: Deployment strategies, rollback (extracted duplicates) Impact: - Average plugin size: 8-10 → 6.2 components (-27%) - Bloated plugins (>15): 5 → 0 (-100%) - Duplication overhead: 45.2% → 12.6% (-72%) - All plugins now follow single-responsibility principle FILE OPTIMIZATION (24,392 lines eliminated) =========================================== Legacy Files Removed (14,698 lines): - security-scan.md (3,468 lines) - replaced by focused security plugins - k8s-manifest.md (2,776 lines) - replaced by kubernetes-operations tools - docker-optimize.md (2,333 lines) - replaced by docker-containerization tools - test-harness.md (2,015 lines) - replaced by testing-quality-suite tools - db-migrate.md (1,891 lines) - replaced by database-operations tools - api-scaffold.md (1,772 lines) - replaced by api-scaffolding tools - data-validation.md (1,673 lines) - replaced by data-validation-suite - deploy-checklist.md (1,630 lines) - replaced by deployment-orchestration tools High-Priority Files Optimized (9,694 lines saved, 62% avg reduction): - security-sast.md: 1,216 → 473 lines (61% reduction, 82→19 code blocks) - prompt-optimize.md: 1,206 → 587 lines (51% reduction) - doc-generate.md: 1,071 → 652 lines (39% reduction) - ai-review.md: 1,597 → 428 lines (73% reduction) - config-validate.md: 1,592 → 481 lines (70% reduction) - security-dependencies.md: 1,795 → 522 lines (71% reduction) - migration-observability.md: 1,858 → 408 lines (78% reduction) - sql-migrations.md: 1,600 → 492 lines (69% reduction) - accessibility-audit.md: 1,229 → 483 lines (61% reduction) - monitor-setup.md: 1,250 → 501 lines (60% reduction) Optimization techniques: - Removed redundant examples (kept 1-2 best vs 5-8) - Consolidated similar code blocks - Eliminated verbose prose and documentation - Streamlined framework-specific examples - Removed duplicate patterns PERFORMANCE IMPROVEMENTS ======================== Context & Loading: - Average tool size: 954 → 626 lines (58% reduction) - Loading time improvement: 2-3x faster - Better LLM context window utilization - Lower token costs (58% less content to process) Quality Metrics: - Component references validated: 223 (0 broken) - Tool duplication: 12.6% (minimal, intentional) - Naming compliance: 100% (kebab-case standard) - Component coverage: 90.5% tools, 82.1% agents - Functional regressions: 0 (zero breaking changes) ARCHITECTURE PRINCIPLES ======================= Single Responsibility: - Each plugin does one thing well (Unix philosophy) - Clear, focused purposes (describable in 5-7 words) - Zero bloated plugins (all under 12 components) Industry Best Practices: - VSCode extension patterns (focused, composable) - npm package model (single-purpose modules) - Chrome extension policy (narrow focus) - Microservices decomposition (by subdomain) Design Philosophy: - Composability over bundling (mix and match) - Context efficiency (smaller = faster) - High cohesion, low coupling (related together, independent modules) - Clear discoverability (descriptive names) BREAKING CHANGES ================ Plugin names changed (old → new): - infrastructure-devops → kubernetes-operations, docker-containerization, deployment-orchestration - security-hardening → security-scanning, security-compliance, backend-api-security, frontend-mobile-security - data-ml-pipeline → data-engineering, machine-learning-ops, ai-agent-development - api-development-kit → api-scaffolding, api-testing-observability - incident-response → incident-diagnostics, observability-monitoring Users must update plugin references if using explicit plugin names. Default marketplace discovery requires no changes. SUMMARY ======= Total Impact: - 36 focused, single-purpose plugins (from 27, +33%) - 24,392 lines eliminated (58% reduction in problematic files) - 18 files removed/optimized - 0 functionality lost - 0 broken references - Production ready Files changed: - Modified: marketplace.json (v1.0.5), README.md, 10 optimized tools - Deleted: 8 legacy monolithic files - Net: +2,273 insertions, -28,875 deletions (-26,602 lines total) Version: 1.0.5 Status: Production ready, fully validated, zero regressions |
||
|
|
bd145d26e2 |
refactor: streamline 5 tool files from verbose to concise format
Significantly reduced verbosity while retaining core capabilities: - data-pipeline.md: 2311 → 186 lines - langchain-agent.md: reduced extensive examples - smart-debug.md: condensed to essential directives - tdd-red.md: streamlined TDD workflow - tdd-refactor.md: simplified refactoring guidance Each file now focuses on: - Core capabilities summary - Concise step-by-step instructions - Key implementation patterns - Essential best practices Removed: - Extensive code examples - Verbose explanations - Redundant implementation details |
||
|
|
a58a9addd9 |
feat: comprehensive upgrade of 32 tools and workflows
Major quality improvements across all tools and workflows: - Expanded from 1,952 to 23,686 lines (12.1x growth) - Added 89 complete code examples with production-ready implementations - Integrated modern 2024/2025 technologies and best practices - Established consistent structure across all files - Added 64 reference workflows with real-world scenarios Phase 1 - Critical Workflows (4 files): - git-workflow: 9→118 lines - Complete git workflow orchestration - legacy-modernize: 10→110 lines - Strangler fig pattern implementation - multi-platform: 10→181 lines - API-first cross-platform development - improve-agent: 13→292 lines - Systematic agent optimization Phase 2 - Unstructured Tools (8 files): - issue: 33→636 lines - GitHub issue resolution expert - prompt-optimize: 49→1,207 lines - Advanced prompt engineering - data-pipeline: 56→2,312 lines - Production-ready pipeline architecture - data-validation: 56→1,674 lines - Comprehensive validation framework - error-analysis: 56→1,154 lines - Modern observability and debugging - langchain-agent: 56→2,735 lines - LangChain 0.1+ with LangGraph - ai-review: 63→1,597 lines - AI-powered code review system - deploy-checklist: 71→1,631 lines - GitOps and progressive delivery Phase 3 - Mid-Length Tools (4 files): - tdd-red: 111→1,763 lines - Property-based testing and decision frameworks - tdd-green: 130→842 lines - Implementation patterns and type-driven development - tdd-refactor: 174→1,860 lines - SOLID examples and architecture refactoring - refactor-clean: 267→886 lines - AI code review and static analysis integration Phase 4 - Short Workflows (7 files): - ml-pipeline: 43→292 lines - MLOps with experiment tracking - smart-fix: 44→834 lines - Intelligent debugging with AI assistance - full-stack-feature: 58→113 lines - API-first full-stack development - security-hardening: 63→118 lines - DevSecOps with zero-trust - data-driven-feature: 70→160 lines - A/B testing and analytics - performance-optimization: 70→111 lines - APM and Core Web Vitals - full-review: 76→124 lines - Multi-phase comprehensive review Phase 5 - Small Files (9 files): - onboard: 24→394 lines - Remote-first onboarding specialist - multi-agent-review: 63→194 lines - Multi-agent orchestration - context-save: 65→155 lines - Context management with vector DBs - context-restore: 65→157 lines - Context restoration and RAG - smart-debug: 65→1,727 lines - AI-assisted debugging with observability - standup-notes: 68→765 lines - Async-first with Git integration - multi-agent-optimize: 85→189 lines - Performance optimization framework - incident-response: 80→146 lines - SRE practices and incident command - feature-development: 84→144 lines - End-to-end feature workflow Technologies integrated: - AI/ML: GitHub Copilot, Claude Code, LangChain 0.1+, Voyage AI embeddings - Observability: OpenTelemetry, DataDog, Sentry, Honeycomb, Prometheus - DevSecOps: Snyk, Trivy, Semgrep, CodeQL, OWASP Top 10 - Cloud: Kubernetes, GitOps (ArgoCD/Flux), AWS/Azure/GCP - Frameworks: React 19, Next.js 15, FastAPI, Django 5, Pydantic v2 - Data: Apache Spark, Airflow, Delta Lake, Great Expectations All files now include: - Clear role statements and expertise definitions - Structured Context/Requirements sections - 6-8 major instruction sections (tools) or 3-4 phases (workflows) - Multiple complete code examples in various languages - Modern framework integrations - Real-world reference implementations |
||
|
|
18f7f6a0b9 | Upgrade context-restore.md with advanced context restoration strategies and modern 2024/2025 patterns | ||
|
|
fa0fb68008 |
fix: clarify instructions vs examples in doc-generate tool
Restructure doc-generate.md to clearly distinguish between: - Concise, directive instructions (what to create) - Detailed reference examples (how to create it) Changes: - Add "How to Use This Tool" section explaining structure - Rewrite Instructions section to be concise and directive (75 lines) - Rename and relabel all examples with clear "Example N:" format - Add purpose statements and "Implementation Example:" labels - Keep all existing reference code intact Addresses user feedback in issue #87 about ambiguity between instructions and examples that could confuse LLMs and humans. Closes #87 |
||
|
|
3802bca865 |
Refine plugin marketplace for launch readiness
Plugin Scope Improvements: - Remove language-specialists plugin (not task-focused) - Split specialized-domains into 5 focused plugins: * blockchain-web3 - Smart contract development only * quantitative-trading - Financial modeling and trading only * payment-processing - Payment gateway integration only * game-development - Unity and Minecraft only * accessibility-compliance - WCAG auditing only - Split business-operations into 3 focused plugins: * business-analytics - Metrics and reporting only * hr-legal-compliance - HR and legal docs only * customer-sales-automation - Support and sales workflows only - Fix infrastructure-devops scope: * Remove database concerns (db-migrate, database-admin) * Remove observability concerns (observability-engineer) * Move slo-implement to incident-response * Focus purely on container orchestration (K8s, Docker, Terraform) - Fix customer-sales-automation scope: * Remove content-marketer (unrelated to customer/sales workflows) Marketplace Statistics: - Total plugins: 27 (was 22) - Tool coverage: 100% (42/42 tools referenced) - Fat plugins removed: 3 (language-specialists, specialized-domains, business-operations) - All plugins now have clear, focused tasks Model Migration: - Migrate all 42 tools from claude-sonnet-4-0/opus-4-1 to model: sonnet - Migrate all 15 workflows from claude-opus-4-1 to model: sonnet - Use short model syntax consistent with agent files Documentation Updates: - Update README.md with refined plugin structure - Update plugin descriptions to be task-focused - Remove anthropomorphic and marketing language - Improve category organization (now 16 distinct categories) Ready for October 9, 2025 @ 9am PST launch |
||
|
|
ce7a5938c1 |
Consolidate workflows and tools from commands repository
Repository Restructure: - Move all 83 agent .md files to agents/ subdirectory - Add 15 workflow orchestrators from commands repo to workflows/ - Add 42 development tools from commands repo to tools/ - Update README for unified repository structure This prepares the repository for unified plugin marketplace integration. The commands repository functionality is now fully integrated, providing complete workflow orchestration and development tooling alongside agents. Directory Structure: - agents/ - 83 specialized AI agents - workflows/ - 15 multi-agent orchestration commands - tools/ - 42 focused development utilities No breaking changes to agent functionality - all agents remain accessible with same names and behavior. Adds workflow and tool commands for enhanced multi-agent coordination capabilities. |