46 Commits

Author SHA1 Message Date
Seth Hobson 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.
2026-06-12 10:55:38 +09:00
Seth Hobson 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.
2026-05-29 13:22:17 -04:00
Seth Hobson 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.
2026-05-29 13:18:48 -04:00
Seth Hobson 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.
2026-05-29 13:02:40 -04:00
GitHub Copilot 6396498ed4 fix: ruff format for plugin-eval config (double quotes, 100 line-length) 2026-05-26 09:53:03 -05:00
GitHub Copilot 9e14e351d7 fix: import sorting for plugin-eval ruff config (I rule) 2026-05-26 09:47:29 -05:00
GitHub Copilot 4a3685ed6b fix: ruff formatting and type fixes for CI quality gates 2026-05-26 09:28:57 -05:00
GitHub Copilot 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
2026-05-26 09:04:44 -05:00
GitHub Copilot eb22976da8 review: address code-audit findings — .omo/ artifact, docs drift, YAML quoting, validator helper 2026-05-26 09:04:37 -05:00
GitHub Copilot 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
2026-05-26 09:04:37 -05:00
GitHub Copilot 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.
2026-05-26 09:04:37 -05:00
GitHub Copilot 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>
2026-05-26 09:04:35 -05:00
GitHub Copilot 9a178cb044 copilot: ensure command frontmatter has description (synthesize from H1 when missing)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 09:04:32 -05:00
GitHub Copilot 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>
2026-05-26 09:04:32 -05:00
GitHub Copilot 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)
2026-05-26 09:02:12 -05:00
GitHub Copilot 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
2026-05-26 09:02:12 -05:00
GitHub Copilot 1db71ee658 fix: copilot adapter output path respects output_root with .github/ prefix 2026-05-26 09:02:12 -05:00
GitHub Copilot 36eb3fa527 style: ruff format copilot.py 2026-05-26 09:02:12 -05:00
GitHub Copilot aa01539acf docs: add missing docstrings to CopilotAdapter class and methods 2026-05-26 09:02:12 -05:00
GitHub Copilot 3afefa2a31 fix: update copilot prune paths and _HARNESS_TARGETS; fix table separator 2026-05-26 09:02:09 -05:00
GitHub Copilot b88ab1e5b1 fix: move import re above stdlib imports to satisfy ruff 2026-05-26 09:02:02 -05:00
GitHub Copilot c5bd699089 feat: add Copilot harness adapter and fix test tooling 2026-05-26 09:01:48 -05:00
GitHub Copilot 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 091c218541.
2026-05-26 09:01:23 -05:00
GitHub Copilot 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. 2026-05-26 09:01:23 -05:00
GitHub Copilot 39b33c67b4 docs: add validator docstring for validate_copilot (addresses PR comment)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> 2026-05-26 09:01:22 -05:00
GitHub Copilot bd5c049b61 test: skip codex doctor in non-interactive envs; validator scoped to .copilot 2026-05-26 09:01:22 -05:00
GitHub 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>
2026-05-26 09:01:22 -05:00
GitHub Copilot 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>
2026-05-26 09:01:22 -05:00
Seth Hobson 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
2026-05-24 21:00:54 -04:00
Seth Hobson 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
2026-05-24 19:55:35 -04:00
Seth Hobson 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.
2026-05-22 12:20:56 -04:00
Seth Hobson 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.
2026-05-22 11:22:17 -04:00
Seth Hobson 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.
2026-05-22 11:16:39 -04:00
Seth Hobson 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
2026-05-22 08:18:21 -04:00
Seth Hobson 08ded5e7b0 fix: agent teams coordination guardrails (#535)
* fix agent teams coordination guardrails

* address agent teams review feedback
2026-05-16 20:46:39 -04:00
Mike Henke 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 c15b108 has zero Gemini files
   - Changed to: 'Status: IN REVIEW' + noted 'Merged to main: NO'

These fixes ensure architecture docs match implementation reality.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: add ADR and plan for Gemini CLI integration

* feat: add Stitch MCP server integration

- Configure Stitch MCP via HTTP endpoint (https://stitch.googleapis.com/mcp)
- Follows pattern from VSCode MCP config and factory template
- Enables AI-powered UI/UX design capabilities via Google Stitch
- MCP server type: http with standard Accept header

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: remove working notes and design process artifacts from repo

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: remove invented top-level TOML commands with no Claude Code equivalent

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: implement sync engine and protocol orchestrator for Gemini CLI

Upgraded the Gemini CLI integration to address maintenance and functional gaps identified during review.

Key Improvements:
- Protocol Orchestrator: Slash commands now treat Markdown files as executable protocols, achieving functional parity with Claude Code's interactive checkpoints and multi-step workflows.
- Sync Engine: Replaced the simple generator with a robust Python utility in tools/ that handles validation, pruning of stale TOMLs, and cross-platform path resolution.
- Local-Opt-In Workflow: Users can now selectively generate slash commands for specific plugins via the Makefile, eliminating repository drift.
- Fail-Safe Build Tools: Updated the Makefile with robust cleanup and sync targets.
- Documentation: Comprehensive updates to GEMINI.md and README.md, including a Windows compatibility guide (Git Bash/WSL).

PR Cleanup:
- Removed all 97+ derived TOML files and duplicates.
- Deleted all design process working notes and internal plans.

Strategic Note:
This PR provides the technical foundation for Gemini CLI support but defers to the maintainer on the directional decision of officially supporting multiple harnesses. All Gemini-specific features are designed to be lightweight and opt-in, preserving the core identity of the repository as a Claude Code marketplace.

* fix(gemini-tool-mapping): close unclosed code fence in skill migration template

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: address PR review feedback and consolidate Gemini CLI documentation

- Consolidated installation into a unified Quick Start section for Claude Code and Gemini CLI.
- Removed unused YouTube Design Extractor tool and associated Makefile targets.
- Corrected and synchronized plugin/agent/skill counts (81/185/153) across all documentation.
- Streamlined Gemini Skill Discovery Guide and removed redundant tool mapping reference.
- Hardened Makefile security by adding proper shell quoting to PLUGIN variable.
- Added Gemini CLI-specific uninstall and sync-commands examples.

* chore: remove .mcp.json and update plugin/agent counts

- Remove .mcp.json (personal MCP config, not for repo)
- Update CLAUDE.md and README.md counts to reflect current branch state

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: finalize gemini-cli integration and sync plugin counts

- Restore original YouTube Design Extractor functionality in Makefile
- Add Gemini CLI extension targets to unified Makefile
- Restore standalone YouTube tool files (yt-design-extractor.py, requirements.txt)
- Sync all documentation (README, CLAUDE, GEMINI, docs/*) to 81-plugin state
- Align marketplace.json metadata description with 81-plugin reality
- Resolve all PR review threads and merge conflicts with main

* docs: revert out-of-scope documentation count synchronization

Reverts global plugin/agent/skill count updates across existing reference docs
(CLAUDE.md, README.md, docs/*) to match origin/main state. Gemini CLI
documentation remains focused on the integration itself.

* fix: restore plugin/agent counts in CLAUDE.md to match upstream

Counts were incorrectly lowered in a previous commit. Using upstream values
pending doc sync resolution in #517.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: revert marketplace.json drift, restore Makefile Options help block

- Revert .claude-plugin/marketplace.json to upstream (description text was drifted)
- Restore Options block (URL/INTERVAL/OUTPUT/ENGINE) in Makefile help target

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: restore upstream README.md content removed by drift

- Fix plugin count in Key Features: 81 → 80 (upstream value)
- Fix architecture diagram comment: 77 → 81 plugins (80 local + 1 external)
- Restore Troubleshooting section dropped in prior session

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* remove: docs/gemini-plugin-guide.md (not useful)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(gemini): update broken links after doc removal

* docs: add update, clean-commands, and uninstall workflows to Gemini CLI section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: correct stale plugin/skill counts in gemini-extension.json and GEMINI.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Revert "fix: correct stale plugin/skill counts in gemini-extension.json and GEMINI.md"

This reverts commit 5a4a06d49f.

* security: harden build tools and fix cross-platform paths

- Makefile: apply strict shell quoting to prevent command injection
- tools/generate_gemini_commands.py: rewrite using pathlib for Windows/Linux parity
- tools/generate_gemini_commands.py: add path validation to prevent traversal in pruning
- tools/generate_gemini_commands.py: add docstrings for maintainability
- GEMINI.md: fix numbering sequence in setup instructions

* docs(GEMINI): add Safety and System Integrity section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(readme): restore full Claude Code quick start into collapsible section

Original Step 1/Step 2 instructions were stripped to two lines. Restores
the complete content (plugin examples, explanatory text) inside the
recommended collapsible — no instructions removed, just reorganized.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(readme): restore Claude Code intro, add Gemini CLI section, clarify scope

- Reverts all Gemini CLI parenthetical notes injected into Claude Code bullets
- Restores original wording (100 Commands, Install only what you need, etc.)
- Adds dedicated ## Gemini CLI section after Overview with its own feature list
- Retitles 'Plugins vs Agents' to clarify it is Claude Code only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(readme): use markdown bold in summary tags instead of <b>

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Revert "docs(readme): use markdown bold in summary tags instead of <b>"

This reverts commit 19b879760f.

* docs(GEMINI): reduce context bloat, remove duplicate sections

- Removed duplicate Slash Commands, How to Use Skills, and Common Skill
  Categories sections (all repeated Navigation content)
- Replaced full Skill Library listing with a link to docs/plugins.md
- Removed stale metadata block and incorrect "already installed" claim
- 167 lines → 55: leaner per-prompt context overhead

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: correct extension directory path from 'agents' to 'claude-code-workflows'

Extension installs as claude-code-workflows, not agents. All cd paths
and TOML cleanup references in README and GEMINI.md were pointing to a
directory that does not exist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(readme): keep README Claude Code-first, badge links to GEMINI.md

- Remove ## Gemini CLI section and Gemini CLI Quick Start collapsible
- Unwrap Claude Code Quick Start from collapsible (back to original format)
- Restore 'Plugins vs Agents' heading (no Claude Code only qualifier needed)
- Add Gemini CLI badge next to Smithery badge pointing to GEMINI.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(readme): add GitHub NOTE callout for Gemini CLI users

Badge alone is easy to miss. The [!NOTE] callout renders visually
distinct on GitHub and gives Gemini users enough context to find
GEMINI.md without disrupting Claude Code content.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: sync counts to upstream and correct skill activation wording

- gemini-extension.json: 79 plugins/150+ skills → 80/153 (matches upstream)
- GEMINI.md: skills don't auto-activate silently; Gemini CLI asks first
- README callout: 'auto-discovered' → 'discoverable on-demand' (accurate)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(readme): add Gemini CLI entry to What's New section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(readme): match What's New link style for Gemini CLI entry

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(gemini): update comparison table for accuracy

* docs(gemini): correct command example prefix

* feat(gemini): improve sync engine to respect opt-in principle

- tools/generate_gemini_commands.py: only sync existing plugins by default (Smart Sync)
- tools/generate_gemini_commands.py: add --all flag for explicit full generation
- Makefile: update generate-all-commands to use --all
- Makefile: improve clean-commands to remove directories

* docs(gemini): audit and update GEMINI.md with high-fidelity counts and library summary

- Verified 80 plugins, 153 skills, 185 agents, and 100 commands against actual codebase.
- Re-added audited Skill Library summary for improved discovery.
- Corrected Plugin Catalog link and verified all technical examples.
- Reinforced Safety and System Integrity section.

* fix(GEMINI): replace colon-namespace syntax with flat Gemini slash command names

Gemini CLI does not support the /plugin:command namespace syntax used by
Claude Code. Updated Protocol Orchestrator example and Slash Commands
section to use flat /command-name format.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* revert: restore colon namespace syntax in GEMINI.md slash command examples

Gemini CLI derives command names from file paths — subdirectory separators
become colons, so commands/tdd-workflows/tdd-cycle.toml → /tdd-workflows:tdd-cycle.
The colon syntax is correct and matches the Claude Code namespace pattern.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: GitHub Copilot <noreply@github.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-09 09:18:10 -04:00
bentheautomator 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>
2026-02-06 20:06:56 -05:00
Seth Hobson 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/}
2025-10-13 10:19:10 -04:00
Seth Hobson 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.
2025-10-12 19:30:18 -04:00
Seth Hobson 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
2025-10-12 16:39:53 -04:00
Seth Hobson 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
2025-10-11 20:58:29 -04:00
Seth Hobson 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
2025-10-11 15:33:18 -04:00
Seth Hobson 18f7f6a0b9 Upgrade context-restore.md with advanced context restoration strategies and modern 2024/2025 patterns 2025-10-11 15:16:51 -04:00
Seth Hobson 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
2025-10-11 13:39:24 -04:00
Seth Hobson 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
2025-10-08 20:54:29 -04:00
Seth Hobson 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.
2025-10-08 08:25:17 -04:00