Skip to content

Make Redgate the default interactive workflow - #82

Merged
JRichlen merged 13 commits into
mainfrom
codex/redgate-default-interactive
Aug 30, 2026
Merged

JRichlen merged 13 commits into
mainfrom
codex/redgate-default-interactive

Conversation

@JRichlen

@JRichlen JRichlen commented Aug 29, 2026

Copy link
Copy Markdown
Owner

What changed

  • reframes Redgate as a working harness/protocol layer, not a universal router
  • routes first to the most-specific specialist skill or recipe, then composes Redgate when execution needs falsifiable criteria, verified rounds, or classified human gates
  • preserves T0 direct handling and avoids wrapping specialist work in ceremony merely because it is complex
  • standardizes a portable interaction contract: prefer the harness-native structured choice/confirmation primitive when available, otherwise use compact textual choices
  • keeps user interaction in the parent agent and makes MAJOR gates explicitly confirmed
  • fixes the criteria-contract .redgate/<slug>/ path typo found by Copilot
  • updates Codex-compatible skill/frontmatter and bumps Redgate to 0.1.0
  • keeps Redgate independent from Agent OS: Agent OS designs/curates automations; Redgate reinforces work while it is being executed

Cross-PR boundary with #83

Verification status

Previous branch verification reported Codex skill validation and the repository cheap tier green before the latest architecture refinements. Fresh CI/review is required on the current head before merge.

Copilot's earlier demonstration-comment requirement remains intentionally unresolved until a real Redgate demonstration is actually run; do not fabricate one.

Copilot AI lite review requested due to automatic review settings August 29, 2026 17:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

It updates skill prose but (per repo guidance) should include a PR demonstration comment for the skill change, and it also contains a confirmed documentation typo in the criteria-contract frontmatter.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR makes the redgate plugin the default router for Jordan’s nontrivial workflows and standardizes an interactive “ask-question” contract for all user decisions, while preserving T0 direct handling to avoid unnecessary ceremony.

Changes:

  • Updates Redgate/criteria-contract prose to auto-trigger on nontrivial work and enforce interactive, tap-ready decision prompts (including MAJOR-gate confirmations).
  • Bumps the Redgate plugin metadata/version to 0.1.0 and refreshes marketplace + example gallery descriptions to match.
  • Adds deterministic “cheap” eval checks to ensure the new routing and question contract language remains present.
File summaries
File Description
plugins/redgate/skills/redgate/SKILL.md Adds default-routing + interactive question contract rules and MAJOR-gate tool confirmation language.
plugins/redgate/skills/redgate/references/calibration.md Aligns calibration guidance to interactive, one-decision-per-call questioning under a shared budget.
plugins/redgate/skills/criteria-contract/SKILL.md Updates ARM interview procedure prose to require the interactive ask-question tool; contains a run-directory path typo (see comment).
plugins/redgate/evals/cheap/checks.sh Adds cheap-tier assertions that the default-routing + question contract language remains present.
plugins/redgate/commands/redgate.md Updates command description and instructions to match the new interaction contract.
plugins/redgate/AGENTS.md Adds default operating mode + interactive question requirements for harnesses reading AGENTS.
plugins/redgate/.claude-plugin/plugin.json Bumps plugin version and refreshes plugin description to the new default-router framing.
docs/examples/index.html Updates the redgate skill description in the generated examples gallery.
AGENTS.md Adds repository-level guidance: auto-trigger redgate for nontrivial work and require interactive ask-question decisions.
.claude-plugin/marketplace.json Updates marketplace entry for redgate (version + description).
Review details
  • Files reviewed: 10/10 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread plugins/redgate/skills/criteria-contract/SKILL.md

@JRichlen JRichlen left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent architecture + integration review

1. Redgate needs explicit composition precedence, not just broad auto-triggering

The new root/plugin guidance makes Redgate the default router for planning, research, design, implementation, debugging, refactoring, review, deployment, multi-agent coordination, etc. That set overlaps heavily with specialist plugins already in the marketplace (codebase-design, diagnosing-bugs, orchestrate, wayfinder, scope-fence, and others).

The intended architecture appears to be Redgate as the protocol/gating envelope, not Redgate replacing specialist routing. Please make that precedence explicit before merge. Suggested semantic rule:

Route to the most specific applicable skill(s) for domain behavior; use Redgate as the execution/verification envelope when the work is nontrivial enough to require rounds, explicit criteria/evidence, or a classified human gate.

Otherwise a router can reasonably read the new broad Redgate description and choose only redgate for almost every meaningful task, defeating the specialist trigger roster.

This matters directly to Agent OS PR #83, which currently treats redgate as the verified-execution/gating layer and grill-me/other skills as separate composable capabilities. The two PRs should encode the same boundary.

2. Preserve the UI contract as a portable capability

The structured ask-question behavior is useful, but the durable invariant should remain behavioral: use the harness-native structured choice/confirmation primitive when available, with compact textual options as the fallback. Avoid wording that makes a specific tool/API name part of the cross-harness contract.

3. Existing Copilot findings remain blockers for a clean re-review

Copilot already identified the .redgate/slug/ vs .redgate/<slug>/ typo and the repository-required demonstration comment for skill changes. Those should be resolved before treating the new review as final.

Verdict

Direction is sound, but I would tighten the Redgate-vs-specialist composition rule before merge. That prevents the new default from becoming a routing black hole while preserving the intended default verification discipline.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The criteria-contract skill frontmatter currently contains an incorrect .redgate/slug/ path that contradicts the rest of the protocol/docs and should be corrected before merge.

Review details

Suppressed comments (1)

plugins/redgate/skills/criteria-contract/SKILL.md:6

  • The frontmatter description says the run directory is .redgate/slug/, but the rest of this skill (and the scaffold script/docs) consistently use .redgate/<slug>/. This typo will mislead users and also propagate into generated docs that read the description from frontmatter.
  The ARM stage of Red Gate: turn an interviewed idea into CRITERIA.md and
  check.sh in .redgate/slug/, prove the gate red (every checkable
  criterion FAIL, harness preflight clean), get human ratification, and pin
  • Files reviewed: 12/12 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copy link
Copy Markdown
Owner Author

@claude I want to use this PR as a collaborative architecture refinement, not just a code review.

Please review the current PR plus PR #83 and challenge/refine this proposed boundary:

  • specialist skills own domain behavior and task-specific procedure
  • Redgate is the execution / verification / classified-human-gate envelope for nontrivial work
  • Redgate should compose around specialist skills, not shadow them as a universal router
  • structured interaction is a portable capability contract: prefer the harness-native choice/confirmation primitive when available, otherwise use compact textual choices
  • Agent OS (experiment: Agent OS design-evidence harness (paid workflows) [do not merge — #85] #83) should consume this interaction/gating contract rather than restating it

Please specifically pressure-test:

  1. whether Redgate should truly be the default envelope, and exactly when it should not activate;
  2. routing precedence when multiple specialist skills and Redgate all match;
  3. whether grill-me belongs inside, beside, or upstream of Redgate for interactive design decisions;
  4. how to keep the interaction contract portable across Claude Code, Codex, and GitHub Copilot without naming a harness-specific API as canonical;
  5. any changes Make Redgate the default interactive workflow #82 should make so experiment: Agent OS design-evidence harness (paid workflows) [do not merge — #85] #83 can depend on it cleanly.

Treat existing Copilot findings as inputs, not the whole review. Prefer a concrete proposed contract / wording over abstract commentary.

When you respond, please include @Codex in your reply and explicitly ask Codex to challenge your proposed refinement against PR #83's Agent OS taxonomy/recipe architecture. That mention is intended to hand the discussion back for another synthesis pass.

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create a Codex account and connect to github.

Copy link
Copy Markdown
Owner Author

@claude One correction to the cross-PR framing before you review this: Redgate and Agent OS serve different purposes and neither should subsume the other.

That means #82 should avoid language implying Redgate is the universal router for all nontrivial work. A better contract is:

Specialist skills/recipes determine what procedure the work follows. Redgate may wrap the work when the execution benefits from explicit falsifiable criteria, verified rounds, or classified human gates. It reinforces the work; it does not own automation design or replace domain procedures.

Likewise, Agent OS does not need to inherit its interactive curation UX from Redgate. Both may use the same harness-native structured-question capability and both may compose grill-me, but that is shared infrastructure/behavior, not an ownership relationship.

Please refine #82 around this harness-layer identity and identify the smallest trigger condition for Redgate that avoids both extremes: universal ceremony vs explicit-only invocation. Concrete wording preferred. Include @Codex in the reply for the handoff even though the current GitHub Codex connector reports it is not connected.

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create a Codex account and connect to github.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The examples gallery HTML is not consistent with the current Redgate SKILL frontmatter description (and will likely fail the cheap-tier docs/build-examples.sh --check), and there’s a small grammatical error in plugins/redgate/commands/redgate.md.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 12/12 changed files
  • Comments generated: 2
  • Review effort level: Lite

Comment thread docs/examples/index.html Outdated
Comment thread plugins/redgate/commands/redgate.md Outdated

Copilot AI commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

@JRichlen Unfortunately I hit an unexpected error while processing your comment. I've automatically reported this to GitHub.

You can ask me to try again later by mentioning me in a new comment.

If you want to contact GitHub about this error, please mention the following identifier so they can better serve you: 4586ab01-5a4f-4e8c-92ae-6b35c840a5b2

Sorry for the inconvenience!

Co-authored-by: JRichlen <9574264+JRichlen@users.noreply.github.com>
@JRichlen

Copy link
Copy Markdown
Owner Author

@claude investigate CI failures ask @copilot to pair and check your work

Copy link
Copy Markdown
Owner Author

@codex Please address RQ-003 only on this existing PR branch (codex/redgate-default-interactive). Do not absorb the broader CI-trigger work in #87/RQ-001 or the composition/trajectory redesign in #88/RQ-002.

Current head 80f273440bd7f95ba41827fc82f8bada30c43366 has these concrete failures:

Cheap tier

  1. redgate: description differs between plugin.json and marketplace.json entry
  2. redgate — default routing and interactive questions: common workflow trigger roster is missing

Diagnose whether #2 is stale assertion wording versus an actual regression against the PR's intended current architecture. Preserve the intended boundary: specialist owns domain procedure; Redgate is the evidence/verification/gating envelope when warranted. Do not simply weaken or delete the check.

Routing tier

Promptfoo ran 50 cases: 46 pass, 1 semantic failure, 3 errors.

  • Semantic miss: I need a debounce function for this React component. Should I just write one? routed to none instead of the intended existing-solution/find-before-build behavior.
  • Three blank/error outputs occurred on calibration/routine prompts, including What's the difference between map and flatMap in JavaScript? and Add a trailing newline to the end of README.md. Treat provider/transport/empty-output errors distinctly from semantic failures. Do not paper over them by lowering the pass-rate gate.

Use Redgate discipline: pin the branch-local criteria, reproduce the current failures, make only the smallest changes needed for this PR's declared semantics, then rerun relevant cheap + routing checks and attach exact evidence. Preserve the real demonstration-comment requirement rather than fabricating a demo.

Push fixes to this existing remote PR branch. Completion requires updated remote commits and fresh CI evidence. Do not merge automatically.

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

  • Synchronized Redgate’s marketplace description with plugin.json, preserving the specialist-first boundary and defining Redgate as the verification/gating envelope rather than a universal domain router. .claude-plugin/marketplace.jsonL398-L402
  • Replaced the stale cheap-tier “common workflow trigger roster” assertion with stronger architectural checks for:
    • default verification-envelope behavior,
    • specialist-first routing precedence, and
    • bypassing Redgate ceremony when specialist work does not need an evidence contract or classified gate. plugins/redgate/evals/cheap/checks.shL35-L44
  • Clarified routing semantics so requests considering a new helper or implementation trigger the existing search-before-writing discipline even when phrased as questions. This directly targets the debounce semantic miss without changing the expected route or lowering the routing threshold. evals/routing/prompt.txtL13-L20
  • Regenerated the routing roster from the synchronized marketplace metadata. evals/routing/roster.txtL14-L18
  • Committed the changes as 0f72b7b (fix(redgate): align RQ-003 routing contracts) on codex/redgate-default-interactive.
  • Did not fabricate or post a Redgate demonstration comment.
  • I could not push the commit or create/update the GitHub PR because this environment has neither GitHub authentication nor an available make_pr tool. The local branch is clean and ready to push.

Testing

  • git diff --check
  • evals/cheap/run.sh1,174 passed, 0 failed, including the pass-rate checks that distinguish transport FAULTs from semantic failures.
  • evals/routing/gen-roster.sh > evals/routing/roster.txt
  • ⚠️ cd evals/routing && npx --yes promptfoo@0.122.0 validate -c promptfooconfig.yaml — could not run because the environment has Node.js v20.20.2, while this Promptfoo package requires Node.js >=22.22.0.
  • ⚠️ git push origin HEAD:codex/redgate-default-interactive — could not authenticate to GitHub (could not read Username for 'https://github.com'), so fresh remote CI evidence could not be initiated.

View task →

claude added 2 commits August 30, 2026 21:23
…Q-003

Two cheap-tier failures and one routing semantic miss at head 80f2734:

- Sync the redgate marketplace.json description to plugin.json's
  specialist-first framing (working harness / verification envelope,
  composed around the most-specific specialist skill), which the branch
  adopted but only in plugin.json. Regenerate evals/routing/roster.txt
  from the synced metadata.

- Replace the stale "common workflow trigger roster" cheap check with
  three architectural checks matching the PR's declared semantics: the
  driver frames Red Gate as the default verification envelope, states
  specialist-first routing precedence, and states the ceremony bypass
  for specialist work with no evidence contract or classified gate.
  The old check asserted the universal-router roster prose this branch
  deliberately removed; the replacements are strictly stronger than
  deleting it.

- Clarify the routing prompt: a request that merely contemplates the
  governed act ("should I just write one?") routes the same as the act
  itself. Targets the debounce semantic miss (routed none instead of
  the search-before-writing discipline) without changing the expected
  route, the roster contract, or the pass-rate floor. Transport/empty
  -output FAULT handling in evals/paid/pass-rate.sh is untouched and
  already distinct from semantic failures.

Evidence: evals/cheap/run.sh 1175 passed, 0 failed (was 1171/2);
promptfoo validate on evals/routing/promptfooconfig.yaml is clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NsPQTo67oovz8ogirsH6uL
… arbiter

The routing job on 317a05b recorded 40 pass / 0 semantic failures / 10
errors — every error an OpenRouter 504 ("The operation was aborted"),
i.e. the transport-FAULT class pass-rate.sh exists to handle. Two
defects made that class fatal anyway:

- promptfoo only retries 5xx responses when PROMPTFOO_RETRY_5XX is set
  (verified in the 0.122.0 source: fetchWithRetries throws-and-retries
  on >=500 only behind that flag), so each 504 became a row error on
  the first hit. Set it in the eval step's env.

- The eval step ran promptfoo bare, so its exit 100 (any red row,
  errors included) killed the job before the statistical gate ever
  ran. The gate is the designed arbiter: it excludes FAULTs, enforces
  the 0.8 per-scenario floor over VALID samples only, and fails closed
  when FAULTs starve a scenario (min-runs 3). Tolerate promptfoo's
  exit as long as results.json exists; the gate step keeps the
  verdict. The floor, min-runs, and fail-closed semantics are
  untouched — a semantic miss or a FAULT-starved scenario still reds
  the job.

Evidence: cheap tier 1175 passed, 0 failed; branch-protection drift
guard green (no job renamed, pass-rate.sh still wired).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NsPQTo67oovz8ogirsH6uL

Copy link
Copy Markdown
Owner Author

RQ-003 complete on this branch, in two pushed commits: 317a05b (the RQ-003 fix proper) and bc07de3 (a routing-tier CI wiring defect the first fresh run exposed). All 54 checks are green on bc07de3, including the cheap tier and a real (non-skipped) routing-tier run. The earlier Codex commit 0f72b7b referenced above was never pushed and is gone with its environment; this work re-derives it from the RQ itself.

Cheap tier

  1. Description driftplugin.json carried the specialist-first framing; marketplace.json still had the old universal-router text ("Auto-triggers for planning, research, design, …"). Synced marketplace → plugin.json (the PR's intended architecture) and regenerated evals/routing/roster.txt from the synced metadata.
  2. "common workflow trigger roster is missing" — diagnosed as a stale assertion, not a regression: the check grepped the driver for the universal-router roster prose (planning, research, design, implementation, debugging) that this branch deliberately replaced with the verification-envelope architecture. Replaced that one check with three strictly stronger architectural checks: default verification-envelope framing, specialist-first routing precedence (most-specific applicable specialist skill), and the ceremony bypass for specialist work with needs no explicit evidence contract or classified gate. Nothing weakened or deleted; the boundary (specialist owns domain procedure, Redgate is the evidence/verification/gating envelope) is what the checks now defend.

Evidence: evals/cheap/run.sh went from 1171 passed / 2 failed to 1175 passed / 0 failed locally; CI cheap tier green on bc07de3.

Routing tier

  • Debounce semantic miss — root cause: the router prompt had no rule that a contemplated act routes like the act itself, so "Should I just write one?" went to none. Added a generic clause to evals/routing/prompt.txt (a request that merely contemplates the governed act routes the same as doing it — no skill named). Expected route, roster contract, and pass-rate floor unchanged. Fresh CI: the find-before-build scenario passed 5/5 valid = 1.00, 0 FAULTs.
  • Transport/blank-output errors — the fresh run on 317a05b reproduced them as explicit OpenRouter 504s (API error: The operation was aborted, Code: 504) and exposed why they were fatal despite pass-rate.sh's FAULT handling: (a) promptfoo retries 5xx only when PROMPTFOO_RETRY_5XX is set (verified in the 0.122.0 source), so each 504 became a row error on the first hit; (b) the eval step ran promptfoo bare, so its exit 100 killed the job before the statistical gate ever ran. bc07de3 sets the retry env and lets the gate be the arbiter (a missing results.json still fails the step). The gate itself is untouched — floor 0.8, min-runs 3, FAULTs excluded from scoring, fail-closed on starvation. This is not a lowered gate: the 317a05b run starved tracer-bullets (4/5 rows FAULTed) and would have failed the gate too.

Fresh CI evidence (run 33336710469, routing job, head bc07de3):

Results: 40 passed (80.00%), 0 failed (0%), 10 errors (20.00%)
pass-rate: floor=0.80  min-runs=3  min-valid=2  scenarios=10
  [OK] 5/5 valid = 1.00  [5 rows]  search before writing a helper → find-before-build
  ... every scenario 1.00 over valid samples; 10 FAULTs excluded across 6 scenarios, none starved
pass-rate: PASS — every scenario at or above floor with enough valid samples

Zero semantic failures; every red row an explicit 504 FAULT, excluded per the declared semantics.

Scope

Nothing absorbed from #87/RQ-001 or #88/RQ-002. Diff: marketplace.json (1 description line), plugins/redgate/evals/cheap/checks.sh (1 check → 3), evals/routing/prompt.txt (+1 clause), evals/routing/roster.txt (regenerated), .github/workflows/evals.yml (routing eval step env + verdict delegation). No demonstration comment was fabricated: this round touches eval checks, router-prompt, and manifest text — no SKILL.md, references/, or command files.

Not merging — leaving that to you.


Generated by Claude Code

Copy link
Copy Markdown
Owner Author

Demonstration comment (required by the repo's demonstration discipline — this PR edits skill prose: the redgate driver SKILL.md, its manifests, and the routing contract). Every number below is from runs that actually executed; nothing is simulated.

The skill change applied to real input

Input: the 10 labeled routing requests in evals/routing/promptfooconfig.yaml (real user-shaped requests — "I need a debounce function for this React component. Should I just write one?", "What's the difference between map and flatMap in JavaScript?", etc.), routed against the full 24-plugin roster generated from the live marketplace descriptions. Each request ran 5x against the subject model.

Before (head 80f2734, old universal-router description): 46/50 pass, 1 semantic failure — the debounce request routed to none instead of the search-before-writing discipline — plus 3 transport errors (reported here).

After (head bc07de3, specialist-first description + the contemplated-act routing clause; CI run 33336710469): 0 semantic failures. The debounce scenario passed 5/5 valid = 1.00. Both must-not-fire calibration negatives held (a plain code question and a trivial one-line edit still route to none — the reframed description did not make redgate fire on routine work, which is the failure mode a "default envelope" skill most needs to avoid).

The branch also carries the skill applied to its own construction: the .redgate/*/gates.log run records in the diff are real runs of the protocol building its own slices, including two rounds where the protocol caught its own defects.

The misses

  • The debounce fix came from the router prompt clause, not the reframed description alone — the specialist-first rewording by itself did not change that route. The description change earns its place on the boundary claim, not on this routing win.
  • 10/50 rows in the after-run were provider 504 FAULTs the skill cannot influence; they were excluded by the statistical gate, not passed.
  • The redgate behavioral tier still tests only the sign-off invariant, not the new specialist-first boundary this PR introduces — that coverage gap is real and is being spun out into a follow-up issue rather than papered over here.

Generated by Claude Code

@JRichlen
JRichlen merged commit e2a53a9 into main Aug 30, 2026
54 checks passed
JRichlen pushed a commit that referenced this pull request Aug 30, 2026
…a 7)

The boundary reframing merged as e2a53a9 was a real turn of the
trajectory and belongs on the page: the same PR that set out to make
Redgate the default interactive workflow first crowned it the universal
router, then corrected itself in flight — a specialist owns the domain
procedure; Redgate is the verification envelope around how it is
executed. Recorded as a new era 7 ("The gate learns its place") since
era 6's lesson is about consumable proof surfaces, not routing.

The skim heading was hardcoded "The story in six lines"; it now derives
from the era count so curation edits can't leave it stale.

Regenerated index.html; build-timeline.sh --check passes byte-identical.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NsPQTo67oovz8ogirsH6uL
JRichlen added a commit that referenced this pull request Aug 30, 2026
…(docs only)

The docs half of #83, split out per review: the lousy-agents handoff and the automation-curation lens, with the redgate suggested-skills line and Decision framing synced to the merged #82 boundary, the Adapter+ multiplicity legend added, and the experiment-evidence link pinned to #83's branch. The experiment harness stays on #83 under #85's guardrail.
JRichlen pushed a commit that referenced this pull request Sep 5, 2026
- The thesis no longer claims every era was forced by a recorded
  failure; some were forced by a gap the previous answer left open.
  It names the second question the story keeps answering (who is
  allowed to do what) and says that eras are threads, not calendar
  slots, since several overlap by a day.
- Era 3's bridge no longer says "no one had yet asked the field":
  the 88-pattern corpus was written an hour after the protocol.
- Era 4's bridge points back to that verdict instead of dating it
  to the end of era 4.
- Era 6's bridge no longer credits the published surfaces with
  exposing the router overreach; the maintainer's review on PR #82
  did, within the hour.
- Era 7's bridge, era 8's lesson, the Act III summary and the
  honest-gate entry now state the real link the page was hiding:
  the fail-open statistical gate was caught while the routing
  tier's live runs were being scored (pass-rate.sh records it as
  observed on PR #93).
- Era 1's lesson mentions the five plugins that shipped in July.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014XYwiWZicXu2CfDUKAXHpi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants