Skip to content

feat: add LifeOps executive assistant scaffold#137

Closed
jbcrane13 wants to merge 2 commits into
mainfrom
feat/lifeops-mvp-scaffold
Closed

feat: add LifeOps executive assistant scaffold#137
jbcrane13 wants to merge 2 commits into
mainfrom
feat/lifeops-mvp-scaffold

Conversation

@jbcrane13

Copy link
Copy Markdown
Owner

Summary

  • Adds LifeOps executive-assistant planning docs, ADR-014, and AgentBoard implementation scaffold.
  • Adds shared LifeOps models, fixtures, and LifeOpsStore for ADHD-oriented task views, approvals, job-search follow-ups, and Sarah/family request support.
  • Adds shared SwiftUI LifeOps UI plus macOS sidebar and iOS tab integration.
  • Adds model/store/interface tests.

Scope boundaries

  • Fixture-backed scaffold only.
  • No live email/calendar/iMessage automation yet.
  • No external side effects or real message/calendar writes.

Quality gates

  • swiftlint lint --strict
  • swiftformat --lint --config .swiftformat AgentBoard AgentBoardTests
  • xcodebuild test -scheme AgentBoard -destination 'platform=macOS'
  • xcodebuild -scheme AgentBoardMobile -destination 'generic/platform=iOS Simulator' build

Closes #136.

Copilot AI review requested due to automatic review settings May 27, 2026 16:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the initial “LifeOps” executive-assistant scaffold to AgentBoard (macOS + iOS), introducing a new personal/admin task surface that’s intentionally separated from existing Work/Sessions/Agents workflows and backed by fixtures (no external integrations yet).

Changes:

  • Adds LifeOps domain models, fixtures, and a fixture-backed LifeOpsStore in AgentBoardCore.
  • Adds shared SwiftUI LifeOps dashboard/sections and wires navigation into the macOS sidebar and iOS tab shell.
  • Adds model/store/interface tests plus PRD/spec/plan docs and ADR-014.

Reviewed changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
docs/superpowers/specs/2026-05-27-lifeops-executive-assistant-design.md Adds LifeOps design spec (module boundaries, models, store/UI expectations).
docs/superpowers/plans/2026-05-27-lifeops-mvp-implementation.md Adds implementation plan/guardrails for scaffold-first approach.
docs/PRD-lifeops-executive-assistant.md Adds PRD defining goals, scope, workflows, and MVP acceptance criteria.
docs/ADR.md Adds ADR-014 documenting the LifeOps module decision.
AGENTS.md References ADR-014 and logs planning activity.
AgentBoardUI/Screens/LifeOpsScreen.swift Implements shared LifeOps screen (dashboard + compact layout).
AgentBoardUI/Components/LifeOpsTaskRow.swift Adds task row component (priority + metadata + Sarah label).
AgentBoardUI/Components/LifeOpsQuickCaptureView.swift Adds quick capture component with accessibility identifiers.
AgentBoardUI/Components/LifeOpsPriorityBadge.swift Adds priority badge component with accessibility identifier.
AgentBoardUI/Components/DesktopSidebar.swift Adds LifeOps tab badge count.
AgentBoardTests/LifeOpsStoreTests.swift Adds store filtering/mutation tests.
AgentBoardTests/LifeOpsModelsTests.swift Adds Codable + fixture integrity tests.
AgentBoardTests/LifeOpsInterfaceTests.swift Adds interface/contract tests for navigation + accessibility IDs.
AgentBoardTests/AppDestinationTests.swift Updates stable destination ordering tests to include LifeOps.
AgentBoardMobile/MobileRootView.swift Adds LifeOps tab routing to LifeOpsScreen in compact mode.
AgentBoardCore/Stores/LifeOpsStore.swift Adds LifeOps store, protocols, and fixture services.
AgentBoardCore/Stores/AgentBoardAppModel.swift Wires lifeOpsStore into app model + bootstrap.
AgentBoardCore/Services/LifeOpsFixtures.swift Adds seed/fixture data for tasks/approvals/jobs/family requests.
AgentBoardCore/Models/LifeOpsModels.swift Adds LifeOps models/enums (Codable/Sendable).
AgentBoardCore/Models/AppDestination.swift Adds .lifeOps destination, label, icon, and desktop tab inclusion.
AgentBoard/DesktopRootView.swift Routes .lifeOps destination to LifeOpsScreen dashboard mode.
AgentBoard.xcodeproj/project.pbxproj Adds new LifeOps files to build phases/targets.
.swiftlint.yml Enables SwiftLint caching via cache_path.
.gitignore Ignores SwiftLint cache directory.
Comments suppressed due to low confidence (1)

AgentBoardUI/Components/DesktopSidebar.swift:167

  • The LifeOps sidebar badge is computed from nowTasks.count, but nowTasks is capped to 3 items. This makes the badge undercount when there are more than 3 P0/P1 tasks.
    private func tabCount(_ tab: AppDestination) -> Int? {
        switch tab {
        case .lifeOps: appModel.lifeOpsStore.nowTasks.count
        case .work: appModel.workStore.items.count
        case .agents: appModel.agentsStore.summaries.count
        case .sessions: appModel.sessionsStore.sessions.count
        case .chat, .settings: nil
        }

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +88 to +102
public var nowTasks: [LifeTask] {
Array(visibleTasks
.filter { $0.priority == .p0 || $0.priority == .p1 }
.sorted(by: priorityDueUrgencySort)
.prefix(3))
}

public var todayTasks: [LifeTask] {
visibleTasks
.filter { task in
task.priority == .p1 || task.dueAt.map(isTodayOrOverdue) == true
}
.sorted(by: priorityDueUrgencySort)
}

Comment thread docs/ADR.md
Comment on lines +197 to +200
## ADR-014: LifeOps executive assistant module
**Date:** 2026-05-27
**Status:** Planned
**Decision:** Add a LifeOps module inside AgentBoard rather than starting a separate app for Blake's ADHD-oriented executive-function assistant workflow.
Comment on lines +115 to +124
public var familyTasks: [LifeTask] {
tasks
.filter { task in
task.owner == .family ||
task.owner == .sarah ||
task.category == .family ||
task.source?.originActor == .sarah
}
.sorted(by: priorityDueUrgencySort)
}
@jbcrane13

Copy link
Copy Markdown
Owner Author

Closing as superseded: LifeOps should be a separate app/repo, not an AgentBoard module. Keeping the branch as reference material only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build LifeOps executive assistant MVP scaffold

2 participants