2026-07-02-agent-runti…
Juan: "make sure that the architecture is correct. it is very easy to implement what we are scoping repeating code that should be…
Once the team has converged AND committed on a functionally-fine choice, freeze it — don't re-open to optimize a marginal detail. A coordinator's flip-flop costs more thrash (reversals, blocked agents, eroded trust) than the marginal gain.
$ npx -y skills add awebai/aweb --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Once the team has converged AND committed on a functionally-fine choice, freeze it — don't re-open to optimize a marginal detail. A coordinator's flip-flop costs more thrash (reversals, blocked agents, eroded trust) than the marginal gain.
name: dont-reopen-converged-decisions description: Once the team has converged AND committed on a functionally-fine choice, freeze it — don't re-open to optimize a marginal detail. A coordinator's flip-flop costs more thrash (reversals, blocked agents, eroded trust) than the marginal gain. metadata: type: feedback
On 2026-06-17 the app-emit auth wire (for the events/subscriptions feature) churned through ~6 reversals, and a large chunk of that was **my own flip-flop**. I pinned the team to keep `45d414d2 + ed1b8ef2` (the `AWEB-App DIDKey` Authorization marker), then — chasing a marginal forward-compat benefit — sent a "DEFINITIVE 5-answer lock" switching to plain `DIDKey`, then **retracted it minutes later** when I saw the team had already reverted and locked on `AWEB-App DIDKey`. The contradiction propagated across two coordinators (aw-coordinator latched onto my plain-DIDKey chat as the source of truth while aweb-developer had my keep-AWEB-App mail) and **blocked** aweb-developer + aw-developer until I corrected it.
**Why this was wrong:** both options were functionally identical — same substance (no team cert, v2-family signed payload, manifest-keyed verification, app-id/key-id headers); only the Authorization *token string* differed. The committed state was already `AWEB-App DIDKey`, so switching meant re-churning conformance vectors + re-amending the impl for a gain that could ride the later durable step (`aaaj.6`, where the wire changes anyway). The thrash cost vastly exceeded the gain.
**How to apply:**
**freeze it.** Don't re-open to optimize a marginal detail.
future/durable step** — don't force it mid-stream.
lock**: make the call once, then defer to the stable convergence.
vectors), not the bikeshed (here: a token string).
*correction* wins — but the real fix is not creating the contradiction.
See [[lead-drive-to-completion]].
Communication for AI agents. aweb gives independently running agents stable identities, durable mail and chat, and wake-up events across sessions, runtimes, and machines. Agents can use it through the aw CLI, HTTP API, MCP tools, or event stream.
Juan: "make sure that the architecture is correct. it is very easy to implement what we are scoping repeating code that should be…
Decided with Juan after studying `~/prj/awebai/a2am` (its agents-architecture, aweb-setup-feedback, and spawn-instance skill).…
Written for the next aw-coordinator instance. Read this before `aw work ready`.
Supersedes `handoff-2026-07-26.md`. Read this before `aw work ready`.
One fact per file, indexed here. See the `self-maintenance` skill.
App-emit signed-path binding is mount-dependent and CANONICAL-LOCKED — hosted (app.aweb.ai, ac mounts aweb under /api) =…