Skip to content

cat-mode: require analytics health receipts before dashboard narratives. - #1309

Merged
mergify[bot] merged 1 commit into
mainfrom
stack/EdbertChan/automate/dashboard-health-receipt/cat-mode-require-analytics-health-receipts--8efc336d
Oct 13, 2026
Merged

mergify[bot] merged 1 commit into
mainfrom
stack/EdbertChan/automate/dashboard-health-receipt/cat-mode-require-analytics-health-receipts--8efc336d

Conversation

@EdbertChan

@EdbertChan EdbertChan commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

Agents answer dashboard health questions with stories from charts. Those stories skip a receipt that names volume, fill, resolve, and filter for each harness and action.

Without that split, chart patches and blank-include filters look like fixes while emit or resolve still owns the gap. Feature thrash continues after the class should already be locked.

Adds standing defaults: health receipt first, prove live resolve before chart workarounds, full-backfill done only with a matrix plus fill table, and stop feature work when automate is mandated.

Review Claim

Approve standing analytics defaults that require a health receipt and an ownership split across volume, fill, resolve, and filter before dashboard narratives or insight patches, and that lock the class catch before more analytics feature work once automate is mandated.

Review Lane

behavior

Review Unit

corpus-lesson

Safety Invariant

These standing defaults change agent working style only. They do not change hook emit, resolve, backfill, or dashboard product code.

Assumptions: Safety Invariant unconfirmed (non-interactive publish).

Slice Rationale

One cat-mode prose update plus structural fixtures and unit assertions. Product resolve fix stays on its own open PR.

Non-goals

  • Re-implementing live Cursor peer resolve
  • Changing PostHog dashboards or insight queries
  • Merging this branch

Measured

base: python3 -m unittest tests.test_cat_mode.TestPublishingAnalyticsDefaults tests.test_cat_mode.TestAnalyticsThrashCheckpoints — prior suite shape without health-receipt / blank-include / matrix / automate-stop fixtures
head: same command → Ran 17 tests in 0.004s / OK
preflight: python3 engine/skills/make-pr/scripts/preflight.py --base origin/main --commit-only --body-file … → rule-scope ok no incident-scoped rules; remaining gates green after body restore

Test Plan

Test Plan
  • python3 -m unittest tests.test_cat_mode.TestPublishingAnalyticsDefaults tests.test_cat_mode.TestAnalyticsThrashCheckpoints tests.test_cat_mode.TestCatModeReferences — Ran 17 tests in 0.004s, OK
  • python3 engine/skills/make-pr/scripts/rule_scope_check.py --base origin/main — ok no incident-scoped rules
  • Full preflight corpus-lesson gates (codify, provenance, three-harness, ecosystem, skill coverage/triggers, scenarios, ruff) — ok; body missing once then restored
  • After install: agent asked why Cursor real-model tiles read zero pastes harness×action count + filled_model_rate before any insight PATCH

Revert Plan

Revert Plan

Revert the commits on the branch, or close the PR without merging.


Note

Low Risk
Corpus-lesson and test-only changes to agent working defaults; explicitly does not alter analytics emit, resolve, or dashboard product code.

Overview
Extends cat-mode agent guidance so dashboard/analytics work starts with a health receipt (harness×action counts and filled_model_rate, with volume vs fill vs resolve vs filter ownership) instead of chart narratives or insight patches.

New standing rules in SKILL.md and references/verify.md treat blank/synthetic models as emit/resolve defects (not chart filters or blank-include workarounds), require a harness×source matrix plus fill table for multi-emitter backfills, and mandate install + live probe before trusting published metrics. Related thrash guidance pauses feature PRs until a mid-thrash working-style catch is locked when automate is mandated.

Regression coverage adds TestPublishingAnalyticsDefaults, scenario fixtures under corpus/skills/cat-mode/tests/, and assertions that the verify reference carries the full publishing-analytics text. No hook, resolve, backfill, or dashboard product code changes.

Reviewed by Cursor Bugbot for commit 6d95b2a. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor

cursor Bot commented Oct 8, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: d67aa41c-a418-474c-a151-b06472ca8d1b)

@EdbertChan

Copy link
Copy Markdown
Owner Author

This pull request is part of a Mergify stack:

# Pull Request Link
1 cat-mode: require analytics health receipts before dashboard narratives. #1309 👈
2 cat-mode: lead analytics diagnosis rules with the general lesson. #1310
3 cat-mode: align publishing-analytics fixture asserts with revised example phrasing. #1311
4 cat-mode: lead the multi-emitter backfill done-gate with the general lesson. #1312
5 cat-mode: allowlist intervention-must-automate as a flag token. #1313
6 cat-mode: lead the thrash-stop default with the general catch lesson. #1314

@mergify

mergify Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Queued — the merge queue status continues in this comment ↓.

@cursor

cursor Bot commented Oct 11, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 8d203fda-ad92-4974-be3b-0865aa944ba5)

@EdbertChan

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify

mergify Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 3 hours 29 minutes 55 seconds in the queue, including 1 hour 43 minutes running CI.

Reason

Pull request #1309 has been dequeued

GitHub refused to merge the pull request. Pull Request has merge conflicts. This is usually enforced by a branch protection or ruleset rule.

Hint

You should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it.
If you do update this pull request, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio queue comment.

Required conditions to merge
  • check-success = lint
  • check-success = test
  • check-success = validate

Requeued — the merge queue status continues in this comment ↓.

@EdbertChan
EdbertChan force-pushed the stack/EdbertChan/automate/dashboard-health-receipt/cat-mode-require-analytics-health-receipts--8efc336d branch from 737c66d to 6d95b2a Compare October 12, 2026 23:15
@cursor

cursor Bot commented Oct 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 3af7d3d8-f448-45ae-bcd3-e3221ebc8eec)

@mergify mergify Bot removed the dequeued label Oct 12, 2026
@EdbertChan

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify

mergify Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 1 hour 55 seconds in the queue, including 1 hour 32 seconds running CI.

Reason

The merge conditions cannot be satisfied: the checks did not pass within the checks timeout of 1 hour

These checks were still running:

  • test

Failing checks:

Hint

You may have to fix your CI before adding the pull request to the queue again.

If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio queue comment.

Waiting for
  • check-success = test
All conditions
  • check-success = test
  • check-success = lint
  • check-success = validate

Requeued — the merge queue status continues in this comment ↓.

@mergify mergify Bot added dequeued and removed queued labels Oct 13, 2026
@EdbertChan

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify

mergify Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 46 minutes 46 seconds in the queue, including 46 minutes 24 seconds running CI.

Required conditions to merge
  • check-success = lint
  • check-success = test
  • check-success = validate

@mergify mergify Bot added the queued label Oct 13, 2026
@mergify mergify Bot mentioned this pull request Oct 13, 2026
6 tasks done
@mergify mergify Bot removed the dequeued label Oct 13, 2026
@mergify
mergify Bot merged commit d89f0c8 into main Oct 13, 2026
6 checks passed
@mergify mergify Bot removed the queued label Oct 13, 2026
mergify Bot pushed a commit that referenced this pull request Oct 13, 2026
* invoker: wf-1791829352374-46/repair — Rebase PR #1309 onto main

Exit code: 0

* Fix cat-mode reference gate flag token

* invoker: wf-1791746481991-3/repair — Repair PR #1309 (failed check test)

Exit code: 0

* invoker: wf-1791822744313-30/repair — Repair PR #1310 (failed check validate)

Exit code: 0

* invoker: wf-1791850959113-81/repair — Rebase PR #1310 onto stack/EdbertChan/automate/dashboard-health-receipt/cat-mode-require-analytics-health-receipts--8efc336d

Exit code: 0

* invoker: wf-1791861093716-94/repair — Repair PR #1310 (failed check validate)

Exit code: 0

---------

Co-authored-by: CI Bot <ci@invoker.dev>
mergify Bot pushed a commit that referenced this pull request Oct 13, 2026
…mple phrasing. (#1311)

* invoker: wf-1791829352374-46/repair — Rebase PR #1309 onto main

Exit code: 0

* Fix cat-mode reference gate flag token

* invoker: wf-1791746481991-3/repair — Repair PR #1309 (failed check test)

Exit code: 0

* invoker: wf-1791822744313-30/repair — Repair PR #1310 (failed check validate)

Exit code: 0

* invoker: wf-1791850959113-81/repair — Rebase PR #1310 onto stack/EdbertChan/automate/dashboard-health-receipt/cat-mode-require-analytics-health-receipts--8efc336d

Exit code: 0

* cat-mode: lead analytics diagnosis rules with the general lesson.

Phrase-judge rejected leads that named only the trigger phrase; state the split and the stop-first catch as the lesson, with the triggers as examples.

Co-authored-by: Cursor <cursoragent@cursor.com>
Change-Id: I7dad9e54f9d280bb4d8f41ac06662293e39c9e05

* cat-mode: align publishing-analytics fixture asserts with revised example phrasing.

Co-authored-by: Cursor <cursoragent@cursor.com>
Change-Id: Idebc0f0ba74e47864bf479446a8e27b0574cdcde

* invoker: wf-1791828161279-44/repair — Repair PR #1311 (failed check test)

Exit code: 0

* invoker: wf-1791860491047-92/repair — Rebase PR #1311 onto stack/EdbertChan/automate/dashboard-health-receipt/cat-mode-lead-analytics-diagnosis-rules-general--7dad9e54

Exit code: 0

---------

Co-authored-by: CI Bot <ci@invoker.dev>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant