Relationship Goals — define & track intentional relationship growth — Phase 3: Goals dashboard & overview #101

Closed
opened 2026-06-09 06:21:19 +00:00 by Mark · 1 comment
Owner

Phase 3: Goals dashboard & overview

Show goals aggregated across all relationships.

  • Add "Goals" section to the dashboard/home page
  • Active goals summary card: X goals across Y people
  • Goals at risk: overdue cadence goals (missed target interval)
  • Recently completed goals section
  • Click-through to person's goal detail from dashboard

Decomposed from kimi_agent_kin_app_sync#80


Implementation scope (decided 2026-06-28)

Goals are scoped to person/relationship. Surface:

  • A Goals tab/section inside PersonDetail.tsx
  • Lists active, paused, and completed goals for that person
  • Goal creation/edit form within the panel — no separate route

No top-level /goals dashboard.

## Phase 3: Goals dashboard & overview Show goals aggregated across all relationships. - [ ] Add "Goals" section to the dashboard/home page - [ ] Active goals summary card: X goals across Y people - [ ] Goals at risk: overdue cadence goals (missed target interval) - [ ] Recently completed goals section - [ ] Click-through to person's goal detail from dashboard --- _Decomposed from [kimi_agent_kin_app_sync#80](https://forgejo.tail018ac4.ts.net/Mark/kimi_agent_kin_app_sync/issues/80)_ --- ## Implementation scope (decided 2026-06-28) Goals are scoped to person/relationship. Surface: - A `Goals` tab/section inside `PersonDetail.tsx` - Lists active, paused, and completed goals for that person - Goal creation/edit form within the panel — no separate route No top-level /goals dashboard.
Author
Owner

⏸ Needs Decision

What needs to be decided?

  • Is this issue still relevant? If yes, remove the blocked:needs-decision label to route back to triage.

Blocking factors:

  • Didn't meet auto-approve criteria — scope=small, risk=low, spec=partial

Scope: small Risk: low Spec: partial Type: feature
Summary: Add a Goals dashboard section to Home.tsx showing aggregate contact-frequency goal stats across all people, with at-risk/overdue breakdowns and click-through to person detail.
Suggestion: Single new GoalsDashboard() component in Home.tsx deriving all data from existing store (people.contactFrequencyGoal, interactions). Active goals card = count of people with goal>0. Goals at risk = existing isOverdue/isNearOverdue logic. 'Recently completed goals' needs reinterpretation since contactFrequencyGoal is a perpetual cadence — suggest showing 'On track' (contact within goal) or a new completion-tracking concept. Insert between QuickStats and EmergentObservations. 1 file, no DB/types changes.
Rationale: Scope is small because it's additive UI in a single file (Home.tsx), reusing existing store data and date-utils helpers. Risk is low — no existing paths are modified, no DB schema changes, no new routes. Spec alignment is partial because 'recently completed goals' has no mapping to the current data model (contactFrequencyGoal is an ongoing cadence, not a completable task). The remaining checklist items map cleanly to existing data. No new tables or types needed.

To unblock: Remove the blocked:needs-decision label. The triage will apply the appropriate outcome based on your choice above.

## ⏸ Needs Decision **What needs to be decided?** - **Is this issue still relevant?** If yes, remove the `blocked:needs-decision` label to route back to triage. **Blocking factors:** - **Didn't meet auto-approve criteria** — scope=small, risk=low, spec=partial --- **Scope:** small **Risk:** low **Spec:** partial **Type:** feature **Summary:** Add a Goals dashboard section to Home.tsx showing aggregate contact-frequency goal stats across all people, with at-risk/overdue breakdowns and click-through to person detail. **Suggestion:** Single new `GoalsDashboard()` component in Home.tsx deriving all data from existing store (people.contactFrequencyGoal, interactions). Active goals card = count of people with goal>0. Goals at risk = existing isOverdue/isNearOverdue logic. 'Recently completed goals' needs reinterpretation since contactFrequencyGoal is a perpetual cadence — suggest showing 'On track' (contact within goal) or a new completion-tracking concept. Insert between QuickStats and EmergentObservations. 1 file, no DB/types changes. **Rationale:** Scope is small because it's additive UI in a single file (Home.tsx), reusing existing store data and date-utils helpers. Risk is low — no existing paths are modified, no DB schema changes, no new routes. Spec alignment is partial because 'recently completed goals' has no mapping to the current data model (contactFrequencyGoal is an ongoing cadence, not a completable task). The remaining checklist items map cleanly to existing data. No new tables or types needed. **To unblock:** Remove the `blocked:needs-decision` label. The triage will apply the appropriate outcome based on your choice above.
Mark 2026-06-29 20:36:06 +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#101
No description provided.