Wisdom › Recycle bin

Soft-deleted items (127). Restore puts the item back; Permanently delete drops it from storage with no return path.

Title List Deleted Actions
AGT.66 probe WikiPages 2026-09-24T12:27:03.3758055+00:00
 | 
AGT.66 probe WikiPages 2026-09-24T12:26:28.0795839+00:00
 | 
AGT.66 probe WikiPages 2026-09-24T12:26:12.8692879+00:00
 | 
Anti-pattern #15 (additive over rename) inverts when code is fresh enough to have no callers yet. Within ~24 hours of shipping a wrong shape, rename/delete is cheap; past that window, additive wins. WikiPages 2026-09-24T11:21:24.0067514+00:00
 | 
When you add a way to WRITE something, re-ask every invariant that was only ever enforced over the declared file - a test that reads Parts.xml proves the shipped state, never the runtime one. WikiPages 2026-09-24T11:21:24.0032353+00:00
 | 
A declared mechanism is unproven until a SECOND instance adopts it; the first adoption is where the latent bug lives, not the design review. WikiPages 2026-09-24T11:21:23.9998199+00:00
 | 
When the proper fix is identified, DO IT - don't stop to offer a cheaper workaround as an alternative. Blast radius is not a reason to ask. WikiPages 2026-09-24T11:21:23.9963464+00:00
 | 
When extracting a feature into its own SPICE.Apps.* package, the App owns the substance (renderer/services + parts as an embedded manifest) but its MVC controller stays a thin shim in SPICE.Web WikiPages 2026-09-24T11:21:23.9924998+00:00
 | 
An instrument that must separate infra-error from subject-error sometimes needs the BAD output to land - suppressing it collapses two diagnoses into one useless \"nothing happened\". WikiPages 2026-09-24T11:21:23.9885696+00:00
 | 
A hosted service that spends LLM on boot must be DEFAULT-OFF behind a SettingScope flag, or every Dev/served-test/smoke boot hammers the gateway. WikiPages 2026-09-24T11:21:23.9847591+00:00
 | 
When unsure of the best solution, reach for the SharePoint on-prem mechanism — prefer the idiomatic better solution over a quick hack. WikiPages 2026-09-24T11:21:23.9812655+00:00
 | 
A collection bounded in COUNT is not bounded in SIZE; measure the composed artifact BY SECTION through the real DI before hypothesising about its inputs (the 17.6k-token research prompt was two wisdom topics, not search context). WikiPages 2026-09-24T11:21:23.9779997+00:00
 | 
Claude's role on SPICE is to BUILD THE CITY and COACH its agents — the city's divisions/agents do the missions. Don't do mission work yourself; bootstrap from known-good crews and have them build the rest. WikiPages 2026-09-24T11:21:23.9746873+00:00
 | 
A multi-phase agent workflow chains via the Phase <HandoffTo> element and HALTS on invalid OutputSchema — set OutputSchema=\"\" on intermediate (prose) phases and link them with <HandoffTo>. WikiPages 2026-09-24T11:21:23.9713600+00:00
 | 
Check Windows Available MBytes before dispatching builders; at <2 GB SQL LocalDB stalls (memory grants) and the PC pages WikiPages 2026-09-24T11:21:23.9679484+00:00
 | 
A reuse-first check must ask what MUTATION KINDS a subsystem performs, not just what operations it has - the real gap is often a missing primitive, and that reframes an ask-first call. WikiPages 2026-09-24T11:21:23.9644952+00:00
 | 
The per-cycle build+boot+smoke loop leaks orphaned MSBuild node-reuse workers; over a long multi-cycle session they pile up to GBs and slow the machine. Kill the tree, not just the port listener; sweep periodically. WikiPages 2026-09-24T11:21:23.9605060+00:00
 | 
Each worktree agent leaves a git fsmonitor daemon + GBs of bin/obj running; remove merged worktrees right after merging WikiPages 2026-09-24T11:21:23.9566343+00:00
 | 
Erik's stated core operating rhythm — IOODARI + progressive disclosure + a critic/gap/suggest pass AFTER retrospect WikiPages 2026-09-24T11:21:23.9529875+00:00
 | 
A single board is never evidence; read two that measure the same thing and audit where they disagree - that gap is where capability theatre lives. WikiPages 2026-09-24T11:21:23.9495241+00:00
 | 
User drives with terse signals ("ok"/"go"/"continue"/"okok"); each cycle ends with tests-pass + smoke-up + commit + one-line next-cycle recommendation WikiPages 2026-09-24T11:21:23.9459545+00:00
 | 
A grep for C# literals finds CANDIDATES, not violations - check consumers, divergence and reachability before extracting one into data. WikiPages 2026-09-24T11:21:23.9421908+00:00
 | 
The platform's intended data flow: silo per-dept raw gather, separate enrichment pass, cross-site read for research/comparison surfaces - shapes how new content types and the HubSite layer should be designed WikiPages 2026-09-24T11:21:23.9385879+00:00
 | 
Default to declaring in XML/data/XSLT; write C# only when truly necessary, and only for key engine seams WikiPages 2026-09-24T11:21:23.9344892+00:00
 | 
A SPICE Phase with no UsesSkill does not fail - it GUESSES via keyword scoring; silence reads as \"no preference\" when it usually means an undeclared one. WikiPages 2026-09-24T11:21:23.9309881+00:00
 | 
A test's cleanup against shared storage must delete only rows THIS process authored - not rows matching a key prefix, and not rows that merely aren't foreign WikiPages 2026-09-24T11:21:23.9275339+00:00
 | 
Several Singleton services inject Scoped IStorageProvider — fix by injecting IServiceScopeFactory WikiPages 2026-09-24T11:21:23.9237933+00:00
 | 
Gate prompt-injection at the untrusted SOURCE (the Echo stub / provider), not by content-in-input matching — the latter drops legitimate \"remember what the operator said\" memories WikiPages 2026-09-24T11:21:23.9199190+00:00
 | 
For term sets / vocabularies / reference data, download the industry-standard set from the internet instead of inventing values WikiPages 2026-09-24T11:21:23.9164531+00:00
 | 
Before deduplicating anything, find who COUNTS the duplicates - repetition is often the signal, and collapsing it silently starves a downstream threshold. WikiPages 2026-09-24T11:21:23.9126193+00:00
 | 
Prefer reusable, parameterized parts GENERATED dynamically over hardcoding parts in C# or hand-authoring N near-identical ones. WikiPages 2026-09-24T11:21:23.8974031+00:00
 | 
A deterministic outcome (delivery, a row that MUST land, a settlement) belongs to the ENGINE as a declared postcondition, never to the model's discretion to call a tool. WikiPages 2026-09-24T11:21:23.8717249+00:00
 | 
How to gather \"total context needed\" for a cycle fast — name the archetype, open one exemplar per layer (progressive disclosure), don't grep to rediscover the pattern WikiPages 2026-09-24T11:21:23.8683975+00:00
 | 
Every point where LLM output becomes system data needs a declared-shape gate that fails toward silence — the model proposes, the gate decides WikiPages 2026-09-24T11:21:23.8648717+00:00
 | 
Operator 2026-09-24 - repeated part sets (a radar, an intake) are generated from a small spec by XML/XSLT, not hand-written per instance WikiPages 2026-09-24T11:21:23.8615176+00:00
 | 
A served-surface check that greps for a string proves the string reached the DOM and NOTHING about whether a human can use the page. Take the screenshot - it caught two defects in one look that four curl checks had just passed. WikiPages 2026-09-24T11:21:23.8580467+00:00
 | 
A hook script branch is dead code unless the settings.json matcher lists that tool — spice-nudge's Agent/Task wisdom-injection branch never fired for ~6 weeks because the matcher omitted Agent|Task. WikiPages 2026-09-24T11:21:23.8550056+00:00
 | 
SessionStart hook output is capped (~10 KB, maybe only a ~2 KB preview reaches the model) - a hook must OFFER context, not paste it WikiPages 2026-09-24T11:21:23.8515918+00:00
 | 
When a cycle touches a shape with industry precedent (CRM, data flow, business rules, BPMN, addresses), one WebSearch/WebFetch pass before designing the XSD moves the work from invention to standard-borrowing. Cost: one Skill turn. Win: external cita WikiPages 2026-09-24T11:21:23.8481075+00:00
 | 
Documenting 'what does NOT carry over' alongside 'what works' is what makes an abstraction trustworthy. Bank the limit + resolution-path-candidates in the KB body, not in a side conversation. WikiPages 2026-09-24T11:21:23.8450737+00:00
 | 
A list item round-trips ONLY when the storage key is \"item:{id}\" AND the rendered row-Id equals that key suffix; the item: prefix is necessary but not sufficient WikiPages 2026-09-24T11:21:23.8419975+00:00
 | 
To make an LLM emit a schema-valid ProvisioningDelta (or any namespaced XSD output) in SPICE, the briefing must TEACH the target namespace + the closed op vocabulary + a concrete valid skeleton — prose schema rules alone don't work; show-don't-tell. WikiPages 2026-09-24T11:21:23.8387752+00:00
 | 
How to maintain memory: MEMORY.md is the always-loaded wiki index — keep it lean, push detail to topic files (progressive disclosure); consistent frontmatter + tags + Mermaid-for-structure, optimised for LLM retrieval (not tied to Obsidian) WikiPages 2026-09-24T11:21:23.8353236+00:00
 | 
An instrument that reports only FAILURES cannot tell 'every rule held' from 'no rule ran' - report coverage beside the verdict, and the coverage data is usually already computed and discarded. WikiPages 2026-09-24T11:21:23.8319395+00:00
 | 
Don't delegate structural C# (interface changes, new types, cross-cutting wiring) to subagents — keep that in main. WikiPages 2026-09-24T11:21:23.8285348+00:00
 | 
The MEMORY.md NOW line carries judgment (what is closed, what is next, what is hazardous); FACTS about a shipped cycle live in its plans/cycles.xml row, which is served, drawn and queryable offline. WikiPages 2026-09-24T11:21:23.8254395+00:00
 | 
An UNDECLARED context need must be OFFERED (a slot the agent pulls), never guessed at expensively by pasting a default bundle into every prompt - and measure the artifact by section before believing which block is the fat one. WikiPages 2026-09-24T11:21:23.8222655+00:00
 | 
Add a new DI dependency to a tool invoker / DI-constructed class as an OPTIONAL nullable ctor param with a fallback, so no existing caller or test helper breaks. WikiPages 2026-09-24T11:21:23.8189118+00:00
 | 
When extending a declarative shape, prefer optional fields/attributes orthogonal to existing ones over forking a second grammar. Criterion: can the existing one-of-bindings check accept the new branch without changing others? If yes, extend; if no, s WikiPages 2026-09-24T11:21:23.8156944+00:00
 | 
User wants aggressive multi-subagent parallelism by default; ramp up beyond two cycles when independent work is available. WikiPages 2026-09-24T11:21:23.8124665+00:00
 | 
Parse money/numeric USER input with InvariantCulture - ASP.NET form binding is culture-sensitive, so \"5.00\" became 500 (a 100x overcharge); only a served test through real form binding catches it WikiPages 2026-09-24T11:21:23.8091041+00:00
 | 
Repeatable template for adding a new part type — record / handler / XSD / impl / composition root / slot bridge / test / seed / smoke / commit WikiPages 2026-09-24T11:21:23.8051437+00:00
 | 
Close every Retrospect with a candid PM verdict — am I satisfied? — separating shipped from value-delivered, naming scope-vs-intent and what's owed WikiPages 2026-09-24T11:21:23.7891118+00:00
 | 
A cheap health endpoint answering fast is not evidence the expensive one works - and a duration that resembles your own timeout is not evidence it was your timeout. WikiPages 2026-09-24T11:21:23.7631591+00:00
 | 
When a served surface looks wrong, ask what the WRITE returned before theorising about the renderer - a field count settles in one call what a page-read guesses at for several. WikiPages 2026-09-24T11:21:23.7599077+00:00
 | 
Render the SPICE way via a framework projection base (XQuery→XSLT→HTML) + domain views as embedded .xslt data; GoF = Template Method + Strategy + Facade, NOT a Bridge (YAGNI). Never build HTML in C#. WikiPages 2026-09-24T11:21:23.7562550+00:00
 | 
Before designing a metric over \"signals we already own\", rank the candidates by whether a join key to the dimension exists - and check the flag is not an alias of another field. WikiPages 2026-09-24T11:21:23.7525934+00:00
 | 
When subagents hit a budget limit mid-cycle, partial work in their worktrees can be patched into main and finished from main context. Saves the cycle without waiting for budget reset. WikiPages 2026-09-24T11:21:23.7487224+00:00
 | 
When presenting options/choices, always evaluate and recommend the one best for the long-term future, not a neutral list. WikiPages 2026-09-24T11:21:23.7437061+00:00
 | 
When a new source must satisfy a lookup, resolve it at the POINT OF USE against the specific thing asked for, rather than adding it to the shared index everything else reads. WikiPages 2026-09-24T11:21:23.7138241+00:00
 | 
Before standing up a C# store (or a new ContentType) for any business record, check the BaaN/ERP modules — a purchase IS a Tf Invoice, an order IS a Td SalesOrder; reuse them WikiPages 2026-09-24T11:21:23.7101071+00:00
 | 
Two SAF-Site-Manifest.xml files exist; the engine reads via SAF.config's ManifestPath setting WikiPages 2026-09-24T11:21:23.7065950+00:00
 | 
Never do destructive in-place rewrites of critical un-backed-up files via a fragile script; use the Edit/Write tools or copy-first WikiPages 2026-09-24T11:21:23.7029196+00:00
 | 
Erik wants to SEE a visualization on screen each time work runs/ships - show a rendered visual (the game/explainer or a live board screenshot), not just text. WikiPages 2026-09-24T11:21:23.6993724+00:00
 | 
Live smoke (boot SPICE.Web, hit /about) catches XSD-validation failures that unit tests miss because tests construct part records in-memory bypassing the XML manifest path. WikiPages 2026-09-24T11:21:23.6960967+00:00
 | 
PRE-TRAINED COMPETENCE - the operator's name for this. Go ALL the way with the SharePoint on-prem XML stack, because every LLM already knows it - fidelity is pre-trained competence, and divergence is a teaching bill you pay on every future prompt. De WikiPages 2026-09-24T11:21:23.6924934+00:00
 | 
SPICE is the source of truth for this seat's memory and MO - My Site /sites/my-claude-code, briefing by stored queries, hooks sync WikiPages 2026-09-24T11:21:23.6887456+00:00
 | 
Namespace-only refactors are signposts toward a destination, not the destination. Label them explicitly so the roadmap stays trustworthy. WikiPages 2026-09-24T11:21:23.6852131+00:00
 | 
How to read "do whats best" / "ok" / "okok" responses from this user — they're delegating strategic calls AND expecting execution, not asking for confirmation. WikiPages 2026-09-24T11:21:23.6817278+00:00
 | 
Always end a unit of work by proactively suggesting next improvements once the operator's intent is understood. WikiPages 2026-09-24T11:21:23.6779007+00:00
 | 
A reasoning model can end a tool-loop turn with reasoning-only content (</think> then nothing) - the phase then \"succeeded\" with EMPTY output and schema validation PASSED it; never return an empty final silently, and never trust a validity flag tha WikiPages 2026-09-24T11:21:23.6742910+00:00
 | 
The Mode=ToolLoop LLM path is a SEPARATE seam from the router/single-shot path - a provider-layer fix to one does not reach the other; fix both. WikiPages 2026-09-24T11:21:23.6705175+00:00
 | 
SPICE represents structured data as ContentType + FieldDefinition + XSLT; YAML frontmatter is a Note-only quirk, not a tool for agent-authored content WikiPages 2026-09-24T11:21:23.6665399+00:00
 | 
The cycle-close tail is now a skill (/spice-close) and served-surface verification is now a crew agent (spice-verify) — use them instead of doing the ~10 close steps by hand. WikiPages 2026-09-24T11:21:23.6630117+00:00
 | 
A ledger/Note edit to plans/cycles.xml is an XML edit — validate well-formedness before committing; a literal < in a Note silently breaks //Cycle XQuery and fails 3 tests (V2516 XQuery x2 + Board.Atlas). WikiPages 2026-09-24T11:21:23.6582657+00:00
 | 
Verify a provisioner-written file (manifest/Parts.xml) by STRUCTURE (element-set diff + isolated single-op diff), not a raw git line-diff WikiPages 2026-09-24T11:21:23.6537070+00:00
 | 
A framework default leaned on at a trust boundary is an assumption, not a fact - measure it, keep the measurement as a permanent test, and let the result set the severity you claim. WikiPages 2026-09-24T11:21:23.6489166+00:00
 | 
A rolling window is the right lens for events and the wrong lens for standing conditions - windowing an unmet obligation makes the metric improve as the obligation ages. WikiPages 2026-09-24T11:21:23.6446313+00:00
 | 
File architectural wisdom/decisions as KB.* KnowledgeArticle parts in SPICE.Web/Config/Parts.xml — the platform's native typed-knowledge surface — not as scratch markdown. WikiPages 2026-09-24T11:21:23.6406149+00:00
 | 
In a Workflow, don't force a JSON `schema` on the constrained SPICE crew agents (spice-impact-scout etc.) - they do the work but skip StructuredOutput. Let crew return prose; one general synthesizer emits the schema. WikiPages 2026-09-24T11:21:23.6365210+00:00
 | 
Everything is the SP-on-prem XML/XSD/XSLT DNA — not JSON; reuse the existing part; don't create a NEW part/thing unless needed AND you ask first WikiPages 2026-09-24T11:21:23.6317388+00:00
 | 
XML is the internal/pipeline contract AND the differentiator (schema-bearing = self-describing outside without explanation); JSON only at the outside boundary when needed; convert to other forms via an XSLT adaptor, not hand-rolled serialization WikiPages 2026-09-24T11:21:23.6267240+00:00
 | 
In an XSLT <style> block, never put literal <tags> in a CSS comment — the XML parser reads them as start tags and breaks XSLT compilation (a 500 / XslLoadException). WikiPages 2026-09-24T11:21:23.6227346+00:00
 | 
Anti-pattern #1: Don't redeclare WikiPages 2026-09-24T11:21:23.6186367+00:00
 | 
Anti-pattern #2: Don't add a parallel rendering stack WikiPages 2026-09-24T11:21:23.5942664+00:00
 | 
Anti-pattern #3: Don't write to storage from agents WikiPages 2026-09-24T11:21:23.5904839+00:00
 | 
Anti-pattern #4: Don't hardcode blueprint or phase names in C# WikiPages 2026-09-24T11:21:23.5865179+00:00
 | 
Anti-pattern #5: Don't inject `IStorageProvider` into a Singleton WikiPages 2026-09-24T11:21:23.5823705+00:00
 | 
Anti-pattern #6: Don't auto-apply deltas WikiPages 2026-09-24T11:21:23.5785345+00:00
 | 
Anti-pattern #7: Don't mutate `Parts.xml` / `SAF-Site-Manifest.xml` from random places WikiPages 2026-09-24T11:21:23.5748181+00:00
 | 
Anti-pattern #8: Don't bypass the policy engine WikiPages 2026-09-24T11:21:23.5712828+00:00
 | 
Anti-pattern #9: Don't put new external integrations in `SPICE.Web/Program.cs` WikiPages 2026-09-24T11:21:23.5679839+00:00
 | 
Anti-pattern #10: Don't put engine code in `SPICE.Web` WikiPages 2026-09-24T11:21:23.5650183+00:00
 | 
Anti-pattern #11: Don't write to storage without going through the same validation pipeline as the agent path WikiPages 2026-09-24T11:21:23.5619929+00:00
 | 
Anti-pattern #12: Don't escalate every analyzer warning to an error at once WikiPages 2026-09-24T11:21:23.5589430+00:00
 | 
Anti-pattern #13: Don't declare a manifest shape without a startup-time activator WikiPages 2026-09-24T11:21:23.5557943+00:00
 | 
Anti-pattern #14: Don't iterate shared state without per-item try/catch when one bad item shouldn't kill the rest WikiPages 2026-09-24T11:21:23.5526319+00:00
 | 
Anti-pattern #15: Don't rename when you can ship additively WikiPages 2026-09-24T11:21:23.5492731+00:00
 | 
Anti-pattern #16: Don't widen an Apps-Core-only invariant silently WikiPages 2026-09-24T11:21:23.5460787+00:00
 | 
Anti-pattern #17: Don't ship a write path without a read path WikiPages 2026-09-24T11:21:23.5427545+00:00
 | 
Anti-pattern #18: Don't build an inbound connector to a system the platform can model natively WikiPages 2026-09-24T11:21:23.5394030+00:00
 | 
Anti-pattern #19: Don't keep a fresh C# pattern when XML would express it within its rename window WikiPages 2026-09-24T11:21:23.5360968+00:00
 | 
Anti-pattern #20: Don't let plan-slot drift go un-tracked WikiPages 2026-09-24T11:21:23.5328963+00:00
 | 
Anti-pattern #21: Don't confuse hiding the affordance with gating the action WikiPages 2026-09-24T11:21:23.5295003+00:00
 | 
Anti-pattern #22: Don't let a per-item try/catch swallow a total failure WikiPages 2026-09-24T11:21:23.5258073+00:00
 | 
Anti-pattern #23: Don't assert the model when the served surface is what ships WikiPages 2026-09-24T11:21:23.5099540+00:00
 | 
Anti-pattern #24: Don't let a cached/seeded projection mask its source part WikiPages 2026-09-24T11:21:23.4824538+00:00
 | 
Anti-pattern #25: Don't reuse half a seam — verify the reader resolves what the writer produced WikiPages 2026-09-24T11:21:23.4791442+00:00
 | 
Anti-pattern #26: Boot-clean is not endpoint-clean — smoke the served endpoints under Development, not just boot WikiPages 2026-09-24T11:21:23.4755694+00:00
 | 
Anti-pattern #27: Don't pin a test to where a part is authored — assert the resolved spine, not the source file WikiPages 2026-09-24T11:21:23.4722769+00:00
 | 
Anti-pattern #28: When one endpoint hangs but its sibling works, suspect the shared pipeline — a cross-cutting middleware can silently break a served endpoint whose own code looks correct WikiPages 2026-09-24T11:21:23.4685881+00:00
 | 
Anti-pattern #29: A long session's working tree silently accumulates tool-corrupted XML — diff core spine files with `--ignore-all-space` before you commit or land, and treat the committed HEAD as canonical WikiPages 2026-09-24T11:21:23.4651132+00:00
 | 
Anti-pattern #30: Don't let an evaluation or observation instrument blame the subject for its own apparatus faults — separate infra-error from subject-error, and never let activity inflate the score WikiPages 2026-09-24T11:21:23.4615026+00:00
 | 
Anti-pattern #31: Served-verify must be a GATE, not a ritual — a model-proving test suite is capability-theatre-shaped by default; make the served round-trip an automated test, not a step someone remembers WikiPages 2026-09-24T11:21:23.4581802+00:00
 | 
Anti-pattern #32: A degrade path must cover every sibling path, and a monitor must not depend on what it watches WikiPages 2026-09-24T11:21:23.4548418+00:00
 | 
Anti-pattern #33: A dead-code backlog item is a HYPOTHESIS, not a fact — audit reachability adversarially before you delete, and build-gate cascading deletions WikiPages 2026-09-24T11:21:23.4514401+00:00
 | 
Anti-pattern #34: Don't prove a triggered path with a hand-built manual call — fire the real trigger WikiPages 2026-09-24T11:21:23.4481029+00:00
 | 
Anti-pattern #35: Generation honesty: an LLM path isn't served until its output is proven REAL — not the Echo stub, not an empty final WikiPages 2026-09-24T11:21:23.4446485+00:00
 | 
Anti-pattern #36: Orthogonal outcomes are reported independently — never nest one flag's report inside another's branch WikiPages 2026-09-24T11:21:23.4415892+00:00
 | 
Anti-pattern #37: Teardown must reach quiescence, not just request it — and it may only delete what it authored WikiPages 2026-09-24T11:21:23.4384112+00:00
 | 
Anti-pattern #38: A rolling window is right for events and wrong for a standing condition — window an obligation and the metric IMPROVES as the obligation ages WikiPages 2026-09-24T11:21:23.4350212+00:00
 | 
Anti-pattern #39: Adding a WRITE path re-opens every invariant that was safe only because nothing could write it — and a test over the declared FILE proves shipped state, never runtime state WikiPages 2026-09-24T11:21:23.4317621+00:00
 | 
Anti-pattern #40: A data-in-code smell is a HYPOTHESIS, not a finding — check CONSUMERS, DIVERGENCE and REACHABILITY before refactoring a literal into data WikiPages 2026-09-24T11:21:23.4285938+00:00
 | 
Anti-pattern #41: A green build is not evidence that a dependency is wired WikiPages 2026-09-24T11:21:23.4252479+00:00
 | 
Anti-pattern #42: A guard you have not watched fail is not a guard — plant both failure branches before you trust it WikiPages 2026-09-24T11:21:23.4217759+00:00
 | 
Anti-pattern #43: A plan is a hypothesis too — price each unit at its own seam, and write the correction back into the plan WikiPages 2026-09-24T11:21:23.4178438+00:00
 | 
Anti-pattern #44: When a served surface looks wrong, probe the WRITE path before theorising about the renderer WikiPages 2026-09-24T11:21:23.3923692+00:00
 |