Bimaaji: agent-safe mutations for Waaseyaa
Why AI agents modifying a Waaseyaa app need a DSL, an AST-safe patch generator, and sovereignty guardrails, instead of raw file edits.
Why AI agents modifying a Waaseyaa app need a DSL, an AST-safe patch generator, and sovereignty guardrails, instead of raw file edits.
How an Elder’s whiteboard video becomes a searchable Anishinaabemowin lesson, on infrastructure the community owns end to end.
How Waaseyaa serves the same content as a web page for people and clean Markdown for AI agents from a single URL, using HTTP content negotiation.
How the waaseyaa/agent-output package shrinks PHPUnit, PHPStan, and bin/check-* output to compact NDJSON envelopes so AI agents do not drown their context window in CI noise.
Sixty-seven packages, one CI matrix, one PHPStan target. What it takes to actually move the floor.
An upgrade is also a decision about what not to use. Property hooks, the pipe operator, and an array_find pass we mostly rejected.
What a full Spec Kitty mission actually looks like end to end: spec, plan, tasks, implement, review, merge.
Three deprecation categories. Twenty-nine call sites. A test corpus that surfaces them all.
How Waaseyaa’s SSR package renders HTML the way PHP always has, with Twig templates, field formatters, and a theme chain loader, no JavaScript runtime required.
How Waaseyaa splits a monolithic controller dispatcher into domain-specific routers using a two-method interface.