We published Critter Stack AI Skills 1.17 today. The catalog is still 126 skills; nothing new was added. What changed is the content, and the way it was checked.
The Critter Stack moved a long way in October. Wolverine went from 6.41 to 6.56 in twenty-five releases, Marten from 9.40 to 9.54, CritterWatch shipped 1.1.0, Bobcat reached 1.0.0, and Stoat got its first public preview. Skills that teach a coding agent how a framework behaves rot at exactly the pace the framework improves, so this release started with a question rather than a feature list: what do the skills say today that is no longer true?
How it was reviewed
Five review agents ran in parallel, one per product. Each read the month's releases and commits, compared every user-facing change against the skill that should teach it, and was told to verify each finding against the product's source, with the exact symbol and file, before reporting it. A claim that something was wrong in a skill was then spot-checked a second time before an issue was filed. That produced thirty-six issues, each worked as its own pull request against the source again, and merged the same day.
The source rule mattered. The method names an agent invents are the most common defect in a skill catalog, and a changelog is a paraphrase. Reading DurabilitySettings.cs to confirm that a setting is [Obsolete], or ResilientPipelineBuilderExtensions.cs to confirm what a retry pipeline actually retries, is slower and worth it.
Seven places the skills had gone wrong
These are the changes that matter most, because an agent following the old text would have given a confident wrong answer:
- Marten's write-retry pipeline never replays
40001. The concurrency skill said Marten had already retried a serialization failure three times beforeConcurrentUpdateExceptionreached your policy. Since Marten 9.41 it is deliberately never replayed, because replaying computed work on a stale snapshot is a silent lost update, and no write is retried at all above Read Committed. The only sound retry re-runs the handler. DefaultTenantUsageDisabledExceptionis the JasperFx.Events type. Marten's now derives from it and is no longer aMartenException, so one policy covers Marten and Polecat, and a blanket Marten catch stops seeing it.- What the async daemon counts as transient. Marten 9.52 stopped registering
NpgsqlExceptionwholesale. A permanent database error is never dead-lettered now, even underSkipApplyErrors, and Wolverine 6.51's node sweep restarts a shard paused on a transient failure, which the skill said never happened. - Fisher can run its projections as Wolverine agents. Two skills said managed distribution did not apply to Fisher. It does since Wolverine 6.51.2, still on one node, but with CritterWatch's pause, restart, rebuild and rewind surface.
- Wolverine.HTTP's body rule. Since 6.50 a concrete parameter the container knows is a service, never the inferred JSON body, and
[FromBody]is the override. An application that registers its request types saw POST bodies silently ignored on upgrade; the skill now says so. - Bobcat's message activity report carries envelope ids. The troubleshooting skill said it did not yet, so the join from a red row to a CritterWatch conversation or a trace is now by id.
- Stoat is free on its own machine. The agent-workflow skill said an unlicensed Stoat refuses every tool. A loopback caller is never refused; only a Stoat other machines reach is Stoat Team, and licensed.
And the biggest thing that was missing
CritterWatch 1.1.0 can run without a broker. Wolverine 6.56's HTTP transport, gRPC, or a PostgreSQL or SQL Server queue carry the same telemetry and control envelopes that RabbitMQ, SQS and Azure Service Bus do, and the setup skill said a broker was required. It now teaches the broker-less channels, the two startup refusals you can hit, and the limits a broker does not have.
The rest of the release is additions: MessageDeduplicationMode replacing the obsolete bool, the EF Core two-owner refusal and EfCoreOps, RabbitMQ 4's quorum delivery limit, Wolverine's dead-letter fingerprinting API, BroadcastToAllNodesAsync, the NATS provisioning modes, Marten's drain timeout, FetchManyForWriting, TombstoneStream, the Native AOT registrations, the NUnit and MSTest adapters for Bobcat, and more. Every entry is in the What's New page with the upstream issue beside it.
One housekeeping note: 1.16 was merged but never published, so 1.17 also carries the CritterWatch 1.1 paired updates (the confirmation tokens, read-only mode, the audit channel, failure groups, the conversations skill) that were waiting there. If you are on 1.15, this is one upgrade.
Installing it
dotnet tool install --global agentskills-cli
agentskills-cli add JasperFx.AiSkills -g -a universal -a claude-code -yThe skills are commercially licensed, with annual tiers by team size on the AI Skills section of our products page, and bundled into every JasperFX support plan. If you want to see what the skills buy you in a real session, the 1.14 post makes that case at length.



