Skip to content

Scope Expansion: Full Build Plan (CEO Review 2026-04-01) #4

@jayzalowitz

Description

@jayzalowitz

CEO Review: SkyTwin Full Build Plan

Generated by /plan-ceo-review on 2026-04-01 | Mode: SCOPE EXPANSION | Branch: jayzalowitz/add-gstack


Vision

10x Check

The 10x SkyTwin is the OS layer between you and everything digital. Every app is a data source for the twin. Every API is an action surface. The twin doesn't just answer "what would I want done?" — it does it before you ask. You wake up and the day is already organized. The 10x version is invisible. You only notice it when it's wrong — and it's almost never wrong.

Platonic Ideal

A personal nervous system. The twin model is a continuously updated world model of one person's judgment. Temporal reasoning, social graph awareness, financial patterns, cross-domain synthesis. The UX is almost nothing: morning briefing, evening summary, occasional approval requests that get rarer over time. The feeling: someone competent is handling my life.


Scope Decisions

# Proposal Effort Decision Reasoning
1 Twin Query API + whatWouldIDo() M ✅ ACCEPTED Core driving function — this IS the product
2 OpenClaw Adapter + ExecutionRouter L ✅ ACCEPTED Execution breadth is the thesis. Create IronClaw issues when only OpenClaw has a skill.
3 Proactive Mode + Morning Briefing L ✅ ACCEPTED Transforms from reactive to proactive
4 Preference Archaeology M ✅ ACCEPTED Accelerates twin learning by surfacing implicit patterns
5 Cross-Domain Synthesis (foundation) XL ✅ ACCEPTED Foundation only — cross-domain event correlation engine
6 Twin Export + Portability S ✅ ACCEPTED Reinforces user sovereignty, cheap to build
7 Undo-with-Learning S ✅ ACCEPTED Fast feedback with reasoning accelerates twin quality

Architecture Decisions (13 issues resolved)

# Section Issue Decision
1 Architecture ExecutionRouter location New @skytwin/execution-router package — clean separation from adapter packages
2 Architecture Proactive scanner location Part of @skytwin/decision-engine — reuses scoring/ranking infrastructure
3 Architecture whatWouldIDo() pipeline depth Full pipeline, no execution — prediction matches what system would actually do
4 Architecture Cross-domain event storage New signals table in @skytwin/db — CRDB will have memory AI later
5 Data Model Preference proposals storage New preference_proposals table — clean separation from confirmed preferences
6 Data Model Undo reasoning capture Extend feedback_events with undo columns — unified feedback stream
7 Safety Explanation logging for queries Log as predictions with type='prediction' — valuable for twin quality eval
8 Safety OpenClaw risk adjustment Adapter risk modifier — adapters declare trust characteristics, router bumps risk
9 API Surface /ask endpoint protection Token-scoped rate limiting, scales with trust tier (60/hr → 600/hr)
10 Testing E2E test strategy Golden path test covering full pipeline: signal → outcome → feedback → twin update
11 Sequencing Build phase sequencing 5 phases — approved
12 Product/UX Briefing delivery format Dashboard-first + email digest opt-in
13 Risks Risk mitigations Time-box cross-domain (1 week), mock OpenClaw first, HIGH confidence for proactive

Build Phases

Phase 1: Foundation Extensions (DB migrations — unblocks everything)

  • New signals table (id, userId, source, type, domain, data JSONB, timestamp, TTL)
  • New preference_proposals table (id, userId, domain, key, value, confidence, evidence JSONB, status, timestamps)
  • New proactive_scans, briefings, twin_exports, skill_gap_log tables
  • Extend feedback_events: add undo feedbackType, undo_reasoning JSONB, undo_step_id
  • Add source column to decisions (reactive | proactive | query)
  • Add adapter_used column to execution_results (ironclaw | openclaw | direct)
  • Add type column to explanation_records (action | prediction)

Phase 2: Core New Capabilities (parallel tracks)

Track A: Execution Router

  • New @skytwin/execution-router package
  • ExecutionRouter with adapter selection (risk level, skill availability, credentials)
  • OpenClawAdapter implementing IronClawAdapter interface (mock-first)
  • Adapter trust characteristics + risk modifier system
  • Fallback chains (IronClaw → OpenClaw → Direct for low-risk)
  • Skill gap detection and logging

Track B: Twin Query API

  • whatWouldIDo(userId, situation) in @skytwin/decision-engine
  • Creates synthetic DecisionObject, runs full pipeline, no execution
  • Logs ExplanationRecord with type='prediction'
  • POST /api/v1/twin/:userId/ask endpoint
  • Token-scoped rate limiting (60/hr observer → 600/hr high_autonomy)

Track C: Twin Export

  • Export function in @skytwin/twin-model
  • Serializes: profile, preferences, inferences, patterns, traits, temporal profile
  • JSON + Markdown formats
  • GET /api/v1/twin/:userId/export endpoint
  • twin_exports audit table

Phase 3: Higher-Order Features (depend on Phase 2)

Track A: Proactive Mode + Morning Briefing

  • ProactiveEvaluator in @skytwin/decision-engine
  • Loads full user context from all connected accounts
  • Ranks "what needs doing most" using existing scoring
  • Morning briefing generation (ranked actions, confidence, reasoning)
  • Dashboard-first delivery with inline approve/reject/edit
  • Email digest opt-in with deep links to dashboard
  • Worker cron integration (configurable schedule)
  • Requires HIGH confidence for any proactive auto-execution

Track B: Preference Archaeology

  • Pattern analyzer in @skytwin/twin-model
  • Scans evidence + feedback history for implicit patterns
  • Generates PreferenceProposal records
  • GET /api/v1/preferences/:userId/proposals endpoint
  • POST /api/v1/preferences/:userId/proposals/:id (accept/reject)
  • On accept: creates real Preference with source='inferred'
  • On reject: records as negative signal for twin learning

Track C: Undo-with-Learning

  • Extended feedback recording in @skytwin/twin-model
  • Captures: which step went wrong, user's reasoning, preferred alternative
  • Triggers rollback via ExecutionRouter if action is reversible
  • Feeds reasoning back to twin model as high-weight correction signal (2x weight)

Phase 4: Integration Layer

  • Cross-domain correlation engine (time-boxed: 1 week)
    • Signal persistence in signals table with retention policy (30 days)
    • Cross-domain event matching (email about meeting + calendar conflict)
    • Correlation results feed into DecisionContext enrichment
    • Foundation only — not a general-purpose CEP
  • Skill gap logger → IronClaw issue creation
    • When ExecutionRouter finds OpenClaw has a skill but IronClaw doesn't
    • Creates structured issue with skill description, frequency, user demand
  • Golden path e2e integration test
    • Mock signal → interpret → twin query → candidates → risk + adapter modifier → policy → router → mock execution → explanation logged → feedback recorded → twin updated
    • Validates every package boundary in one test

Phase 5: Polish

  • Rate limiting implementation on /ask endpoint
  • Briefing schedule configuration UI
  • Dashboard updates for proposals, briefings, skill gaps, undo history
  • Export format refinements

New API Endpoints

Method Endpoint Purpose
POST /api/v1/twin/:userId/ask whatWouldIDo() prediction (rate-limited)
GET /api/v1/twin/:userId/export Twin profile export (JSON/Markdown)
GET /api/v1/briefings/:userId Latest morning briefing
PUT /api/v1/briefings/:userId/preferences Configure briefing schedule/format
GET /api/v1/preferences/:userId/proposals Proposed preferences from archaeology
POST /api/v1/preferences/:userId/proposals/:id Accept/reject proposed preference
GET /api/v1/skill-gaps View skill gap log

New Packages

Package Purpose
@skytwin/execution-router Adapter selection, routing, skill gap detection, risk modifiers

Schema Changes

Change Type
signals New table
preference_proposals New table
twin_exports New table
skill_gap_log New table
proactive_scans New table
briefings New table
feedback_events.undo_reasoning New JSONB column
feedback_events.undo_step_id New column
decisions.source New column
execution_results.adapter_used New column
explanation_records.type New column

Risk Mitigations

Risk Mitigation
Cross-domain scope creep Time-boxed to 1 week. Ship whatever's done. Foundation only.
OpenClaw API uncertainty Mock-first adapter. Real integration deferred until API stabilizes.
Proactive false positives Require HIGH confidence for any proactive auto-execution. Conservative start.

Planning Artifacts

Detailed issue specs written to planning/ directory:

  • issue-011-execution-router.md
  • issue-012-twin-query-api.md
  • issue-013-twin-export.md
  • issue-014-proactive-mode.md
  • issue-015-preference-archaeology.md
  • issue-016-undo-with-learning.md
  • issue-017-cross-domain-correlation.md
  • issue-018-phase1-migrations.md
  • milestone-1.5-scope-expansion.md

🤖 Generated with Claude Code via /plan-ceo-review

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions