Copse
A calmer operating system for daily life

Home is busy. Copse keeps it clear.

One calm, private place for the plans, people, and practical things that make your day work.

Private by design Made for your people Built around real life

Start from where you are.

Create a new shared space, or enter an invite code from someone who already started one.

One app, five gentle systems

Everything has a place.

Copse keeps the same calm visual language across every part of your household and community workflow.

Home BaseYour daily overview for chores, errands, plans, and the household rhythm.
In TouchCoordinate with households, teams, groups, and nearby shared spaces.
HealthTrack wellness, reminders, habits, and family health signals gently.
MindReflect, focus, set goals, and review insights without overwhelm.
Life AdminKeep bills, docs, calendars, and home maintenance in one calm place.
First visit flow

A simple beginning.

01
Create Home BaseChoose the household name, people, and first modules.
02
Join a CopseUse an invite code for packs, teams, classes, or groups.
03
Land in the shellHome Base, In Touch, Health, Mind, and Life Admin appear together.
Copse

Home Base

Private household shell with today, routines, and joined copses in one place.

Copse / Daily HQ

What your Copse needs today.

Start a Copse Find / Join Schedule People Resources School pickup, pack meeting, and one open permission slip.
Home Base Private household shell with today, routines, and joined copses in one place.
Home BaseHQ

Good morning. Your house is already organizing itself.

Meals, groceries, chores, school, health, reminders, and joined copses all land on one calm home page.

TodayNext up
  1. School drop-off window
  2. Pickup coordination
  3. Community event · shared space
AttentionDecide next
CopsesJoined
HomeSchoolGroup+4

Household, family, school, and pack spaces stay scoped by role.

ToolsReady check

72% ready · snacks assigned · calendar synced · forms pending.

SystemReady

Copse is watching tenant signals and surfacing what matters today.

Dashboardonline
APIchecking
MongoDBchecking
Checking API health…

Home Base

All is in order.

Today at home Good morning, Christopher.
Privatehousehold-scoped
Houstonweather preview
Stableenergy and comfort
TodayToday
View

School agenda selected locally; taskWrite=false reminderWrite=false calendarWrite=false mealWrite=false persisted=false.

AttentionDecide next
Review
This WeekThis week at a glance
BirthdayFamily calendar
Soccer Game6:30 PM
Car ServiceMorning window
Follow-throughCommitted tasks
Mind

Not loaded

What changedRecent Copse activity
localPreview=true persisted=false auditWrite=false taskWrite=false calendarWrite=false
Autopay stagedLife Admin · billWrite=false
Open
Invite reviewIn Touch · review only
Open
Water snoozedHealth · reminderWrite=false
Open
Tasks & Chores3 routines need attentionroutine · kid-safe
Groceries & ListsSnacks stagedlist · local draft
Meal PlannerTonight and prep are stagedmeal · grocery handoff
Home & Maintenance4 home tasks need attentionsystems · history
This WeekBirthday, soccer, car servicecalendar preview
Home VibeCalm localroutineWrite=false
Eco ControlGentle savings stays read-onlyhvacWrite=false
Shared module writesApproval neededmoduleWrite=false

Home Base overview selected locally; moduleOpenState=overview taskWrite=false moduleWrite=false persisted=false localStoragePersisted=true.

Home Systems Comfort stable

HVAC, safety, utilities, and maintenance signals are grouped here.

Household cardsPeople, home, and joined copses stay local here.
hoverState=local focusState=local cardWrite=false permissionWrite=false persisted=false
adult owner child-safe caregiver pending joined copse restricted fail-closed
guardiankid-saferead scoped

Guardian, caregiver, and child profile rows preview member cards without writing profile, invite, or task data.

comfortsafetyissue intake
messageseventsresources
read-onlypermission gate
EmptyNo people cards yetShow setup guidance without creating household rows.
PermissionGuardian/admin review requiredpermissionWrite=false roleWrite=false persisted=false
RestrictedPrivate details hiddencardRead=limited rawPrivateData=false
Joined CopsePack view stays scopedmembershipWrite=false inviteWrite=false adminWrite=false
Household empty No household cards yet householdWrite=false cardWrite=false persisted=false
Household loading Checking private cards Skeleton state only; no member, invite, or task write.
Household error Cards unavailable Show retry guidance without exposing private card data.
System loading Refreshing module status systemWrite=false alertWrite=false persisted=false
System empty No modules enabled Prompt setup without enabling or writing modules.
System error Module status unavailable Retry safely; never expose secrets, tokens, or raw telemetry.
Tasks & Choresempty / loading / errortaskWrite=false reminderWrite=false persisted=false
Tasks emptyTasks loadingTasks error
Groceries & Listsempty / loading / errorgroceryWrite=false listWrite=false vendorWrite=false
Groceries emptyGroceries loadingGroceries error
Meal Plannerempty / loading / errormealWrite=false recipeWrite=false calendarWrite=false
Meals emptyMeals loadingMeals error
Home & Maintenanceempty / loading / errorassetWrite=false vendorWrite=false warrantyWrite=false
Maintenance emptyMaintenance loadingMaintenance error
This Weekempty / loading / errorcalendarWrite=false commitmentWrite=false persisted=false
Week emptyWeek loadingWeek error
Home Vibeempty / loading / errorroutineWrite=false notificationWrite=false persisted=false
Vibe emptyVibe loadingVibe error
Eco Controlempty / loading / errorhvacWrite=false utilityWrite=false automationWrite=false
Eco emptyEco loadingEco error
Solar78%
Wind36%
Battery82%
Light steady Water ok Comfort calm
Home identityEverything is growing steadily
vibeState=local ecoControl=preview careWrite=false persisted=false
Home Vibe Calm morning Lighting, quiet hours, and household tone stay local here.
Eco Control Gentle savings HVAC, battery, and water suggestions are read-only.

Local only; hvacWrite=false utilityWrite=false persisted=false.

Quick actions
Component Workspace

Home shell ready

Open a Copse module or existing dashboard and it will render here, with Home Base still surrounding it.

Choose a component from Modules or Dashboards. Copse stays wrapped around it so you can always return home.
Setup Wizard

HouseholdSetupCheck → FirstTimeSetup → Comprehensive Setup.

Web setup follows the local Home Base setup flow and writes toward household membership + enabledModules.

Sign up

Create your Home Base.

Start with account creation, choose the kind of Copse you are opening, then preview the modules and invite plan before any tenant, household, calendar, reminder, or persistence write exists.

OIDC protected
New space Create Home Base Household, team, classroom, and neighborhood presets render locally before tenantWrite is allowed.
Invited member Join with a code Invite codes show pending, approved, restricted, unknown, empty, and no-write states without membership persistence. Open join path
Role review Pick the first role Guardian admin can review people, modules, privacy, and dependency gates before any write exists.
Home Base draftLocal preview state · no household record
Optional. If present, the signup preview stages a pending join request instead of implying an invite write.
Starter modules
Invite preview
Use invite instead
Disabled preview: tenant, invite, admin, audit, and persistence writes require a separate approved backend slice.
Home BaseSmith Home Base
Draft
Today3 routines staged
PeopleGuardian admin ready
Modules3 selected
BoundaryNo persistence write
Preset preview Household preset Tasks, groceries, meals, and home systems stay staged locally. moduleWrite=false auditWrite=false persisted=false
Module dependency review Lists, meals, and tasks are compatible dependencyReview=previewOnly moduleWrite=false auditWrite=false persisted=false
Invite people preview 1 guardian invite staged locally inviteWrite=false memberWrite=false deliveryWrite=false persisted=false
Member cards preview Guardian admin, invited caregiver, and youth member stay local memberCards=previewOnly roleWrite=false membershipWrite=false privateData=false persisted=false
Optional invite code No invite code entered signupMode=createNew emptyInvite=true membershipWrite=false inviteWrite=false persisted=false
Landing plan
Open Home Base with selected modules visible.
Keep In Touch, Health, Mind, and Life Admin in the same shell.
Require separate approved backend work before creating a tenant.
Household variant · local module preview only.

Ready to preview local setup.

Sign up by invite

Join a Copse by invite code.

Preview how packs, teams, classes, and family groups enter the shared shell while preserving tenant/RBAC boundaries and avoiding external writes.

No invite write
Invite codeLocal validation preview · no membership write
Try PACK-1703-DEMO, HOME-COPSE-DEMO, TEAM-DEMO, EXPIRED-DEMO, UNKNOWN-DEMO, or leave it blank to see the empty state.
Create Home Base

Preview checks normalize the code, show the target Copse, and keep the real membership API untouched.

Matched Copse

Pack 1703

Reusable Copse Portal instance · groups, events, announcements, volunteers, resources, and chat modules.

RoleGuardian
Invites1 pending request
Messages4 unread
Events2 drafts
Invited memberCode normalized locallyinviteLookup=localPreview apiWrite=false persisted=false
Role choiceGuardian access requestroleWrite=false adminReview=required persisted=false
ArrivalShared shell previewrouteAccess=previewOnly sessionWrite=false persisted=false
Review request preview Pack 1703 · Guardian Enabled modules: Events, Announcements, Chat, Calendar. Guardian/admin review required before any member, household, or invite write.
PendingGuardian reviewrequestState=pending membershipWrite=false inviteWrite=false persisted=false
ApprovedShell access readyapprovedState=previewOnly sessionWrite=false persisted=false
RestrictedRead-only until admin approvesrestrictedState=true adminWrite=false persisted=false
Join preview boundary
Tenant membership remains preview-only.
Organizer/admin roles must come from the real invite record.
Messages, events, and household cards stay scoped after sign-in.

Ready to preview invite code.

ModuleRegistry

Search and enable HomeModules.

In Touch

Coordination hub for people, groups, and plans.

Catch up first, then branch into messages, joined copses, events, announcements, resources, and protected Portal tools without losing the thread.

Primary In Touch surface

Discord-style Home Copse chat

Today in In Touch · Home Copse catch-up

Channels, member mentions, persisted messages, typing state, and the Aegis bot live in one dedicated chat workspace.

Search and scope Find the thread, group, event, or restricted item that needs attention.
Messages Discord-like channels are live 6 unread across 3 threads; create channels, add members, mention Aegis, and send messages through the Copse chat API.
Invites 1 guardian request Review role, child-safe access, and organizer notes before any membership path exists.
Events 2 plans need context RSVP and volunteer readiness stay protected subflows, not loose chat messages.
Posts Draft announcement ready Feed, email, SMS, push, audit, and persistence writes remain locked.
Chat lanes Family, school, teams, and meetings Channel-like spaces keep everyday coordination searchable and scoped by membership.
Portal lanes Groups, events, resources, volunteers Protected subflows handle organizer review, approvals, and evidence before publishing.
Access lanes Joined, created, restricted, pending Role and tenant boundaries stay visible so fail-closed states are not hidden by empty feeds.
Family ChatDinner plan, pickup handoff, and two home notes.
3
School UpdatesTeacher Meeting prep and permission-slip follow-up.
1
Soccer TeamPractice shift and snack coverage preview.
2
NeighborhoodTool-share request and weekend porch pickup.
0
Family CallCall room is ready; prep notes are empty.
0
Teacher MeetingAgenda, forms, and questions staged locally.
0
Opened locally Family Chat

Thread preview opened locally. Unread state is marked in this browser only; messageWrite=false deliveryWrite=false persisted=false.

No message, notification, membership, invite, audit, external delivery, API, auth, session, RBAC, or persistence write occurs.
Message preview Dinner plan, pickup handoff, and two home notes. Selected conversation · unread clears locally localReadState=true · messageWrite=false · deliveryWrite=false · persisted=false
Today Family Call 7:30 PM · Home Copse · two unread prep notes
Tomorrow Teacher Meeting School Updates · agenda and documents staged locally
Joined copsesHome Copse · Pack 1703
Invites1 pending
Unread6 messages
PortalDraft-only events
Messages emptyNo channels yetStart from a joined Copse before messageWrite can exist.
Messages loadingChecking membershipKeep unread badges and thread access pending until tenant scope is known.
Messages errorFail closedmessageWrite=false externalDelivery=false persisted=false
Invite review1 request pendinginviteWrite=false membershipWrite=false adminWrite=false persisted=false
Invites and membership Validate an invite without joining. Codes, roles, review requests, and access states are previewed locally. No membership, invite, notification, audit, API, session, RBAC, or persistence write occurs.
Known local demos: PACK-1703-DEMO, HOME-COPSE-DEMO, TEAM-DEMO. Blank code shows the empty state.
PACK-1703-DEMO ready for local invite validation. membershipWrite=false inviteWrite=false persisted=false
PendingGuardian reviewrequestState=pending roleWrite=false membershipWrite=false inviteWrite=false persisted=false
ApprovedShell access previewapprovedState=previewOnly sessionWrite=false memberWrite=false persisted=false
RestrictedRead-only until approvedrestrictedState=true messageRead=false adminWrite=false persisted=false
EmptyNo invite selectedemptyState=true membershipWrite=false inviteWrite=false persisted=false
Unknown codeFail closederrorState=true inviteLookup=disabled membershipWrite=false persisted=false
Pending invite Pack 1703 guardian request

Review role, child-safe module access, and organizer notes before a real membership path is approved.

Approved invite Home Copse shell access

Approved-state preview shows route access without writing session, tenant, member, or invite records.

Restricted thread Neighborhood Copse

Visible as a locked preview until tenant membership and message access are confirmed.

Invite empty No accepted invite selected

Joining remains preview-only; membershipWrite=false inviteWrite=false deliveryWrite=false persisted=false.

ChatCreate channels and message Aegis inside the active Copse.
GroupsJoined groups and membership requests will live here.
AnnouncementsDraft copse-wide updates without email, SMS, push, or feed delivery.
EventsShared commitments, RSVPs, and volunteer slots stay outside chat.

Home Copse

Channels are available after joining this Copse.

Channel members0
new channel
Channel

No channels yet

Health

Care that stays visible without becoming noisy.

Private health signals use local preview states here until approved persistence or provider integrations are added.

Private preview
Metrics watch Sleep steady Sleep, water, steps, and mood stay readable with trend text, private-data labels, missing-data, loading, and error states before any provider write exists.
Sleepsteadytrend text visible
Waterwatchmissing bottle state ready
Stepsrisingloading state ready
Moodprivateadult-only error state ready

privateDataLabel=true missingMetricState=true loadingState=local errorState=local healthRecordWrite=false providerWrite=false reminderWrite=false persisted=false

Medications & RemindersDue today
Medication guard 3 reminders scoped locally Complete, reopen, snooze, and guardian review actions update this preview only before medication or reminder APIs exist.
Complete1 donereopen action ready
Snooze1 duelocal delay only
Review1 guardedguardian confirmation
Write lock0 writesAPI disabled

completeAction=local reopenAction=local snoozeAction=local reviewAction=local medicationWrite=false reminderWrite=false notificationWrite=false taskWrite=false auditWrite=false persisted=false

Family WellnessMember cards
Wellness review Guardian view ready Member cards, wellness summary, child-safe privacy, caregiver-disabled state, and empty-state readiness stay reviewable before any provider or health-record write exists.
Members3 cardsadult, child, care team
Privacy2 guardschild and caregiver scoped
Caregiverdisabledapproval required
Emptyreadyprivate first-run copy

memberCardPreview=local wellnessSummary=local childView=restricted caregiverConnection=disabled healthRecordWrite=false providerWrite=false caregiverWrite=false auditWrite=false persisted=false

Wellness summary 2 steady signals · 1 guarded connection Child details stay guardian-scoped; caregiver/provider sync stays disabled until approved.
Child details restricted to guardian view Caregiver/provider card disabled until approval

Family wellness empty state keeps member cards private; providerWrite=false healthRecordWrite=false persisted=false.

Care ActionsNext safe steps

No provider, medication, or household reminder write occurs from this preview route.

Health SettingsHooks staged
Settings review Privacy defaults selected Notification preferences, provider connection, and private health defaults are visible as local hooks before any write path exists.
Privacyselectedguardian and adult-only defaults
Notifyplaceholdercadence preview only
Providerdisabledexplicit approval required
Write lock0 writesAPI and persistence disabled

settingsPreview=local privacyWrite=false notificationWrite=false providerWrite=false healthRecordWrite=false auditWrite=false persistenceWrite=false

Approval required before notificationWrite, providerWrite, healthRecordWrite, medicationWrite, reminderWrite, taskWrite, auditWrite, externalWrite, or persistenceWrite.

Local preview state Sleep selected

Selection changed locally only; healthRecordWrite=false medicationWrite=false providerWrite=false reminderWrite=false persisted=false.

Health emptyNo private care dataShow a gentle first-run state before metrics, medications, or member cards exist.
Health loadingChecking private scopeKeep guardian and adult-only boundaries visible while local health previews load.
Health errorCare data unavailablehealthRecordWrite=false providerWrite=false medicationWrite=false reminderWrite=false persisted=false
Mind

A calmer place for reflection, focus, reading, and private research.

Daily mental space stays lightweight first. Private research and follow-through remain redacted, role-gated modules below the personal dashboard.

Private by default
Today's Reflection What deserves your best attention today?

Start with one steady thought, then move through focus, reading, journal, and breathing without turning the route into a workbench first.

Focus Session25 minutes · phone away
Reading2 queued notes · 12 min
Journal PromptWhat got lighter this week?
Take a Breath4 rounds · box breathing
Mobile polish First screen stays light before the workbench. Hero, practice, privacy, and research controls keep compact spacing, dock clearance, and no horizontal spill across phone, tablet, desktop, and wide views.
First viewhero + practiceabove dock
Densityworkbench lightcompact review before panels
Scroll reach4 sizesphone to wide
Route fitno spillsame hierarchy

mindMobilePolish=local layoutWrite=false journalWrite=false researchWrite=false taskWrite=false reminderWrite=false auditWrite=false externalWrite=false persistenceWrite=false

Local preview state Focus Session selected

Practice state changed locally only; practiceWrite=false journalWrite=false reminderWrite=false taskWrite=false persisted=false.

Journal privacy Draft reflection stays on this screen only. Private labels are visible before any approved journal, note, research, or household sharing path exists.
🔒 Private draft
Draft inputlocal onlybrowser field, no journal record
Private labelsowner scopeMind label visible without raw draft payload
Leak checkhousehold blockedhouseholdShare=false publicLeak=false
Persistencesave disabledjournalWrite=false noteWrite=false

journalWrite=false noteWrite=false researchWrite=false householdShare=false auditWrite=false externalWrite=false persisted=false rawDraftPayload=false publicLeak=false

Daily practice review Focus Session selected Reflection, focus, reading, journal, breathing, and unavailable states are visible before any practice, journal, reminder, task, audit, research, or persistence write exists.
Reflectionreadyprompt visible only
Focusselectedtimer preview local
Readingavailablequeue preview only
Journaldraft-onlyprivate local field
Breathavailableno health write
Unavailablelockedno fallback write
Write lock0 writestask and audit disabled

mindPracticePreview=local practiceWrite=false journalWrite=false reminderWrite=false taskWrite=false auditWrite=false researchWrite=false persistenceWrite=false

Mind emptyNo daily practice selectedpracticeWrite=false journalWrite=false taskWrite=false persisted=false
Mind loadingPrivate research loadingresearchRead=role-gated rawPayload=false secretFieldRender=false
Mind errorResearch module unavailableresearchWrite=false auditWrite=false externalWrite=false persisted=false
Mind privacyJournal draft not sharedhouseholdShare=false externalWrite=false persisted=false
Private Research Research workbench stays available without taking over Mind.

Inbox, synthesis, decisions, drafts, commitments, and operations audit remain owner/admin/researcher scoped. Raw payloads and secret-like fields stay out of the client-rendered view.

Notifications0New field logs
InboxReviewField Console notes
SynthesisGroupEvidence to decisions
Follow-throughDraftExplicit commit required
Private research compact review Research stays scannable before the deep workbench. Inbox, promoted evidence, syntheses, accepted decisions, next actions, commitments, schedule, sync, and role gates are summarized before the detailed panels.
Inbox3 redactedpending review only
Evidence2 promotedprovenance visible
Synthesesopenprivate summary
Decisionsacceptednext-action lane
Commitmentsstagedexplicit commit required
Schedulereview onlystatus controls locked
Sync statusdry-runpreview before write
RBACowner/adminresearcher scoped

researchPreview=local researchWrite=false taskWrite=false reminderWrite=false syncWrite=false auditWrite=false rawPayload=false secretFieldRender=false persistenceWrite=false

Notifications

New Field Console data logs

ClockworkPi upload receipts appear here as redacted, read-only notifications before review. No raw payloads or secret-like fields are rendered.

Not loaded
Log Overview

Field Console data flow

Last 24 hours
Upload trendredacted receipts
Data typesfrom safe metadata
Review statetriage queue
Private Research Inbox

Field Console notes waiting for review

Private by default. Raw payloads and secret-like fields are not rendered in this view.

Not loaded
Mind Workbench

Promoted research ready for synthesis

Promoted notes appear with provenance, audit context, checksums, and redacted observations. Raw captures remain private.

Not loaded
Synthesis

Group evidence into decisions

Select promoted evidence, then capture a hypothesis, summary, or next action. Syntheses stay private and redacted.

No evidence selected
Accepted Decisions

Mind decisions and next actions

Accepted syntheses are separated from the open workbench so decisions and next actions stay scannable.

Not loaded
Draft Follow-Through

Staged task and reminder drafts

Accepted next actions can be staged here, reviewed, and explicitly committed as Copse tasks or reminders. Nothing is created automatically.

Not loaded
Committed Follow-Through

Confirmed tasks and reminders

Confirmed Copse Mind actions appear here and in Home Base, still private and redacted by default. Preview the redacted dry run before batch sync writes internal module records.

Not loaded
Operations Audit

Recent module sync activity

Redacted module-sync results and failures for confirmed follow-through. Source notes, raw observations, and private Copse Mind content stay out of this operations view.

Not loaded
Life Admin

The paperwork, errands, and upkeep have a home.

Draft-only operational cards keep bills, documents, calendar work, projects, car care, and errands easy to scan.

Draft only
Home support Nothing urgent is hiding in the pile.

Documents, due dates, and household maintenance stay grouped by action state before any external write path exists.

5 local actions queued 2 drafts need review 0 external writes
Bills2 upcoming · autopay watch
DocumentsInsurance card and school forms
CalendarRead-only planning queue
Home ProjectsFilter check · garage shelf
Car MaintenanceService Friday morning
Shopping & ErrandsGroceries plus returns
Scoped read model Tenant-backed Life Admin loads read-only.
Loading /api/copse/life-admin?tenantId=primary · lifeAdminWrite=false persisted=false
ScopeloadingtenantId=primary membership check
Life Admin modulespendingmodule projection check
Write boundaryread-onlylifeAdminWrite=false paymentWrite=false persisted=false
ModulesloadingSelected tenant module IDs are checked before display.
Resource refsloadingBills, documents, and calendar refs render without writes.
No-write boundarylockedbillWrite=false documentWrite=false calendarWrite=false taskWrite=false externalWrite=false recipesTouched=false
Read loadingChecking live Copse scopeControls below stay local while the scoped read model loads.
Read emptyNo tenant-backed projection yetExisting Bills, Documents, Calendar, Projects, Car, and Shopping previews remain local-only.
Read errorLife Admin API unavailablelifeAdminWrite=false billWrite=false paymentWrite=false documentWrite=false calendarWrite=false persisted=false
Read restrictedTenant membership requiredrestrictedRead=true publicDataLeak=false externalWrite=false persisted=false
Local draft state Bills selected

Selection changed locally only; billWrite=false documentWrite=false calendarWrite=false taskWrite=false persisted=false.

Bills Due dates and autopay stay review-only
paymentWrite=false · financeProviderWrite=false · externalWrite=false · persisted=false
Utility billDue in 3 days · autopay on · 72% review progress
School tuitionScheduled Friday · receipt needed · 45% packet progress
Pay or change autopayLocked until payment/security review is explicitly approved
Autopay reviewed
Receipts gathered
Payments written
Bills emptyNo upcoming billsEmpty state keeps review and payment actions disabled until a scoped bill read exists.
Bills loadingChecking bill review queueDue dates and autopay flags stay local while read-only evidence loads.
Bills errorBill preview unavailablebillWrite=false paymentWrite=false financeProviderWrite=false auditWrite=false persisted=false
Documents Packet staging stays local until file storage is approved
documentWrite=false · fileWrite=false · externalUpload=false · persisted=false
Insurance card packetGuardian visible · staged for school desk · 82% packet readyVisible to guardians
School formsMissing signature · child-safe summary only · due this weekSchool desk only
Medical authorizationRestricted health-adjacent form; upload locked until privacy reviewRestricted
Packet staged
Missing-document review
Files persisted
Packets3 trackedInsurance, school forms, and medical authorization remain local preview rows.
Missing1 needs signatureMissing-document state is visible without uploading or persisting files.
Restricted1 lockedHealth-adjacent packet stays disabled until privacy and storage approval.
No write0 files persisteddocumentWrite=false fileWrite=false externalUpload=false auditWrite=false persisted=false
Calendar Upcoming items stay read-only until Apple Calendar writes are approved
calendarWrite=false · appleCalendarWrite=false · reminderWrite=false · taskWrite=false · persisted=false
Teacher meetingToday · 3:00 PM · Home calendar evidence onlyUpcoming item preview
Campfire awards nightFriday · 6:00 PM · duplicate-check inputs stagedSync review needed
Add or sync Apple CalendarLocked until calendar write path and approval envelope existWrite locked
Upcoming reviewed
Sync evidence staged
Apple Calendar writes
Calendar emptyNo upcoming Life Admin itemsEmpty state keeps add/sync controls disabled until an approved write path exists.
Calendar loadingChecking read-only evidenceApple Calendar target and duplicate evidence stay redacted while loading.
Calendar errorCalendar preview unavailablecalendarWrite=false appleCalendarWrite=false reminderWrite=false taskWrite=false persisted=false
Approval handoffChristopher acceptance queueReview packet, screenshots, and PR-loop evidence are ready for delegated acceptance.
No calendar writes0 external events createdcalendarWrite=false appleCalendarWrite=false reminderWrite=false taskWrite=false auditWrite=false persisted=false
Next after acceptanceHome ProjectsThe next Life Admin row remains local-only and can be reviewed after Calendar is accepted.
Apple Services Consent and storage boundaries come before import.
appleCredentialWrite=false - plaintextAppleCredential=false - liveImporter=false - resourceGrantRequired=true
Apple account connectionConsent receipt required before Calendar, Reminders, Notes, Contacts, files, photos, or mail imports can run.Consent needed
Service discovery reviewCalendars, notes, contacts, reminders, files, photos, mail, and unavailable services are shown before any adapter runs.Review only
Revoke and audit planOwner can revoke consent, expire token handles, and queue export/delete with an audit receipt.Revocable
Token boundaryKeychain reference onlyNo Apple password, app-specific password, raw OAuth token, refresh token, or client secret is stored in Copse.
Storage isolationEncrypted tenant/user/dataset envelopeImported objects, attachments, receipts, cache keys, and search indexes carry tenantId, ownerUserId, and datasetId.
Resource grantsOwner-only by defaultHousehold or organization members need an explicit grant to a specific imported data set before anything is shared.
Audit trailConsent, import, grant, and revoke receiptsDenied tenant, denied member, consent revoked, token expired, and export/delete requested states stay visible.
Unsupported serviceUnavailable adapter shown safelyunsupportedService=true liveImporter=false credentialCollection=false
Denied tenantCross-tenant access fails closedtenantScopedStorage=true crossTenantRead=false cacheSearchLeak=false
Denied memberNo household-wide exposureownerOnly=true explicitResourceGrantRequired=true organizationRead=false
Home Projects Project next actions stay local until tasks are approved
projectWrite=false · reminderWrite=false · taskWrite=false · vendorWrite=false · persisted=false
Air filter checkSaturday window · 65% ready · next: measure return ventNext action picked
Garage shelf resetParts staged · bracket review needed · no vendor bookedLocal queue
Create reminder or taskLocked until household task/reminder writes are approvedWrite locked
Supplies checked
Next actions picked
Tasks/reminders written
Project emptyNo active home projectEmpty state keeps create-task controls disabled until an approved write path exists.
Project loadingChecking local queueMaintenance notes stay private while project context resolves.
Project errorProject preview unavailableprojectWrite=false reminderWrite=false taskWrite=false vendorWrite=false persisted=false
Approval handoffChristopher acceptance queueReview packet, screenshots, and PR-loop evidence are ready for delegated acceptance.
No project writes0 tasks createdprojectWrite=false reminderWrite=false taskWrite=false vendorWrite=false auditWrite=false persisted=false
Next after acceptanceShopping & ErrandsThe next Life Admin row remains local-only and can be reviewed after Car Maintenance is accepted.
Car Maintenance Vehicle care stays review-only until service writes are approved
vehicleServiceWrite=false · calendarWrite=false · reminderWrite=false · vendorWrite=false · persisted=false
Oil and tire checkDue Friday morning · 58% readiness · receipt not attachedDue state
Registration cardReviewed locally · renewal window watched · private details redactedReviewed
Book service or reminderLocked until vendor, calendar, and reminder writes are approvedWrite locked
Maintenance readiness
Records reviewed
Service/reminder writes
Due reviewOil and tires stay queuedLocal checklist receipt only · vehicleServiceWrite=false
Reviewed proofRegistration private details redactedReviewed state remains visible without exposing raw vehicle records.
No service writes0 bookings or reminders createdcalendarWrite=false reminderWrite=false vendorWrite=false persisted=false
Car emptyNo vehicle item dueEmpty state keeps booking, calendar, and reminder controls disabled.
Car loadingChecking local maintenance queueVehicle notes stay local while service context resolves.
Car errorMaintenance preview unavailablevehicleServiceWrite=false calendarWrite=false reminderWrite=false vendorWrite=false persisted=false
Shopping & Errands List prep stays local until task and vendor writes are approved
shoppingWrite=false · taskWrite=false · reminderWrite=false · vendorWrite=false · persisted=false
Grocery run7 items · produce, lunch supplies, and pantry restockList staged
Return desk stop2 items · receipt check needed before leavingErrand review
Export list or orderLocked until shopping, task, reminder, and vendor writes are approvedWrite locked
Items grouped
Errands reviewed
External writes
List proofGrocery run stays staged7 local items remain grouped without vendor or task writes.
Errand reviewReturn desk stop needs receipt checkReviewed state is local-only and does not create a reminder.
No shopping writes0 orders, tasks, or reminders createdshoppingWrite=false taskWrite=false reminderWrite=false vendorWrite=false persisted=false
Shopping emptyNo active listEmpty state keeps order, task, and reminder controls disabled.
Shopping loadingChecking local list draftItem counts and errand notes stay local while context resolves.
Shopping errorList preview unavailableshoppingWrite=false taskWrite=false reminderWrite=false vendorWrite=false persisted=false
What changedRecent activity from the home shell
localPreview=true externalWrite=false auditWrite=false reminderWrite=false persisted=false
Permission slip still visibleHome Base · guardian review copy only
Open
Insurance packet stagedDocuments · fileWrite=false
Stay
Teacher meeting moved to In TouchMessages · deliveryWrite=false
Open
Grocery list staged locallyShopping · shoppingWrite=false
Stay
Open loops64% organized
Documents82% filed
Errands45% done
BillsConfirm autopay reviewLocal checklist only · billWrite=false persisted=false
DocumentsStage insurance card packetLocal packet preview · documentWrite=false fileWrite=false
ProjectsConfirm project next actionLocal project queue only · projectWrite=false taskWrite=false
CarConfirm car maintenance reviewLocal vehicle checklist only · vehicleServiceWrite=false reminderWrite=false
ErrandsShopping list export lockedRequires approved list integration · taskWrite=false externalWrite=false
Life Admin emptyNo open loopsStart with bills, documents, calendar, projects, car, or errands when work appears.
Life Admin loadingGathering draft queuesCards stay disabled until local/private context resolves.
Life Admin errorOperations unavailablebillWrite=false documentWrite=false calendarWrite=false taskWrite=false persisted=false
FinancesHousehold money stays review-only until payment work is approved.billWrite=false paymentWrite=false accountWrite=false persisted=false
Open finances
Portal fundraisingCollection remains disabled until payment/security design is approved.collectionWrite=false providerWrite=false donorData=false persisted=false
Open fundraising
Financial privacyFinance access fails closed for every role until audit and payment design are approved.rawAccountData=false rawPaymentData=false auditWrite=false persisted=false
Open privacy
Finances

Bills, budget signals, and payment boundaries stay visible.

Household finance cards are local previews only: no bank account, payment provider, bill record, budget, audit, external delivery, API, or persistence write path exists.

No payment collection
Utility bill due soon Payment due state only; amount and account identifiers are redacted.
Autopay review Checklist preview; no autopay toggle, biller connection, or provider write.
Budget snapshot Fund status placeholder with redacted categories and no raw transaction payload.
Restricted member view Non-admins see finance availability without bill, account, or payment details.
Local finance state Utility bill due soon reviewed

Due-state preview is local and redacted; billWrite=false paymentWrite=false bankAccountWrite=false transactionWrite=false persisted=false.

Finance empty No bills in review Empty finance previews reveal no account, provider, payment method, or raw budget data.
Finance loading Gathering redacted summary Controls remain disabled while finance state resolves locally.
Finance error Payment path unavailable paymentWrite=false bankProviderWrite=false transactionWrite=false auditWrite=false persisted=false
Finances / Privacy

Finance role gates, redaction, and audit requirements are explicit.

Financial privacy remains a local preview only: raw account numbers, payment methods, transaction payloads, provider tokens, audit events, APIs, and persistence are not rendered or written.

Fail closed
Guardian admin gate Admin can review redacted status only; paymentWrite=false accountWrite=false auditWrite=false.
Finance reviewer Reviewer sees masked bill and budget summaries; rawAccountData=false rawPaymentData=false.
Household member view Members see availability and next step labels without amount, provider, account, or method details.
Unauthenticated denial Signed-out users receive no finance payload; unauthenticatedRead=false privatePayload=false.
Denied role behavior Denied roles fail closed with no permission mutation, no tenant leak, and no sensitive payload.
Audit required first Any future finance write needs approved audit design before bill, payment, account, or budget writes exist.
Local privacy gate Guardian admin gate reviewed

Guardian admin preview shows redacted status only; billWrite=false paymentWrite=false accountWrite=false auditWrite=false persisted=false.

Redacted summary Masked finance payload only billStatus=dueSoon amount=redacted accountSuffix=hidden paymentMethod=hidden providerToken=false.
No raw payload Client payload stays sanitized rawAccountData=false rawPaymentData=false rawTransactionData=false rawProviderResponse=false.
Audit requirement Real writes stay blocked auditDesignApproved=false billWrite=false paymentWrite=false budgetWrite=false persisted=false.
Privacy error Finance access unavailable Fail closed: privatePayload=false tenantLeak=false permissionWrite=false externalWrite=false.
Finances / Portal

Fundraising can be planned without collecting money.

Portal payment and fundraising previews stay collection-disabled until Christopher approves a payment provider, security review, RBAC policy, audit trail, and data-retention design.

Collection disabled
Fundraising module placeholder Campaign title, goal, and audience are preview-only; fundraisingWrite=false collectionWrite=false persisted=false.
Collection disabled No checkout, payment link, QR code, invoice, receipt, donor record, or provider token exists.
Security review required Provider, PCI posture, webhook validation, audit, tenant isolation, and secret handling need approval first.
Approval required Portal admins can see planned fundraising status but cannot start collection or publish a payment flow.
Local fundraising state Fundraising placeholder reviewed

Fundraising state is local preview copy only; campaignWrite=false paymentWrite=false providerWrite=false donorData=false persisted=false.

Payments empty No campaigns collecting Empty state confirms no active collection, donor ledger, payment method, or checkout provider.
Payments loading Checking approval envelope Controls stay disabled while payment security requirements are unresolved.
Payments error Collection unavailable paymentWrite=false providerWrite=false webhookWrite=false auditWrite=false persisted=false
Family settings

Edit the household without opening a write path.

Household name, members, roles, modules, pending users, and restricted members stay reviewable before tenant, audit, or persistence writes are approved.

approval required
H
Edit household draftLocal validation only · householdWrite=false
Subcomponents Enable or disable module subcomponents
Home Base
In Touch
Health
Mind
Life Admin

Ready for local preview. validationState=idle moduleWrite=false subcomponentWrite=false auditWrite=false persisted=false

AdminChristopherGuardian admin · can review module changes
MemberAlexChild profile · private labels stay redacted
Pending userJamieInvite review queued · memberWrite=false inviteWrite=false
RestrictedPortal helperLimited modules · restrictedMemberWrite=false
Invites1 pending caregiverinviteWrite=false emailDelivery=false persisted=false
Tasks4 assignable peopleassignmentWrite=false taskWrite=false persisted=false
Groceries2 shopper targetslistWrite=false vendorWrite=false persisted=false
MealsGuardian approvalmealWrite=false childPreferenceWrite=false persisted=false
RemindersPrivate by defaultreminderWrite=false notificationWrite=false persisted=false
CommitmentsHousehold-scopedcommitmentWrite=false calendarWrite=false persisted=false
Local edit state Household draft ready

Edit controls are local only; householdWrite=false roleWrite=false moduleWrite=false subcomponentWrite=false auditWrite=false persisted=false.

Approval checklistReady for delegated acceptancememberReview=true moduleReview=true subcomponentReview=true noWriteBoundary=true
Pending users1 pending reviewPending members are visible without approving membership writes.
Restricted members1 restricted helperRestricted role state stays readable without leaking private Health or Mind data.
Save disabledApproval requiredhouseholdWrite=false roleWrite=false moduleWrite=false subcomponentWrite=false auditWrite=false persisted=false
Portal settings

Manage Copse modules without enabling a publish path.

Resource, volunteer, event, and announcement settings stay local until admin, audit, and persistence writes are approved.

admin gated
ResourcesForms and checklistsresourceWrite=false fileWrite=false persisted=false
VolunteersCoverage planningvolunteerWrite=false rsvpWrite=false persisted=false
EventsDraft coordinationcalendarWrite=false publishWrite=false auditWrite=false
AnnouncementsDelivery lockedannouncementWrite=false externalDelivery=false persisted=false
Local module state Resources module selected

Resource settings can be inspected locally; resourceWrite=false fileWrite=false adminWrite=false persisted=false.

Admin roleCan review modulesadminWrite=false auditWrite=false persisted=false
Restricted viewModule controls hiddennonAdminWrite=false rawPrivateData=false
Publish disabledApproval requiredpublishWrite=false externalWrite=false auditWrite=false persisted=false
Review queueAudit handoff onlyreviewWrite=false adminWrite=false notificationWrite=false persisted=false
Safety and privacy

Keep family visibility explicit before any private write path opens.

Child, caregiver, Health, Mind, restricted-member, and redaction states are visible here without exposing raw private records or enabling persistence.

redacted preview
Child visibilityGuardian summary onlychildProfileWrite=false caregiverWrite=false persisted=false
Caregiver viewLimited household contextcaregiverInviteWrite=false roleWrite=false rawPrivateData=false
Health + MindPrivate labels onlyhealthRecordWrite=false journalWrite=false providerWrite=false
RedactionRaw payloads withheldpublicDataLeak=false rawPrivateData=false auditWrite=false
Local privacy state Child visibility reviewed

Child and caregiver visibility is represented locally; childProfileWrite=false caregiverWrite=false privacyWrite=false persisted=false.

Restricted memberPrivate details hiddenrestrictedMemberWrite=false rawHealth=false rawMind=false persisted=false
Signed-out denialOIDC requiredunauthenticatedRead=false privatePayload=false sessionWrite=false
Denied roleFail closedroleWrite=false permissionWrite=false publicDataLeak=false persisted=false
Audit handoffReview before writesauditWrite=false notificationWrite=false permissionWrite=false persisted=false
Kid-safe by default

Safety policies travel with household membership and modules.

Dashboard launcher

Old systems and working dashboards, organized through Copse.

Link-through first; embed/proxy/native integration later after auth and health are understood.

Imported system inventory

Preserved platform modules