dreamcontext 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/agents/sleep-product.md +2 -1
- package/agents/sleep-state.md +4 -1
- package/agents/sleep-tasks.md +5 -2
- package/dist/agents/sleep-product.md +2 -1
- package/dist/agents/sleep-state.md +4 -1
- package/dist/agents/sleep-tasks.md +5 -2
- package/dist/dashboard/assets/{BrainCanvas3D-HGYlhYHu.js → BrainCanvas3D-f5Y6PT-1.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-BJZHEXqg.js → _baseUniq-Ta62vsP4.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-CsUNvMuK.js → ar-SA-G6X2FPQ2-jzxJ_ECp.js} +1 -1
- package/dist/dashboard/assets/{arc-DGi0Y1lU.js → arc-D-o-9UoH.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46--otEkB0L.js → architectureDiagram-Q4EWVU46-DiKlGJXZ.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-Bz0oe5Eb.js → az-AZ-76LH7QW2-BL9xCgsH.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-B2v7y12w.js → bg-BG-XCXSNQG7-Ry_R9evo.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-rqdqmHWw.js → blockDiagram-DXYQGD6D-RsaId3-k.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-CLKX1rP5.js → bn-BD-2XOGV67Q-CUgI7mYR.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-B1FQR5jH.js → c4Diagram-AHTNJAMY-DPghs0tx.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-EtsmfF8w.js → ca-ES-6MX7JW3Y-BRaiYGc1.js} +1 -1
- package/dist/dashboard/assets/channel-BxXtm6aL.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-IRT1ScW_.js → chunk-4BX2VUAB-O7GB9cgM.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-BFzkDfpF.js → chunk-4TB4RGXK-BQOhV1JT.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-B9qWiQhd.js → chunk-55IACEB6-DhAIH--W.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-Bs1drGvm.js → chunk-EDXVE4YY-Chs7mD-k.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-BVN6P2JN.js → chunk-FMBD7UC4-BowamHD9.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-CTr0D0a8.js → chunk-OYMX7WX6-D8UJr8j4.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-C9Rr_prw.js → chunk-QZHKN3VN-BOqj47Nb.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-Wqg7FcGi.js → chunk-YZCP3GAM-UDOQPnhm.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-DRDRixtt.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-DRDRixtt.js +1 -0
- package/dist/dashboard/assets/clone-DDdzwqUk.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-CQThsheb.js → cose-bilkent-S5V4N54A-D-2ct0N_.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-37TE-J0W.js → cs-CZ-2BRQDIVT-y64ojEgs.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-kSVC3Nkd.js → da-DK-5WZEPLOC-CuGITxZe.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-DwQlYMS9.js → dagre-KV5264BT-Cl90-nVJ.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-tFaWOW7F.js → de-DE-XR44H4JA-C4yUFwSz.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-D-mv_xpV.js → diagram-5BDNPKRD-CifW537A.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-Dy1lLVzy.js → diagram-G4DWMVQ6-JF8e4CmK.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-Lq7dM5jQ.js → diagram-MMDJMWI5-CYpfsP8h.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-O7EE1hPN.js → diagram-TYMM5635-b9Z_ORTT.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-DsmJjlU5.js → el-GR-BZB4AONW-CgIyu6Mx.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-D45nuaEe.js → erDiagram-SMLLAGMA-HTrqyUnO.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-CYUoNFhc.js → es-ES-U4NZUMDT-g-shI88D.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-D-BQ9iPg.js → eu-ES-A7QVB2H4-DRfvnooC.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-Ba8HlQch.js → fa-IR-HGAKTJCU-KqJ-bb8r.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-jy2n46JY.js → fi-FI-Z5N7JZ37-Ccm3nZmM.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-D1hlk8iz.js → flowDiagram-DWJPFMVM-B27j9wPy.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-Ztaqa9RN.js → fr-FR-RHASNOE6-DvWMfb10.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-B43ghW2j.js → ganttDiagram-T4ZO3ILL-DFbnEWs4.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-Dn3aowvj.js → gitGraphDiagram-UUTBAWPF-Bl-6_fjw.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-CCoIWkgH.js → gl-ES-HMX3MZ6V-CfsSyCvn.js} +1 -1
- package/dist/dashboard/assets/{graph-Auezy0lX.js → graph-BJt4v-K6.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-unURWMzs.js → he-IL-6SHJWFNN-DvCmEeEq.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-CNEe3ZEN.js → hi-IN-IWLTKZ5I-Caxq3QFJ.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-Ca6Xr577.js → hu-HU-A5ZG7DT2-Cak3F0Es.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-Bdsa7Tti.js → id-ID-SAP4L64H-G6xGS3sm.js} +1 -1
- package/dist/dashboard/assets/index-BoxnNYGo.css +32 -0
- package/dist/dashboard/assets/index-CchlcoQO.js +516 -0
- package/dist/dashboard/assets/{index-3i9IQhA8.js → index-CmFgzgpQ.js} +1 -1
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-DCilbU-9.js → infoDiagram-42DDH7IO-CpKMgFKt.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-BAJxl0Ug.js → ishikawaDiagram-UXIWVN3A-RFbi-dXL.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-Cr5M0y6_.js → it-IT-JPQ66NNP-CRMjGfJO.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-BEqL7zMo.js → ja-JP-DBVTYXUO-qKukhnUz.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-DQmJZZcJ.js → journeyDiagram-VCZTEJTY-CTNV9WYX.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-KfGJeBGx.js → kaa-6HZHGXH3-B5jCPUdj.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-Dr1uqdr5.js → kab-KAB-ZGHBKWFO-BlL73uqK.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-DdLliZYp.js → kanban-definition-6JOO6SKY-COgJyhmy.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-D6yUxUhJ.js → kk-KZ-P5N5QNE5-CG0hwSh6.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-CnRtR0Za.js → km-KH-HSX4SM5Z-D7_LIf3_.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-CXL226cS.js → ko-KR-MTYHY66A-DDs6LMMU.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-C5Mg8Jxd.js → ku-TR-6OUDTVRD-AmvNC30P.js} +1 -1
- package/dist/dashboard/assets/{layout-Bwv1hHAc.js → layout-CpLiDGZe.js} +1 -1
- package/dist/dashboard/assets/{linear-D2tYzuND.js → linear-hxRkR_6Y.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-Dt0oW5bo.js → lt-LT-XHIRWOB4-DIZituwF.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-C_lTQrsH.js → lv-LV-5QDEKY6T-BF9ddjMv.js} +1 -1
- package/dist/dashboard/assets/{min-B_45McV4.js → min-BXf0ulcG.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-nNJ4_GXP.js → mindmap-definition-QFDTVHPH-CkrPsGZI.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-CPReJx93.js → mr-IN-CRQNXWMA-DvT8rSdX.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-C77moGfW.js → my-MM-5M5IBNSE-oTzpHZmp.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-4ghV00ST.js → nb-NO-T6EIAALU-mFTc2K9E.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-CcbzZzgt.js → nl-NL-IS3SIHDZ-BvHG6k52.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-DB_SQzQ1.js → nn-NO-6E72VCQL-DlLoXNop.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-BvsfXsQO.js → oc-FR-POXYY2M6-Cxl6Ws6i.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-7OkFfo05.js → pa-IN-N4M65BXN-BWtil7Y8.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-CkHfntSV.js → percentages-BXMCSKIN-CLq2oyzj.js} +7 -7
- package/dist/dashboard/assets/{pica-BeitlDpi.js → pica-CMJDNnKQ.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-BKp7yitG.js → pieDiagram-DEJITSTG-wlxYzLe8.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-BjjKXzUb.js → pl-PL-T2D74RX3-Bmw53sUP.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-C386x9te.js → pt-BR-5N22H2LF-ULX3TBZk.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-DIJSvX7C.js → pt-PT-UZXXM6DQ-DfHyDkUR.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-DsEevBcx.js → quadrantDiagram-34T5L4WZ-BR5iSy7H.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-DhIxdYs7.js → requirementDiagram-MS252O5E-BNuuSVYh.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-DMFIF-bR.js → ro-RO-JPDTUUEW-BC_5xxMm.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-VGg7NKhM.js → ru-RU-B4JR7IUQ-CQPnfmdC.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-Dp3LCgZS.js → sankeyDiagram-XADWPNL6-CwwUGQVB.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-swUgHNs2.js → sequenceDiagram-FGHM5R23-Dida7vc4.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-DBjYc5Qx.js → si-LK-N5RQ5JYF-C53L84xe.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-DOWk199P.js → sk-SK-C5VTKIMK-BcDGWL_O.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-BnuKAqzs.js → sl-SI-NN7IZMDC-FuMpHBk9.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-DsmTM4wV.js → stateDiagram-FHFEXIEX-CNvfKe7v.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-B8F8hUBl.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-BplosoPQ.js → subset-shared.chunk-Do9_AHqy.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-DXMuJCLI.js → subset-worker.chunk-i2BHHQN3.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-BIJOZjT-.js → sv-SE-XGPEYMSR-CAB9zxpi.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-DgJGUpHc.js → ta-IN-2NMHFXQM-yDO7M7xr.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-vQ27qFlk.js → th-TH-HPSO5L25-B1m3C6pX.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-D95a7dUt.js → timeline-definition-GMOUNBTQ-CujUrKzh.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-C6P_M0Ow.js → tr-TR-DEFEU3FU-CL5wc1n8.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-D45e0sU9.js → uk-UA-QMV73CPH-BbweuNSf.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-Da5942K2.js → vennDiagram-DHZGUBPP-ar0AgOfJ.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-DNPoI5eQ.js → vi-VN-M7AON7JQ--lCR5VP0.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-tkLUEbV4.js → wardley-RL74JXVD-DWD-UZhX.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-C7ekmdEZ.js → wardleyDiagram-NUSXRM2D-Et52gtVy.js} +1 -1
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-Bcd5w_DY.js → xychartDiagram-5P7HB3ND-pMHGVahC.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-CBpPP3ui.js → zh-CN-LNUGB5OW-DSVSl5q1.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-k-efdclM.js → zh-HK-E62DVLB3-DxZ5YtvV.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-CwBUPGXd.js → zh-TW-RAJ6MFWO-DlXNVnbL.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +9588 -9663
- package/package.json +1 -1
- package/skill/SKILL.md +2 -2
- package/skill/references/cli-reference.md +3 -2
- package/skill/references/sleep.md +2 -1
- package/skill/references/tasks-and-features.md +5 -4
- package/dist/dashboard/assets/channel-BdaY6sAg.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-BVUdw0mS.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-BVUdw0mS.js +0 -1
- package/dist/dashboard/assets/clone-oohc8oks.js +0 -1
- package/dist/dashboard/assets/index-BPb4OKml.css +0 -32
- package/dist/dashboard/assets/index-WEV7_Uyf.js +0 -516
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-Pg5PgHZB.js +0 -1
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -79,7 +79,7 @@ dreamcontext is **more than memory files**. Every capability below is real and s
|
|
|
79
79
|
| **Structured memory** | soul/user/memory + knowledge + tasks, auto-loaded each session | this file |
|
|
80
80
|
| **Tasks** | Working documents with changelog, RICE, status lifecycle, start/due date ranges, resolved assignees, and project-declared custom fields (`overrides/task.md`) | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
81
81
|
| **Roadmap / Objectives** | PO-authored OKR board: objectives in `core/objectives/`, many-to-many task links (`objectives:` frontmatter), dependency DAG with full forecast cascade, target vs forecast slip detection, `dreamcontext roadmap` (+ `--json`) | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
82
|
-
| **Lab / Insights** | Curated analytics **metrics** ("insights") synced from HTTP APIs or local scripts into the brain: manifests in `lab/insights/`, cached series every session,
|
|
82
|
+
| **Lab / Insights** | Curated analytics **metrics** ("insights") synced from HTTP APIs or local scripts into the brain: manifests in `lab/insights/`, cached series every session, roadmap Key-Result binding (`lab bind` / the dashboard's objective dialogs — one feeder per objective, seeds `metric.current` on connect), dashboard Lab page. **An insight is NOT a knowledge file** — create with `dreamcontext lab create`, never `knowledge create` | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
83
83
|
| **Features (PRDs)** | Retrospective product docs, updated only during sleep | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
84
84
|
| **Knowledge** | Tagged deep docs, pinning, staleness, Excalidraw diagrams | [knowledge-and-recall.md](references/knowledge-and-recall.md) |
|
|
85
85
|
| **Memory recall** | Haiku/BM25 search over the whole corpus; auto-injected on prompts | [knowledge-and-recall.md](references/knowledge-and-recall.md) |
|
|
@@ -115,7 +115,7 @@ Two routing rules that override surface reading:
|
|
|
115
115
|
|
|
116
116
|
| User says… | Entity | What it IS | Create with |
|
|
117
117
|
|---|---|---|---|
|
|
118
|
-
| "create an insight", "track MRR / WAU / signups", "add a metric", "I want to see X every session", **or the problem-shape:** "a chart/number that refreshes itself from Notion/Stripe/an API", "I don't want to ask you to re-fetch it every time", "same data, different views/date ranges" | **Insight** — `lab/insights/<slug>.md` | A curated analytics **metric backed by an external source** (HTTP API or script) — a number/series that re-syncs. Has a manifest, cache, TTL, adapters, tweaks, dashboard renders with a refresh button, optional KR binding | `dreamcontext lab create <slug> --title "…"` (offer-and-confirm protocol → [tasks-and-features.md](references/tasks-and-features.md)) |
|
|
118
|
+
| "create an insight", "track MRR / WAU / signups", "add a metric", "I want to see X every session", **or the problem-shape:** "a chart/number that refreshes itself from Notion/Stripe/an API", "I don't want to ask you to re-fetch it every time", "same data, different views/date ranges" | **Insight** — `lab/insights/<slug>.md` | A curated analytics **metric backed by an external source** (HTTP API or script) — a number/series that re-syncs. Has a manifest, cache, TTL, adapters, tweaks, dashboard renders with a refresh button, optional KR binding (`lab bind <insight> <objective>`) | `dreamcontext lab create <slug> --title "…"` (offer-and-confirm protocol → [tasks-and-features.md](references/tasks-and-features.md)) |
|
|
119
119
|
| "add an objective / goal / OKR", "put it on the roadmap", "we want X by Q4" | **Objective** — `core/objectives/<slug>.md` | A PO-authored **outcome** with target date, dependency DAG, optional Key-Result metric | `dreamcontext roadmap objective create` (ASK first — objectives are PO-owned) |
|
|
120
120
|
| "document this", "write up the research / decision / how X works" | **Knowledge** — `knowledge/…` | Durable **prose**: research, decisions, rationale, domain context. It doesn't refresh itself and it isn't work to do | `dreamcontext knowledge create <name>` |
|
|
121
121
|
| "the X feature", what a shipped capability is | **Feature PRD** — `knowledge/features/` | Retrospective **product doc** (user stories + acceptance criteria) | Sleep agent ONLY — never during active work |
|
|
@@ -71,7 +71,7 @@ Sections for `tasks insert`: `why`, `user_stories`, `acceptance_criteria`, `cons
|
|
|
71
71
|
| `roadmap objective delete <slug>` | Delete; other objectives' `depends_on` are healed automatically. `--yes`. |
|
|
72
72
|
| `roadmap objective depend <A> <B>` | A depends on B — **rejected at write time** if it would create a circular dependency. |
|
|
73
73
|
| `roadmap objective undepend <A> <B>` | Remove the dependency edge. |
|
|
74
|
-
| `roadmap objective metric <slug>` | Set/update the objective's Key Result metric (outcome-based progress instead of task rollup). `--current <n>` (the common nudge — latest observed value), `--target <n>`, `--baseline <n>`, `--label <text>`, `--unit <text>`, `--clear` (remove the metric, back to task-based progress). Sleep may update `--current` when it observes a new real value; all other objective fields stay PO-owned. |
|
|
74
|
+
| `roadmap objective metric <slug>` | Set/update the objective's Key Result metric (outcome-based progress instead of task rollup). `--current <n>` (the common nudge — latest observed value), `--target <n>`, `--baseline <n>`, `--label <text>`, `--unit <text>`, `--clear` (remove the metric, back to task-based progress). Sleep may update `--current` when it observes a new real value; all other objective fields stay PO-owned. **Insight-fed objectives are hands-off:** if a Lab insight binds this objective (`lab list --json` → `binding.objective`), `lab sync` owns `current` — don't hand-write it, suggest a sync instead; and before `--clear`, disconnect the feeder (`lab bind <insight> --clear`) so no binding is left warning on every sync. |
|
|
75
75
|
|
|
76
76
|
Task-side linkage: `tasks create --objectives a,b` · `tasks objectives <task> a,b|clear` · `tasks list --objective <slug>`. Objectives are recallable: `memory recall "<query>" --types objective`.
|
|
77
77
|
|
|
@@ -88,10 +88,11 @@ Curated metrics synced from HTTP APIs or local scripts into `_dream_context/lab/
|
|
|
88
88
|
| `lab list` | All insights with latest value, unit, staleness. `--json`. |
|
|
89
89
|
| `lab show <slug>` | Manifest + cached series — **cache only, never fetches**. `--json`. |
|
|
90
90
|
| `lab tweak <slug> <key> <value>` | Set one declared tweak (typed `enum\|date\|string`; a relative range is an enum tweak keyed `range`). |
|
|
91
|
+
| `lab bind <slug> [objective]` | Connect an insight to an objective's Key Result (`--value latest\|series:<name>`; `--clear` disconnects). Enforces ONE feeder per objective (a previous feeder is unbound loudly) and immediately seeds `metric.current` from the cached latest. The dashboard equivalent lives in the objective create modal / detail panel (Key Result section). |
|
|
91
92
|
| `lab credentials set <key>` | Store a secret for `{{cred:key}}` placeholders — hidden prompt (`--value` works but is shell-history-risky). Gitignore-first, mode 0600. **The only supported way to create `lab/credentials.json`.** |
|
|
92
93
|
| `lab credentials list` | Credential key NAMES only — values are never printed. |
|
|
93
94
|
|
|
94
|
-
**Trust note:** `lab/scripts/*.mjs` run locally, in-process, with credentials passed in — same trust level as the repo. Review scripts before their first sync. **Sleep does NOT run lab sync** — refreshing is always an explicit action. An insight manifest may carry `binding: {objective: <slug>, value: latest}` to auto-write that objective's Key-Result `metric.current` on every successful sync.
|
|
95
|
+
**Trust note:** `lab/scripts/*.mjs` run locally, in-process, with credentials passed in — same trust level as the repo. Review scripts before their first sync. **Sleep does NOT run lab sync** — refreshing is always an explicit action. An insight manifest may carry `binding: {objective: <slug>, value: latest}` to auto-write that objective's Key-Result `metric.current` on every successful sync — set it via `lab bind` or the dashboard's objective dialogs, not by hand.
|
|
95
96
|
|
|
96
97
|
---
|
|
97
98
|
|
|
@@ -53,6 +53,7 @@ For non-file-change work (architecture discussion, a decision with no edits): `d
|
|
|
53
53
|
5. **Wait for all reports** (each returns a short structured report).
|
|
54
54
|
6. **`dreamcontext reflect`** — each candidate is a term seen across multiple sessions not yet in soul/user/memory/knowledge. Promote into `2.memory.md` or a knowledge file ONLY if genuinely load-bearing; most are noise — discard. Never auto-promote.
|
|
55
55
|
7. **Roadmap refresh** if `_dream_context/core/objectives/` is non-empty: run `dreamcontext roadmap` — a cheap deterministic call that recomputes rollups/forecasts from the reconciled tasks and rewrites the auto-generated `knowledge/roadmap/board.md`. Surface any 🔴 SLIPPING objectives (and objectives whose member tasks are now all complete — suggest the PO confirm them done) in your summary. Sleep never edits objective files themselves — they are PO-authored.
|
|
56
|
+
**Insight-fed objectives:** if `_dream_context/lab/insights/` is non-empty, also run `dreamcontext lab list` — an objective fed by a bound insight (`binding.objective` in the manifest) has a *measured* KR `current` owned by `lab sync`; no specialist hand-writes it. Surface any bound insight whose cache is stale or errored ("KR for `<objective>` is fed by insight `<slug>`, last synced `<date>` — suggest `dreamcontext lab sync <slug>`"). **Sleep NEVER runs `lab sync`** — credentials, latency, non-determinism; refreshing is always an explicit user/agent action outside sleep.
|
|
56
57
|
8. **Marketing pass** if `_dream_context/marketing/` exists: `dreamcontext mk rem-sleep`.
|
|
57
58
|
9. **Council promote check:** `dreamcontext council list --unpromoted` — promote if the user engaged positively.
|
|
58
59
|
10. **`dreamcontext sleep done "<one-paragraph summary stitched from specialist reports>"`** — clears pre-epoch state, resets debt, writes a history entry. (If a remote backend — ClickUp or GitHub — is active and any task pushes failed, this auto-retries once, then errors loudly with the failed slugs.)
|
|
@@ -64,7 +65,7 @@ For non-file-change work (architecture discussion, a decision with no edits): `d
|
|
|
64
65
|
|
|
65
66
|
| Specialist | Owns | Notes |
|
|
66
67
|
|---|---|---|
|
|
67
|
-
| `sleep-tasks` | Task files (`state/*.md`) | Reconciles task bodies to truth, bumps statuses, creates tasks for untracked work, attaches to the planning version, sets the start/due range, and keeps declared custom fields current (never fabricating `ask` fields in the no-user sleep context). When objectives exist, proposes `objectives:` links for tasks with an EMPTY/absent list (multiple slugs when a task serves several outcomes) — **never overwrites a non-empty list** (that's a PO decision). |
|
|
68
|
+
| `sleep-tasks` | Task files (`state/*.md`) | Reconciles task bodies to truth, bumps statuses, creates tasks for untracked work, attaches to the planning version, sets the start/due range, and keeps declared custom fields current (never fabricating `ask` fields in the no-user sleep context). When objectives exist, proposes `objectives:` links for tasks with an EMPTY/absent list (multiple slugs when a task serves several outcomes) — **never overwrites a non-empty list** (that's a PO decision). May refresh a KR's observed `current` via `roadmap objective metric` — EXCEPT objectives fed by a bound Lab insight (measured by `lab sync`; hands-off, staleness surfaced instead). |
|
|
68
69
|
| `sleep-state` | Core identity (soul, user, memory, core 3–6), CHANGELOG, RELEASES | Records patterns/decisions/preferences, writes a changelog entry per meaningful change since the epoch, surfaces release readiness, enforces anti-bloat ceilings, flags stale knowledge for `sleep-product`. |
|
|
69
70
|
| `sleep-product` | Knowledge files + feature PRDs | Creates/reconciles `knowledge/*.md` and `knowledge/features/*.md` (typed knowledge, `type: feature`), processes staleness flags, maintains the knowledge index + taxonomy. |
|
|
70
71
|
| `sleep-migration` | Structure only | Moves/renames folders, normalizes frontmatter, wraps fences. Never alters body prose. |
|
|
@@ -143,9 +143,9 @@ Objectives are PO-authored, so this is an **offer-and-confirm** flow, never a si
|
|
|
143
143
|
1. **Dedup first.** Run `dreamcontext roadmap objective list` and `dreamcontext memory recall "<the outcome>" --types objective`. If an objective already covers it, DON'T propose a new one — offer to update the existing one instead (or just link the current work to it).
|
|
144
144
|
2. **Offer it.** If it's genuinely new, ask: *"This sounds like a roadmap objective — want me to add it?"* Never create without a yes.
|
|
145
145
|
3. **Ask the dates.** On yes, ask for the committed window — start and target date (`--target`, and set start via `objective edit`/dashboard). Don't invent dates.
|
|
146
|
-
4. **Offer a Key Result.** Ask whether to track it by a number rather than member tasks: *"Track this by a metric (e.g. MRR 0→2000) or by its tasks?"* If a metric, capture `label` + `baseline`/`target` (`--metric*` flags on create, or `objective metric` after).
|
|
146
|
+
4. **Offer a Key Result.** Ask whether to track it by a number rather than member tasks: *"Track this by a metric (e.g. MRR 0→2000) or by its tasks?"* If a metric, capture `label` + `baseline`/`target` (`--metric*` flags on create, or `objective metric` after). If a Lab insight already measures this outcome (`memory recall "<outcome>" --types insight`), offer to connect it — `dreamcontext lab bind <insight> <objective>` — so `current` is measured, not asserted.
|
|
147
147
|
5. **Detect + propose dependencies.** From the existing objective list, infer likely `depends_on` edges ("make-it-a-business can't happen before simplified-ux and team-ready ship") and **propose them for confirmation**; on yes, apply with `objective depend <A> <B>` (the write-time cycle guard protects you). Never write a dependency edge silently.
|
|
148
|
-
6. **Keep the Key Result current.** When the session later surfaces a real observed value for a tracked objective ("MRR just hit $1,250", "we're at 400 active users"), offer to update it: `dreamcontext roadmap objective metric <slug> --current <n>`. Use a value you actually observed — never estimate. (Sleep may also refresh `--current` autonomously from observed values.)
|
|
148
|
+
6. **Keep the Key Result current — unless an insight feeds it.** When the session later surfaces a real observed value for a tracked objective ("MRR just hit $1,250", "we're at 400 active users"), offer to update it: `dreamcontext roadmap objective metric <slug> --current <n>`. Use a value you actually observed — never estimate. (Sleep may also refresh `--current` autonomously from observed values.) **Exception:** if a bound insight feeds the objective (`dreamcontext lab list --json` → a manifest whose `binding.objective` is the slug), `current` is *measured* — hands off; suggest `dreamcontext lab sync <insight>` instead of writing a number the next sync would overwrite. And when removing a fed objective's metric (`--clear`), disconnect the feeder first (`lab bind <insight> --clear`) — a binding with no Key Result warns on every sync.
|
|
149
149
|
|
|
150
150
|
The through-line: **you detect and propose; the PO confirms.** Every create, date, dependency, and metric write waits for a yes — matching the "objectives are PO-authored" invariant and the board-first ritual (`knowledge/visual-first-board-ritual.md`).
|
|
151
151
|
|
|
@@ -171,13 +171,14 @@ dreamcontext lab sync --all [--force] # every insight; exits non-zero if a
|
|
|
171
171
|
dreamcontext lab list [--json] # all insights with latest value + staleness
|
|
172
172
|
dreamcontext lab show <slug> [--json] # manifest + cached series (never fetches)
|
|
173
173
|
dreamcontext lab tweak <slug> <key> <value> # set a declared tweak (e.g. range last_1_year)
|
|
174
|
+
dreamcontext lab bind <slug> <objective> # connect to an objective's KR (--value latest|series:<name>; --clear)
|
|
174
175
|
dreamcontext lab credentials set <key> # hidden prompt; the ONLY way to store a secret
|
|
175
176
|
dreamcontext lab credentials list # key NAMES only — values are never printed
|
|
176
177
|
```
|
|
177
178
|
|
|
178
179
|
**Adapters:** `http` — declarative JSON API (endpoint/headers/body templates with `{{tweak:key}}` and `{{cred:key}}` placeholders, JSON-path `extract`, multi-series split via `seriesKey`); `script` — escape hatch, `lab/scripts/<slug>.mjs` exporting a default async function. `lab create` scaffolds the manifest; edit it to set the real endpoint/extract config, then run the first sync.
|
|
179
180
|
|
|
180
|
-
**Key-Result binding (insight → objective):** a manifest `binding: {objective: <slug>, value: latest}` makes every successful sync write the objective's KR `metric.current` automatically — upgrading the roadmap from PO-asserted numbers to measured ones. Offer this whenever an insight measures an existing objective's outcome.
|
|
181
|
+
**Key-Result binding (insight → objective):** a manifest `binding: {objective: <slug>, value: latest}` makes every successful sync write the objective's KR `metric.current` automatically — upgrading the roadmap from PO-asserted numbers to measured ones. Offer this whenever an insight measures an existing objective's outcome. Set it via `lab bind` (or the dashboard's objective create modal / detail panel, which search insights by name); binding is ONE feeder per objective — connecting a new insight unbinds the previous one loudly, and connecting immediately seeds `metric.current` from the cached latest.
|
|
181
182
|
|
|
182
183
|
**Sync semantics:** TTL staleness (default 1440 min) — fresh insights are skipped and reported, `--force` refetches; on failure the prior series is KEPT and the error is loud (never a silent half-sync). **Sleep does NOT run lab sync** — refresh is always an explicit user/agent action.
|
|
183
184
|
|
|
@@ -191,7 +192,7 @@ Mirrors proactive objective capture. When the user states or implies a recurring
|
|
|
191
192
|
4. **Pick the source.** HTTP endpoint (+ extract path) or a custom script. Secrets go in via `dreamcontext lab credentials set <key>` — never inline in the manifest.
|
|
192
193
|
5. **Declare tweaks** the user will want to adjust (typed `enum`/`date`/`string`; a relative range is an enum tweak keyed `range`).
|
|
193
194
|
6. **Scaffold + first sync.** `lab create`, edit the manifest, `lab sync <slug>`, confirm the value looks right.
|
|
194
|
-
7. **Offer KR binding** if an existing roadmap objective tracks the same outcome.
|
|
195
|
+
7. **Offer KR binding** if an existing roadmap objective tracks the same outcome: `dreamcontext lab bind <insight> <objective>` — connecting seeds the objective's `metric.current` from the cached latest immediately, and every future sync keeps it measured. One feeder per objective (binding a new insight unbinds the previous one loudly); disconnect with `lab bind <insight> --clear`.
|
|
195
196
|
|
|
196
197
|
Every write waits for a yes.
|
|
197
198
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aq as o,ar as n}from"./index-WEV7_Uyf.js";const t=(r,a)=>o.lang.round(n.parse(r)[a]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-BFzkDfpF.js";import{_ as i}from"./index-WEV7_Uyf.js";import"./chunk-FMBD7UC4-BVN6P2JN.js";import"./chunk-YZCP3GAM-Wqg7FcGi.js";import"./chunk-55IACEB6-B9qWiQhd.js";import"./chunk-EDXVE4YY-Bs1drGvm.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-BFzkDfpF.js";import{_ as i}from"./index-WEV7_Uyf.js";import"./chunk-FMBD7UC4-BVN6P2JN.js";import"./chunk-YZCP3GAM-Wqg7FcGi.js";import"./chunk-55IACEB6-B9qWiQhd.js";import"./chunk-EDXVE4YY-Bs1drGvm.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./graph-Auezy0lX.js";var e=4;function a(o){return r(o,e)}export{a as c};
|