Use when adding or changing an Intelligence Bar tool that writes anything (create, update, send, schedule) — every write goes through the confirm trust boundary and must register in write-gates.js.
Install
npx skillscat add wavespestcontrolfl/waves-customer-portal/ib-write-tools Install via the SkillsCat registry.
SKILL.md
Intelligence Bar write tools — the trust boundary
The trust boundary is unconditional (GATE_IB_UI_CONFIRM is retired and
ignored); the emergency stop is IB_WRITES_DISABLED=true. An IB write tool
never executes from the model loop. The flow is:
- The tool call returns a preview (no side effects).
- The route persists a pending action in
ib_pending_actions
(actor-bound, 10-minute expiry, payload hash, single-use). - The client renders a Confirm/Cancel card (
PendingActionsCard). - Only the operator's click commits, via
/confirm-action— never a model
tool; the pending id is never model-visible.
Adding a new write tool — checklist
- Implement the tool in the context module
(server/services/intelligence-bar/{context}-tools.js) following theTOOLS+executeToolpattern (seeserver/services/intelligence-bar/README.md). - Register it in
server/services/intelligence-bar/write-gates.js.
A write tool missing from the gate set executes directly from the model
loop — that's a trust-boundary breach, not a style nit. - Update the mirror test
server/tests/intelligence-bar-write-gate-contract.test.js— it exists to
make step 2 unforgettable; it should fail until the registration is right. - The preview must show the operator everything the commit will do
(recipient, amount, date — no hidden fields). - Tech-portal contexts stay read-only. Never add a write tool to
tech-tools.