dayze-life-context8.95 KB
View saved version →
---
name: dayze-life-context
description: >-
Read the signed-in Dayze user's private life context (calendar, people,
money, travel, memories, inventory) and add to it (meals, expenses, money
in or out, goals, sleep, events, place visits, favorite songs, contact touchpoints).
Use when the user asks about their week, calendar, who matters, past
expenses, upcoming trips, or something they saved in Dayze, or tells you
something to log — not for public celebrity biographies.
---
# Dayze life context
Dayze is the user's life-in-days graph. This app reads over OAuth and, when the user allowed "Add records" (`context.write`), adds records. It cannot edit or delete existing records. New calendar events are private by default; create friends-visible or public events only when the user explicitly asks. Never invent calendar events, people, or memories.
## First call
1. For a week question or a broad overview of recorded Dayze context, call `get_context_pack` once (prefer over chaining separate reads).
2. Omit `purpose` (or use `this_week`) for the week bootstrap: `sections.events`, `sections.people`, `sections.finance`, `sections.travel`. Use `purpose` `memories` or `inventory` for those single sections.
3. Ground the reply in the returned `sections` (each has `status`, `items`, `has_more`, `inspect_url`) and in `account_timezone`. The first `limitations` entry names the Dayze account. A record-specific source URL may appear in the item's `why_included`; items do not have an `inspect_url` field.
## Follow-ups (reads)
| User intent | Tool |
| --- | --- |
| Find a saved contact, event, merchant, item or memory by keyword | `search_dayze` (`search` = literal keyword, not the whole question) |
| Recorded calendar in an explicit date window | `get_events` |
| A person or saved relationship facts in Dayze Contacts | `get_people_context` |
| A contact's photos as inline images | `get_person_photos` |
| Recorded spending or merchant in an explicit date window | `get_finance_context` |
| Recorded upcoming trips in an explicit date window | `get_travel_context` |
| Cite a Dayze event, contact, or finance record in Sources | `search` then `fetch` |
| Something they own: its price, value or condition | `search_inventory` (`query` = name, brand or model), then `get_inventory_item` (`inventory_id`) |
| Something they sold, gave away or lost | `search_inventory` with `include_archived: true` (past items carry `past`: reason, date, details, price) |
| How an item's value changed | `get_inventory_valuations` (`inventory_id`) |
Every read takes `query` (the user's question) except `fetch`, which takes the opaque `id` from `search`, and `get_person_photos`, which takes the exact contact name or `person_id`. Every context tool except `get_context_pack` and the citation tools (`search`, `fetch`) also needs `purpose`. `get_events`, `get_finance_context` and `get_travel_context` need `from` and `to` as `YYYY-MM-DD` civil dates in the account timezone (at most 93 days apart); turn "this week" or "last month" into explicit dates using `account_timezone` from the pack. If a section is `partial` or `has_more` is true, say the list is incomplete.
## Adding records (writes)
| User says | Tool |
| --- | --- |
| A goal they want to track | `create_goal` (life goal; numeric goals need target_value and target_unit) |
| What they ate or drank | `log_food` (Food Diary; `dish_items` for several dishes, `with` for companions) |
| A plan, appointment or event | `log_event` (always private; sharing happens in the Dayze app) |
| Money in or out (a transfer, a bill, money sent or received) | `log_transaction` |
| Money lent or repaid, or an IOU | Not on this connection: tell the user to record it in the Dayze app |
| Something they paid for | `log_expense` |
| How they slept | `log_sleep` (`started_at`/`ended_at` with timezone) |
| A song they love | `log_favorite_song` |
| A place they went | `log_place_visit` |
| They called, messaged or met a contact | `log_interaction` (always private) |
| A past story or memory | `log_moment` (always private; plans go to `log_event`) |
| Someone new to remember | `create_person` (an existing match is returned unchanged) |
| Money they received | `log_income` (plain income; loans and IOUs are recorded in the Dayze app) |
| Something they own | `add_inventory_item` (price, currency, purchase date, condition and notes; never a serial number) |
| What an item is worth now | `add_inventory_valuation` (`inventory_id` from `search_inventory`, `value` in the item's own currency) |
| A photo of an item, shared in this chat | `upload_asset` (`entity_type` `inventory`, `entity_id` = the item's `inventory_id`, `role` `photo`, the attached file itself as `image`); never a link from the web. If the answer says the photo did not arrive, call again with the attached file; if it fails again, give the user `upload_url` |
| A trip, or a city they lived in | `log_travel` (`city` + `start_date`) |
## Fixing records (edits, only with Edit records)
If the connection was given Edit records, these change details of a record the user already has. Find the record first (`search_dayze`, `get_events`), say exactly what will change, and change only what the user asked for. Without Edit records, an edit answers with a Reconnect prompt; tell the user they can allow Edit records there.
| User says | Tool |
| --- | --- |
| Move, rename or fix an event | `update_event` (private, one-off events only; shared, synced or recurring ones are changed in the Dayze app) |
| Fix a transaction's amount, merchant, date or category | `update_expense` (not IOUs, splits or imported payments) |
| Fix what or when they ate | `update_food` (not its price or who was there) |
| Fix a contact's name, notes, birthday or how they met | `update_person` (not merges, aliases or accounts) |
| Fix a sleep session | `update_sleep` |
| Fix a moment's text, date or place | `update_moment` (it stays private) |
| Fix an item's name, brand, model, condition, price, purchase date or notes | `update_inventory_item` (`inventory_id`; a new value goes to `add_inventory_valuation`) |
| They sold, gave away, donated, traded, lost or threw away something, or it was stolen or broke | `update_inventory_item` with `past_reason` (sold, gifted, donated, traded, stolen, lost, broken, disposed, returned), `past_date`, `past_details`, and `sale_price` for sold or traded. It moves to Past items with its history; nothing is deleted |
| They still have something marked as past | `update_inventory_item` with `status: owned` |
Rules for every write:
- Pass a new `request_id` (a UUID) on every write. Reuse the same `request_id` only to retry the same write; never for a second record.
- One thing is saved once. Confirm what you are about to add when the prompt is ambiguous (which day, which contact, which currency); never guess a date for a task with no deadline, ask.
- Use the account timezone for dates and times. Keep the currency the user said; never convert.
- Writes land only on the connected Dayze account. Never pass another user's id or handle; the server refuses it.
- The result carries `provenance` (source `chatgpt`, the connected `account.handle`) and a Dayze link. Say which account the record was added to and give the link. The record is attributed to ChatGPT in the user's change history.
- This app cannot edit, delete, archive, move money, book, buy, post or send. If asked, say so plainly and point to the Dayze app; do not call a read tool to "plan" a change.
- A write refused with `INSUFFICIENT_SCOPE` means the connection was granted without "Add records": say nothing was saved and ask the user to reconnect Dayze in ChatGPT settings allowing it. `request_id_required` means a `request_id` was missing; retry with one.
## Rules
- Do not invent facts missing from tool results; partial or no_data answers are honest answers.
- Do not use private Dayze tools for public biography, weather, Gmail, live location, booking, buying, messaging or reminders. If “Who is Maya?” does not say whether the user means public knowledge or Dayze Contacts, clarify before reading private data.
- Use explicit civil dates in the account timezone for event, finance and travel windows. Bounded rows are not complete calendar or ledger totals; preserve native currencies and never sum different currencies.
- Cite the `Source: https://dayze.com/...` URL in an item's `why_included` when present; otherwise cite the section's `inspect_url`. Never build a URL from an id. Say which Dayze account the data is from.
- If auth fails, tell them to reconnect Dayze in ChatGPT settings (OAuth), not to paste API keys in chat.
- These thirty-five tools are the documented base catalog. A feature-gated read may also be available; use only tools actually exposed by the connection. It has no public celebrity or web lookup. For famous people, answer without Dayze and do not call these tools for them.
## Output
Lead with what matters this week (upcoming events, then people). Keep lists short. Give dates in the account timezone. After a write, one line: what was added, to which account, with its link.
Referenced files: 1 — file references are metadata, not package contents.