提交

530 次代码提交

作者 SHA1 备注 提交日期
Vishnu J c4b82b0ad7 fix(codex): fall back to plugin name when description is empty (#617) (#626)
Code Quality / Python (ruff + ty) (push) Has been cancelled
Code Quality / Markdown (markdownlint-cli2) (push) Has been cancelled
Code Quality / JSON / TOML / YAML syntax (push) Has been cancelled
Validate / Validate JSON files (push) Has been cancelled
Validate / plugin-eval pytest (push) Has been cancelled
Validate / tools pytest (adapters + validators + gardener) (push) Has been cancelled
Validate / Cross-harness generation + validation (push) Has been cancelled
Validate / Real-CLI smoke test (OpenCode + Gemini) (push) Has been cancelled
* fix(codex): fall back to plugin name when description is empty (#617)

npx codex-marketplace add wshobson/agents --plugins fails with
"String must contain at least 1 character(s)" at path ["description"]
because codex-marketplace's installer parses each plugin's
plugins/<name>/.codex-plugin/plugin.json with a zod schema requiring
description: z.string().min(1) (pluginManifestSchema in the installer's
dist/schema.js). _codex_plugin_manifest() previously wrote
"description": plugin.description or "" — plugin-eval's own
.claude-plugin/plugin.json has no description field, so its generated
Codex manifest shipped an empty string and failed that check for every
--plugins install of this repo.

Fix: use the same plugin.description or plugin.name fallback already
used two lines below for the interface.shortDescription field. Also
add a top-level description to each .agents/plugins/marketplace.json
entry as forward-compatible metadata, since the installer's currently
published marketplacePluginSchema doesn't declare or require it there
(unknown keys are silently stripped by zod's default .parse()) — that
alone does not fix the crash, which lives in the per-plugin manifest.

Regenerated the committed Codex artifacts via make generate-all; only
plugin-eval's .codex-plugin/plugin.json needed the description fix,
confirming it's the only plugin missing an upstream description. Added
a regression test for the plugin.name fallback in
_codex_plugin_manifest(), alongside the existing marketplace-entry
description test.

Reported by jkroepke.

* test(codex): cover marketplace description fallback to plugin name

CodeRabbit: synthetic_plugin already has a description, so the
_codex_marketplace name fallback was untested. Add a no-desc plugin
and assert description == name.

* chore: regenerate .agents marketplace after main merge

plugin-eval now carries its real description (#630) instead of the name
fallback, and the pptx-deck-creation entry (#625) gains the description
field this PR's generator emits for every marketplace entry.

---------

Co-authored-by: Seth Hobson <wshobson@gmail.com>
2026-07-18 17:25:19 -04:00
kimtth 73d2f99cd4 feat: add pptx-deck-creation plugin (#625)
* fix: read validation artifacts as UTF-8

* Add pptx-deck-creation plugin

* fix: resolve CodeRabbit quality issues

* fix: consolidate ooxml skill into reference-deck-analysis

* fix: resolve CodeRabbit quality issues
2026-07-18 17:00:10 -04:00
Rahul Kuchhadia b040c3cbd0 fix(plugin-eval): add missing plugin description (#630)
Fixes #617
2026-07-18 16:59:59 -04:00
dependabot[bot] 796d43a64a deps(plugin-eval): bump mcp in /plugins/plugin-eval (#628)
Bumps [mcp](https://github.com/modelcontextprotocol/python-sdk) from 1.26.0 to 1.28.1.
- [Release notes](https://github.com/modelcontextprotocol/python-sdk/releases)
- [Changelog](https://github.com/modelcontextprotocol/python-sdk/blob/main/RELEASE.md)
- [Commits](https://github.com/modelcontextprotocol/python-sdk/compare/v1.26.0...v1.28.1)

---
updated-dependencies:
- dependency-name: mcp
  dependency-version: 1.28.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-18 16:56:16 -04:00
dependabot[bot] ff4d02cac2 deps(plugin-eval): bump the python-minor-and-patch group (#620)
Bumps the python-minor-and-patch group in /plugins/plugin-eval with 4 updates: [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python), [anthropic](https://github.com/anthropics/anthropic-sdk-python), [ruff](https://github.com/astral-sh/ruff) and [ty](https://github.com/astral-sh/ty).


Updates `claude-agent-sdk` from 0.2.110 to 0.2.116
- [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.110...v0.2.116)

Updates `anthropic` from 0.112.0 to 0.116.0
- [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.112.0...v0.116.0)

Updates `ruff` from 0.15.20 to 0.15.21
- [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.20...0.15.21)

Updates `ty` from 0.0.55 to 0.0.59
- [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.55...0.0.59)

---
updated-dependencies:
- dependency-name: claude-agent-sdk
  dependency-version: 0.2.116
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
- dependency-name: anthropic
  dependency-version: 0.116.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-minor-and-patch
- dependency-name: ruff
  dependency-version: 0.15.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
- dependency-name: ty
  dependency-version: 0.0.59
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-18 16:55:02 -04:00
dependabot[bot] ddf29f7201 deps(yt-design-extractor): bump the python-minor-and-patch group (#619)
Bumps the python-minor-and-patch group in /tools/yt-design-extractor with 2 updates: [torch](https://github.com/pytorch/pytorch) and [torchvision](https://github.com/pytorch/vision).


Updates `torch` from 2.12.1 to 2.13.0
- [Release notes](https://github.com/pytorch/pytorch/releases)
- [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md)
- [Commits](https://github.com/pytorch/pytorch/compare/v2.12.1...v2.13.0)

Updates `torchvision` from 0.27.1 to 0.28.0
- [Release notes](https://github.com/pytorch/vision/releases)
- [Commits](https://github.com/pytorch/vision/compare/v0.27.1...v0.28.0)

---
updated-dependencies:
- dependency-name: torch
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-minor-and-patch
- dependency-name: torchvision
  dependency-version: 0.28.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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Seth Hobson <wshobson@gmail.com>
2026-07-18 16:54:37 -04:00
Seth Hobson b6af371105 docs: catalog llm-finetuning + dgx-spark-ops skills/commands, fix dgx-spark-ops description
- agent-skills.md: add LLM Fine-Tuning (10 skills) and DGX Spark Ops (3 skills) sections
- usage.md: add /llm-finetuning:finetune, /llm-finetuning:promote-checkpoint, /dgx-spark-ops:spark-preflight to command reference
- plugins.md: correct dgx-spark-ops description (NVIDIA GB10 workstation ops, not Apache Spark cluster)
2026-07-14 13:36:44 -04:00
Seth Hobson baa5bd7997 feat: add llm-finetuning and dgx-spark-ops plugins (eval-gated fine-tuning lifecycle) (#624)
* feat(dgx-spark-ops): scaffold plugin and register in marketplace

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(dgx-spark-ops): add spark-environment-setup skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(dgx-spark-ops): tighten spark-environment-setup per review

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(dgx-spark-ops): add spark-training-gotchas skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(dgx-spark-ops): align preflight.sh output contract with docs

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(dgx-spark-ops): add spark-memory-thermal-ops skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(dgx-spark-ops): trim spark-memory-thermal-ops and source 68GB anchor

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(dgx-spark-ops): add dgx-spark-ops-engineer agent

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(dgx-spark-ops): defer agent facts to skills

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(dgx-spark-ops): add /spark-preflight command

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): scaffold plugin and register in marketplace

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add finetuning-method-selection skill with dated model catalog

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add lora-qlora-recipes skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add preference-optimization skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add grpo-rlvr-training skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(llm-finetuning): add isolation warning to execution reward

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add vision-sft skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add dataset-curation skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(llm-finetuning): correct loss-masking example in dataset-curation

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add eval-harness-first skill (Phase 0 gate)

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(llm-finetuning): bring eval-harness-first into line band

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(llm-finetuning): reclaim byte headroom in eval-harness-first

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add trace-to-training-data skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add checkpoint-promotion skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add quantized-export skill

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add llm-finetuning-architect agent

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add llm-finetuning-training-engineer agent

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add llm-finetuning-eval-engineer agent

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add /finetune phase-gated lifecycle command

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(llm-finetuning): thread checkpoint path into /finetune Phase 6

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* feat(llm-finetuning): add /promote-checkpoint command

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(llm-finetuning): thread checkpoint path via phase5.output in /promote-checkpoint

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix(llm-finetuning): robust checkpoint discovery and goldens fingerprint in re-gate

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* docs: register llm-finetuning and dgx-spark-ops (94 plugins, 203 agents, 175 skills, 109 commands)

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* docs(agents): add fine-tuning and spark-ops agent entries (203 agents)

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* chore: generate per-harness artifacts for llm-finetuning and dgx-spark-ops

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix: final-review cleanups for fine-tuning plugins

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix: address PR #624 review feedback (G1 NGC detection, Phase 3 fallback dispatch, registry metadata)

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix: enforce sandbox boundary in execution grader and reward examples

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix: address CodeRabbit review findings on PR #624

Verified and fixed 37 of 43 outstanding CodeRabbit findings across the
llm-finetuning and dgx-spark-ops plugins (skipping 6 confirmed false
positives/already-fixed, with reasons in the disposition report).

Highlights: cross-file contracts (goldens fingerprint persistence,
paired-arena stage numbering, canonical golden-ID field, RERUN
resolution before promotion) now match between finetune.md,
promote-checkpoint.md, and checkpoint-promotion's templates. TRL API
usages (SFTConfig.max_length, trl.experimental ORPO/CPO imports)
verified against live TRL docs rather than blindly renamed. Several
runnable examples hardened against real failure modes: malformed
judge output, empty arena results, non-distinct DPO pairs, unbounded
rejection-sampling fan-out, non-deterministic smoke-test comparisons,
silent FP8-to-bf16 fallback, and orphaned background thermal-sampler
processes. Container detection (G9) and LoRA adapter-size math fixed
in both dgx-spark-ops and llm-finetuning where the same bugs were
independently present in each plugin.

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix: apply dogfood friction-log remediations (F1-F32) from DGX Spark run

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* fix: address CodeRabbit round-2 findings (digest pins, suite-size math, monkeypatch scoping)

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf
2026-07-14 13:18:02 -04:00
Seth Hobson 1d5175f905 chore: purge superpowers session artifacts, gitignore docs/superpowers/ (#621)
* chore: gitignore superpowers plugin artifacts (docs/superpowers/)

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf

* chore: remove committed superpowers session artifacts

Session-local spec/plan docs from the 2026-06-25 issue-resolution work
should never have been committed; docs/superpowers/ is now gitignored.

Claude-Session: https://claude.ai/code/session_01RsN3Vz5fZRTdVMkNtmxhSf
2026-07-13 18:13:26 -04:00
Seth Hobson 2de74ac1c8 fix(adapters): parse nested frontmatter mappings (#618)
* fix(adapters): parse nested frontmatter mappings

Preserve one-level mapping values in the shared frontmatter parser so generated Codex skill metadata keeps the dictionary shape Codex requires. Add regression coverage for nested keys and quoted values.

* style(tests): satisfy ruff formatting

* fix(adapters): reject deeper mapping indentation
2026-07-11 09:58:27 -04:00
Seth Hobson d7cf7dca8c docs: sync counts to 92 plugins after hermes-tweet + ciagent merges (#582, #614) (#616)
Reconcile plugin-count references across AGENTS.md (==CLAUDE.md), docs/architecture.md,
docs/plugins.md, and docs/usage.md to 92 plugins (88 local + 4 external). The #582 and
#614 merges each updated only a subset of count strings; this brings the rest in line.
Agents (199), skills (162), commands (106) unchanged.

Verified: make validate STRICT=1, garden (0 err), test (449 passed), smoke-test (7 passed).
2026-07-08 10:32:14 -04:00
Sunil Pandey 5d5bf761bc Add ciagent external plugin (#614)
Adds the `ciagent` external git-subdir plugin (testing category, Apache-2.0) pointing at suniel12/ciagent//plugins/ciagent — two skills (onboard, check) for pytest-native regression testing of the agent being built. Follows the qa-orchestra/storymap precedent (external entries live only in the Claude marketplace). Maintainer disclosure present. Counts reconciled to 92 plugins / 4 externals; make validate STRICT=1 clean. External repo verified public + valid plugin manifest.
2026-07-08 10:27:25 -04:00
Burak Bayır c7dc145e81 Add hermes-tweet plugin (#582)
Adds the source-native `hermes-tweet` plugin (Hermes Agent X/Twitter research + approval-gated action workflows) with Claude/Codex manifests and a portable skill. Registered across the Claude, Codex, and Cursor marketplaces; catalog counts updated to 91 plugins / 162 skills. Maintainer disclosure present per the #611 policy. Verified: make validate STRICT=1 clean across 5 harnesses, make garden 0 errors.
2026-07-08 10:24:28 -04:00
TJF 8de788c07f fix(governance): pin protect-mcp@0.7.4 so evaluate/sign hooks resolve (#602)
Bumps the protect-mcp pin from 0.5.5 to 0.7.4 in both review-agent-governance and protect-mcp hooks so the PreToolUse `evaluate` and PostToolUse `sign` verbs resolve and the governance gate runs fail-closed (deny -> exit 2). Rewrites the test suite (init --dir, receipts.jsonl, v2 receipt schema, real Cedar entity shape); 8/8 pass. Verified locally: verbs function on 0.7.4, deny path exits 2, make validate STRICT=1 clean.

Closes #601.
2026-07-08 10:22:44 -04:00
Seth Hobson 9c56144ace docs: sync counts after skill-forge-essentials merge (90 plugins, 161 skills) (#615)
Recounted from the filesystem: 90 plugins (87 local + 3 external),
161 skills across 45 plugins. Also catches docs/usage.md and
docs/plugins.md install-note lines missed by earlier syncs.
2026-07-07 19:48:06 -04:00
Adit Jain 3ea6aadc8a feat(plugin): skill-forge-essentials - 3 novel behavioral skills (#577)
* feat(plugin): add skill-forge-essentials - 3 novel behavioral skills

Focused subset per #570 feedback: only genuinely novel skills, markdown-first, no executable components.

* style: address CodeRabbit nitpicks - tighter wording

* feat: register plugin, regenerate harnesses, update docs, trim stats

Per maintainer review:
- Added skill-forge-essentials to .claude-plugin/marketplace.json
- Ran generate-all (codex/copilot/cursor/gemini/opencode registries regenerated)
- Bumped counts in AGENTS.md (89 plugins, 161 skills)
- Added catalog row in docs/plugins.md (Quality section)
- Trimmed unverifiable stats from ai-debt-detector
- Generalized design-mode to remove Cursor-specific framing

* fix: address review feedback - rename, bump counts, fix category

- Rename skills/design-mode/ to skills/visual-edit-precision/ (match frontmatter name)
- Bump docs/plugins.md counts: 88 -> 89 plugins, Quality (3) -> (4)
- Change category code-quality -> quality in .claude-plugin/marketplace.json
- Ran generate-all (no additional changes needed)
2026-07-07 19:44:36 -04:00
Seth Hobson 6fd3247066 docs: sync counts after operating-kit merge (89 plugins, 199 agents, tier 68/25) (#613)
PR #596 updated AGENTS.md's headline and docs/plugins.md but not the
remaining count references. Recounted from the filesystem: 89 plugins
(86 local + 3 external), 199 agents (Opus 54 / Sonnet 68 / Haiku 25 /
Inherit 52).
2026-07-07 16:15:59 -04:00
Vishal Sharma 2f9990dd53 Add operating-kit plugin: session lifecycle, code-review, deploy, prod-logs (#596)
* Add operating-kit plugin: session lifecycle + code-review + deploy + prod-logs

Five project-agnostic agents with {{placeholders}} that adapt to any project:

- session-start: reads state doc + verifies live state at session open
- session-end: updates state doc and memory index at session close
- code-review-preshipment: 10-section pre-ship review with SHIP verdict
- deploy-with-verification: test > build > deploy > verify-live, never reports
  shipped until the live system confirms
- prod-logs-health-check: pulls real logs, distinguishes failures from retries

Closes #595
Source: https://github.com/Sharrmavishal/operating-kit

Co-authored-by: Cursor <cursoragent@cursor.com>

* Address CodeRabbit review

- Revert .claude-plugin/marketplace.json to upstream — registry updates
  must go through a separate flow, not inside plugin PRs
- code-review-preshipment: replace 'in a hurry' with 'rushed' (wordiness)
- session-start: replace Read: tool-name syntax with action-verb prose
- session-end: replace Read: tool-name syntax with action-verb prose

Co-authored-by: Cursor <cursoragent@cursor.com>

* Address maintainer review: register plugin and sync agents

- Add operating-kit to marketplace.json and run make generate-all
- Fix plugin category workflow -> workflows
- Add deploy trigger phrase; sync deploy/session agents with operating-kit
  (deploy updates state doc after verify-live; session-end is finalization)
- Bump catalog counts in AGENTS.md and docs/plugins.md

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Sharrmavishal <sharrmavishal@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 16:10:46 -04:00
Seth Hobson 511f8345cf docs: refresh model references for Claude Sonnet 5 and Fable 5 (#612)
* feat(adapters): map sonnet tier to Claude Sonnet 5; Copilot fable to claude-fable-5

Claude Sonnet 5 is GA (Copilot GA 2026-06-30) and Copilot now serves
Fable 5 natively, so the sonnet/inherit aliases move off Sonnet 4.6 and
the Copilot fable alias no longer falls back to Opus 4.8. Catalog
verification date bumped to 2026-07.

* fix(plugin-eval): judge sonnet tier resolves to claude-sonnet-5

* docs: refresh model alias table and tier counts (Sonnet 5, five-tier, 66/22/52)

* docs(plugins): update model examples to Sonnet 5 / Opus 4.8

Replace claude-sonnet-4-6 with claude-sonnet-5 and Opus 4.7 mentions
with 4.8 in llm-application-dev; replace retired claude-3-5-sonnet in
performance-testing-review's ai-review. Drop temperature args from
migrated examples — Sonnet 5 rejects non-default sampling params.
2026-07-07 12:17:53 -04:00
Seth Hobson 0bacec2367 fix: cross-cutting process fixes from open-PR/issue audit (#611)
* fix(cursor-rules): align marketplace.json rule with CONTRIBUTING.md

The rule 'Never modify .claude-plugin/marketplace.json from inside a
plugin PR' contradicted CONTRIBUTING.md step 3 and actual maintainer
practice, causing CodeRabbit to force revert/re-add churn on plugin PRs
(#577, #582, #596, #606). Reword to prohibit hand-editing the generated
registries instead.

* docs: fix stale component counts (194 agents, 106 commands, 158 skills, 44 plugins)

* docs(contributing): add commercial content and disclosure policy

* docs(protect-mcp): remove unverified downloads claim

npm reports ~3.2K monthly downloads, not 10K+; the README already has a
live shields.io downloads badge. Also drop the stale v0.5.5 reference
(see #601).
2026-07-07 11:42:03 -04:00
dependabot[bot] 3523d56a76 deps(plugin-eval): bump the python-minor-and-patch group (#603)
Bumps the python-minor-and-patch group in /plugins/plugin-eval with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [typer](https://github.com/fastapi/typer) | `0.26.7` | `0.26.8` |
| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.2.101` | `0.2.110` |
| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.109.1` | `0.112.0` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.1.0` | `9.1.1` |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.17` | `0.15.20` |
| [ty](https://github.com/astral-sh/ty) | `0.0.49` | `0.0.55` |


Updates `typer` from 0.26.7 to 0.26.8
- [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.7...0.26.8)

Updates `claude-agent-sdk` from 0.2.101 to 0.2.110
- [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.101...v0.2.110)

Updates `anthropic` from 0.109.1 to 0.112.0
- [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.109.1...v0.112.0)

Updates `pytest` from 9.1.0 to 9.1.1
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.1.0...9.1.1)

Updates `ruff` from 0.15.17 to 0.15.20
- [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.17...0.15.20)

Updates `ty` from 0.0.49 to 0.0.55
- [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.49...0.0.55)

---
updated-dependencies:
- dependency-name: typer
  dependency-version: 0.26.8
  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.110
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
- dependency-name: anthropic
  dependency-version: 0.112.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-minor-and-patch
- dependency-name: pytest
  dependency-version: 9.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
- dependency-name: ruff
  dependency-version: 0.15.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
- dependency-name: ty
  dependency-version: 0.0.55
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 11:40:07 -04:00
dependabot[bot] 614d169260 deps(yt-design-extractor): bump yt-dlp (#608)
Bumps the python-minor-and-patch group in /tools/yt-design-extractor with 1 update: [yt-dlp](https://github.com/yt-dlp/yt-dlp).


Updates `yt-dlp` from 2026.6.9 to 2026.7.4
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases)
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md)
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2026.06.09...2026.07.04)

---
updated-dependencies:
- dependency-name: yt-dlp
  dependency-version: 2026.7.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 11:40:04 -04:00
Seth Hobson 5cc2549a50 Merge pull request #600 from wshobson/fix/issues-591-598
fix: plugin-eval judge silent-failure (#591) + review-agent-governance Cedar hardening (#598)
2026-06-25 22:03:14 +09:00
Seth Hobson 8ddb737e2e fix(review-agent-governance): make target_branch optional with has-guard (#598)
Non-git Bash actions (gh pr comment, etc.) don't carry target_branch, so
requiring it in the schema would make every such request error at runtime.
Mark it optional and guard rule 3 with `context has target_branch` so the
git-push-to-protected-branch forbid only applies when a branch is supplied.
cedar validate stays clean (optional attr accessed under a has-guard).
2026-06-25 21:28:56 +09:00
Seth Hobson bdf6e19a83 fix: address CodeRabbit/codex review feedback on #591/#598 work
- judge: guard _measured_score against non-dict JSON; strip whitespace text
  before the result fallback (typed result param as Any for ty).
- monte_carlo: use the shared result fallback for activation/quality; sum real
  SDK usage token fields via _sdk.usage_total_tokens (no fake total_tokens=0).
- tests: importorskip claude_agent_sdk so dev-only (no llm extra) collection
  doesn't fail; add tests for non-dict scores, whitespace/result fallback,
  result-only activation, and token summing.
- run-tests.sh: cd guard + multiline-tolerant in-on-String detection.
- docs: cedar-validate if/else, repo-root-safe path, and #598 narrative
  corrected to the verified conclusion (reporter essentially correct;
  protect-mcp evaluate/sign subcommands absent -> separate issue).
2026-06-25 20:53:10 +09:00
Seth Hobson 410df65993 refactor(plugin-eval): extract shared SDK message-collection helper
De-duplicate the AssistantMessage/TextBlock/ResultMessage walk that judge.py
and monte_carlo.py each carried (collect_sdk_output in layers/_sdk.py), and
collapse the duplicated grep in the review-agent-governance policy test.
2026-06-25 15:49:08 +09:00
Seth Hobson 55865acb40 style(plugin-eval): ruff import-order/format on branch-touched test files 2026-06-25 14:40:54 +09:00
Seth Hobson 006d0f6dd8 test(review-agent-governance): harden policy guard (missing-file check, broader regex) (#598) 2026-06-25 14:34:08 +09:00
Seth Hobson 264db78cfb test(review-agent-governance): guard against in-on-String forbid bug (#598) 2026-06-25 14:29:39 +09:00
Seth Hobson c295ec21f2 feat(review-agent-governance): add cedarschema typing context attrs as String (#598) 2026-06-25 14:26:10 +09:00
Seth Hobson f13e06d904 fix(review-agent-governance): use set .contains() instead of in-on-String in forbid rules (#598)
context.<attr> in [strings] is a type error under standard Cedar (in expects
an entity LHS) and is silently discarded, which would disable the gate. Rewrite
to [strings].contains(context.<attr>), which validates and is portable.
2026-06-25 14:26:02 +09:00
Seth Hobson 24055d8de7 docs(plan): retarget #598 tasks after protect-mcp evaluate-subcommand finding 2026-06-25 14:24:41 +09:00
Seth Hobson bee43e90d2 test(plugin-eval): minor test hygiene (score assertion, unused imports, import order) 2026-06-25 13:38:47 +09:00
Seth Hobson 376cf91598 feat(plugin-eval): warn on stderr when the LLM judge is unmeasured (#591) 2026-06-25 13:34:25 +09:00
Seth Hobson 5571d9a673 refactor(plugin-eval): remove dead auth/model_tier config (#591) 2026-06-25 13:30:28 +09:00
Seth Hobson aa3768404f fix(plugin-eval): fix Monte Carlo SDK message extraction (#591) 2026-06-25 13:26:38 +09:00
Seth Hobson 09dade9bcd fix(plugin-eval): omit unmeasured judge dimensions instead of scoring 0.5 (#591) 2026-06-25 13:22:01 +09:00
Seth Hobson bceb724a96 fix(plugin-eval): include partial raw text in errored judge marker (#591) 2026-06-25 13:19:21 +09:00
Seth Hobson 90ebe9dbc2 fix(plugin-eval): read judge LLM text from AssistantMessage/ResultMessage (#591)
ResultMessage has no .content attribute, so the judge always read empty
text and silently fell back to 0.5. Extract from AssistantMessage TextBlocks
with ResultMessage.result fallback; mark errored/empty/non-JSON as unmeasured.
2026-06-25 13:16:18 +09:00
Seth Hobson c036c2154c docs(plan): open-issue resolution implementation plan (#591, #598, triage) 2026-06-25 13:10:52 +09:00
Seth Hobson 12d979aaac docs(spec): open-issue resolution design (#591 fix, #598 hardening, triage closes) 2026-06-25 12:26:19 +09:00
Seth Hobson 2b48f1690c Merge dependabot PR #590: bump pydantic-settings to 2.14.2 2026-06-25 12:05:43 +09:00
Seth Hobson 835823e4d6 Merge dependabot PR #588: bump starlette to 1.3.1 2026-06-25 12:05:43 +09:00
Seth Hobson c10209feef Merge dependabot PR #587: bump cryptography to 48.0.1 2026-06-25 12:05:43 +09:00
Seth Hobson b440602996 Merge dependabot PR #586: bump python-multipart to 0.0.31 2026-06-25 12:05:43 +09:00
Seth Hobson e572acae15 Merge dependabot PR #585: bump pyjwt to 2.13.0 2026-06-25 12:05:34 +09:00
Seth Hobson 01bbac1bab Merge dependabot PR #592 2026-06-25 12:05:26 +09:00
Seth Hobson d369ab79d3 Merge dependabot PR #584 2026-06-25 12:05:26 +09:00
Seth Hobson 9ab47ec442 docs: reconcile counts and catalog after batch plugin merge
After merging #575 (storymap-skill), #568 (runapi-mcp), #578
(before-you-build), #576 (file-conversion), #594 and #597, reconcile the
marketplace/doc counts to the true totals: 88 plugins (85 local + 3
external), 194 agents, 158 skills, 106 commands. Add catalog rows for
runapi-mcp (AI & ML) and storymap-skill (Workflows, external); fix the
defi-protocol-templates skills-table line (lending -> flash loans).
2026-06-25 11:55:58 +09:00
Seth Hobson f7a922c505 Merge PR #576: add file-conversion plugin
# Conflicts:
#	.claude-plugin/marketplace.json
#	README.md
2026-06-25 11:51:39 +09:00