dreamcontext 0.11.0 → 0.13.0
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/dist/dashboard/assets/{BrainCanvas3D-BG5EC27O.js → BrainCanvas3D-HGYlhYHu.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-BBdAvxIr.js → _baseUniq-BJZHEXqg.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-Cr8uJAl3.js → ar-SA-G6X2FPQ2-CsUNvMuK.js} +1 -1
- package/dist/dashboard/assets/{arc-DehvUlnl.js → arc-DGi0Y1lU.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-DocWLhJ3.js → architectureDiagram-Q4EWVU46--otEkB0L.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-UlZ4eYCI.js → az-AZ-76LH7QW2-Bz0oe5Eb.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-Er9YEeCL.js → bg-BG-XCXSNQG7-B2v7y12w.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-Cg9oDuzC.js → blockDiagram-DXYQGD6D-rqdqmHWw.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-Cho39eqB.js → bn-BD-2XOGV67Q-CLKX1rP5.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-BUm8oDH_.js → c4Diagram-AHTNJAMY-B1FQR5jH.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-CMkem7bw.js → ca-ES-6MX7JW3Y-EtsmfF8w.js} +1 -1
- package/dist/dashboard/assets/channel-BdaY6sAg.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-5zNAwkrB.js → chunk-4BX2VUAB-IRT1ScW_.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-Bolly_uT.js → chunk-4TB4RGXK-BFzkDfpF.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-DYdXQ_w1.js → chunk-55IACEB6-B9qWiQhd.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-BcDcaZ9P.js → chunk-EDXVE4YY-Bs1drGvm.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-BIVvJRKA.js → chunk-FMBD7UC4-BVN6P2JN.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-Dsp-XPYC.js → chunk-OYMX7WX6-CTr0D0a8.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-DHQlULoN.js → chunk-QZHKN3VN-C9Rr_prw.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-nfLb4HWe.js → chunk-YZCP3GAM-Wqg7FcGi.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-BVUdw0mS.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-BVUdw0mS.js +1 -0
- package/dist/dashboard/assets/clone-oohc8oks.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-DCIbVeFN.js → cose-bilkent-S5V4N54A-CQThsheb.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-DyFbnAib.js → cs-CZ-2BRQDIVT-37TE-J0W.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-BHXqHOuV.js → da-DK-5WZEPLOC-kSVC3Nkd.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-CL9d19L-.js → dagre-KV5264BT-DwQlYMS9.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-CJTodYJe.js → de-DE-XR44H4JA-tFaWOW7F.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-BKw8TLKP.js → diagram-5BDNPKRD-D-mv_xpV.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-DgG0hw4A.js → diagram-G4DWMVQ6-Dy1lLVzy.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-BJo4X0Wn.js → diagram-MMDJMWI5-Lq7dM5jQ.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-CcR6aJeo.js → diagram-TYMM5635-O7EE1hPN.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-CBB6l2Bg.js → el-GR-BZB4AONW-DsmJjlU5.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-B6KYcAaM.js → erDiagram-SMLLAGMA-D45nuaEe.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-B1QetQmg.js → es-ES-U4NZUMDT-CYUoNFhc.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-0kZWTDZ_.js → eu-ES-A7QVB2H4-D-BQ9iPg.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-BV_G972f.js → fa-IR-HGAKTJCU-Ba8HlQch.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-4uRqjpqj.js → fi-FI-Z5N7JZ37-jy2n46JY.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-3-llVL4u.js → flowDiagram-DWJPFMVM-D1hlk8iz.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-oiuA60jk.js → fr-FR-RHASNOE6-Ztaqa9RN.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-CS8zsjp0.js → ganttDiagram-T4ZO3ILL-B43ghW2j.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-B0eMvQC7.js → gitGraphDiagram-UUTBAWPF-Dn3aowvj.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-CRxgAbK5.js → gl-ES-HMX3MZ6V-CCoIWkgH.js} +1 -1
- package/dist/dashboard/assets/{graph-DqQ_drOx.js → graph-Auezy0lX.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-BToDYgJ7.js → he-IL-6SHJWFNN-unURWMzs.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-o-ioqjhK.js → hi-IN-IWLTKZ5I-CNEe3ZEN.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-CDW6wTqV.js → hu-HU-A5ZG7DT2-Ca6Xr577.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-ResY2pug.js → id-ID-SAP4L64H-Bdsa7Tti.js} +1 -1
- package/dist/dashboard/assets/{index-D71-76eF.js → index-3i9IQhA8.js} +1 -1
- package/dist/dashboard/assets/{index-BelyM9a_.css → index-BPb4OKml.css} +2 -2
- package/dist/dashboard/assets/index-WEV7_Uyf.js +516 -0
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-C2THbOkD.js → infoDiagram-42DDH7IO-DCilbU-9.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-CM5Uqs__.js → ishikawaDiagram-UXIWVN3A-BAJxl0Ug.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-fJefQ0PG.js → it-IT-JPQ66NNP-Cr5M0y6_.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-CX5o3NDj.js → ja-JP-DBVTYXUO-BEqL7zMo.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-8Y11-EOo.js → journeyDiagram-VCZTEJTY-DQmJZZcJ.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-C2vaD2tX.js → kaa-6HZHGXH3-KfGJeBGx.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-VKTEWRZv.js → kab-KAB-ZGHBKWFO-Dr1uqdr5.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-fdXdNyv1.js → kanban-definition-6JOO6SKY-DdLliZYp.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-B2fu3rFx.js → kk-KZ-P5N5QNE5-D6yUxUhJ.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-WkZWPeXS.js → km-KH-HSX4SM5Z-CnRtR0Za.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-CqdCI7AW.js → ko-KR-MTYHY66A-CXL226cS.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-Dao-7Eyh.js → ku-TR-6OUDTVRD-C5Mg8Jxd.js} +1 -1
- package/dist/dashboard/assets/{layout-NO-i8A2F.js → layout-Bwv1hHAc.js} +1 -1
- package/dist/dashboard/assets/{linear-DfqSzNjQ.js → linear-D2tYzuND.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-BT-wFvV7.js → lt-LT-XHIRWOB4-Dt0oW5bo.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-DU4U7Z9Y.js → lv-LV-5QDEKY6T-C_lTQrsH.js} +1 -1
- package/dist/dashboard/assets/{min-CEcHmSlm.js → min-B_45McV4.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-BJw02kFe.js → mindmap-definition-QFDTVHPH-nNJ4_GXP.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-1qeodviH.js → mr-IN-CRQNXWMA-CPReJx93.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-CrvbSOvz.js → my-MM-5M5IBNSE-C77moGfW.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-B_1bglU7.js → nb-NO-T6EIAALU-4ghV00ST.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-CSkrTKk7.js → nl-NL-IS3SIHDZ-CcbzZzgt.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-BZk5efFe.js → nn-NO-6E72VCQL-DB_SQzQ1.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-Bv7XOHck.js → oc-FR-POXYY2M6-BvsfXsQO.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-CqwtWDAw.js → pa-IN-N4M65BXN-7OkFfo05.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-FEVpi1aK.js → percentages-BXMCSKIN-CkHfntSV.js} +7 -7
- package/dist/dashboard/assets/{pica-By0ke6np.js → pica-BeitlDpi.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-CGiIN9rP.js → pieDiagram-DEJITSTG-BKp7yitG.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-BPL4bpVg.js → pl-PL-T2D74RX3-BjjKXzUb.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-LrCGDR4f.js → pt-BR-5N22H2LF-C386x9te.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-MzDeZ8io.js → pt-PT-UZXXM6DQ-DIJSvX7C.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-6_OTN0xX.js → quadrantDiagram-34T5L4WZ-DsEevBcx.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-Ck8soX2R.js → requirementDiagram-MS252O5E-DhIxdYs7.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-Be8UTIAL.js → ro-RO-JPDTUUEW-DMFIF-bR.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-D6wZSeLr.js → ru-RU-B4JR7IUQ-VGg7NKhM.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-BDl2kRaQ.js → sankeyDiagram-XADWPNL6-Dp3LCgZS.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-u0Lxjo21.js → sequenceDiagram-FGHM5R23-swUgHNs2.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-BcvqeVKa.js → si-LK-N5RQ5JYF-DBjYc5Qx.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-BKBcl8fa.js → sk-SK-C5VTKIMK-DOWk199P.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-CH8BpLHn.js → sl-SI-NN7IZMDC-BnuKAqzs.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-p6FESVEx.js → stateDiagram-FHFEXIEX-DsmTM4wV.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-Pg5PgHZB.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-B4Hz462f.js → subset-shared.chunk-BplosoPQ.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-B7VKgsUg.js → subset-worker.chunk-DXMuJCLI.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-ClNuCh1A.js → sv-SE-XGPEYMSR-BIJOZjT-.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-CAnDI3eq.js → ta-IN-2NMHFXQM-DgJGUpHc.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-Dz-3ZPUJ.js → th-TH-HPSO5L25-vQ27qFlk.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-CIac4xXn.js → timeline-definition-GMOUNBTQ-D95a7dUt.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-BDzr5oow.js → tr-TR-DEFEU3FU-C6P_M0Ow.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-Da9cYKW9.js → uk-UA-QMV73CPH-D45e0sU9.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-BrX9xqo7.js → vennDiagram-DHZGUBPP-Da5942K2.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-e-doFs6_.js → vi-VN-M7AON7JQ-DNPoI5eQ.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-Ca-_RvNV.js → wardley-RL74JXVD-tkLUEbV4.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-WO1s20SP.js → wardleyDiagram-NUSXRM2D-C7ekmdEZ.js} +1 -1
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-BcKK53PD.js → xychartDiagram-5P7HB3ND-Bcd5w_DY.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-C2WmUiS8.js → zh-CN-LNUGB5OW-CBpPP3ui.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-CdwVKtJe.js → zh-HK-E62DVLB3-k-efdclM.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-B_UG5PdF.js → zh-TW-RAJ6MFWO-CwBUPGXd.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/git-sync/askpass.cjs +0 -0
- package/dist/index.js +1264 -777
- package/package.json +1 -1
- package/skill/SKILL.md +47 -5
- package/skill/references/cli-reference.md +19 -1
- package/skill/references/knowledge-and-recall.md +5 -2
- package/skill/references/tasks-and-features.md +48 -0
- package/dist/dashboard/assets/channel-Sgeb6qBc.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-DCtc4HRg.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-DCtc4HRg.js +0 -1
- package/dist/dashboard/assets/clone-C1gU65sS.js +0 -1
- package/dist/dashboard/assets/index-DKts-kEI.js +0 -516
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-s6Ql63bp.js +0 -1
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -3,10 +3,12 @@ name: dreamcontext
|
|
|
3
3
|
description: >
|
|
4
4
|
AI agent persistent context management system. Activate when working on any project
|
|
5
5
|
that has an _dream_context/ directory, when managing tasks, features, knowledge,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
task
|
|
9
|
-
|
|
6
|
+
insights (Lab analytics metrics), roadmap objectives/OKRs, session continuity, or
|
|
7
|
+
when the user mentions context management, agent memory, or project state — the words
|
|
8
|
+
insight, objective, task, feature, knowledge name dreamcontext entities in any language.
|
|
9
|
+
Provides structured memory, task lifecycle management, analytics insight syncing,
|
|
10
|
+
ClickUp/GitHub task sync, a web dashboard, cross-project federation, and cross-session
|
|
11
|
+
continuity via the dreamcontext CLI.
|
|
10
12
|
user-invocable: false
|
|
11
13
|
alwaysApply: true
|
|
12
14
|
hooks:
|
|
@@ -77,6 +79,7 @@ dreamcontext is **more than memory files**. Every capability below is real and s
|
|
|
77
79
|
| **Structured memory** | soul/user/memory + knowledge + tasks, auto-loaded each session | this file |
|
|
78
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) |
|
|
79
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, optional roadmap Key-Result auto-binding, 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) |
|
|
80
83
|
| **Features (PRDs)** | Retrospective product docs, updated only during sleep | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
81
84
|
| **Knowledge** | Tagged deep docs, pinning, staleness, Excalidraw diagrams | [knowledge-and-recall.md](references/knowledge-and-recall.md) |
|
|
82
85
|
| **Memory recall** | Haiku/BM25 search over the whole corpus; auto-injected on prompts | [knowledge-and-recall.md](references/knowledge-and-recall.md) |
|
|
@@ -101,6 +104,38 @@ dreamcontext is **more than memory files**. Every capability below is real and s
|
|
|
101
104
|
|
|
102
105
|
---
|
|
103
106
|
|
|
107
|
+
## Entity Router — create the RIGHT thing (past sessions got this wrong)
|
|
108
|
+
|
|
109
|
+
dreamcontext has **eight distinct entity types**, each with ONE home and ONE creation path. When the user says "create/add/track X", route by what X **is** — never by the nearest command you happen to remember. The canonical mistake: user says *"create an insight"* and the agent runs `knowledge create`. An insight is not knowledge.
|
|
110
|
+
|
|
111
|
+
Two routing rules that override surface reading:
|
|
112
|
+
|
|
113
|
+
- **Entity nouns are reserved words — in ANY language.** In a dreamcontext project, *insight, objective, roadmap, task, feature, knowledge, bookmark, trigger, release* name THESE entities, not their dictionary meanings — whatever language the sentence around them is in ("insight oluşturalım", "crea un insight" → `lab create`, not a prose analysis or an external dashboard). The trigger phrases below are English examples; match the **intent**, not the exact words.
|
|
114
|
+
- **Route by problem-shape too, not only by verbs.** Users often describe the need without naming the entity. If the described capability matches a subsystem's shape (see litmus tests + the "don't rebuild" rule below), that subsystem IS the answer.
|
|
115
|
+
|
|
116
|
+
| User says… | Entity | What it IS | Create with |
|
|
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)) |
|
|
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
|
+
| "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
|
+
| "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 |
|
|
122
|
+
| any work over ~5 minutes, "let's build / fix X" | **Task** — `state/<slug>.md` | A **working document** with lifecycle, changelog, criteria | `dreamcontext tasks create` (check for an existing one first) |
|
|
123
|
+
| a moment worth remembering, a correction, a decision made | **Bookmark** | A salience-tagged marker for the sleep agent | `dreamcontext bookmark add "…" -s N --task <slug>` |
|
|
124
|
+
| "remind me when / next time X comes up" | **Trigger** | Prospective memory — fires when context matches | `dreamcontext trigger add <when> <remind>` |
|
|
125
|
+
| "version / release / sprint / milestone" | **Release entry** — `RELEASES.json` | A planning version or shipped release | `dreamcontext core releases add` |
|
|
126
|
+
|
|
127
|
+
**Litmus tests when unsure:**
|
|
128
|
+
- Is it a **number/series that updates from a source**? → insight (`lab`).
|
|
129
|
+
- Is it an **outcome with a committed date**? → objective (`roadmap`).
|
|
130
|
+
- Is it **prose you write once and maintain**? → knowledge.
|
|
131
|
+
- Is it **work to do**? → task.
|
|
132
|
+
|
|
133
|
+
**Don't rebuild what the brain already has.** Before proposing to scaffold ANY new app, script, page, or external service for the user's need, check whether a dreamcontext subsystem already covers it: a self-refreshing metric/chart → **Lab insight** (the dashboard's Lab page IS the refreshable view — adapters, tweaks, renders included); OKR/goal tracking → **roadmap objectives**; "remind me when…" → **triggers**; kanban/board views → the **dashboard**. The second canonical mistake (a real past failure): the user described "a debt number that refreshes from Notion, with tweakable views" and the agent designed a brand-new Vercel dashboard — when `lab create` + a script adapter was the whole answer. Propose external builds only when no subsystem fits, and say why it doesn't.
|
|
134
|
+
|
|
135
|
+
If the requested entity type is ambiguous ("track this" could be insight, objective, or trigger), **ask one clarifying question instead of guessing** — creating the wrong entity pollutes the brain and the user has to notice and undo it.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
104
139
|
## What Is Already In Your Context (do not re-read)
|
|
105
140
|
|
|
106
141
|
The SessionStart hook injects this automatically every session — answer from it directly, **zero tool calls needed**:
|
|
@@ -109,6 +144,7 @@ The SessionStart hook injects this automatically every session — answer from i
|
|
|
109
144
|
- **Extended core files index** — names/types of style guide, tech stack, system flow
|
|
110
145
|
- **Active tasks** — status, priority, last updated, and the objectives each serves (answer "which tasks are active?" from this)
|
|
111
146
|
- **Objectives (roadmap)** — active + recently-finished objectives with progress %, target vs forecast, and slip flags. **Weigh decisions against these outcomes** — they are WHAT the project is driving toward
|
|
147
|
+
- **Lab insights** — cached analytics metrics (title / latest value / staleness / group) when `lab/insights/` is non-empty. Answer "what's our MRR/WAU?" from it; `dreamcontext lab sync` only when stale
|
|
112
148
|
- **Bookmarks** — tagged important moments from prior sessions, by salience
|
|
113
149
|
- **Contextual reminders** — triggers matching active tasks (prospective memory)
|
|
114
150
|
- **Sleep state** — current debt level, sessions since last sleep, history
|
|
@@ -180,7 +216,7 @@ When in doubt about a command or flag, open [cli-reference.md](references/cli-re
|
|
|
180
216
|
|
|
181
217
|
Skip triage only when the request is (a) a 1-line factual question, (b) purely about dreamcontext mechanics (this skill), or (c) outside every available skill's domain. When in doubt, load.
|
|
182
218
|
|
|
183
|
-
3. **Recall before grep.** Before grepping `_dream_context/` for prior decisions or "did we already do X?", run `dreamcontext memory recall "<query>"`. It ranks across knowledge, features, tasks, memory, and
|
|
219
|
+
3. **Recall before grep.** Before grepping `_dream_context/` for prior decisions or "did we already do X?", run `dreamcontext memory recall "<query>"`. It ranks across knowledge, features, tasks, memory, changelog, objectives, and insights in one shot — cheaper and more on-target than blind Grep.
|
|
184
220
|
|
|
185
221
|
4. **Single source of truth — check before creating, update over duplicate.** Every fact lives in exactly ONE place. Before creating any task/feature/knowledge, `dreamcontext memory recall` for it; if it exists, UPDATE it instead of forking a copy.
|
|
186
222
|
- **Know feature vs knowledge.** A **feature** (`knowledge/features/<name>.md` — typed knowledge, `type: feature`; the `dreamcontext features` CLI is a deprecated compat alias) is product documentation — what a capability *is*, its user stories + acceptance criteria — updated only at sleep. **Knowledge** (`knowledge/…`) is other durable material: research, decisions, rationale, domain/technical context. In-progress work lives in a **task**, never in a feature or knowledge file.
|
|
@@ -300,6 +336,7 @@ Status: `todo → in_progress → in_review → completed`. Sections: `why`, `us
|
|
|
300
336
|
- **Quick capture:** `dreamcontext memory remember "<text>"` writes a `type=note` CHANGELOG entry; sleep reconciles it later. (`2.memory.md` no longer has a LIFO ship-narrative section — ship events live in CHANGELOG.)
|
|
301
337
|
- **Knowledge files:** index auto-loaded; create with `dreamcontext knowledge create <name>`; pin frequently-needed ones (`pinned: true`); read non-pinned on demand and `knowledge touch` after. Group a flat file into a context folder with `dreamcontext knowledge move <slug> <folder>` (atomic move + inbound `[[wikilink]]` rewrite — never `mv` + hand-edit links).
|
|
302
338
|
- **Features are sleep-only** (see rule 9).
|
|
339
|
+
- **Insights are NOT knowledge** — a metric the user wants tracked ("create an insight", "track MRR") is a **Lab insight** (`dreamcontext lab create`), not a knowledge file. See the Entity Router above; full protocol → [tasks-and-features.md](references/tasks-and-features.md).
|
|
303
340
|
|
|
304
341
|
**Recall modes, taxonomy, Excalidraw boards/diagrams, multi-product knowledge** → [knowledge-and-recall.md](references/knowledge-and-recall.md).
|
|
305
342
|
|
|
@@ -353,6 +390,11 @@ _dream_context/
|
|
|
353
390
|
│ ├── features/<feature>.md ← Feature PRDs, typed knowledge (type: feature; may include product:)
|
|
354
391
|
│ ├── data-structures/{default,<product>}.md ← schemas (recall-indexed; ```sql body)
|
|
355
392
|
│ └── products/<product>.md ← per-product knowledge (multi-product)
|
|
393
|
+
├── lab/ ← Analytics insights (curated metrics — NOT knowledge)
|
|
394
|
+
│ ├── insights/<slug>.md ← insight manifests (`dreamcontext lab create`)
|
|
395
|
+
│ ├── cache/<slug>.json ← synced series snapshots (never hand-edit)
|
|
396
|
+
│ ├── scripts/<slug>.mjs ← custom-script adapters (run locally with your credentials)
|
|
397
|
+
│ └── credentials.json ← gitignored — write ONLY via `lab credentials set`
|
|
356
398
|
├── overrides/
|
|
357
399
|
│ └── task.md ← OPTIONAL: project task template + custom_fields schema (briefed to agents)
|
|
358
400
|
├── state/
|
|
@@ -77,6 +77,24 @@ Task-side linkage: `tasks create --objectives a,b` · `tasks objectives <task> a
|
|
|
77
77
|
|
|
78
78
|
---
|
|
79
79
|
|
|
80
|
+
## Lab (analytics insights — see [tasks-and-features.md](tasks-and-features.md))
|
|
81
|
+
|
|
82
|
+
Curated metrics synced from HTTP APIs or local scripts into `_dream_context/lab/`. **This — not `knowledge create` — is what "create an insight" means.** The SessionStart snapshot renders a Lab section; insights are recallable via `memory recall "<query>" --types insight`.
|
|
83
|
+
|
|
84
|
+
| Command | Description |
|
|
85
|
+
|---|---|
|
|
86
|
+
| `lab create <slug>` | Scaffold `lab/insights/<slug>.md`. `--title <str>` (required), `--group <section>`, `--render number\|line\|pie\|raw` (default number), `--adapter http\|script` (default http), `--unit <str>`, `--ttl <minutes>` (default 1440). Edit the manifest afterwards to set the real endpoint/extract (or script) config, then sync. |
|
|
87
|
+
| `lab sync [slug]` | Sync one insight, or every insight with `--all`. `--force` refetches even when the cache is within TTL (fresh insights are otherwise skipped and reported). On failure the prior series is kept, the error is loud, and the exit code is non-zero — never a silent half-sync. A changed custom script prints a loud tripwire notice before executing. |
|
|
88
|
+
| `lab list` | All insights with latest value, unit, staleness. `--json`. |
|
|
89
|
+
| `lab show <slug>` | Manifest + cached series — **cache only, never fetches**. `--json`. |
|
|
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 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
|
+
| `lab credentials list` | Credential key NAMES only — values are never printed. |
|
|
93
|
+
|
|
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
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
80
98
|
## Features
|
|
81
99
|
|
|
82
100
|
| Command | Description |
|
|
@@ -120,7 +138,7 @@ Sections for `features insert`: `changelog`, `notes`, `technical_details`, `cons
|
|
|
120
138
|
|
|
121
139
|
| Command | Description |
|
|
122
140
|
|---|---|
|
|
123
|
-
| `memory recall <query...>` | Search the corpus (knowledge + features + tasks + memory + changelog). `-t/--top <n>`, `--types <csv>`, `--json`, `--plain`, `--vault <name>` (repeatable), `--connected`, `--all-vaults`. |
|
|
141
|
+
| `memory recall <query...>` | Search the corpus (knowledge + features + tasks + memory + changelog + objectives + insights). `-t/--top <n>`, `--types <csv>`, `--json`, `--plain`, `--vault <name>` (repeatable), `--connected`, `--all-vaults`. |
|
|
124
142
|
| `memory remember <text...>` | Quick-append a CHANGELOG entry (`type=note`, `scope=quick`). `--summary`, `--type`, `--scope`, `--references <csv>`, `--person <csv>`. |
|
|
125
143
|
| `memory update <slug>` | Update a knowledge file. `-d/--description`, `-t/--tags`, `-c/--content`, `--append <text>`, `--pin`, `--unpin`. |
|
|
126
144
|
| `memory delete <slug>` | Delete a knowledge file (irreversible; recover via git). `-f/--force`. |
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
Deep, durable docs the agent should recall in future sessions (research, design rationale, domain context). The **index is auto-loaded each session** (names, descriptions, tags, staleness) — so you already know what exists.
|
|
6
6
|
|
|
7
|
+
**Knowledge is prose, not everything.** A metric the user wants tracked ("create an insight", "track MRR") is a **Lab insight** (`dreamcontext lab create` — see [tasks-and-features.md](tasks-and-features.md)); an outcome with a target date is a roadmap **objective**; what a shipped capability is belongs in a **feature PRD**. See the Entity Router in SKILL.md before creating anything.
|
|
8
|
+
|
|
7
9
|
```bash
|
|
8
10
|
dreamcontext knowledge create <name> -d "description" -t architecture,api -c "body"
|
|
9
11
|
dreamcontext knowledge index [--tag <tag>] [--plain]
|
|
@@ -43,7 +45,7 @@ It moves the file **and** rewrites every inbound `[[wikilink]]` in one atomic st
|
|
|
43
45
|
|
|
44
46
|
## Memory functions — what they are and how to use them
|
|
45
47
|
|
|
46
|
-
The `memory` command group is your interface to the curated corpus: `knowledge/*` (`knowledge/features/*` loads as its own `feature` channel — `--types feature` vs `--types knowledge` — never double-counted), `state/*.md`, `core/2.memory.md` (Technical Decisions + Known Issues),
|
|
48
|
+
The `memory` command group is your interface to the curated corpus: `knowledge/*` (`knowledge/features/*` loads as its own `feature` channel — `--types feature` vs `--types knowledge` — never double-counted), `state/*.md`, `core/2.memory.md` (Technical Decisions + Known Issues), every `core/CHANGELOG.json` entry, `core/objectives/*` (`objective` channel), and `lab/insights/*` (`insight` channel). No setup, no index file, no external service — rebuilt in memory each call (<100ms on ~130 docs).
|
|
47
49
|
|
|
48
50
|
| Function | Use it to… | Command |
|
|
49
51
|
|---|---|---|
|
|
@@ -57,7 +59,7 @@ The `memory` command group is your interface to the curated corpus: `knowledge/*
|
|
|
57
59
|
|
|
58
60
|
### recall — your first-line discovery tool
|
|
59
61
|
|
|
60
|
-
**Run `memory recall` BEFORE grep or blind file reads** whenever the user asks "where did we decide X?", "have we discussed Y?", "what do we know about Z?", or before duplicating work. It ranks across knowledge + features + tasks + memory + changelog in one shot.
|
|
62
|
+
**Run `memory recall` BEFORE grep or blind file reads** whenever the user asks "where did we decide X?", "have we discussed Y?", "what do we know about Z?", or before duplicating work. It ranks across knowledge + features + tasks + memory + changelog + objectives + insights in one shot.
|
|
61
63
|
|
|
62
64
|
```bash
|
|
63
65
|
# Plain discovery — top 10 hits with snippets
|
|
@@ -68,6 +70,7 @@ dreamcontext memory recall "auth flow" --types knowledge,feature
|
|
|
68
70
|
dreamcontext memory recall "deprecated" --types changelog # ship history
|
|
69
71
|
dreamcontext memory recall "rate limit" --types task # in-flight work
|
|
70
72
|
dreamcontext memory recall "retention goal" --types objective # roadmap objectives (OKR outcomes)
|
|
73
|
+
dreamcontext memory recall "weekly active users" --types insight # lab insights (curated analytics metrics)
|
|
71
74
|
|
|
72
75
|
# Tune result count / machine-readable output
|
|
73
76
|
dreamcontext memory recall "rice prioritization" --top 3 --json
|
|
@@ -151,6 +151,54 @@ The through-line: **you detect and propose; the PO confirms.** Every create, dat
|
|
|
151
151
|
|
|
152
152
|
---
|
|
153
153
|
|
|
154
|
+
## Lab insights — curated analytics metrics
|
|
155
|
+
|
|
156
|
+
An **insight** is a named, curated **metric backed by an external source** — "Weekly Active Users from our PostHog API", "MRR from a billing script". It is a number/series that **re-syncs on demand**, never a prose document. This is the entity users mean by "create an insight", "track signups", "I want to see MRR every session".
|
|
157
|
+
|
|
158
|
+
**What an insight is NOT (route correctly):**
|
|
159
|
+
- NOT **knowledge** — knowledge is prose you write and maintain; an insight fetches its value from a source. Never `knowledge create` for a metric.
|
|
160
|
+
- NOT an **objective** — an objective is an outcome with a target date; an insight is the *measurement*. (The two connect: an insight can *feed* an objective's Key Result via binding, below.)
|
|
161
|
+
- NOT a raw data dump — rollup structurally caps every series at 62 points (daily→weekly→monthly coarsening by span). Insights are curated metrics, by design.
|
|
162
|
+
|
|
163
|
+
**Where it lives:** manifest at `_dream_context/lab/insights/<slug>.md` (frontmatter config + a `## Meaning` prose section that makes it recallable), cached series at `lab/cache/<slug>.json`, custom scripts at `lab/scripts/<slug>.mjs`, secrets in gitignored `lab/credentials.json`. Manifests + caches sync in the brain repo; only credentials stay local.
|
|
164
|
+
|
|
165
|
+
**How agents see it:** the SessionStart snapshot renders a **Lab** section (title / latest value / staleness / group) — answer "what's our MRR?" from it without tool calls. Deeper: `dreamcontext lab show <slug>` (cache only, no fetch) and `memory recall "<meaning phrase>" --types insight`. The dashboard has a Lab page (number/line/pie/raw cards, per-insight refresh, sync-all, tweak editing).
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
dreamcontext lab create <slug> --title "Weekly Active Users" [--render number|line|pie|raw] [--adapter http|script] [--group <section>] [--unit users] [--ttl 1440]
|
|
169
|
+
dreamcontext lab sync <slug> [--force] # one insight (TTL-fresh is skipped unless --force)
|
|
170
|
+
dreamcontext lab sync --all [--force] # every insight; exits non-zero if any fail
|
|
171
|
+
dreamcontext lab list [--json] # all insights with latest value + staleness
|
|
172
|
+
dreamcontext lab show <slug> [--json] # manifest + cached series (never fetches)
|
|
173
|
+
dreamcontext lab tweak <slug> <key> <value> # set a declared tweak (e.g. range last_1_year)
|
|
174
|
+
dreamcontext lab credentials set <key> # hidden prompt; the ONLY way to store a secret
|
|
175
|
+
dreamcontext lab credentials list # key NAMES only — values are never printed
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**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
|
+
**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
|
+
|
|
182
|
+
**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
|
+
### Insight capture (in-session — ASK, never auto-create)
|
|
185
|
+
|
|
186
|
+
Mirrors proactive objective capture. When the user states or implies a recurring metric need ("I keep checking MRR by hand", "we should watch signups", "create an insight for DAU"):
|
|
187
|
+
|
|
188
|
+
1. **Dedup first.** `dreamcontext memory recall "<metric>" --types insight` and `dreamcontext lab list`. If one covers it, offer to update/re-sync it instead.
|
|
189
|
+
2. **Offer it.** *"Want me to track this as a Lab insight so every session sees the current value?"* Never create without a yes.
|
|
190
|
+
3. **Agree the shape.** Slug, title, render (number/line/pie/raw), group, unit — and write a real `## Meaning` section (it powers recall).
|
|
191
|
+
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
|
+
5. **Declare tweaks** the user will want to adjust (typed `enum`/`date`/`string`; a relative range is an enum tweak keyed `range`).
|
|
193
|
+
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
|
+
|
|
196
|
+
Every write waits for a yes.
|
|
197
|
+
|
|
198
|
+
**Security (plain language, tell the user when relevant):** lab scripts execute **locally, in-process, with your credentials passed in** — anyone who can push to a shared brain repo can change what runs on your machine at the next sync. Review a script before its first sync and heed the loud "script changed since last run" tripwire notice. Credentials are written ONLY via `lab credentials set` (gitignore-first, file mode 0600, never printed back, redacted from every error/log).
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
154
202
|
## The Workflow flowchart (keep it in sync)
|
|
155
203
|
|
|
156
204
|
Every task file has a `## Workflow` mermaid block near the top: one node per acceptance criterion, grouped under milestone subgraphs, with status classes `done` / `active` / `todo` / `blocked`. It is the load-bearing summary of the task — drift makes future sessions misread progress.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aq as o,ar as n}from"./index-DKts-kEI.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-Bolly_uT.js";import{_ as i}from"./index-DKts-kEI.js";import"./chunk-FMBD7UC4-BIVvJRKA.js";import"./chunk-YZCP3GAM-nfLb4HWe.js";import"./chunk-55IACEB6-DYdXQ_w1.js";import"./chunk-EDXVE4YY-BcDcaZ9P.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-Bolly_uT.js";import{_ as i}from"./index-DKts-kEI.js";import"./chunk-FMBD7UC4-BIVvJRKA.js";import"./chunk-YZCP3GAM-nfLb4HWe.js";import"./chunk-55IACEB6-DYdXQ_w1.js";import"./chunk-EDXVE4YY-BcDcaZ9P.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-DqQ_drOx.js";var e=4;function a(o){return r(o,e)}export{a as c};
|