455 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 75ebf8c644 Merge pull request #567 from yanghaod2278827/improve-skill-descriptions
docs: improve skill description for better trigger accuracy
2026-06-12 08:57:54 +09:00
Seth Hobson 067f1bfc49 Merge pull request #573 from wshobson/dependabot/uv/plugins/plugin-eval/python-minor-and-patch-d1a69d7ee8
deps(plugin-eval): bump the python-minor-and-patch group in /plugins/plugin-eval with 5 updates
2026-06-12 08:51:19 +09:00
dependabot[bot] 9ec9d4debf deps(plugin-eval): bump the python-minor-and-patch group
Bumps the python-minor-and-patch group in /plugins/plugin-eval with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [typer](https://github.com/fastapi/typer) | `0.26.4` | `0.26.7` |
| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.2.87` | `0.2.93` |
| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.105.2` | `0.107.1` |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.15` | `0.15.16` |
| [ty](https://github.com/astral-sh/ty) | `0.0.40` | `0.0.44` |


Updates `typer` from 0.26.4 to 0.26.7
- [Release notes](https://github.com/fastapi/typer/releases)
- [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md)
- [Commits](https://github.com/fastapi/typer/compare/0.26.4...0.26.7)

Updates `claude-agent-sdk` from 0.2.87 to 0.2.93
- [Release notes](https://github.com/anthropics/claude-agent-sdk-python/releases)
- [Changelog](https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/anthropics/claude-agent-sdk-python/compare/v0.2.87...v0.2.93)

Updates `anthropic` from 0.105.2 to 0.107.1
- [Release notes](https://github.com/anthropics/anthropic-sdk-python/releases)
- [Changelog](https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/anthropics/anthropic-sdk-python/compare/v0.105.2...v0.107.1)

Updates `ruff` from 0.15.15 to 0.15.16
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.15.15...0.15.16)

Updates `ty` from 0.0.40 to 0.0.44
- [Release notes](https://github.com/astral-sh/ty/releases)
- [Changelog](https://github.com/astral-sh/ty/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ty/compare/0.0.40...0.0.44)

---
updated-dependencies:
- dependency-name: typer
  dependency-version: 0.26.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
- dependency-name: claude-agent-sdk
  dependency-version: 0.2.93
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
- dependency-name: anthropic
  dependency-version: 0.107.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-minor-and-patch
- dependency-name: ruff
  dependency-version: 0.15.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
- dependency-name: ty
  dependency-version: 0.0.44
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-08 01:08:32 +00:00
Seth Hobson cf6059d030 Merge pull request #569 from wshobson/dependabot/uv/plugins/plugin-eval/starlette-1.0.1 2026-06-05 17:23:01 +09:00
dependabot[bot] 79c76adbfc deps(plugin-eval): bump starlette in /plugins/plugin-eval
Bumps [starlette](https://github.com/Kludex/starlette) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/Kludex/starlette/releases)
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/starlette/compare/1.0.0...1.0.1)

---
updated-dependencies:
- dependency-name: starlette
  dependency-version: 1.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 17:30:41 +00:00
yanghaod2278827 3ce0342afd docs: improve skill description for better trigger accuracy 2026-06-03 11:33:57 +08:00
Seth Hobson 767d969a73 docs: sync plugin/agent/skill counts to 84/192/156 after social-publishing merge
PR #558 updated the headline totals but left trailing references at
83/191/155 across README, AGENTS.md, GEMINI.md, ARCHITECTURE.md, and
docs/*. Sync them all to the true counts (82 local + 2 external = 84
plugins, 192 agents, 156 skills).

Also runs make generate-all to bring the committed harness registries in
sync — adds the social-publishing entries to .agents/ and .cursor-plugin/
(which the original PR could not regenerate) and fixes the stale count in
the generated cursor manifests.

Left round-trip-results.md (point-in-time CLI verification results) and
plugin-eval.md (grade threshold) unchanged.
2026-06-02 19:15:30 -04:00
Seth Hobson 207b9a0f99 Merge pull request #558 from ndesv21/add-social-publishing
feat: add social-publishing plugin via SocialClaw
2026-06-03 08:10:00 +09:00
Seth Hobson 392a36e11c Merge pull request #566 from wshobson/dependabot/uv/plugins/plugin-eval/python-minor-and-patch-00ad2389e7
deps(plugin-eval): bump the python-minor-and-patch group in /plugins/plugin-eval with 3 updates
2026-06-03 07:31:32 +09:00
dependabot[bot] 63f1c99292 deps(plugin-eval): bump the python-minor-and-patch group
Bumps the python-minor-and-patch group in /plugins/plugin-eval with 3 updates: [typer](https://github.com/fastapi/typer), [anthropic](https://github.com/anthropics/anthropic-sdk-python) and [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `typer` from 0.25.1 to 0.26.4
- [Release notes](https://github.com/fastapi/typer/releases)
- [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md)
- [Commits](https://github.com/fastapi/typer/compare/0.25.1...0.26.4)

Updates `anthropic` from 0.104.1 to 0.105.2
- [Release notes](https://github.com/anthropics/anthropic-sdk-python/releases)
- [Changelog](https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/anthropics/anthropic-sdk-python/compare/v0.104.1...v0.105.2)

Updates `pytest-asyncio` from 1.3.0 to 1.4.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0)

---
updated-dependencies:
- dependency-name: typer
  dependency-version: 0.26.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-minor-and-patch
- dependency-name: anthropic
  dependency-version: 0.105.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-minor-and-patch
- dependency-name: pytest-asyncio
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-01 02:18:07 +00:00
Seth Hobson 0818067b4e Merge pull request #563 from wshobson/feat/native-harness-plugin-install
feat: native plugin-install for Codex/Cursor/Gemini + CLAUDE.md→AGENTS.md symlink
2026-05-29 15:11:57 -04: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
ndesv21 153d3d2f99 Merge upstream/main — keep updated plugin counts, add GitHub Copilot to harnesses
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 20:53:20 +02:00
Seth Hobson 05231aa639 Merge pull request #550 from mhenke/feature/copilot-clean
feat: Copilot harness — repo-local .copilot/ output with install/uninstall workflow
2026-05-26 11:30:34 -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 58ffa3a350 revert: undo collateral ruff fixes in unrelated files 2026-05-26 09:48:37 -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 608568c539 docs: fix Copilot documentation gaps — Pensyve table, AGENTS.md commands mention, round-trip results 2026-05-26 09:04:48 -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 f64b705452 docs: fix 3 Copilot documentation audit findings
- docs/harnesses.md: remove dead reference to nonexistent make docs target
- ARCHITECTURE.md: add missing copilot.py row to adapter framework table
- AGENTS.md, README.md, docs/harnesses.md: add .copilot/commands/ to
  Copilot's generated output paths (emitted as legacy backward compat)
2026-05-26 09:04:44 -05:00
GitHub Copilot 81a67f48a6 chore: remove tracked .omo session artifact 2026-05-26 09:04:37 -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 d7628dad1c docs: fix stale Copilot paths and harness count references 2026-05-26 09:04:32 -05:00
GitHub Copilot 5f31d42eba docs: correct harness count from six to 5 generated in AGENTS.md and README.md 2026-05-26 09:02:18 -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 269a64af36 chore: gitignore .agent.md files in agents/ to prevent pollution 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 4a02b0c95e chore: add .github/agents/ and .github/skills/ to gitignore 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
ndesv21 56ba12c138 fix: update agent and skill counts in marketplace metadata
Added 1 agent (social-publisher) and 1 skill (social-publishing),
so counts go from 191→192 agents and 155→156 skills.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 10:27:02 +02:00