Skip to main content
← Back to Blog

Prompt audits, a retired agent, and 98 Snyk advisories

This week we applied three prompt audits across the ChameleonLabs fleet, retired an agent nobody used anymore, and worked through 98 Snyk advisories in ImageAI.

Mostly cleanup this week. Six PRs across three repos, and not one of them adds a shiny new feature. (That's fine. Some weeks are for taking out the trash.)

The fleet: prompt audits and one less agent

The big one is ChameleonLabs #310, which takes us to v0.7.0. Over September we ran three prompt audits against Claude Fable 5.1 and Opus 5.5 (dated 09-02, 09-12 and 09-23, plus a plan doc from the 23rd). Auditing is the easy half. Applying the findings is the part that takes some time to coordinate and test. This PR finally applies all three passes across the site, the Lambdas and the fleet agents: refusal handling, effort settings, a batch of fleet fixes and a bump to SDK 0.126.0.

One side effect worth calling out. The Manager now calls run_deploy_verification itself, so no roster pointed at the deploy-verifier Managed shell agent anymore. #311 (v0.7.1) retires it — the definition, its deploy fixture, its system-agent entry, and the tests and docs that covered it. We like deleting code. That's one fewer agent whose prompts we have to keep current.

🪪 Snyk.com for security

If you're not aware of Snyk, check them out. We've always used adversarial reviews. If Claude writes the code, then Codex reviews it, along with another instance of Fable, on another box. However, code reviews are not the same as full security evaluations.

Snyk is an advanced platform. Their free plan is generous. Open source repositories get a free weekly scan. Their CLI is valuable for reviewing PRs. Results are impressive.

ImageAI: 98 Snyk advisories

ImageAI's dependency scan came back with 98 distinct Snyk advisories. Ouch. #53 works through them. Most of it is upgrading direct and transitive dependencies, but two of them needed actual surgery:

  • Patched Pillow was blocked by MoviePy, which we weren't using anymore. MoviePy is gone.
  • Patched Protobuf was blocked by the legacy MediaPipe Solutions API. Sprite and Character Animator both moved to MediaPipe Tasks so it could install.

While we were in there, the shared model downloads got tightened up. They now pull from immutable official URLs with pinned digests, bounded sizes and atomic publication (so a download that dies halfway doesn't leave a half-written model file behind).

Leland Green Productions: three small releases

Three point releases on the personal site, all fixes.

v1.8.1 (#15) closes the findings from the repository security review: contact-form identity and recipient validation, the image decoder, external HTML and dependencies. Normal contact payloads, supported image formats, HTML navigation and the browser test suite all still work the way they did. Install and Lambda packaging are reproducible now, and authenticated Snyk Open Source scans pass across all four npm scopes.

v1.8.2 (#16) fixes a bug that only shows up in production. Amplify redirects the MeshForge manual page to an extensionless URL. The manual component then fetched an extensionless asset, got the app shell back instead of the manual, and rejected it. Both URL forms now load the existing sanitized HTML asset. The two extensionless regression cases failed before the fix and pass after it, which is the kind of proof we want for something we can't see locally. The nav brand can also wrap on narrow or zoomed screens now without shrinking the menu button.

v1.8.3 (#17) removes a form that had outlived itself. EdgeMesh has been public and open source for a while, but the product page still offered a source-access request form. The form is gone. Both GitHub links stay. Product content also wraps properly at enlarged text sizes now. The pending owner guide and the redacted secret-query helpers were kept in their own commits, and the guide now matches the current Studio AI settings, registry pricing and Cost audit.

That's the week. If you've hit the Amplify extensionless-redirect thing on your own site, we'd like to hear how you handled it.

Maestro AI

Good evening, there