diff --git a/docs/ecosystem/ECOSYSTEM_EVENT_TAXONOMY.md b/docs/ecosystem/ECOSYSTEM_EVENT_TAXONOMY.md index 27a8df2d..d53ece6a 100644 --- a/docs/ecosystem/ECOSYSTEM_EVENT_TAXONOMY.md +++ b/docs/ecosystem/ECOSYSTEM_EVENT_TAXONOMY.md @@ -142,6 +142,11 @@ Rules: - `routine.started` - `routine.completed` +Current implementation note: + +- Phase 2 reuses canonical `artifact.created` and `artifact.linked` with `artifactType` values `plan`, `routine`, and `habit`. +- Product-specific planning event names remain reserved for later when the ecosystem needs finer-grained plan lifecycle telemetry beyond the artifact seam. + ### 5.5 Agent runtime events - `agent.session.created` @@ -203,6 +208,7 @@ Commits: - `41fa2cd` drafted the event taxonomy - `76f1b47` added canonical Phase 1 event schemas and example payloads +- `5460662` extended canonical artifact payloads so Phase 2 can reuse `artifact.created` and `artifact.linked` for `plan`, `routine`, and `habit` --- diff --git a/docs/ecosystem/ECOSYSTEM_IMPLEMENTATION_TRACKER.md b/docs/ecosystem/ECOSYSTEM_IMPLEMENTATION_TRACKER.md index 372cff56..1869252c 100644 --- a/docs/ecosystem/ECOSYSTEM_IMPLEMENTATION_TRACKER.md +++ b/docs/ecosystem/ECOSYSTEM_IMPLEMENTATION_TRACKER.md @@ -127,14 +127,24 @@ Example: - `learning_ai_notes` Phase 1 import path verified by Windsurf (`623d02c`): 13 focused tests, 3 schema conformance checks against `@bytelyst/events`, 106 total tests passing - Codex completed a manual runtime walkthrough on `2026-04-03` using `/tmp/bytelyst-phase1-walkthrough.qzzwch`, which produced transcript, note, and memory artifacts plus canonical event indexes with the causal chain `capture.transcript.created -> artifact.created -> artifact.linked -> memory.entry.created` - remaining known gap is local to `mindlyst-native/web`: package-local `npm run test:phase1` is still not self-sufficient in this clone even though the focused path is verified -- [ ] FlowMonk plan -> ChronoMind routine -> EffoRise habit +- [x] FlowMonk plan -> ChronoMind routine -> EffoRise habit Repos: - `learning_ai_flowmonk` - `learning_ai_clock` - `learning_ai_efforise` - `learning_ai_common_plat` Commits: - - pending + - `5460662` + - `59ab8b1` + - `fdd3743` + - `4975498` + - `pending current commit` + Status note: + - shared contract now supports first-class `plan`, `routine`, and `habit` artifacts + - FlowMonk exports a canonical plan artifact plus latest plan-created event index + - ChronoMind imports the latest plan into a routine artifact and preserves plan-created causation + - EffoRise imports the latest routine into a habit artifact and preserves routine-linked causation + - Codex completed a manual runtime walkthrough on `2026-04-03` using `/tmp/bytelyst-phase2-walkthrough.WpEjZu`, which produced the causal chain `evt_plan_created_b202f23f69a4 -> evt_routine_created_4c07d3fdcd07 -> evt_routine_linked_08b9db8a7013 -> evt_habit_created_f532f13332d1 -> evt_habit_linked_7be9a47928e3` - [ ] Cowork -> ActionTrail -> NoteLett -> MindLyst audited artifact flow Repos: - `oss/learning_ai_claw-cowork` @@ -164,6 +174,7 @@ These should be resolved before claiming the ecosystem docs are fully implementa Current implementation kickoff document: - [`PHASE1_TRANSCRIPT_NOTE_MEMORY_EXECUTION_PLAN.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/PHASE1_TRANSCRIPT_NOTE_MEMORY_EXECUTION_PLAN.md) +- [`PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md) Execution status: @@ -176,3 +187,5 @@ Execution status: - Codex completed an end-to-end runtime walkthrough on `2026-04-03` rooted at `/tmp/bytelyst-phase1-walkthrough.qzzwch`; the persisted indexes show `evt_capture_e913dd681aba -> evt_note_created_cced1442727e -> evt_note_linked_c3d477dfd0c4 -> evt_memory_9a3ebd9c67ca` - repo-local verification for MindLyst web Phase 1 path is functionally confirmed, but the package-local `npm run test:phase1` path is still not self-sufficient in this clone - Windsurf verified the `learning_ai_notes` Phase 1 backend path with `cd backend && npx vitest run`; 22 files passed and 106 tests passed, including the focused ecosystem-phase1 coverage +- shared contract now also supports the Phase 2 `plan -> routine -> habit` seam through `artifact.created` and `artifact.linked` +- Phase 2 walkthrough is complete and tracked in [`PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md) diff --git a/docs/ecosystem/ECOSYSTEM_SHARED_ARTIFACT_SCHEMA.md b/docs/ecosystem/ECOSYSTEM_SHARED_ARTIFACT_SCHEMA.md index 64837aec..ca9eab9a 100644 --- a/docs/ecosystem/ECOSYSTEM_SHARED_ARTIFACT_SCHEMA.md +++ b/docs/ecosystem/ECOSYSTEM_SHARED_ARTIFACT_SCHEMA.md @@ -1,6 +1,6 @@ # Ecosystem Shared Artifact Schema -> **Status:** Phase 1 baseline implemented +> **Status:** Phase 2 baseline implemented > **Owner:** `learning_ai_common_plat` > **Purpose:** Define the canonical cross-product artifact model so notes, transcripts, plans, memories, trails, routes, and agent outputs can interoperate cleanly. @@ -153,6 +153,11 @@ Phase 1 adopters: 5. `learning_ai_trails` 6. `oss/learning_ai_claw-cowork` +Phase 2 adopters: + +7. `learning_ai_clock` +8. `learning_ai_efforise` + --- ## 7. Key Open Decisions @@ -178,12 +183,13 @@ Phase 1 adopters: ## 9. Implementation Checklist - [x] finalize canonical envelope field names and required/optional splits -- [x] define first 5 artifact types in stable form +- [x] define first 8 artifact types in stable form - [x] define link relation vocabulary - [x] define provenance minimum payload - [ ] define storage/binary attachment rules - [ ] define migration strategy for first adopters - [x] add examples for LysnrAI, NoteLett, and MindLyst +- [x] add contract-backed examples for FlowMonk, ChronoMind, and EffoRise - [ ] add examples for Cowork and ActionTrail Current implementation location: @@ -195,3 +201,4 @@ Commits: - `eae3409` drafted the initial stub - `76f1b47` added Phase 1 artifact schemas and canonical fixtures +- `5460662` added Phase 2 artifact schemas for `plan`, `routine`, and `habit` diff --git a/docs/ecosystem/PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md b/docs/ecosystem/PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md new file mode 100644 index 00000000..58c326f7 --- /dev/null +++ b/docs/ecosystem/PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md @@ -0,0 +1,135 @@ +# Phase 2 Execution Plan: Plan -> Routine -> Habit + +> **Status:** Complete +> **Owner:** `learning_ai_common_plat` +> **Golden Flow:** FlowMonk plan -> ChronoMind routine -> EffoRise habit +> **Primary Lead:** Codex + +--- + +## 1. Scope + +This phase implements the second ecosystem handoff seam: + +1. FlowMonk exports a canonical `plan` artifact +2. ChronoMind consumes that plan and creates a canonical `routine` artifact +3. EffoRise consumes that routine and creates a canonical `habit` artifact +4. the event lineage remains replayable through persisted latest-event indexes + +This phase uses the same narrow, disk-backed proof strategy as Phase 1. + +--- + +## 2. Repos In Scope + +- [`learning_ai_common_plat`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat) +- [`learning_ai_flowmonk`](/Users/saravana/BytelystAI/learning_ai/learning_ai_flowmonk) +- [`learning_ai_clock`](/Users/saravana/BytelystAI/learning_ai/learning_ai_clock) +- [`learning_ai_efforise`](/Users/saravana/BytelystAI/learning_ai/learning_ai_efforise) + +--- + +## 3. Contract Decisions + +- `artifact.created` remains the canonical creation event for `plan`, `routine`, and `habit` +- `artifact.linked` remains the canonical linkage event for generated downstream artifacts +- `EcosystemArtifactTypeSchema` now includes `habit` +- link relations now include `generated-habit` +- no product-specific `plan.created` or `plan.habit.generated` event names were introduced in this phase + +--- + +## 4. Implementation Summary + +### 4.1 learning_ai_common_plat + +- [x] extend shared artifact types for `plan`, `routine`, and `habit` +- [x] extend generic event payloads so `artifact.created` can carry the new artifact types +- [x] extend `artifact.linked` relation vocabulary for `generated-routine` and `generated-habit` +- [x] add contract tests covering the new artifact and event shapes + +Commit: + +- `5460662` `feat(events): add phase2 plan routine habit contracts` + +### 4.2 learning_ai_flowmonk + +- [x] add `backend/src/lib/ecosystem-phase2.ts` +- [x] build a canonical `plan` artifact from planning-export data +- [x] persist latest plan artifact + created-event indexes +- [x] add focused producer test + +Commit: + +- `59ab8b1` `feat(phase2): export flowmonk plan artifacts` + +### 4.3 learning_ai_clock + +- [x] add `backend/src/lib/ecosystem-phase2.ts` +- [x] import the latest `plan` artifact into a `routine` +- [x] persist latest routine artifact + created/linked-event indexes +- [x] preserve upstream plan-created causation +- [x] add focused consumer/producer test + +Commit: + +- `fdd3743` `feat(phase2): import chronomind routines from plans` + +### 4.4 learning_ai_efforise + +- [x] add `backend/src/lib/ecosystem-phase2.ts` +- [x] import the latest `routine` artifact into a `habit` +- [x] persist latest habit artifact + created/linked-event indexes +- [x] preserve upstream routine-linked causation +- [x] add focused consumer/producer test + +Commit: + +- `4975498` `feat(phase2): import efforise habits from routines` + +--- + +## 5. Verification + +### Shared contract + +- [x] `pnpm exec vitest run src/ecosystem.test.ts` + Workdir: + `learning_ai_common_plat/packages/events` + Result: + `1` file passed, `5` tests passed. + +### Repo-local focused tests + +- [x] `node --experimental-strip-types --test backend/src/lib/ecosystem-phase2.test.ts` + Workdir: + `learning_ai_flowmonk` + Result: + `1` test passed. + +- [x] `node --experimental-strip-types --test backend/src/lib/ecosystem-phase2.test.ts` + Workdir: + `learning_ai_clock` + Result: + `1` test passed. + +- [x] `node --experimental-strip-types --test backend/src/lib/ecosystem-phase2.test.ts` + Workdir: + `learning_ai_efforise` + Result: + `1` test passed. + +### Manual end-to-end walkthrough + +- [x] manual walkthrough completed at `/tmp/bytelyst-phase2-walkthrough.WpEjZu` +- [x] persisted causal chain: + `evt_plan_created_b202f23f69a4 -> evt_routine_created_4c07d3fdcd07 -> evt_routine_linked_08b9db8a7013 -> evt_habit_created_f532f13332d1 -> evt_habit_linked_7be9a47928e3` + +--- + +## 6. Closeout Decision + +- `complete` + +Phase 2 is complete as a contract-backed ecosystem handoff. +Future route/UI adoption can build on these modules, but the artifact/event seam itself is now implemented and verified. diff --git a/docs/ecosystem/README.md b/docs/ecosystem/README.md index 38411c99..938d99ea 100644 --- a/docs/ecosystem/README.md +++ b/docs/ecosystem/README.md @@ -26,6 +26,7 @@ Recommended structure: - [`ECOSYSTEM_MARKETPLACE_UNIFICATION.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/ECOSYSTEM_MARKETPLACE_UNIFICATION.md) — shared marketplace model - [`ECOSYSTEM_PERSONAL_TIMELINE_PRD.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/ECOSYSTEM_PERSONAL_TIMELINE_PRD.md) — unified user activity stream - [`PHASE1_TRANSCRIPT_NOTE_MEMORY_EXECUTION_PLAN.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/PHASE1_TRANSCRIPT_NOTE_MEMORY_EXECUTION_PLAN.md) — execution-ready plan for the first golden flow +- [`PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/PHASE2_PLAN_ROUTINE_HABIT_EXECUTION_PLAN.md) — execution-ready plan for the second golden flow - [`delegation/`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/delegation) — ready-to-send task packs and launcher lines for Saravana, Codex, Windsurf, and Cursor - [`adoption/`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/adoption) — per-product adoption notes @@ -48,4 +49,4 @@ Tracking convention: Current implementation package: -- [`packages/events`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/packages/events) holds the first concrete ecosystem contract code and canonical Phase 1 fixtures. +- [`packages/events`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/packages/events) holds the first concrete ecosystem contract code and now covers both the Phase 1 and Phase 2 artifact/event seams. diff --git a/docs/ecosystem/adoption/README.md b/docs/ecosystem/adoption/README.md index 2b61967d..7ca6df56 100644 --- a/docs/ecosystem/adoption/README.md +++ b/docs/ecosystem/adoption/README.md @@ -17,6 +17,9 @@ Current docs: - [`learning_voice_ai_agent.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/adoption/learning_voice_ai_agent.md) - [`learning_ai_notes.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/adoption/learning_ai_notes.md) - [`learning_multimodal_memory_agents.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/adoption/learning_multimodal_memory_agents.md) +- [`learning_ai_flowmonk.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/adoption/learning_ai_flowmonk.md) +- [`learning_ai_clock.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/adoption/learning_ai_clock.md) +- [`learning_ai_efforise.md`](/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat/docs/ecosystem/adoption/learning_ai_efforise.md) Each adoption doc should cover: diff --git a/docs/ecosystem/adoption/learning_ai_clock.md b/docs/ecosystem/adoption/learning_ai_clock.md new file mode 100644 index 00000000..1f57a232 --- /dev/null +++ b/docs/ecosystem/adoption/learning_ai_clock.md @@ -0,0 +1,24 @@ +# Adoption: learning_ai_clock + +> **Status:** Phase 2 baseline implemented +> **Owner:** `learning_ai_clock` +> **Ecosystem focus:** plan -> routine -> habit golden flow + +--- + +## Goals + +- consume canonical `plan` artifacts from FlowMonk +- emit canonical `routine` artifacts +- preserve upstream causation into routine-created and routine-linked events + +## Checklist + +- [x] load the latest plan artifact and plan-created event +- [x] derive a ChronoMind routine from the shared plan payload +- [x] emit `artifact.created` and `artifact.linked` for the routine artifact +- [x] persist latest routine indexes for downstream EffoRise consumers + +Commits: + +- `fdd3743` implemented the Phase 2 consumer/producer path diff --git a/docs/ecosystem/adoption/learning_ai_efforise.md b/docs/ecosystem/adoption/learning_ai_efforise.md new file mode 100644 index 00000000..5ca36fc6 --- /dev/null +++ b/docs/ecosystem/adoption/learning_ai_efforise.md @@ -0,0 +1,24 @@ +# Adoption: learning_ai_efforise + +> **Status:** Phase 2 baseline implemented +> **Owner:** `learning_ai_efforise` +> **Ecosystem focus:** plan -> routine -> habit golden flow + +--- + +## Goals + +- consume canonical `routine` artifacts from ChronoMind +- emit canonical `habit` artifacts +- preserve upstream causation into habit-created and habit-linked events + +## Checklist + +- [x] load the latest routine artifact and routine-linked event +- [x] derive an EffoRise habit from the shared routine payload +- [x] emit `artifact.created` and `artifact.linked` for the habit artifact +- [x] persist latest habit indexes for downstream consumers + +Commits: + +- `4975498` implemented the Phase 2 consumer/producer path diff --git a/docs/ecosystem/adoption/learning_ai_flowmonk.md b/docs/ecosystem/adoption/learning_ai_flowmonk.md new file mode 100644 index 00000000..700a8ce0 --- /dev/null +++ b/docs/ecosystem/adoption/learning_ai_flowmonk.md @@ -0,0 +1,24 @@ +# Adoption: learning_ai_flowmonk + +> **Status:** Phase 2 baseline implemented +> **Owner:** `learning_ai_flowmonk` +> **Ecosystem focus:** plan -> routine -> habit golden flow + +--- + +## Goals + +- emit canonical `plan` artifacts from planning-export data +- emit canonical `artifact.created` events for plans +- provide enough lineage for ChronoMind and EffoRise consumers + +## Checklist + +- [x] map planning export output into the shared plan artifact schema +- [x] emit `artifact.created` for the plan artifact +- [x] include correlation/session IDs for downstream linking +- [x] persist latest plan indexes for downstream consumers + +Commits: + +- `59ab8b1` implemented the Phase 2 producer path