Skip to content

feat(workflows): enrichment presets for series + counterparties - #1913

Merged
canalesb93 merged 1 commit into
mainfrom
feat/enrichment-workflow-presets
Jun 24, 2026
Merged

feat(workflows): enrichment presets for series + counterparties#1913
canalesb93 merged 1 commit into
mainfrom
feat/enrichment-workflow-presets

Conversation

@canalesb93

Copy link
Copy Markdown
Owner

Adds workflow presets that drive the new rules-as-substrate enrichment surface — series + counterparties — so a household can set up and maintain them the same way it does categorization.

What's new

Two one-off presets in "Setup & Bulk" — the recurring-series / counterparty counterparts to Rule Foundation:

  • Series Foundation — one deep pass over history that detects recurring charges (subscriptions, bills, loans) and authors assign_series rules on raw fields (amount±tol AND day-of-month±tol, anchored on merchant), types each series, and optionally backfills.
  • Counterparty Foundation — clusters descriptor variants (SQ *X, X #123, TST* X) into canonical entities (merchants and non-merchants — people, employers), authors assign_counterparty rules, enriches category/website/MCC, and optionally backfills.

Both: read_write, Sonnet, on-demand (OneOff), with the same Create & backfill / Create only option as Rule Foundation.

New "Enrichment" gallery section (gem icon) — focused, single-dimension curators that keep the catalogs accurate as data arrives. They default to after each sync (the doctrine's "improve the enrichment layer on every sync") and are drawer-switchable to weekly:

  • Series Curator — places new recurring charges, promotes emerging patterns to rules, tidies types/splits.
  • Counterparty Curator — binds new charges, mints entities for new recurring payees, collapses duplicates, enriches metadata.

How it's built

Each preset composes a focused strategy block + the shared rules-curriculum teaching block (the canonical assign_series / assign_counterparty + stable-field doctrine). No new service methods or schema — presets are code-defined data over the existing registry. Adds Enrichment to both category allowlists and the gallery category-icon switch; fixes the docs preset table (it was missing transaction-reviewer).

All three build matrices (full / headless / lite) + go vet + the full unit suite green — the preset unit tests validate that the four new prompt blocks compose, categories are known, costs are positive, and triggers are coherent.

Gallery

workflows gallery with the new Enrichment section + Setup & Bulk foundations

Configure drawer (Series Foundation — composes prompt + Rule-handling option)

Series Foundation configure drawer

🤖 Generated with Claude Code

Add four ready-to-enable workflow presets that drive the new
rules-as-substrate enrichment surface (assign_series / assign_counterparty
rules + entity enrichment), plus a new gallery section to house the
recurring ones.

Setup & Bulk (one-off, the recurring-series / counterparty counterparts
to Rule Foundation):
- Series Foundation — one deep pass over history that detects recurring
  charges and authors assign_series rules (amount + day-of-month idiom),
  types each series, optional backfill.
- Counterparty Foundation — clusters descriptor variants into canonical
  entities (merchants AND non-merchants), authors assign_counterparty
  rules on raw fields, enriches category/website/mcc, optional backfill.

New 'Enrichment' section (gem icon) — focused, single-dimension curators
that run after each sync by default (doctrine: improve the enrichment
layer on every sync), drawer-switchable to weekly:
- Series Curator — places new recurring charges, promotes emerging
  patterns to rules, tidies types/splits.
- Counterparty Curator — binds new charges, mints entities for new
  recurring payees, collapses duplicates, enriches metadata.

Each composes a focused strategy block + the shared rules-curriculum
teaching block. Foundations carry the create-vs-backfill option; both
foundations default to Sonnet. Adds 'Enrichment' to both category
allowlists + the gallery category-icon switch. No new service methods
or schema — presets are code-defined data over the existing registry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012fRHZ1CTjEZ1xFwQmW27jU
@canalesb93 canalesb93 added the rules-substrate Rules-as-universal-substrate sprint (base: feat/rules-substrate) label Jun 24, 2026
@canalesb93
canalesb93 merged commit cc6018c into main Jun 24, 2026
8 checks passed
@canalesb93
canalesb93 deleted the feat/enrichment-workflow-presets branch June 24, 2026 06:10
canalesb93 added a commit that referenced this pull request Jun 24, 2026
Pull in main (#1907#1919). Two changes interact with this PR:

- #1918 fully removed series tags (AddSeriesTag/RemoveSeriesTag service
  methods gone). Reverted this PR's update_series tag fold: update_series
  is back to name/type only, and the tags_to_add/tags_to_remove input +
  handler loops are removed. Series no longer have a tag dimension.
- #1913 added four series/counterparty workflow preset prompts written
  against main's older tool surface. Scrubbed their stale refs to match
  the consolidated tools: breadbox://overview → get_overview;
  batch_create_rules → create_transaction_rule rules array; set_series_type
  / split_series / review_series / explain_series_candidates (all removed
  upstream) → update_series / unlink_series_transactions / get_series.

Resolved the docs/mcp-tools-reference.md conflict by taking main's
series-unlink description (no tags). The counterparty create→assign fold
and unlink rename from the prior commit are preserved.

Verified: go build ./..., go vet ./..., and the full internal/mcp
integration suite green on a clean DB.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7qg4TN9ZPcHsXR714UrjG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rules-substrate Rules-as-universal-substrate sprint (base: feat/rules-substrate)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant