dreamcontext 0.8.7 → 0.9.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.
Files changed (159) hide show
  1. package/README.md +31 -7
  2. package/agents/curator-auditor.md +114 -0
  3. package/agents/curator-verifier.md +86 -0
  4. package/agents/curator-worker.md +81 -0
  5. package/agents/dreamcontext-explore.md +7 -3
  6. package/agents/initializer-ingestor.md +84 -0
  7. package/agents/initializer-scout.md +87 -0
  8. package/agents/initializer-verifier.md +75 -0
  9. package/agents/sleep-migration.md +18 -10
  10. package/agents/sleep-product.md +7 -7
  11. package/agents/sleep-state.md +3 -3
  12. package/agents/sleep-tasks.md +4 -3
  13. package/dist/agents/curator-auditor.md +114 -0
  14. package/dist/agents/curator-verifier.md +86 -0
  15. package/dist/agents/curator-worker.md +81 -0
  16. package/dist/agents/dreamcontext-explore.md +7 -3
  17. package/dist/agents/initializer-ingestor.md +84 -0
  18. package/dist/agents/initializer-scout.md +87 -0
  19. package/dist/agents/initializer-verifier.md +75 -0
  20. package/dist/agents/sleep-migration.md +18 -10
  21. package/dist/agents/sleep-product.md +7 -7
  22. package/dist/agents/sleep-state.md +3 -3
  23. package/dist/agents/sleep-tasks.md +4 -3
  24. package/dist/dashboard/assets/{BrainCanvas3D-CyuMh6vC.js → BrainCanvas3D-hy-bJKIJ.js} +1 -1
  25. package/dist/dashboard/assets/{_baseUniq-TeXEp9Tn.js → _baseUniq-DduL-UlQ.js} +1 -1
  26. package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-Da5wNUeW.js → ar-SA-G6X2FPQ2-CrmB7xfA.js} +1 -1
  27. package/dist/dashboard/assets/{arc-NQuoeYrp.js → arc-sHUGY_nD.js} +1 -1
  28. package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-B108azq_.js → architectureDiagram-Q4EWVU46-DgYle1Hc.js} +1 -1
  29. package/dist/dashboard/assets/{az-AZ-76LH7QW2-cJYSsraO.js → az-AZ-76LH7QW2-xoplM1zS.js} +1 -1
  30. package/dist/dashboard/assets/{bg-BG-XCXSNQG7-Dt4_IvAk.js → bg-BG-XCXSNQG7-BF4iIrZQ.js} +1 -1
  31. package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-HAo6Tqxd.js → blockDiagram-DXYQGD6D-YPBR1t-F.js} +1 -1
  32. package/dist/dashboard/assets/{bn-BD-2XOGV67Q-DE20hZpG.js → bn-BD-2XOGV67Q-KGLt7gMU.js} +1 -1
  33. package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-SHRA5Nk_.js → c4Diagram-AHTNJAMY-B1KEuF7Q.js} +1 -1
  34. package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-9ZUzuDs-.js → ca-ES-6MX7JW3Y-BYuoubhq.js} +1 -1
  35. package/dist/dashboard/assets/channel-BvyIgIvU.js +1 -0
  36. package/dist/dashboard/assets/{chunk-4BX2VUAB-BlLy4y9z.js → chunk-4BX2VUAB-BALrhoW_.js} +1 -1
  37. package/dist/dashboard/assets/{chunk-4TB4RGXK-cDLog-pk.js → chunk-4TB4RGXK-8uLOmmU8.js} +1 -1
  38. package/dist/dashboard/assets/{chunk-55IACEB6-BfLlL9Jv.js → chunk-55IACEB6-D2hViX7K.js} +1 -1
  39. package/dist/dashboard/assets/{chunk-EDXVE4YY-BjKTlHye.js → chunk-EDXVE4YY-C9foqo-F.js} +1 -1
  40. package/dist/dashboard/assets/{chunk-FMBD7UC4-CoMoOB69.js → chunk-FMBD7UC4-D1G0o3Ow.js} +1 -1
  41. package/dist/dashboard/assets/{chunk-OYMX7WX6-DSYZ4BzO.js → chunk-OYMX7WX6-CiVziVyS.js} +1 -1
  42. package/dist/dashboard/assets/{chunk-QZHKN3VN-hsCUyt37.js → chunk-QZHKN3VN-DE5GBsSY.js} +1 -1
  43. package/dist/dashboard/assets/{chunk-YZCP3GAM-CMBEUThQ.js → chunk-YZCP3GAM-BpQQIx3b.js} +1 -1
  44. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-B2f-mNIc.js +1 -0
  45. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-B2f-mNIc.js +1 -0
  46. package/dist/dashboard/assets/clone-BOZwMwp7.js +1 -0
  47. package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-Ds3A4r-y.js → cose-bilkent-S5V4N54A-KvwZaKE7.js} +1 -1
  48. package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-WgNPbRaT.js → cs-CZ-2BRQDIVT-xYBULEJ9.js} +1 -1
  49. package/dist/dashboard/assets/{da-DK-5WZEPLOC-BQPVoqBy.js → da-DK-5WZEPLOC-DF2tyJRb.js} +1 -1
  50. package/dist/dashboard/assets/{dagre-KV5264BT-D3AamC0s.js → dagre-KV5264BT-Du_qjhF2.js} +1 -1
  51. package/dist/dashboard/assets/{de-DE-XR44H4JA-FOMlLeg-.js → de-DE-XR44H4JA-DlmZt5e9.js} +1 -1
  52. package/dist/dashboard/assets/{diagram-5BDNPKRD-DeAuY_LW.js → diagram-5BDNPKRD-D7slatQr.js} +1 -1
  53. package/dist/dashboard/assets/{diagram-G4DWMVQ6-CsPuBl6m.js → diagram-G4DWMVQ6-DiCZYy5B.js} +1 -1
  54. package/dist/dashboard/assets/{diagram-MMDJMWI5-Celrp7iZ.js → diagram-MMDJMWI5-BxckEUHv.js} +1 -1
  55. package/dist/dashboard/assets/{diagram-TYMM5635-D-Y8kdqj.js → diagram-TYMM5635-BGh7adH7.js} +1 -1
  56. package/dist/dashboard/assets/{el-GR-BZB4AONW-DdhrZvUu.js → el-GR-BZB4AONW-3_nYTnDJ.js} +1 -1
  57. package/dist/dashboard/assets/{erDiagram-SMLLAGMA-CyPB81Ul.js → erDiagram-SMLLAGMA-Bgu7PR3l.js} +1 -1
  58. package/dist/dashboard/assets/{es-ES-U4NZUMDT-B-Hbpc6c.js → es-ES-U4NZUMDT-Blp-jVT8.js} +1 -1
  59. package/dist/dashboard/assets/{eu-ES-A7QVB2H4-CIeXN6PD.js → eu-ES-A7QVB2H4-DksJfC54.js} +1 -1
  60. package/dist/dashboard/assets/{fa-IR-HGAKTJCU-BojqXzkR.js → fa-IR-HGAKTJCU-DgwscI8H.js} +1 -1
  61. package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-Dix2X0V9.js → fi-FI-Z5N7JZ37-D5xWl1j1.js} +1 -1
  62. package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-D7IX0DxI.js → flowDiagram-DWJPFMVM-DRYxEOwt.js} +1 -1
  63. package/dist/dashboard/assets/{fr-FR-RHASNOE6-B-jqOA6L.js → fr-FR-RHASNOE6-C5ic6hfW.js} +1 -1
  64. package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-CbK6p7_G.js → ganttDiagram-T4ZO3ILL-CNf0-tRS.js} +1 -1
  65. package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-DWDwNpLK.js → gitGraphDiagram-UUTBAWPF-B-fWXvro.js} +1 -1
  66. package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-B6zmZpsw.js → gl-ES-HMX3MZ6V-CYsGLfzn.js} +1 -1
  67. package/dist/dashboard/assets/{graph-CrDZc6w0.js → graph-CqM3kXVs.js} +1 -1
  68. package/dist/dashboard/assets/{he-IL-6SHJWFNN-CaSPpOxb.js → he-IL-6SHJWFNN-DZp7dZBD.js} +1 -1
  69. package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-n86mXoF4.js → hi-IN-IWLTKZ5I-DZ-8BLt8.js} +1 -1
  70. package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-MqIG43UE.js → hu-HU-A5ZG7DT2-cIzehzha.js} +1 -1
  71. package/dist/dashboard/assets/{id-ID-SAP4L64H-DbrGiOFJ.js → id-ID-SAP4L64H-CHmT4Y6G.js} +1 -1
  72. package/dist/dashboard/assets/index-B_cYqPxr.js +482 -0
  73. package/dist/dashboard/assets/{index-zJ2-S49k.js → index-WuRpIREk.js} +1 -1
  74. package/dist/dashboard/assets/{infoDiagram-42DDH7IO-CpAQyAyt.js → infoDiagram-42DDH7IO-zeTnmz1D.js} +1 -1
  75. package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-DXIwINgb.js → ishikawaDiagram-UXIWVN3A-Bb756K5U.js} +1 -1
  76. package/dist/dashboard/assets/{it-IT-JPQ66NNP-IX1Td9Wl.js → it-IT-JPQ66NNP-D6lXGD0z.js} +1 -1
  77. package/dist/dashboard/assets/{ja-JP-DBVTYXUO-Bd8nX8VR.js → ja-JP-DBVTYXUO-DyuGqonM.js} +1 -1
  78. package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-DZlgujgy.js → journeyDiagram-VCZTEJTY-DFWvXLzk.js} +1 -1
  79. package/dist/dashboard/assets/{kaa-6HZHGXH3-D5xD9fsf.js → kaa-6HZHGXH3-oNCeqt-A.js} +1 -1
  80. package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-xBaAbT-9.js → kab-KAB-ZGHBKWFO-DfP6kptf.js} +1 -1
  81. package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-0klC865z.js → kanban-definition-6JOO6SKY-DhKLuu7C.js} +1 -1
  82. package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-CboXRRre.js → kk-KZ-P5N5QNE5-B63w7yii.js} +1 -1
  83. package/dist/dashboard/assets/{km-KH-HSX4SM5Z-Clsilmtp.js → km-KH-HSX4SM5Z-C8nYbGAM.js} +1 -1
  84. package/dist/dashboard/assets/{ko-KR-MTYHY66A-CIjzZcRO.js → ko-KR-MTYHY66A-D3wzPaIE.js} +1 -1
  85. package/dist/dashboard/assets/{ku-TR-6OUDTVRD-Bs1RU4e9.js → ku-TR-6OUDTVRD-C59UaChS.js} +1 -1
  86. package/dist/dashboard/assets/{layout-fipBctpD.js → layout-CtFtUFag.js} +1 -1
  87. package/dist/dashboard/assets/{linear-DVXXJr0u.js → linear-DubzSxx7.js} +1 -1
  88. package/dist/dashboard/assets/{lt-LT-XHIRWOB4-CQ-xLU_o.js → lt-LT-XHIRWOB4-C_buJu91.js} +1 -1
  89. package/dist/dashboard/assets/{lv-LV-5QDEKY6T-C0inT4d9.js → lv-LV-5QDEKY6T-BhQWVAR-.js} +1 -1
  90. package/dist/dashboard/assets/{min-B_cNy5kS.js → min-DcWdHBie.js} +1 -1
  91. package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-Cioz1NOY.js → mindmap-definition-QFDTVHPH-BSWtNXnF.js} +1 -1
  92. package/dist/dashboard/assets/{mr-IN-CRQNXWMA-DhEHYUYK.js → mr-IN-CRQNXWMA-DEac6VeJ.js} +1 -1
  93. package/dist/dashboard/assets/{my-MM-5M5IBNSE-Dj4Iwdrf.js → my-MM-5M5IBNSE-DcSFgD6q.js} +1 -1
  94. package/dist/dashboard/assets/{nb-NO-T6EIAALU-CvAPy7iN.js → nb-NO-T6EIAALU-CMd5OV1y.js} +1 -1
  95. package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-DgQc3gPO.js → nl-NL-IS3SIHDZ-CX2kfxhY.js} +1 -1
  96. package/dist/dashboard/assets/{nn-NO-6E72VCQL-DORPUv8K.js → nn-NO-6E72VCQL-MpSm1-uc.js} +1 -1
  97. package/dist/dashboard/assets/{oc-FR-POXYY2M6-Cym9O8Me.js → oc-FR-POXYY2M6-Nso9HjoJ.js} +1 -1
  98. package/dist/dashboard/assets/{pa-IN-N4M65BXN-BiE5SCOy.js → pa-IN-N4M65BXN-Bc_09DWN.js} +1 -1
  99. package/dist/dashboard/assets/{percentages-BXMCSKIN-B-_e8Y6s.js → percentages-BXMCSKIN-DP6uG13u.js} +7 -7
  100. package/dist/dashboard/assets/{pica-C5ISA_oR.js → pica-CMpqUhac.js} +1 -1
  101. package/dist/dashboard/assets/{pieDiagram-DEJITSTG-CD7iu1Mo.js → pieDiagram-DEJITSTG-BNsvSiV8.js} +1 -1
  102. package/dist/dashboard/assets/{pl-PL-T2D74RX3-C-29ZIfD.js → pl-PL-T2D74RX3-CJWz-KGN.js} +1 -1
  103. package/dist/dashboard/assets/{pt-BR-5N22H2LF-CIQq615m.js → pt-BR-5N22H2LF-DHX3cV6G.js} +1 -1
  104. package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-CN7xbXrH.js → pt-PT-UZXXM6DQ-CU_RnGju.js} +1 -1
  105. package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-DEPkZ_lv.js → quadrantDiagram-34T5L4WZ-CnG8TUp0.js} +1 -1
  106. package/dist/dashboard/assets/{requirementDiagram-MS252O5E-BpAjr03x.js → requirementDiagram-MS252O5E-CVzV4vf5.js} +1 -1
  107. package/dist/dashboard/assets/{ro-RO-JPDTUUEW-DBtenXzw.js → ro-RO-JPDTUUEW-aYl76VP7.js} +1 -1
  108. package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-CA_iHOeh.js → ru-RU-B4JR7IUQ-B_y9bRe1.js} +1 -1
  109. package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-B1zLPVle.js → sankeyDiagram-XADWPNL6-CZLhklJg.js} +1 -1
  110. package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-pEX8i9B5.js → sequenceDiagram-FGHM5R23-DjCIzK1N.js} +1 -1
  111. package/dist/dashboard/assets/{si-LK-N5RQ5JYF-BTsFn4Rn.js → si-LK-N5RQ5JYF-DYVfARgr.js} +1 -1
  112. package/dist/dashboard/assets/{sk-SK-C5VTKIMK-DGoN-I5B.js → sk-SK-C5VTKIMK-B6Mg_bJ9.js} +1 -1
  113. package/dist/dashboard/assets/{sl-SI-NN7IZMDC-CwiRr92B.js → sl-SI-NN7IZMDC-Ck2a-g0A.js} +1 -1
  114. package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-W_EdYNVF.js → stateDiagram-FHFEXIEX-D9Z-sJAh.js} +1 -1
  115. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-nhVyYoyX.js +1 -0
  116. package/dist/dashboard/assets/{subset-shared.chunk-CAlKIepB.js → subset-shared.chunk-CE199FVY.js} +1 -1
  117. package/dist/dashboard/assets/{subset-worker.chunk-YIXEPnjQ.js → subset-worker.chunk-DKgKGIuW.js} +1 -1
  118. package/dist/dashboard/assets/{sv-SE-XGPEYMSR-7SNur8Fe.js → sv-SE-XGPEYMSR-C9Hkuq3i.js} +1 -1
  119. package/dist/dashboard/assets/{ta-IN-2NMHFXQM-DqQBCB2J.js → ta-IN-2NMHFXQM-IEhskXEC.js} +1 -1
  120. package/dist/dashboard/assets/{th-TH-HPSO5L25-ClwEsAak.js → th-TH-HPSO5L25-DTb8f2Te.js} +1 -1
  121. package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-uPtwwnY7.js → timeline-definition-GMOUNBTQ-n1YhmZQ4.js} +1 -1
  122. package/dist/dashboard/assets/{tr-TR-DEFEU3FU-DmCg5qbG.js → tr-TR-DEFEU3FU-CnEnSvd1.js} +1 -1
  123. package/dist/dashboard/assets/{uk-UA-QMV73CPH-DixKG8eB.js → uk-UA-QMV73CPH-CV5yaOns.js} +1 -1
  124. package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-CAggDlIj.js → vennDiagram-DHZGUBPP-EZuBw-Y1.js} +1 -1
  125. package/dist/dashboard/assets/{vi-VN-M7AON7JQ-C15Za2rn.js → vi-VN-M7AON7JQ-C_pZqaaY.js} +1 -1
  126. package/dist/dashboard/assets/{wardley-RL74JXVD-D5C_gWsf.js → wardley-RL74JXVD-CEAA3DK-.js} +1 -1
  127. package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-tqYHOmfO.js → wardleyDiagram-NUSXRM2D-DhmpY-nw.js} +1 -1
  128. package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-CsxZKm-V.js → xychartDiagram-5P7HB3ND-BCfqQ3yb.js} +1 -1
  129. package/dist/dashboard/assets/{zh-CN-LNUGB5OW-BhlF39b5.js → zh-CN-LNUGB5OW-C9EPIaEx.js} +1 -1
  130. package/dist/dashboard/assets/{zh-HK-E62DVLB3-P2FWmB4w.js → zh-HK-E62DVLB3-RZGyfbKw.js} +1 -1
  131. package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-B0yB1dNp.js → zh-TW-RAJ6MFWO-CfQ4KbkI.js} +1 -1
  132. package/dist/dashboard/index.html +1 -1
  133. package/dist/index.js +4142 -1919
  134. package/dist/skill-packs/council/SKILL.md +3 -2
  135. package/dist/skill-packs/council/debate-protocol.md +1 -1
  136. package/dist/skill-packs/excalidraw/SKILL.md +38 -28
  137. package/dist/templates/AGENTS.md +1 -1
  138. package/dist/templates/CLAUDE.md +1 -1
  139. package/package.json +3 -1
  140. package/skill/SKILL.md +206 -498
  141. package/skill/references/cli-reference.md +203 -0
  142. package/skill/references/improving-dreamcontext.md +39 -0
  143. package/skill/references/integrations.md +236 -0
  144. package/skill/references/knowledge-and-recall.md +157 -0
  145. package/skill/references/sleep.md +88 -0
  146. package/skill/references/tasks-and-features.md +170 -0
  147. package/skill-curator/SKILL.md +234 -0
  148. package/skill-initializer/SKILL.md +243 -0
  149. package/skill-packs/council/SKILL.md +3 -2
  150. package/skill-packs/council/debate-protocol.md +1 -1
  151. package/skill-packs/excalidraw/SKILL.md +38 -28
  152. package/agents/dreamcontext-initializer.md +0 -308
  153. package/dist/agents/dreamcontext-initializer.md +0 -308
  154. package/dist/dashboard/assets/channel-CIQg6WkP.js +0 -1
  155. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-kJkUaIqm.js +0 -1
  156. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-kJkUaIqm.js +0 -1
  157. package/dist/dashboard/assets/clone-COSoK5_M.js +0 -1
  158. package/dist/dashboard/assets/index-DjaqCcd7.js +0 -482
  159. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-BsdphuJ6.js +0 -1
@@ -0,0 +1,203 @@
1
+ # dreamcontext CLI — Complete Command Reference
2
+
3
+ Every command and flag, grouped. All commands are prefixed with `dreamcontext`. For reading/searching context files use native tools; use the CLI for everything structured. Run `dreamcontext <command> --help` for live details. Running `dreamcontext` with no args opens an interactive menu.
4
+
5
+ > Conventions: `<required>`, `[optional]`, `a|b` = choices, `…` = repeatable/multi-word.
6
+
7
+ ---
8
+
9
+ ## Setup & maintenance
10
+
11
+ | Command | Description |
12
+ |---|---|
13
+ | `setup` | **Front door.** One-shot: init + install-skill + install-instructions, and on macOS offers to install the desktop app. Flags: `--defaults` (claude, no packs, single-product, no prompts), `-y/--yes`, `--platforms <list>`, `--packs <list>`, `--multi-product <list>`, `--keep-native-memory`, `--install-app` (force desktop app), `--skip-app`. (`DREAMCONTEXT_INSTALL_NO_APP=1` also skips the app.) |
14
+ | `init` | *(deprecated standalone)* Scaffold `_dream_context/` only. Flags: `-y/--yes`, `--name`, `--description`, `--user`, `--stack`, `--priority`, `--platforms <list>`, `--multi-product <list>`. |
15
+ | `install-skill` | *(deprecated standalone)* Install skill + agents + hooks. Flags: `--platforms <list>`, `--packs [names...]` (interactive if none), `--skill <name>` (one sub-skill), `--list`. |
16
+ | `install-instructions` | *(deprecated standalone)* Install managed root instructions (CLAUDE.md / AGENTS.md). Flags: `--platforms <list>`, `--mode append\|replace\|skip`. (`install-claude-md` is a legacy alias.) |
17
+ | `update` | Refresh THIS project's installed skill, agents, hooks, packs, references, and root instructions to the latest shipped version. Flags: `--packs-only`, `--core-only`, `-y/--yes`. |
18
+ | `upgrade` | Upgrade the CLI, then update the desktop app (if installed) and offer to refresh **every registered project** — one command brings the whole machine current. Flags: `--check` (print current vs latest, don't install), `-y/--yes` (refresh app + all projects non-interactively). |
19
+ | `doctor` | Validate `_dream_context/` structure and report issues. |
20
+ | `config show` | Print project config (platforms, packs, products, people, native-memory, shareable, task backend). |
21
+ | `config native-memory enable\|disable` | Toggle Claude Code's native auto-memory (disabled by default so dreamcontext owns memory). |
22
+ | `config shareable on\|off` | Toggle whether peer vaults may recall this project (default off/private). |
23
+ | `config people [names...]` | Set the people roster; syncs the `## People` block in `1.user.md`. `--clear` for single-person. |
24
+ | `config task-backend local\|clickup\|github` | **[Advanced]** Switch the task backend — one cloud sync at a time (see [integrations.md](integrations.md)). |
25
+ | `config clickup-token [token]` | Store a ClickUp API key in the gitignored secrets file. `--user <name>` to scope it. |
26
+ | `config clickup-list <teamId> <spaceId> <listId>` | Set the ClickUp sync target. `--migrate` / `--keep` when changing lists. |
27
+ | `config clickup-member <person> <memberId>` | Map a roster person to a ClickUp member id. `--token-env <ENV>`. |
28
+ | `config github-token [token]` | Store a GitHub token in the gitignored secrets file (also reads `GITHUB_TOKEN`/`GH_TOKEN`). `--user <name>` to scope it. |
29
+ | `config github-repo <owner> <repo>` | Set the GitHub sync target (`owner`/`repo`). |
30
+
31
+ ---
32
+
33
+ ## Tasks
34
+
35
+ | Command | Description |
36
+ |---|---|
37
+ | `tasks list` | List/filter/group tasks (excludes completed by default). Flags: `-s/--status`, `-a/--all`, `--tag <t>` (repeatable, AND), `--any-tag <t>` (repeatable, OR), `--version <id>`, `--priority <level>`, `--feature <slug>`, `-g/--group-by tag\|version\|priority\|status`, `--long`, `--tags`, `--json`. Filters compose (AND), case-insensitive. |
38
+ | `tasks tags` | Distinct task tags with counts. `-a/--all`, `--json`. |
39
+ | `tasks create <name>` | Create a task. Flags: `-d/--description`, `-p/--priority critical\|high\|medium\|low`, `-u/--urgency …`, `-s/--status`, `-t/--tags <csv>`, `-w/--why`, `-v/--version`, `--person <name>`, `--reach <1-10>`, `--impact <1-5>`, `--confidence 25\|50\|75\|100`, `--effort <weeks>`, `--due YYYY-MM-DD`. |
40
+ | `tasks rice <name>` | Print or update RICE values. `--reach`/`--impact`/`--confidence`/`--effort`, `--clear`. |
41
+ | `tasks due <name> <YYYY-MM-DD\|clear>` | Set or clear a due date. |
42
+ | `tasks tag <name> <tags...>` | Add (or `--remove`) tags. `person:<slug>` assigns a person. |
43
+ | `tasks insert <name> <section> <content...>` | Insert into a section: `why`, `user_stories`, `acceptance_criteria`, `constraints`, `technical_details`, `notes`, `changelog`. |
44
+ | `tasks log <name> [content...]` | Add a changelog entry (cross-session continuity). **Use every session.** |
45
+ | `tasks status <name> <todo\|in_progress\|in_review\|completed> [reason...]` | Change status (logs to changelog). |
46
+ | `tasks complete <name> [summary...]` | Mark completed (convenience). |
47
+ | `tasks delete <name>` | Delete a task (propagates to remote backend on sync). `--yes`. |
48
+ | `tasks doctor [name]` | Validate the Workflow flowchart is in sync with Acceptance Criteria (all tasks if name omitted). |
49
+ | `tasks sync [push\|pull\|both]` | Sync with the remote backend (no-op on local). `--hook`, `--json`. |
50
+ | `tasks members` | People with access to the remote list (assignee candidates). `--json`. |
51
+ | `tasks provision` | Create recommended custom fields on the remote list. |
52
+ | `tasks sync-hooks install\|uninstall` | Manage best-effort git sync triggers (post-commit, pre-push). |
53
+
54
+ Sections for `tasks insert`: `why`, `user_stories`, `acceptance_criteria`, `constraints`, `technical_details`, `notes`, `changelog`. See [tasks-and-features.md](tasks-and-features.md) for the full protocol.
55
+
56
+ ---
57
+
58
+ ## Features
59
+
60
+ | Command | Description |
61
+ |---|---|
62
+ | `features create <name>` | Create a feature PRD. `-w/--why`, `-t/--tags <csv>`, `-s/--status planning\|in_progress\|in_review\|active\|shipped\|deprecated`, `--related-tasks <csv>`. |
63
+ | `features set <name> <tags\|status\|related_tasks> <value...>` | Set a frontmatter field without hand-editing. |
64
+ | `features insert <name> <section> <content...>` | Insert into a section (replaces template placeholders on first write; `user_stories`/`acceptance_criteria` auto-format as `- [ ]`). |
65
+ | `features doctor` | Check PRDs for staleness, orphans, dangling task refs (read-only). |
66
+
67
+ Sections for `features insert`: `changelog`, `notes`, `technical_details`, `constraints`, `user_stories`, `acceptance_criteria`, `why`. **Features are sleep-only — do not update during active work.**
68
+
69
+ ---
70
+
71
+ ## Core (changelog & releases)
72
+
73
+ | Command | Description |
74
+ |---|---|
75
+ | `core changelog add` | Add a changelog entry. `--type feat\|fix\|refactor\|chore\|docs\|perf\|test\|change`, `--scope`, `--description`, `--summary` (≤200 char), `--references <csv>` (`commit:`/`file:`/`knowledge:`/`feature:`/`task:`/`url:`), `--authors <csv>`, `--supersedes <key>`, `--breaking`. |
76
+ | `core releases add` | Create a release (auto-discovers tasks/features/changelog). `-V/--ver`, `-s/--summary`, `--status planning\|released` (default released), `-y/--yes`. |
77
+ | `core releases list` | List recent releases. `-n/--count`. |
78
+ | `core releases active [version]` | Get/set the active planning version (default for new tasks' version). `--clear` to unset. |
79
+ | `core releases show <version>` | Show a release's details. |
80
+
81
+ ---
82
+
83
+ ## Knowledge
84
+
85
+ | Command | Description |
86
+ |---|---|
87
+ | `knowledge create <name>` | Create a knowledge file. `-d/--description`, `-t/--tags <csv>`, `-c/--content`. |
88
+ | `knowledge index` | Show the knowledge index. `--tag <tag>`, `--plain`. |
89
+ | `knowledge tags` | List standard tags. `--plain`. |
90
+ | `knowledge move <slug> <folder>` | Move `knowledge/<slug>.md` → `knowledge/<folder>/<basename>.md` and rewrite inbound `[[wikilinks]]` atomically (target token only; `\|alias`/`#anchor` preserved). Free-form folders — nothing reserved; nested allowed; path traversal + clobber rejected. Use this instead of `mv` + hand-editing links. |
91
+ | `knowledge touch <slug>` | Record access (decay/staleness tracking + warm loading). |
92
+
93
+ > `knowledge/**/*.md` is indexed **recursively**, so knowledge organized into context folders (`knowledge/<context>/…`) stays first-class. Group a flat file into a context folder with `knowledge move <slug> <folder>` (atomic move + wikilink rewrite); `sleep-product` calls this same command during consolidation; legacy flat `knowledge/diagrams/` boards are folded by `migrations apply-diagrams`. Never hand-move + hand-edit links. See [knowledge-and-recall.md](knowledge-and-recall.md).
94
+
95
+ ---
96
+
97
+ ## Memory (recall & corpus)
98
+
99
+ | Command | Description |
100
+ |---|---|
101
+ | `memory recall <query...>` | Search the corpus (knowledge + features + tasks + memory + changelog). `-t/--top <n>`, `--types <csv>`, `--json`, `--plain`, `--vault <name>` (repeatable), `--connected`, `--all-vaults`. |
102
+ | `memory remember <text...>` | Quick-append a CHANGELOG entry (`type=note`, `scope=quick`). `--summary`, `--type`, `--scope`, `--references <csv>`, `--person <csv>`. |
103
+ | `memory update <slug>` | Update a knowledge file. `-d/--description`, `-t/--tags`, `-c/--content`, `--append <text>`, `--pin`, `--unpin`. |
104
+ | `memory delete <slug>` | Delete a knowledge file (irreversible; recover via git). `-f/--force`. |
105
+ | `memory list` | List the corpus by type. `--types <csv>`, `--plain`. |
106
+ | `memory status` | Corpus size + breakdown by type. |
107
+ | `recall status\|on\|off\|raw` | Control recall mode: `on`=haiku (default, LLM picks docs), `raw`=BM25 only, `off`=disabled. |
108
+
109
+ ---
110
+
111
+ ## Sleep / consolidation
112
+
113
+ | Command | Description |
114
+ |---|---|
115
+ | `sleep status` | Current debt level + history. |
116
+ | `sleep add <score> <description...>` | Record a debt-accumulating action (non-file work). |
117
+ | `sleep start` | Begin consolidation epoch (safe clearing). `--deep` forces deep consolidation (authorizes destructive knowledge ops). |
118
+ | `sleep done <summary...>` | Mark consolidation complete, write history, reset debt. |
119
+ | `sleep debt` | Output the debt number (programmatic). |
120
+ | `sleep history` | Consolidation history log. `-n/--limit`. |
121
+
122
+ See [sleep.md](sleep.md) for the full flow.
123
+
124
+ ---
125
+
126
+ ## Bookmarks & triggers
127
+
128
+ | Command | Description |
129
+ |---|---|
130
+ | `bookmark add <message...>` | Tag an important moment. `-s/--salience 1\|2\|3` (default 2), `-t/--task <slug>`. |
131
+ | `bookmark list` / `bookmark clear` | Show / remove all bookmarks. |
132
+ | `trigger add <when> <remind...>` | Create a contextual reminder. `-m/--max-fires` (default 3), `-s/--source`. |
133
+ | `trigger list` / `trigger remove <id>` | Show / remove triggers. |
134
+
135
+ ---
136
+
137
+ ## Taxonomy
138
+
139
+ | Command | Description |
140
+ |---|---|
141
+ | `taxonomy vocab` | Show the resolved vocabulary (defaults + `core/taxonomy.json`). `--json`, `--facet <facet>`. |
142
+ | `taxonomy audit` | Audit corpus tags against the vocabulary (read-only). `--json`. |
143
+ | `taxonomy init` | Scaffold `core/taxonomy.json` (idempotent). |
144
+ | `taxonomy add <tag>` | Add a tag to the vocabulary. |
145
+ | `taxonomy alias <alias> <canonical>` | Add an alias→canonical mapping. |
146
+ | `taxonomy resolve <tag>` | Show normalized form, classification, canonical resolution. `--json`. |
147
+
148
+ Never hand-edit `core/taxonomy.json` — mutate via these commands.
149
+
150
+ ---
151
+
152
+ ## Federation / vaults (see [integrations.md](integrations.md))
153
+
154
+ | Command | Description |
155
+ |---|---|
156
+ | `vaults add\|list\|discover\|remove` | Manage the global vault registry. `discover [root] [--register]`. |
157
+ | `connect <vault>` | Read a peer. `-d/--direction out\|in\|both` (out = read), `--topics <csv>`. |
158
+ | `disconnect <vault>` | Remove a connection. |
159
+ | `connections list` | List this vault's connections. |
160
+ | `federation peers` | Refresh + print readable-peer summaries. |
161
+ | `federation status` | Connections + leftover federated copies. |
162
+ | `federation purge` | Remove leftover `federated:true` copies. `--vault`, `--all`, `--dry-run`. |
163
+ | `federation sync` / `federation drain` | **Disabled no-ops** (copy-based sync is parked). |
164
+
165
+ ---
166
+
167
+ ## Council (see [integrations.md](integrations.md))
168
+
169
+ `council create`, `council agent create`, `council round start\|end`, `council synthesize`, `council complete`, `council promote`, `council list`, `council show`. Plus sub-agent helpers (`round-context`, `report append`, `summaries`, `research add\|list`).
170
+
171
+ ---
172
+
173
+ ## Other
174
+
175
+ | Command | Description |
176
+ |---|---|
177
+ | `dashboard` | Open the web UI. `-p/--port`, `--host`, `--no-open`, `--vault`, `--launcher`. |
178
+ | `app install\|update\|status` | Manage the macOS desktop app. `--from <path>`, `--dir <dir>`. |
179
+ | `marketing` / `mk` | Meta marketing skill surface. |
180
+ | `transcript distill <session_id>` | Extract high-signal content from a transcript. `--since <ts>`, `--full`. |
181
+ | `reflect` | Surface recurring cross-session terms as candidates. `--min-sessions`, `--max`, `--write`. |
182
+ | `snapshot` | Output the context snapshot (used by SessionStart). `--tokens`, `--vault <name>`. |
183
+ | `migrations pending\|apply-diagrams\|record` | Inspect/apply brain-structure migrations. `record --files --summary`. |
184
+ | `feedback` | File a gap/bug upstream as a GitHub issue. See [improving-dreamcontext.md](improving-dreamcontext.md). |
185
+ | `hook <name>` | Hook handlers (called by the platform, not you): `session-start`, `stop`, `subagent-start`, `pre-tool-use`, `user-prompt-submit`, `post-tool-use`, `pre-compact`, `ensure-dashboard`, `refresh-asset-drift`. |
186
+
187
+ ---
188
+
189
+ ## Environment variables
190
+
191
+ | Var | Effect |
192
+ |---|---|
193
+ | `DREAMCONTEXT_MEMORY_HOOK=0` | Disable auto-injected recall on prompts. |
194
+ | `DREAMCONTEXT_RECALL_MODE=haiku\|raw\|off` | Override recall mode for the session (else uses `recall` setting; default `haiku`). |
195
+ | `DREAMCONTEXT_AUTO_DASHBOARD=0` | Don't auto-open the dashboard on session start. |
196
+ | `DREAMCONTEXT_DASHBOARD_PORT` | Default dashboard port (else 4173). |
197
+ | `DREAMCONTEXT_AUTO_UPGRADE=0` | Disable automatic CLI self-upgrade. |
198
+ | `DREAMCONTEXT_VERSION_CHECK=0` | Disable the version-check nag. |
199
+ | `DREAMCONTEXT_PERSON` | Current person for attribution (wins over the roster default). |
200
+ | `DREAMCONTEXT_SNAPSHOT_BUDGET` | Token budget cap for the SessionStart snapshot. |
201
+ | `DREAMCONTEXT_SKILLS_HOOK=0` | Disable skill-suggestion injection on prompts. |
202
+ | `DREAMCONTEXT_DRIFT_CHECK` / `DREAMCONTEXT_APP_AUTO_UPDATE` | Asset-drift check / desktop app auto-update toggles. |
203
+ | `DREAMCONTEXT_DEBUG` | Verbose diagnostics (e.g. recall decisions to stderr). |
@@ -0,0 +1,39 @@
1
+ # Improving dreamcontext (Agent Feedback Loop)
2
+
3
+ You are not just a *user* of dreamcontext — you are its field reporter. When dreamcontext gets in your way, the system can only improve if that friction reaches its maintainers. Take responsibility: file it. **Do not silently work around it** — a workaround fixes today; feedback fixes the system.
4
+
5
+ ## Triggers — the moment you notice any of these, consider filing
6
+
7
+ - You expected a fact to be in memory but `memory recall` didn't surface it (a recall gap, not a missing fact).
8
+ - You wished a CLI command existed and there was no path (e.g. "I want to reopen a completed task" and there's no `tasks reopen`).
9
+ - A command, hook, or doc behaved wrong, was confusing, or crashed.
10
+ - The structure forced an awkward workaround for something the system should support directly.
11
+
12
+ ## The loop (the ONLY sanctioned way to file — never run `gh issue create` by hand)
13
+
14
+ 1. **Draft.** Run `dreamcontext feedback --dry-run` with the category and a complete scenario:
15
+ ```bash
16
+ dreamcontext feedback --dry-run \
17
+ -c <bug|missing-cli|unseen-memory|feature|docs|other> \
18
+ -t "<concise, specific title>" \
19
+ -s "<what you were doing>" \
20
+ -e "<what dreamcontext should have done>" \
21
+ -g "<what was missing / broken / surprising>" \
22
+ -r "<exact commands / repro steps>" \
23
+ -p "<your proposed improvement: command, behavior, doc, or fix>"
24
+ ```
25
+ A maintainer who never saw your session must understand it from the issue alone — include the whole scenario.
26
+ 2. **Confirm with the user.** Show them the rendered draft and ask permission. This writes to a public repo on their behalf — never file without an explicit yes.
27
+ 3. **File.** Re-run the same command without `--dry-run` and with `--yes`. It checks for near-duplicate open issues (skip with `--no-dedup`), applies the `agent-feedback` label, and files to the **dreamcontext upstream project** (`meanllbrl/dreamcontext`) — NOT the user's own repo.
28
+
29
+ ## No GitHub access?
30
+
31
+ If the command reports `gh` is missing or unauthenticated, relay its guidance: install `gh` + run `gh auth login`; if they have no GitHub account, ask them to create a free one at github.com/signup. They need an account to file. Then re-run the loop.
32
+
33
+ ## Quality bar
34
+
35
+ One issue per distinct gap, a concrete title, the full scenario, a concrete proposal. Vague feedback ("recall is bad") is noise; a reproducible scenario with a proposed command is signal.
36
+
37
+ ## Categories
38
+
39
+ `bug` · `missing-cli` · `unseen-memory` (recall gap) · `feature` · `docs` · `other`
@@ -0,0 +1,236 @@
1
+ # Integrations — ClickUp / GitHub, Dashboard, Desktop App, Federation, Council, Marketing
2
+
3
+ This reference covers everything beyond the local markdown brain. **If a user asks whether dreamcontext integrates with ClickUp or GitHub Issues, runs a dashboard, syncs across projects, or runs debates — the answer is yes.** Details below.
4
+
5
+ ---
6
+
7
+ ## ✅ Cloud / remote task management (ClickUp _or_ GitHub — one at a time)
8
+
9
+ **dreamcontext has a first-class cloud task-management integration.** Tasks always stay as local markdown (`state/<task>.md`) — the canonical source of truth, works offline — and a **pluggable remote task backend** mirrors them bidirectionally to a cloud task manager. Two providers ship today: **ClickUp** (issue #11) and **GitHub Issues** (v0.9.0). If a user asks about "a cloud task system," "ClickUp," "GitHub issue sync," or "remote task sync" — **this is it; the answer is yes.**
10
+
11
+ > **⚠️ Exactly ONE cloud sync at a time — never both.** `taskBackend` is a single value: `local` | `clickup` | `github`. A project syncs to ClickUp **or** GitHub, not both at once. Switching the backend replaces the active sync target — the previous provider's saved coordinates stay on disk but go dormant, because `getTaskBackend()` only ever resolves the one that matches `taskBackend`. It never runs two syncs. Pick one per project.
12
+
13
+ ### ClickUp
14
+
15
+ #### What it does
16
+ - **Bidirectional sync** (`push`, `pull`, or `both`) between local task files and a ClickUp list.
17
+ - **Status mapping** between dreamcontext statuses (`todo/in_progress/in_review/completed`) and ClickUp statuses.
18
+ - **RICE + custom fields**: provisions recommended ClickUp custom fields (urgency, summary, RICE reach/impact/confidence/effort, …) and round-trips them.
19
+ - **Assignees**: `person:<slug>` tags map to ClickUp member IDs bidirectionally (multi-assignee; the full `assignees[]` set survives push/pull). See "People & assignees" in [tasks-and-features.md](tasks-and-features.md).
20
+ - **Changelog as comments**: task changelog entries post as ClickUp comments (`changelogTarget: 'comments'`).
21
+ - **Conflict safety**: conflicting edits are preserved as conflict files rather than silently overwritten; a sync ledger tracks a watermark, pending pushes, and an op queue.
22
+ - **Rate-limit hardened**: throttles at 90 req/min (under ClickUp's 100/min cap), retries with Retry-After backoff, and a partial push can never look like success — `sleep done` auto-retries once on failed pushes, then errors loudly with the failed slugs.
23
+ - **Git triggers**: best-effort `post-commit` / `pre-push` hooks sync automatically (they never block or fail git).
24
+
25
+ #### Enabling it (guided)
26
+ ```bash
27
+ dreamcontext config task-backend clickup
28
+ ```
29
+ Interactively this: gitignores the derived mirror/sync state → prompts for the API key (stored in the gitignored `state/.secrets.json`, mode 0600 — never `.config.json`) → tests the connection → lets you **pick the list from the API** (no URL hunting) → offers to provision custom fields → runs the first sync. Non-interactively it prints the next steps.
30
+
31
+ #### Manual / scripted configuration
32
+ ```bash
33
+ # Store the API key out of shell history (preferred): pipe it
34
+ echo "$CLICKUP_TOKEN" | dreamcontext config clickup-token
35
+ dreamcontext config clickup-token # or prompt interactively
36
+ dreamcontext config clickup-token --user <person> # scope a token to one person
37
+
38
+ # Set the sync target explicitly
39
+ dreamcontext config clickup-list <teamId> <spaceId> <listId>
40
+ # --migrate : changing lists → next sync recreates every task in the NEW list
41
+ # --keep : tasks were moved within ClickUp itself; keep existing mappings
42
+
43
+ # Map a roster person to a ClickUp member (assignee round-trip)
44
+ dreamcontext config clickup-member <person> <memberId> [--token-env <ENV>]
45
+
46
+ # Back to local-only
47
+ dreamcontext config task-backend local
48
+ ```
49
+
50
+ #### Day-to-day sync commands
51
+ ```bash
52
+ dreamcontext tasks sync [push|pull|both] # default: both; no-op on the local backend
53
+ dreamcontext tasks sync --hook # best-effort mode for git hooks (never fails, exit 0)
54
+ dreamcontext tasks sync --json # machine-readable sync report
55
+ dreamcontext tasks members [--json] # people with access to the remote list (assignee candidates)
56
+ dreamcontext tasks provision # create the recommended custom fields on the list
57
+ dreamcontext tasks sync-hooks install|uninstall # manage the git sync triggers
58
+ ```
59
+
60
+ #### Inspecting state
61
+ ```bash
62
+ dreamcontext config show # shows task backend, ClickUp token presence (masked), and list id
63
+ ```
64
+ The mirror, sync ledger, and conflict files are derived and gitignored — never commit them, never hand-edit them.
65
+
66
+ ### GitHub Issues
67
+
68
+ The same backend interface, talking **plain GitHub Issues over REST** (no GraphQL). Tasks map ~1:1 onto issues — the **issue body is the task markdown** — and the four-state status is carried by issue `state`/`state_reason` plus `dc:*` labels.
69
+
70
+ #### What it does
71
+ - **Bidirectional sync** (`push`/`pull`/`both`) between local task files and a repo's Issues.
72
+ - **Status mapping:** `completed` → issue **closed** `state_reason: completed`; `todo`/`in_progress`/`in_review` → **open** + a `dc:*` sub-status label (`dc:in-progress`, `dc:in-review`; `todo` = no label); reopen → **open** `state_reason: reopened`.
73
+ - **Soft-delete (the one divergence from ClickUp):** `tasks delete` **closes** the issue as `state_reason: not_planned` — it NEVER hard-deletes (GitHub REST can't, and issue history is preserved). Inbound, a `not_planned` close removes the local mirror (any unsaved local edits are preserved to `.conflicts/` first).
74
+ - **Fields as labels:** priority/urgency/tags/version ride as labels (`priority:*`, `urgency:*`, `version:*`, plus your plain tags). RICE stays local-only (no custom fields on plain issues — see Tier-2).
75
+ - **Assignees:** `person:<slug>` tags ↔ issue assignees (must be repo collaborators); a non-collaborator assignee is skipped gracefully, never a 4xx that aborts the sync. See "People & assignees" in [tasks-and-features.md](tasks-and-features.md).
76
+ - **Changelog as comments:** task changelog entries post as issue comments (union-merged, deduped — same pattern as ClickUp).
77
+ - **Conflict safety + watermark:** reuses the SAME generic sync engine (ledger / watermark / op-queue / 3-way merge) as ClickUp, unchanged. Watermark is the issue `updated_at` (server time). Delta fetch is `GET /repos/{o}/{r}/issues?state=all&since=<ISO>` with **page-number pagination** (pull-requests filtered out).
78
+ - **Rate-limit hardened:** paces under GitHub's 5000 req/hr cap with Retry-After backoff; a partial push can never look like success.
79
+
80
+ #### Enabling it (guided)
81
+ ```bash
82
+ dreamcontext config task-backend github
83
+ ```
84
+ Interactively this: gitignores the derived mirror/sync state → prompts for a token (stored in the gitignored `state/.secrets.json`, mode 0600 — never `.config.json`) → tests the connection (`GET /user`) → lets you **pick the repo from the API** → offers to provision the recommended `dc:*` labels → runs the first sync.
85
+
86
+ #### Manual / scripted configuration
87
+ ```bash
88
+ echo "$GITHUB_TOKEN" | dreamcontext config github-token # also reads GITHUB_TOKEN / GH_TOKEN from the env
89
+ dreamcontext config github-token # or prompt interactively
90
+ dreamcontext config github-repo <owner> <repo> # set the sync target explicitly
91
+ dreamcontext config task-backend local # back to local-only
92
+ ```
93
+ Token scope: a classic PAT needs `repo`; a fine-grained token needs **Issues** (read/write) + **Metadata**. The day-to-day sync commands (`tasks sync`, `tasks members`, `tasks provision`, `sync-hooks`) and `config show` work identically to ClickUp — they're backend-generic.
94
+
95
+ #### Deferred — Tier-2 (GitHub Projects v2)
96
+ Priority/urgency/status as first-class **board fields** would need GitHub **Projects v2**, which is GraphQL-only and doesn't fit the REST adapter cleanly. It's a documented Tier-2 follow-up; this backend ships **plain Issues only**.
97
+
98
+ **Key mental model:** local markdown is canonical; the cloud provider is a sync *target*, and only ONE is ever active. A user on the local backend has both ClickUp **and** GitHub *available*, just not *enabled* — point them to `dreamcontext config task-backend <clickup|github>`.
99
+
100
+ ---
101
+
102
+ ## Web Dashboard
103
+
104
+ A local React 19 web UI served by a zero-dependency Node HTTP server (ships in the npm package).
105
+
106
+ ```bash
107
+ dreamcontext dashboard # open at http://localhost:4173
108
+ dreamcontext dashboard --port 8080 # custom port (or DREAMCONTEXT_DASHBOARD_PORT)
109
+ dreamcontext dashboard --no-open # start without opening the browser
110
+ dreamcontext dashboard --host 0.0.0.0 # expose on your network (default: loopback only)
111
+ dreamcontext dashboard --vault <name> # open a specific registered vault
112
+ dreamcontext dashboard --launcher # vault-agnostic launcher mode (resolves vault per request)
113
+ ```
114
+ A SessionStart hook auto-opens it when a session starts and no server is running (opt out with `DREAMCONTEXT_AUTO_DASHBOARD=0`).
115
+
116
+ **What's in it:**
117
+ - **Kanban board** — drag-and-drop, multi-select filters (status/priority/urgency/tags/version) with type-ahead, sorting, grouping; Notion-style task detail panel to create tasks, change status, add changelog entries.
118
+ - **Eisenhower matrix** — priority×urgency quadrant planning; **Scatter view** uses RICE scores.
119
+ - **Core editor** — split-pane markdown editing + live preview for soul/user/memory/etc.
120
+ - **Knowledge manager** — search, pin/unpin; **Feature PRD viewer**; **SQL ER diagram** preview for data-structures.
121
+ - **Version manager** — plan and release versions.
122
+ - **Sleep tracker** — debt gauge, session-history timeline, and a list of every manual change made through the dashboard (recorded to `.sleep.json` so the agent consolidates your edits during sleep).
123
+ - **Brain graph** — interactive network of memory/knowledge/features/decisions with explicit + inferred edges.
124
+ - **Council Hall** — every debate as a searchable card grid; detail view with Overview / Agents / Matrix tabs.
125
+ - **"What is this?"** explainer page with live faculty diagrams.
126
+
127
+ Light/dark with system detection.
128
+
129
+ ---
130
+
131
+ ## Desktop App (macOS beta)
132
+
133
+ A native **Tauri 2** app that wraps the same dashboard server so you manage every project from one window. Ships via the desktop release + macOS one-line installer (not the npm package). On macOS, `dreamcontext setup` offers to install it, and `dreamcontext upgrade` updates it automatically when installed — so you rarely run these by hand.
134
+
135
+ ```bash
136
+ dreamcontext app install # install to ~/Applications (no admin, no quarantine prompt)
137
+ dreamcontext app update # update to the latest release
138
+ dreamcontext app status # show installed version and state
139
+ # --from <path> : install/update from a local .app/.tar.gz/.zip instead of GitHub Releases
140
+ # --dir <dir> : install directory (default ~/Applications)
141
+ ```
142
+
143
+ - **Multi-vault launcher** — lists every registered vault; opens each project in its own window (pinned via a request header); per-project status dot (green up-to-date / yellow needs-update / red folder-gone) with an in-UI `update`.
144
+ - **Federation board** — projects rendered as Excalidraw-style cards; click source→target to wire a live "reads" relationship (violet wire = one project reads another's canonical memory live during recall; never a copy), gated by the target being shareable.
145
+ - **In-app onboarding** — quiz-style wizard creates or initializes a project, scaffolds `_dream_context/`, runs `setup`, installs the global CLI; deterministic, LLM-free.
146
+ - **Sleepy — notch quick-capture (beta)** — a global-hotkey transparent notch panel with a mascot whose mood follows sleep debt. Pick a vault, type a thought, choose: **Learn** (save to memory + enrich), **Ask** (one-shot Q&A, nothing saved), **Sleep** (trigger a full consolidation for that vault).
147
+ - Delivery is CLI/curl-driven (no Apple notarization); prefers your auto-upgrading global CLI over its bundled copy. First launch may need right-click → Open.
148
+
149
+ ---
150
+
151
+ ## Federation (cross-project recall)
152
+
153
+ Most people end up with more than one dreamcontext project. Federation lets projects discover each other and **recall across each other live** — read-only, local-only, no server, and **nothing is ever copied between vaults**. Each vault stays the single source of truth for its own knowledge.
154
+
155
+ ### Vault registry
156
+ ```bash
157
+ dreamcontext vaults add <name> <path> # register a project directory as a vault
158
+ dreamcontext vaults list # list registered vaults
159
+ dreamcontext vaults discover [root] [--register] # find every _dream_context/ under a tree (and register)
160
+ dreamcontext vaults remove <name>
161
+ ```
162
+
163
+ ### Connections (read edges)
164
+ ```bash
165
+ dreamcontext connect <vault> --direction out [--topics a,b] # out = a read edge (you read the peer)
166
+ dreamcontext connections list # who this vault reads
167
+ dreamcontext disconnect <vault>
168
+ dreamcontext config shareable on|off # opt THIS project IN/OUT of being recalled by peers (default off/private)
169
+ ```
170
+
171
+ ### PULL — recall already spans peers
172
+ Plain `memory recall` automatically searches eligible readable peers alongside the current vault. Hits are namespaced `<vault>::<type>/<slug>` so provenance is always visible.
173
+ ```bash
174
+ dreamcontext memory recall "<query>" # current vault + eligible readable peers (default)
175
+ dreamcontext memory recall "<query>" --vault <name> # current + one named peer (repeatable)
176
+ dreamcontext memory recall "<query>" --connected # current + out/both connections
177
+ dreamcontext memory recall "<query>" --all-vaults # current + every shareable vault
178
+ ```
179
+ Eligible = direction `out`/`both`, not stale, AND the peer is `shareable: true`. Non-shareable peers are silently excluded. If no eligible connections exist, recall is local-only.
180
+
181
+ ### Reading a specific peer (beyond recall)
182
+
183
+ Recall is the cheap first pass. When you recognize a **specific** connected project actually holds what you need — its code, a decision, a schema — go straight to it instead of guessing or re-deriving:
184
+
185
+ ```bash
186
+ dreamcontext snapshot --vault <name> # print that peer's full context snapshot (orient fast)
187
+ dreamcontext federation peers # one-line summary of each readable peer + its active work
188
+ ```
189
+ - **Read its files directly.** A peer is a normal directory on disk — resolve its path (from `vaults list` / the snapshot's Connected projects) and `Read`/`Grep` inside its `_dream_context/` or source tree.
190
+ - **Dispatch an explorer scoped to it.** For anything non-trivial, send `dreamcontext-explore` with the peer's path in the prompt ("explore `<peer-path>` for …") so it searches there with context-first discipline.
191
+ - A connection is a standing "may read" agreement — there is no per-situation rule to wait for. If your memory says a sibling project is relevant, read it.
192
+
193
+ ### Ambient awareness
194
+ The session snapshot includes a `## Connected projects` section. For a live summary: `dreamcontext federation peers`. Inspect / clean up: `dreamcontext federation status`.
195
+
196
+ ### Copy-based sync is DISABLED (parked on the roadmap)
197
+ Earlier builds pushed a lossy digest into peers at sleep (`federation sync` / `federation drain`) and ingested `federated: true` copies. That broke single-source-of-truth (stale copies, false conflicts) and is now **inert no-ops**; the `sleep-federation` specialist is **not** dispatched. **Do NOT fire `sleep-federation`** during sleep. To remove leftover copies from the old path:
198
+ ```bash
199
+ dreamcontext federation purge --all # remove every federated:true copy here
200
+ dreamcontext federation purge --vault <name> # remove only copies from one peer
201
+ dreamcontext federation purge --dry-run # preview
202
+ ```
203
+
204
+ ---
205
+
206
+ ## Council (multi-persona debates)
207
+
208
+ Structured debates for load-bearing decisions (architecture, migrations, hiring, brand critiques). N personas × N rounds, each persona its own sub-agent with a scoped prompt, model, and aspects; a synthesizer writes the verdict. Also available as the `council` skill pack + `/council` skill.
209
+
210
+ ```bash
211
+ dreamcontext council create "Should we migrate Postgres → Firestore?" --rounds 2
212
+ dreamcontext council agent create migration-risk-auditor --model sonnet --aspects operational-risk,rollback
213
+ dreamcontext council agent create dx-champion --model opus --aspects developer-experience
214
+ dreamcontext council round start 1
215
+ dreamcontext council round end 1 # injects cross-context for round 2+
216
+ dreamcontext council round start 2
217
+ dreamcontext council round end 2
218
+ dreamcontext council synthesize # prints the manifest the synthesizer reads
219
+ dreamcontext council complete
220
+ dreamcontext council promote <id> # copy the verdict into knowledge/decision-<slug>.md
221
+ dreamcontext council list [--unpromoted|--all]
222
+ dreamcontext council show <id>
223
+ ```
224
+ State lives in `_dream_context/council/<id>/` (`debate.md`, `round-log.md`, `final-report.md`, per-persona folders). During sleep, check `council list --unpromoted` and promote if the user engaged positively. Ships `council-persona` + `council-synthesizer` sub-agents. Rendered in the dashboard's Council Hall.
225
+
226
+ ---
227
+
228
+ ## Marketing (`mk`)
229
+
230
+ The Meta marketing skill surface (cohorts, campaigns, competitor ingest, learnings), paired with the `meta-marketing` + `growth` skill packs.
231
+
232
+ ```bash
233
+ dreamcontext marketing # alias: dreamcontext mk
234
+ dreamcontext mk --help # subcommands (cohort, campaign, competitor, learnings, rem-sleep, …)
235
+ ```
236
+ If `_dream_context/marketing/` exists, run `dreamcontext mk rem-sleep` as part of the sleep cycle (see [sleep.md](sleep.md)). PreToolUse gates protect `marketing/.env`.
@@ -0,0 +1,157 @@
1
+ # Knowledge, Recall & Taxonomy — full reference
2
+
3
+ ## Knowledge files
4
+
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
+
7
+ ```bash
8
+ dreamcontext knowledge create <name> -d "description" -t architecture,api -c "body"
9
+ dreamcontext knowledge index [--tag <tag>] [--plain]
10
+ dreamcontext knowledge tags
11
+ dreamcontext knowledge touch <slug> # record access AFTER reading — powers staleness + warm loading
12
+ ```
13
+
14
+ - **Pin** frequently-needed files so they load in full every session: set `pinned: true` (via `dreamcontext memory update <slug> --pin`). Read non-pinned files on demand, then `knowledge touch`.
15
+ - **Surgical edits mid-session**: `dreamcontext memory update <slug> [--description|--tags|--content|--append <text>|--pin|--unpin]`. Heavy maintenance (merging, deduping, restructuring) belongs to `sleep-product`.
16
+ - **Quick capture**: `dreamcontext memory remember "<text>"` writes a `type=note` CHANGELOG entry; sleep reconciles it into knowledge later.
17
+
18
+ ### Organize knowledge into context folders (the promoted convention)
19
+
20
+ `knowledge/**/*.md` is indexed **recursively** — a file under `knowledge/<context>/` stays first-class in the index, recall, snapshot, and dashboard (its slug becomes `<context>/<name>`). The promoted layout is **context/topic-grouped folders**, not a flat dump and not a segregated `diagrams/` tree:
21
+
22
+ ```
23
+ knowledge/
24
+ ├── recall/ ← a context folder
25
+ │ ├── recall-engine-v2.md
26
+ │ ├── decision-mem0-vs-bm25.md
27
+ │ └── recall/recall.excalidraw.md ← the context's diagram lives INSIDE the folder
28
+ ├── federation/
29
+ │ └── ...
30
+ ├── data-structures/{default,<product>}.md
31
+ └── products/<product>.md
32
+ ```
33
+
34
+ **Don't reorganize by hand-moving files + hand-editing links.** To group an existing flat file into a context folder, use the atomic command:
35
+
36
+ ```bash
37
+ dreamcontext knowledge move <slug> <folder> # knowledge/<slug>.md → knowledge/<folder>/<basename>.md
38
+ ```
39
+
40
+ It moves the file **and** rewrites every inbound `[[wikilink]]` in one atomic step (target token only; `|alias` and `#anchor` are preserved), keeps the file first-class in index/recall/snapshot/dashboard, and migrates its `knowledge_access` decay key. Folder names are free-form — nothing is reserved; nested folders are allowed; path traversal and clobbering an existing destination are rejected. Context grouping is normally done by `sleep-product` during consolidation — its "Organize" pass groups files that share a clear topic and calls this same command. During active work, just create knowledge with `dreamcontext knowledge create` and let sleep organize, or run `knowledge move` yourself — but never `mv` + hand-edit links by hand. When creating a brand-new doc you may place it directly in its context folder.
41
+
42
+ ---
43
+
44
+ ## Memory functions — what they are and how to use them
45
+
46
+ The `memory` command group is your interface to the curated corpus: `knowledge/*`, `core/features/*`, `state/*.md`, `core/2.memory.md` (Technical Decisions + Known Issues), and every `core/CHANGELOG.json` entry. No setup, no index file, no external service — rebuilt in memory each call (<100ms on ~130 docs).
47
+
48
+ | Function | Use it to… | Command |
49
+ |---|---|---|
50
+ | **recall** | Find prior decisions/context across the whole corpus | `dreamcontext memory recall <query...>` |
51
+ | **remember** | Capture a one-off fact mid-session before it's lost | `dreamcontext memory remember "<text>"` |
52
+ | **update** | Surgically edit a knowledge file (desc/tags/body/pin) | `dreamcontext memory update <slug> …` |
53
+ | **delete** | Remove a knowledge file (irreversible; recover via git) | `dreamcontext memory delete <slug> -f` |
54
+ | **list** | Enumerate the corpus by type | `dreamcontext memory list [--types …]` |
55
+ | **status** | See corpus size + breakdown by type | `dreamcontext memory status` |
56
+ | **recall mode** | Switch how recall ranks (haiku/raw/off) | `dreamcontext recall on\|raw\|off\|status` |
57
+
58
+ ### recall — your first-line discovery tool
59
+
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.
61
+
62
+ ```bash
63
+ # Plain discovery — top 10 hits with snippets
64
+ dreamcontext memory recall "how did we decide on the sleep fan-out"
65
+
66
+ # Narrow to where the answer likely lives (cheaper, sharper)
67
+ dreamcontext memory recall "auth flow" --types knowledge,feature
68
+ dreamcontext memory recall "deprecated" --types changelog # ship history
69
+ dreamcontext memory recall "rate limit" --types task # in-flight work
70
+
71
+ # Tune result count / machine-readable output
72
+ dreamcontext memory recall "rice prioritization" --top 3 --json
73
+ dreamcontext memory recall "vault registry" --plain # no colors, for piping
74
+
75
+ # Span federation peers (see integrations.md)
76
+ dreamcontext memory recall "<query>" --connected # + out/both peers
77
+ dreamcontext memory recall "<query>" --vault other-project # + one named peer (repeatable)
78
+ ```
79
+ Read the hit's `slug`/path from the output, then `Read` that file for full context. Hits are scored (higher = better); cross-vault hits are namespaced `<vault>::<type>/<slug>`.
80
+
81
+ ### remember — quick capture mid-session
82
+
83
+ ```bash
84
+ dreamcontext memory remember "Chose BM25 over mem0 after a 3-reviewer review"
85
+ dreamcontext memory remember "<text>" --references decision:recall-v2,task:recall-engine
86
+ dreamcontext memory remember "<text>" --person mehmet,ada # attribute (multi-person)
87
+ ```
88
+ Writes a CHANGELOG entry (`type=note`, `scope=quick`); the sleep cycle reconciles it into knowledge later. You do NOT hand-edit `2.memory.md` for these (it no longer carries a LIFO notes section).
89
+
90
+ ### Recall modes
91
+ | Mode | Behavior | Set with |
92
+ |---|---|---|
93
+ | `haiku` (**default**) | A small cloud model picks 0–3 relevant docs per prompt (smarter than keywords; BM25 fallback) | `dreamcontext recall on` |
94
+ | `raw` | BM25 keyword scoring only — no LLM call | `dreamcontext recall raw` |
95
+ | `off` | No recall injection at all | `dreamcontext recall off` |
96
+ | — | Inspect current mode | `dreamcontext recall status` |
97
+
98
+ - **Auto-injection (ON by default):** the UserPromptSubmit hook surfaces top hits on every non-trivial prompt. Opt out with `DREAMCONTEXT_MEMORY_HOOK=0`; override mode per-session with `DREAMCONTEXT_RECALL_MODE`.
99
+ - **Federation:** plain `recall` automatically spans eligible readable peers; hits are namespaced `<vault>::<type>/<slug>`. Scope with `--vault`/`--connected`/`--all-vaults` (see [integrations.md](integrations.md)).
100
+
101
+ ### What recall is and isn't
102
+ - BM25 is keyword/stemming-based, not semantic — "ML practitioner" won't match "data scientist" (haiku mode mitigates this).
103
+ - Recall does **not** replace the SessionStart snapshot (soul/user/memory/active-tasks/knowledge-index are always pre-loaded). It is not a vector DB or mem0; the corpus is the same set the sleep agents curate.
104
+
105
+ ---
106
+
107
+ ## Root-cause analysis pattern
108
+
109
+ When debugging (e.g. "notifications are broken"):
110
+ 1. `dreamcontext memory recall "notification"` — what's known + what changed?
111
+ 2. SEARCH `core/CHANGELOG.json` / `RELEASES.json` for the term — what shipped recently?
112
+ 3. READ `core/4.tech_stack.md` — how is the system wired?
113
+ 4. SEARCH `knowledge/` for the module — any deep research?
114
+ 5. Now diagnose with the full picture.
115
+
116
+ ---
117
+
118
+ ## Taxonomy (tags drive recall precision)
119
+
120
+ Consistent tags make recall sharp; fragmented near-duplicate tags degrade it. Before tagging anything, consult the vocabulary and reuse canonical faceted tags (`topic:recall`, `domain:security`) before inventing new ones.
121
+
122
+ ```bash
123
+ dreamcontext taxonomy vocab [--facet <facet>] [--json] # resolved vocabulary (defaults + core/taxonomy.json)
124
+ dreamcontext taxonomy resolve <tag> # normalized form, classification, canonical
125
+ dreamcontext taxonomy audit [--json] # surface non-canonical / orphan tags (read-only)
126
+ dreamcontext taxonomy init # scaffold core/taxonomy.json (idempotent)
127
+ dreamcontext taxonomy add <facet:value> # add a new vocabulary tag
128
+ dreamcontext taxonomy alias <alias> <canonical> # merge a shorthand into a canonical tag
129
+ ```
130
+ Standard bare tags: `architecture`, `api`, `frontend`, `backend`, `database`, `devops`, `security`, `testing`, `design`, `decisions`, `onboarding`, `domain`. **Never hand-edit `core/taxonomy.json`** — mutate via the CLI. `sleep-product` runs taxonomy maintenance during consolidation.
131
+
132
+ ---
133
+
134
+ ## Excalidraw boards (diagrams)
135
+
136
+ Excalidraw boards (`.excalidraw.md`) are first-class knowledge files. **A board belongs INSIDE the context folder it documents**, co-located with that context's `.md` knowledge — not in a separate top-level diagrams dump. A board lives in its own `<title>/` wrapper folder so its tooling siblings stay together:
137
+
138
+ ```
139
+ knowledge/system/architecture/architecture.excalidraw.md ← board inside its context folder
140
+ knowledge/recall/recall/recall.excalidraw.md
141
+ ```
142
+
143
+ Rules:
144
+ - **REQUIRED frontmatter**: every board must have `name:` and `description:`. Boards with no `## Text Elements` fall back to description-only recall — make the description rich.
145
+ - **Do NOT hand-edit scene JSON.** The `.excalidraw.md` is generated output. Build a spec and run the generator (`.board.cjs`). Edit the spec, not the board. The spec is the source of truth; if they disagree, the spec wins. Commit both. (See the `excalidraw` skill pack for generating boards.)
146
+ - **Dark siblings**: tooling files inside a board's `<title>/` folder — generator scripts (`.board.cjs`), spec `.json`, and frontmatter-less helper `.md` — are excluded from index/recall/snapshot/dashboard. **Exception:** a companion `.md` with `name:` frontmatter is indexed as first-class, so you can co-locate a board with its teardown (`acme/acme.excalidraw.md` + `acme/acme.teardown.md`).
147
+ - **Indexing strips scene JSON/base64/element ids** — only frontmatter + `## Text Elements` are searchable, so a 2 MB board is as searchable as a tiny one. The dashboard renderer still gets the raw scene via the detail API and shows the full nested folder tree.
148
+
149
+ **Where does a board go?**
150
+ | Nature | Location | Indexed? |
151
+ |---|---|---|
152
+ | Canonical (architecture, flows, roadmaps a future session should recall) | inside its `knowledge/<context>/<title>/` folder | Yes |
153
+ | Temporary / scratch / exploratory | `inbox/` or `workspace/` (dark by location) | No |
154
+
155
+ Decision rule: *"Will a future session need this? → its context folder under `knowledge/`. Throwaway? → `inbox/` or `workspace/`."*
156
+
157
+ > **Legacy note:** older projects kept all boards under a single top-level `knowledge/diagrams/` tree, and `dreamcontext migrations apply-diagrams` still maintains flat boards there (folds them into per-title folders + rewrites `[[wikilinks]]` atomically — never hand-edit links). That layout still indexes and renders, but new boards should go in their **context folder**, and `sleep-product` keeps the store organized over time.