Feature: Emergent observation of shared passions and interests #32

Closed
opened 2026-05-28 00:35:35 +00:00 by Mark · 1 comment
Owner

Feature Request

The app should notice shared interests between you and another person — from existing data and natural logging, not a separate entry form.

What feeds it

  • Gift history: you've given Alice two sci-fi books and a Star Wars poster -> shared interest in sci-fi
  • Interaction notes: free-text mentions of media ("talked about Dune sequel", "watched the new Nolan film")
  • Shared media logging: if users opt to tag an interaction with "watched X" or "read Y", that feeds in too — lightweight, inline, not a separate form
  • Date events: "Movie night with Bob" logged on the Dates page
  • Recurring patterns: you and Claire always go to the same type of event (concerts, conventions, hiking)

What it surfaces

Emergent observations on PersonDetail and Dashboard:

  • "You and Alice both seem into sci-fi — 3 gifts and 2 conversations logged"
  • "Movies come up a lot with Bob — 4 interactions mention films"
  • "You and Claire always go hiking — that's your thing"
  • No manual entry required. Just surfaces what the data already shows.

Why this matters

Not for categorization. It helps with:

  • Gift ideas (the app already knows)
  • Conversation starters ("you haven't talked about books with Alice in a while")
  • Date suggestions ("you and Sam haven't been to a concert in months — there's one next week")

Implementation

Lightweight annotation, not a new database

A single optional text field on Interaction: mediaMentioned?: string ("Dune", "Interstellar", "The Great Gatsby"). Free-text, not a picker.

Then the observation layer:

function findSharedInterests(personId: number): Observation[] {
  const interactions = getInteractions(personId);
  const gifts = getGifts(personId);
  const dates = getDates(personId);

  // Cluster by keywords in notes, gift descriptions, event labels
  // Count occurrences, surface if above threshold
  return clusterSharedTopics(interactions, gifts, dates);
}

No schema changes required

  • Uses existing free-text fields (interaction notes, gift descriptions, event labels)
  • Optional mediaMentioned field on Interaction for lightweight tagging
  • Observations are computed on-the-fly, not stored
## Feature Request The app should notice shared interests between you and another person — from existing data and natural logging, not a separate entry form. ## What feeds it - **Gift history**: you've given Alice two sci-fi books and a Star Wars poster -> shared interest in sci-fi - **Interaction notes**: free-text mentions of media ("talked about Dune sequel", "watched the new Nolan film") - **Shared media logging**: if users opt to tag an interaction with "watched X" or "read Y", that feeds in too — lightweight, inline, not a separate form - **Date events**: "Movie night with Bob" logged on the Dates page - **Recurring patterns**: you and Claire always go to the same type of event (concerts, conventions, hiking) ## What it surfaces **Emergent observations** on PersonDetail and Dashboard: - "You and Alice both seem into sci-fi — 3 gifts and 2 conversations logged" - "Movies come up a lot with Bob — 4 interactions mention films" - "You and Claire always go hiking — that's your thing" - No manual entry required. Just surfaces what the data already shows. ## Why this matters Not for categorization. It helps with: - Gift ideas (the app already knows) - Conversation starters ("you haven't talked about books with Alice in a while") - Date suggestions ("you and Sam haven't been to a concert in months — there's one next week") ## Implementation ### Lightweight annotation, not a new database A single optional text field on Interaction: `mediaMentioned?: string` ("Dune", "Interstellar", "The Great Gatsby"). Free-text, not a picker. Then the observation layer: ```typescript function findSharedInterests(personId: number): Observation[] { const interactions = getInteractions(personId); const gifts = getGifts(personId); const dates = getDates(personId); // Cluster by keywords in notes, gift descriptions, event labels // Count occurrences, surface if above threshold return clusterSharedTopics(interactions, gifts, dates); } ``` ### No schema changes required - Uses existing free-text fields (interaction notes, gift descriptions, event labels) - Optional `mediaMentioned` field on Interaction for lightweight tagging - Observations are computed on-the-fly, not stored
Mark changed title from Feature: Shared media tracking — movies, books, games, music per person to Feature: Emergent observation of shared passions and interests 2026-05-28 00:36:06 +00:00
Author
Owner

This issue has been decomposed into the following sub-issues:

# Title Phase Scope
#33 Feature: Emergent observation of shared passions and interes The app should notice shared interests between you and another person — from exi
#34 Feature: Emergent observation of shared passions and interes - Gift history: you've given Alice two sci-fi books and a Star Wars poster -
#35 Feature: Emergent observation of shared passions and interes Emergent observations on PersonDetail and Dashboard: - "You and Alice both
#36 Feature: Emergent observation of shared passions and interes Not for categorization. It helps with: - Gift ideas (the app already knows) - Co
#37 Feature: Emergent observation of shared passions and interes
#38 Feature: Emergent observation of shared passions and interes A single optional text field on Interaction: mediaMentioned?: string ("Dune",
#39 Feature: Emergent observation of shared passions and interes - Uses existing free-text fields (interaction notes, gift descriptions, event la

Each sub-issue has been labeled with needs-triage and will be evaluated by the triage pipeline before queue routing.

This issue has been decomposed into the following sub-issues: | # | Title | Phase Scope | |---|-------|-------------| | #33 | Feature: Emergent observation of shared passions and interes | The app should notice shared interests between you and another person — from exi | | #34 | Feature: Emergent observation of shared passions and interes | - **Gift history**: you've given Alice two sci-fi books and a Star Wars poster - | | #35 | Feature: Emergent observation of shared passions and interes | **Emergent observations** on PersonDetail and Dashboard: - "You and Alice both | | #36 | Feature: Emergent observation of shared passions and interes | Not for categorization. It helps with: - Gift ideas (the app already knows) - Co | | #37 | Feature: Emergent observation of shared passions and interes | | | #38 | Feature: Emergent observation of shared passions and interes | A single optional text field on Interaction: `mediaMentioned?: string` ("Dune", | | #39 | Feature: Emergent observation of shared passions and interes | - Uses existing free-text fields (interaction notes, gift descriptions, event la | Each sub-issue has been labeled with `needs-triage` and will be evaluated by the triage pipeline before queue routing.
Mark closed this issue 2026-05-28 00:42:17 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/kimi_agent_kin_app_sync#32
No description provided.