{"schemaVersion":"1.0.0","recordKind":"sanitised-agentic-coding-bug-index","indexedOn":"2026-10-09","scope":"Historical defects and preventive patterns recovered from reviewed work, plus current failures caught by acceptance checks. Each record qualifies its observation and repair evidence; production health requires separate verification.","bugs":[{"id":"BUG-0001","title":"Stale parent and orphan children consume concurrency","project":"Post-Once","category":"Concurrency","trigger":"A parent attempt dies while durable children retain running state.","symptom":"New work stays capacity-blocked after the real worker is gone.","rootCause":"Occupancy follows raw workflow status rather than canonical live attempts and leases.","consequence":"The scheduler can stop admitting useful work indefinitely.","repair":"Reconcile attempts, leases and effects; recover only proven dead, effect-free targets.","regressionCheck":"Recover orphan children; reject live or effect-ambiguous recovery; verify zero unrelated changes.","status":"Historical repair reported","evidence":{"id":"BEV-0001","sourceId":"august-stale-lease-recovery","basis":"Dated acceptance report","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/blob/main/docs/MULTIWEEK_REVIEW.md","scope":"9 August reported recovery and natural-cycle checks; not a fresh host observation."},"skillId":"stale-lease-recovery-and-single-flight","nextAcceptance":"Read current occupancy and effect receipts before recovery.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0001","relatedSkillUrl":"https://agents.proofandstate.com/products/stale-lease-recovery-and-single-flight"},{"id":"BUG-0002","title":"Time-bucket idempotency permits overlapping monitors","project":"Post-Once","category":"Concurrency","trigger":"Equivalent periodic work enters a later time bucket while a prior attempt is live.","symptom":"Two equivalent monitors occupy the same lane.","rootCause":"Time-bucket deduplication lacks a separate live-equivalence admission gate.","consequence":"Duplicate work competes for capacity and may repeat consequences.","repair":"Add single flight keyed by workflow, lane, version and canonical live state.","regressionCheck":"Equivalent concurrent ingress admits once; distinct lane/version admits; later expiry permits admission.","status":"Historical repair reported","evidence":{"id":"BEV-0002","sourceId":"august-stale-lease-recovery","basis":"Dated acceptance report","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/blob/main/docs/MULTIWEEK_REVIEW.md","scope":"Recovered historical single-flight procedure; no current scheduler mutation executed."},"skillId":"stale-lease-recovery-and-single-flight","nextAcceptance":"Run bounded concurrent ingress acceptance on the deployed admission path.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0002","relatedSkillUrl":"https://agents.proofandstate.com/products/stale-lease-recovery-and-single-flight"},{"id":"BUG-0003","title":"Publication evidence becomes a measured baseline","project":"Post-Once","category":"Measurement","trigger":"A predecessor has verified publication but no comparable performance snapshot.","symptom":"A challenger is admitted before a measurable baseline exists.","rootCause":"Effect equivalence and measurement maturity are collapsed into one gate.","consequence":"Learning and experiment claims become unsupported.","repair":"Require publication equivalence, comparable measurement and challenger spacing independently.","regressionCheck":"Published but unmeasured predecessor defers; mature comparable evidence permits admission.","status":"Historical repair reported","evidence":{"id":"BEV-0003","sourceId":"september-learning-gates","basis":"Dated acceptance report","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/blob/main/docs/MULTIWEEK_REVIEW.md","scope":"13–14 September observations, not current campaign performance."},"skillId":"measurement-gated-learning-admission","nextAcceptance":"Read fresh metrics and test missing versus mature snapshots.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0003","relatedSkillUrl":"https://agents.proofandstate.com/products/measurement-gated-learning-admission"},{"id":"BUG-0004","title":"Unavailable metrics become zero performance","project":"Cross-project","category":"Measurement","trigger":"Consent, provider availability or low exposure prevents measurement.","symptom":"An agent interprets empty evidence as zero activity.","rootCause":"Missing, blocked, immature and measured-zero states are collapsed.","consequence":"False business conclusions drive unjustified optimisation.","repair":"Preserve explicit unavailable, immature and measured-zero states.","regressionCheck":"Empty connector proves connection only; zero requires an observed measured interval.","status":"Preventive failure mode","evidence":{"id":"BEV-0004","sourceId":"september-learning-gates","basis":"Reviewed preventive pattern","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/blob/main/docs/MULTIWEEK_REVIEW.md","scope":"Grounded in recovered empty/unavailable evidence; not a newly reproduced defect."},"skillId":"measurement-gated-learning-admission","nextAcceptance":"Check current unavailable-state rendering and reporting.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0004","relatedSkillUrl":"https://agents.proofandstate.com/products/measurement-gated-learning-admission"},{"id":"BUG-0005","title":"Guide interaction leaves a partial no-snapshot dashboard","project":"Post-Once console","category":"UI and contracts","trigger":"A streamed interaction changes dashboard state during snapshot updates.","symptom":"Attention information disappears and sections partly render no-snapshot.","rootCause":"The recovered repair concerns inconsistent snapshot projection; complete current causality is not established.","consequence":"Operators cannot distinguish absent evidence from operational health.","repair":"Keep snapshot semantics and complete rendering consistent across stream transitions.","regressionCheck":"Exercise Guide during updates; verify attention counts, all sections and missing-snapshot semantics.","status":"Historical repair reported","evidence":{"id":"BEV-0005","sourceId":"postonce-executable-console-contracts","basis":"Dated acceptance report","sourceUrl":"https://github.com/AyobamiH/post-once/blob/530825de7b7f0200ed2244baf8e5ab63a6e8fc58/contracts/post-once-console-semantics.json","scope":"Recovered October dashboard repair; not independently repeated live here."},"skillId":"executable-operating-documentation","nextAcceptance":"Reproduce the interaction at the exact deployed console revision.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0005","relatedSkillUrl":"https://agents.proofandstate.com/products/executable-operating-documentation"},{"id":"BUG-0006","title":"Expanded document JSON exceeds the response budget","project":"Google document retrieval","category":"Tool transport","trigger":"A large document expands into a verbose serialised tool response.","symptom":"Read fails at the response-size boundary although the document is accessible.","rootCause":"An unnecessarily expanded representation exceeds the response budget.","consequence":"Context recovery stalls or the document is falsely reported missing.","repair":"Use compact native reads or bounded windows with explicit coverage.","regressionCheck":"Read a representative large document compactly and verify intended content and bounds.","status":"Historical repair reported","evidence":{"id":"BEV-0006","sourceId":"october-google-read-recovery","basis":"Dated acceptance report","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/blob/main/docs/MULTIWEEK_REVIEW.md","scope":"Recovered October read recovery; limits depend on tool and representation."},"skillId":"problem-centred-institutional-memory","nextAcceptance":"Validate the present connector without assuming the old limit is universal.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0006","relatedSkillUrl":"https://agents.proofandstate.com/products/problem-centred-institutional-memory"},{"id":"BUG-0007","title":"First client theme differs from server HTML","project":"Tail Wagging","category":"UI and contracts","trigger":"A dark-theme route hydrates server light-theme markup.","symptom":"React reports a hydration mismatch or replaces content.","rootCause":"Provider initial state differs between server and first client render; delays do not fix the contract.","consequence":"Rendering is unreliable and suppressed warnings conceal the cause.","repair":"Match server and first-client theme state; apply browser preferences after hydration.","regressionCheck":"Check light/dark mobile and desktop first renders and unexpected mismatch warnings.","status":"Implementation reviewed","evidence":{"id":"BEV-0007","sourceId":"tail-react-hydration-repair","basis":"Public implementation and dated report","sourceUrl":"https://github.com/AyobamiH/wagging-web-wins/commit/2892893dbed4f76980256b25e8fb1be91f341b0f","scope":"Application-specific repair and reported browser checks; other providers need separate acceptance."},"skillId":"react-hydration-contract-repair","nextAcceptance":"Run deployed-route hydration checks across supported browser conditions.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0007","relatedSkillUrl":"https://agents.proofandstate.com/products/react-hydration-contract-repair"},{"id":"BUG-0008","title":"App metadata substitutes for customer permission","project":"DoneState","category":"Authority and lifecycle","trigger":"Installation-token metadata decides customer write admission.","symptom":"Valid work is rejected or App capability stands in for customer writer authority.","rootCause":"Installation capability and authenticated customer permission are treated as one principal.","consequence":"Objective admission is incorrect or exceeds customer authority.","repair":"Check identity-bound customer permission separately from selected App capability.","regressionCheck":"Test reader/writer customers, unselected repositories and missing App permissions independently.","status":"Implementation reviewed","evidence":{"id":"BEV-0008","sourceId":"donestate-dual-principal-admission","basis":"Public implementation and project state","sourceUrl":"https://github.com/AyobamiH/donestate/blob/f5a00d20d70a41827911d8fb148590891bbaad42/docs/PROJECT-STATE.md","scope":"Merged/deployed repair recorded; current customer role is read and no fresh write objective established."},"skillId":"dual-principal-github-app-admission","nextAcceptance":"Complete a fresh permitted customer journey.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0008","relatedSkillUrl":"https://agents.proofandstate.com/products/dual-principal-github-app-admission"},{"id":"BUG-0009","title":"Admitted writes recreate state after account deletion","project":"DoneState","category":"Authority and lifecycle","trigger":"A request admitted before deletion completes after cleanup.","symptom":"Registry or credential state reappears.","rootCause":"Session rejection does not fence already-admitted durable writes.","consequence":"Erasure is incomplete under concurrency.","repair":"Fence stale writes at registry and credential destinations using deletion/generation state.","regressionCheck":"Pause admitted work, erase, resume, and verify no indexed state or credential resurrection.","status":"Implementation reviewed","evidence":{"id":"BEV-0009","sourceId":"donestate-account-erasure-fences","basis":"Public scoped acceptance evidence","sourceUrl":"https://github.com/AyobamiH/donestate/blob/f5a00d20d70a41827911d8fb148590891bbaad42/evidence/account-deletion-20261003/production-fence.json","scope":"Synthetic write-race acceptance is separate from real account cleanup and external revocation."},"skillId":"account-erasure-with-write-fencing","nextAcceptance":"Revalidate indexed destinations and each actual deletion; track external revocation separately.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0009","relatedSkillUrl":"https://agents.proofandstate.com/products/account-erasure-with-write-fencing"},{"id":"BUG-0010","title":"Duplicate-payment early return loses outcome evidence","project":"Tail Wagging","category":"Durability","trigger":"Fulfilment succeeds, evidence fails, then the valid event is redelivered.","symptom":"A duplicate is acknowledged without repairing the missing outcome.","rootCause":"Fulfilment idempotency short-circuits independently incomplete evidence.","consequence":"Successful paid work remains absent from the outcome ledger.","repair":"Reconcile evidence independently of already-completed fulfilment.","regressionCheck":"Fail evidence once, replay, and verify one fulfilment plus one recovered durable outcome.","status":"Implementation reviewed","evidence":{"id":"BEV-0010","sourceId":"tail-business-outcome-boundaries","basis":"Public implementation and dated audit","sourceUrl":"https://github.com/AyobamiH/wagging-web-wins/blob/cd7c7be53c5941fb8fb4943dd6eec5dabd7ea884/worker/business-api.js","scope":"Source contains reconciliation; complete production fault injection remains separate."},"skillId":"durable-business-outcome-reconciliation","nextAcceptance":"Inject controlled evidence failure and read unchanged customer effect counts.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0010","relatedSkillUrl":"https://agents.proofandstate.com/products/durable-business-outcome-reconciliation"},{"id":"BUG-0011","title":"Cursor advances before uncorrelated evidence is durable","project":"Post-Once","category":"Durability","trigger":"An outcome precedes publication evidence and holding persistence fails or fills.","symptom":"The source event can be skipped after cursor acknowledgement.","rootCause":"Acknowledgement precedes successful durable holding.","consequence":"Delayed attribution is permanently lost.","repair":"Persist validated holding before advancing the cursor; retain progress on failure.","regressionCheck":"Inject full storage and persistence failure; verify cursor remains before the event, then recover fairly.","status":"Preventive failure mode","evidence":{"id":"BEV-0011","sourceId":"postonce-durable-outcome-recovery","basis":"Public implementation review","sourceUrl":"https://github.com/AyobamiH/post-once/blob/530825de7b7f0200ed2244baf8e5ab63a6e8fc58/src/ocpf_post/outcome_late_recovery.py","scope":"Implementation protects this failure mode; not every production crash path was exercised."},"skillId":"durable-business-outcome-reconciliation","nextAcceptance":"Run current crash, capacity and restart acceptance with cursor readback.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0011","relatedSkillUrl":"https://agents.proofandstate.com/products/durable-business-outcome-reconciliation"},{"id":"BUG-0012","title":"Payment signature becomes campaign provenance","project":"Tail Wagging","category":"Authority and lifecycle","trigger":"A valid payment contains caller-supplied campaign labels.","symptom":"Unsigned labels enter attribution as authenticated source identity.","rootCause":"Payment authenticity is incorrectly extended to unsigned provenance fields.","consequence":"Spoofed attribution corrupts business reporting and learning.","repair":"Validate signed or source-owned attribution separately from payment evidence.","regressionCheck":"Valid payment with unsigned labels stays paid but unattributed; trusted provenance can correlate independently.","status":"Implementation reviewed","evidence":{"id":"BEV-0012","sourceId":"tail-business-outcome-boundaries","basis":"Public implementation and dated audit","sourceUrl":"https://github.com/AyobamiH/wagging-web-wins/blob/cd7c7be53c5941fb8fb4943dd6eec5dabd7ea884/worker/business-api.js","scope":"Signed attribution is present; descriptive correlation does not establish causation."},"skillId":"durable-business-outcome-reconciliation","nextAcceptance":"Check forged, absent and valid attribution at the deployed boundary.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0012","relatedSkillUrl":"https://agents.proofandstate.com/products/durable-business-outcome-reconciliation"},{"id":"BUG-0013","title":"Omitted services produce schema-valid numeric filler","project":"One Click","category":"UI and contracts","trigger":"A minimal brief omits services or supplies an empty list.","symptom":"The handoff passes schema with meaningless numeric service filler.","rootCause":"Optional-input fallback preserves shape without useful output semantics.","consequence":"A successful response cannot support the intended website handoff.","repair":"Handle omitted and empty inputs deliberately; assert meaningful output content.","regressionCheck":"Check both omitted and empty services through the real public journey.","status":"Candidate fix open","evidence":{"id":"BEV-0013","sourceId":"oneclick-minimal-brief-repair","basis":"Public candidate patch","sourceUrl":"https://github.com/AyobamiH/oneclick-chatgpt-plugin/pull/8","scope":"PR 8 open at reviewed head dd72e2d; patch is not deployment or clean-account acceptance."},"skillId":"staged-mcp-plugin-activation","nextAcceptance":"Recheck merge/deployment and run fresh omitted/empty-input customer acceptance.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0013","relatedSkillUrl":"https://agents.proofandstate.com/products/staged-mcp-plugin-activation"},{"id":"BUG-0014","title":"External readers claim a closed-world boundary","project":"OpsTruth","category":"UI and contracts","trigger":"A tool reads GitHub entities while claiming closed-world annotations.","symptom":"Activation metadata misdescribes actual behaviour.","rootCause":"Read-only is confused with no external-world interaction.","consequence":"Provider activation and agent interpretation rely on inaccurate metadata.","repair":"Annotate external readers accurately and retain compatibility checks for local validators.","regressionCheck":"Inspect actual tools/list; separate external readers and local validators; retain version checks.","status":"Implementation reviewed","evidence":{"id":"BEV-0014","sourceId":"opstruth-activation-privacy-repair","basis":"Public merged repair","sourceUrl":"https://github.com/AyobamiH/opstruth-chatgpt-plugin/pull/37","scope":"Recorded merge/deployment and scans; provider publication and clean-account acceptance remain separate."},"skillId":"staged-mcp-plugin-activation","nextAcceptance":"Verify production discovery, conversational routing and settled publication separately.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0014","relatedSkillUrl":"https://agents.proofandstate.com/products/staged-mcp-plugin-activation"},{"id":"BUG-0015","title":"Analytics helper mismatches SQL and sampling semantics","project":"OpsTruth","category":"Measurement","trigger":"Telemetry is queried through legacy Workers Analytics Engine SQL.","symptom":"Request/parsing errors or unweighted aggregates misstate outcomes.","rootCause":"Request format, response parsing and explicit legacy sample weighting are mismatched.","consequence":"Transport success or volume becomes a false usage or demand claim.","repair":"Use actual raw-SQL and response contracts, weighting and transport/tool outcome separation.","regressionCheck":"Validate real response, weighted aggregates and HTTP-success/tool-failure separation.","status":"Implementation reviewed","evidence":{"id":"BEV-0015","sourceId":"opstruth-analytics-query-repair","basis":"Public merged repair","sourceUrl":"https://github.com/AyobamiH/opstruth-chatgpt-plugin/commit/65b6c619423858711a3d10748c6337cea78c6388","scope":"Helper repair established; historical telemetry includes owner/test traffic without user/cause markers."},"skillId":"consent-aware-plugin-measurement","nextAcceptance":"Revalidate endpoint semantics and report sampling and identity limits.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0015","relatedSkillUrl":"https://agents.proofandstate.com/products/consent-aware-plugin-measurement"},{"id":"BUG-0016","title":"Runbook warnings and dashboard fields drift","project":"Post-Once console","category":"UI and contracts","trigger":"Docs, warnings and projections are maintained independently.","symptom":"Unknown evidence appears healthy or automatic work appears manual.","rootCause":"Units, ownership and recovery semantics lack a shared executable contract.","consequence":"Operators take incorrect actions or accept unsupported health.","repair":"Generate references/examples from versioned canonical field and warning contracts.","regressionCheck":"Check warning semantics, units, missing values and projection parity against fixtures.","status":"Implementation reviewed","evidence":{"id":"BEV-0016","sourceId":"postonce-executable-console-contracts","basis":"Public implementation and dated report","sourceUrl":"https://github.com/AyobamiH/post-once/blob/530825de7b7f0200ed2244baf8e5ab63a6e8fc58/contracts/post-once-console-semantics.json","scope":"Contracts and saved acceptance reviewed; console fixture speed is not provider throughput."},"skillId":"executable-operating-documentation","nextAcceptance":"Check deployed UI, generated docs and contract version together.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0016","relatedSkillUrl":"https://agents.proofandstate.com/products/executable-operating-documentation"},{"id":"BUG-0017","title":"Stale provider list contradicts settled submission detail","project":"OpsTruth provider submission","category":"Tool transport","trigger":"The list still says not submitted after submission of the same draft.","symptom":"List and settled detail disagree about in-review state.","rootCause":"State propagation is a candidate explanation; provider internals were not established.","consequence":"An agent may retry an already completed consequential action.","repair":"Read same-draft settled detail and action receipt before deciding on a retry.","regressionCheck":"Stale list plus settled in-review detail must trigger readback rather than duplicate submission.","status":"Cause unresolved","evidence":{"id":"BEV-0017","sourceId":"opstruth-same-draft-submission","basis":"Dated observed state reconciliation","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/blob/main/docs/LATEST_WORK_REVIEW.md","scope":"Settled detail resolved the conflict; no duplicate retry occurred and root cause is unproven."},"skillId":"state-transition-evidence-contract","nextAcceptance":"Retain exact draft/action locators and verify settled state before retry.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0017","relatedSkillUrl":"https://agents.proofandstate.com/products/state-transition-evidence-contract"},{"id":"BUG-0018","title":"Agent declares completion from a lower evidence layer","project":"Cross-project","category":"Evidence","trigger":"The highest result is a test, HTTP success, owner demo or merge.","symptom":"Agent reports deployed or customer-complete without matching evidence.","rootCause":"Implementation, transport, release, publication and customer outcome become one done state.","consequence":"Later work resumes from an unsupported assumption.","repair":"Record highest evidenced transition with revision, environment, principal and limits.","regressionCheck":"Merged without deployment stays merged; owner success without fresh customer journey stays owner-scoped.","status":"Preventive failure mode","evidence":{"id":"BEV-0018","sourceId":"multiweek-evidence-reconciliation","basis":"Reviewed preventive pattern","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/blob/main/docs/LATEST_WORK_REVIEW.md","scope":"Cross-project continuation pattern; not a newly reproduced defect or proof every agent made the error."},"skillId":"state-transition-evidence-contract","nextAcceptance":"Collect the missing deployment, provider or customer evidence for the claimed outcome.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0018","relatedSkillUrl":"https://agents.proofandstate.com/products/state-transition-evidence-contract"},{"id":"BUG-0019","title":"Unsupported API write falls through to HTML success","project":"Agent Shop","category":"UI and contracts","trigger":"An agent sends POST, PUT, PATCH or DELETE to a GET-only discovery endpoint.","symptom":"The framework returns HTML with HTTP 200 instead of rejecting the unsupported method.","rootCause":"A missing method handler falls through to the application renderer; declaring GET alone does not enforce HTTP method rejection.","consequence":"Agent clients can mistake a successful HTTP response for an accepted write or handoff.","repair":"Declare explicit write-method handlers returning 405 with Allow: GET on each read-only JSON route.","regressionCheck":"Check POST, PUT, PATCH and DELETE against registry, integration brief and coding bug JSON: all twelve pairs must return 405 and Allow: GET.","status":"Implementation reviewed","evidence":{"id":"BEV-0019","sourceId":"agent-shop-http-method-fallback","basis":"Public implementation and dated report","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/pull/26","scope":"CI run 37901366579 observed POST returning 200. The repair then passed all twelve method/surface checks on the local Node preview on 9 October. Production deployment remains unverified."},"skillId":"machine-discovery-surface-engineering","nextAcceptance":"Verify method rejection on the exact deployed origin after release.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0019","relatedSkillUrl":"https://agents.proofandstate.com/products/machine-discovery-surface-engineering"},{"id":"BUG-0020","title":"Long metadata expands catalogue beyond phone width","project":"Agent Shop","category":"UI and contracts","trigger":"The catalogue renders long source paths inside nested grids at a 390-pixel phone viewport.","symptom":"The shop has horizontal page overflow despite metadata text using truncation.","rootCause":"Grid tracks and cards retain automatic minimum content sizing; long metadata can impose its intrinsic width before truncation applies.","consequence":"Agent operators cannot inspect the complete catalogue within the phone viewport.","repair":"Use explicit single-column mobile tracks and minmax(0,1fr), and allow catalogue content and cards to shrink with min-w-0.","regressionCheck":"At phone width, document scrollWidth must not exceed window innerWidth on shop, controls and bug routes; preserve desktop grids and source-path truncation.","status":"Implementation reviewed","evidence":{"id":"BEV-0020","sourceId":"agent-shop-mobile-grid-overflow","basis":"Public implementation and dated report","sourceUrl":"https://github.com/AyobamiH/agent-shop-products/pull/26","scope":"CI run 37902732121 observed shop overflow at 390 pixels. The grid/card sizing repair passed full browser acceptance in run 37903191137 at head 79b1d784. Production deployment remains unverified."},"skillId":"live-dashboard-update-verification","nextAcceptance":"Verify phone-width catalogue pages against the exact deployed release.","indexedOn":"2026-10-09","detailUrl":"https://agents.proofandstate.com/coding-bugs#BUG-0020","relatedSkillUrl":"https://agents.proofandstate.com/products/live-dashboard-update-verification"}],"bugCount":20}