feat(examples): add personal-finance project for UK Self Assessment#350
Merged
Conversation
UK Self Assessment helper exposed as a WhatsApp accountant. Schema covers SA100 + supplementary pages (SA102 employment, SA103 self-employment, SA105 UK property, SA106 foreign, SA108 capital gains): 15 entity types, 8 relationship types, 1 Gmail-extraction watcher. Agent prompt anchors all work to the active tax_year and routes uncertain inputs to save_knowledge rather than guessing structured fields. This is the canonical schema source. Per-user installs mirror it into each user's personal org via the upcoming install flow; no user data lives here.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This was referenced Apr 25, 2026
The wildcard `.gov.uk` already covers `gov.uk`; keeping both entries was redundant. The reviewer flag about a missing data/ directory turned out to be a misread — `data/` is a runtime-only path for the Owletto memory plugin (matches the global `data/` .gitignore rule), not a seed directory.
Contributor
|
Triage decision: Reasons:
Next: Resolve merge conflicts and address any blocking issues, then re-run triage |
This was referenced Apr 26, 2026
buremba
added a commit
that referenced
this pull request
Apr 26, 2026
, #359 install-half) (#372) The install flow as built — schema-mirror clones a template's entity types / relationship types / classifiers / watchers into each user's personal org — was the wrong abstraction. Cross-org vocabulary (an entity in tenant org A referencing a type defined in a public-catalog org B by FK) is the planned direction; the mirror pipeline duplicated rows per user and added re-sync complexity for no working installs (verified 0 rows used the mirror columns in prod). Removed: - packages/owletto-backend/src/agents/install.ts (installAgentFromTemplate, resyncInstalledAgent) - packages/owletto-backend/src/agents/install-routes.ts (POST /api/install) - packages/owletto-backend/src/agents/install-manifest-routes.ts (GET /api/install/manifest/:slug) - All associated integration tests - subject-identities WhatsApp helpers (normalizePhoneE164, phoneToWhatsAppJid, linkWhatsAppToMember) + their unit tests - db/migrations/20260425120000_add_template_mirror_tracking.sql (rolled back on prod first) - Route registrations from src/index.ts Kept: - subject-identities.ts provisionMemberAndCoreIdentities — used by the signup hook in personal-org-provisioning.ts, orthogonal to install flow. - #352 personal-org-on-signup, #350/#354/#355/#356 personal-finance content — no install dependencies. DB state: prod migrated down via dbmate (mirror columns dropped), then 20260426120000_entities_entity_type_fk re-applied. 0 user-visible data lost.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
examples/personal-finance/project: UK Self Assessment helper exposed as a WhatsApp accountant.tax_year,account,transaction,holding,cgt_event,asset_lot,income_source,employer,trade,property,expense,contribution,relief_claim,document,goal) modelling SA100 + SA102 / SA103 / SA105 / SA106 / SA108.account_contains,disposal_of,income_from,employed_by,trade_of,expense_of,for_tax_year,parsed_from).gmail-tx) that extracts transactions / cgt_events / dividends / documents from forwarded financial emails, with reaction guidance for linking to the activetax_year.agents/personal-finance/{IDENTITY,SOUL,USER}.md.This is the canonical schema source. In the architecture it's the read-only template; per-user installs will mirror this schema into each user's personal org via the upcoming install flow.
Test plan