dreamcontext 0.10.6 → 0.12.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/README.md +80 -0
- package/agents/curator-auditor.md +1 -1
- package/agents/curator-verifier.md +3 -3
- package/agents/curator-worker.md +1 -1
- package/agents/sleep-federation.md +1 -1
- package/agents/sleep-migration.md +1 -1
- package/agents/sleep-product.md +10 -9
- package/agents/sleep-state.md +1 -1
- package/agents/sleep-tasks.md +9 -5
- package/dist/agents/curator-auditor.md +1 -1
- package/dist/agents/curator-verifier.md +3 -3
- package/dist/agents/curator-worker.md +1 -1
- package/dist/agents/sleep-federation.md +1 -1
- package/dist/agents/sleep-migration.md +1 -1
- package/dist/agents/sleep-product.md +10 -9
- package/dist/agents/sleep-state.md +1 -1
- package/dist/agents/sleep-tasks.md +9 -5
- package/dist/dashboard/assets/{BrainCanvas3D-8hG96aAi.js → BrainCanvas3D-mZCAQwGS.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-b4AibH2-.js → _baseUniq-BUxsWVsL.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-DpGPIe5Z.js → ar-SA-G6X2FPQ2-CccKfvbE.js} +1 -1
- package/dist/dashboard/assets/{arc-BHNPUsz3.js → arc-DKUqFYZl.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-IzEd_B2U.js → architectureDiagram-Q4EWVU46-4WGtSdey.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-Ccf6e1ON.js → az-AZ-76LH7QW2-C-NroZco.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-XnDUjubv.js → bg-BG-XCXSNQG7-rQaoynHO.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-CEINLAFi.js → blockDiagram-DXYQGD6D-DFuSTaR5.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-E9FzPBnu.js → bn-BD-2XOGV67Q-D7R-v0tl.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-VrHpmy8U.js → c4Diagram-AHTNJAMY-BJ_6YYYT.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-Cnp7YBQb.js → ca-ES-6MX7JW3Y-dsbdYGPx.js} +1 -1
- package/dist/dashboard/assets/channel-CIIBmX-d.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-CuueCQHq.js → chunk-4BX2VUAB-HJLHjOrd.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-BhlZWQoi.js → chunk-4TB4RGXK-DjvoLiQ0.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-ClixcVTq.js → chunk-55IACEB6-D-m72jvC.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-DUj1uWsJ.js → chunk-EDXVE4YY-BCjmEpM7.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-BZClSbG6.js → chunk-FMBD7UC4-DDlvS1yz.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-CMMXG2K9.js → chunk-OYMX7WX6-DYJRxE9t.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-CI5x9wkp.js → chunk-QZHKN3VN-B76yDzg6.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-DnpOMFO-.js → chunk-YZCP3GAM-CZjAdM3g.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-BmFrdEQk.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-BmFrdEQk.js +1 -0
- package/dist/dashboard/assets/clone-CNozcEzk.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-C9xnvFgj.js → cose-bilkent-S5V4N54A-CbVNpzeg.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-BHebgNbB.js → cs-CZ-2BRQDIVT-J9uouZQt.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-DYuNSWM8.js → da-DK-5WZEPLOC-CEwRNThM.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-Ck8mmM53.js → dagre-KV5264BT-bTITGm1T.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-CMw5lMuT.js → de-DE-XR44H4JA-__KY_QPB.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-L4erno22.js → diagram-5BDNPKRD-CMb_WZII.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-Dkmwa2-B.js → diagram-G4DWMVQ6-ebqTPDMj.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-v2PnfbZO.js → diagram-MMDJMWI5-dtIkfYIv.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-1ZO4tNjc.js → diagram-TYMM5635-BhtWl36c.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-PXD8ArOs.js → el-GR-BZB4AONW-CYkyOlmf.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-B8gV0kGN.js → erDiagram-SMLLAGMA-DcDH5wz0.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-CbfskKe2.js → es-ES-U4NZUMDT-Bu5LUk6U.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-iqrfeyOI.js → eu-ES-A7QVB2H4-IlNi4UGh.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-PzU2OiC1.js → fa-IR-HGAKTJCU-Jyt7rkFV.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-CbFLdQ9f.js → fi-FI-Z5N7JZ37-Cqcoli78.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-CKx3j3bI.js → flowDiagram-DWJPFMVM-B3iy-L85.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-BuF2MviY.js → fr-FR-RHASNOE6-IKVJ17C4.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-CAbTd_KO.js → ganttDiagram-T4ZO3ILL-UKhI0SVC.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-Di7htCsA.js → gitGraphDiagram-UUTBAWPF-D-GWZW87.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-BqePaODm.js → gl-ES-HMX3MZ6V-C3efiprZ.js} +1 -1
- package/dist/dashboard/assets/{graph-CC7SYwBm.js → graph-BFYZl1aj.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-w9d4AvyL.js → he-IL-6SHJWFNN-BsFohTT8.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-BwHo17vR.js → hi-IN-IWLTKZ5I-Cdag_2yp.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-Dm80xRge.js → hu-HU-A5ZG7DT2-CybG-BTD.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-RpPM18i0.js → id-ID-SAP4L64H-sH8BmLkx.js} +1 -1
- package/dist/dashboard/assets/index-C2R7Is0-.js +516 -0
- package/dist/dashboard/assets/{index-sA_NxF_Y.js → index-D724s9RT.js} +1 -1
- package/dist/dashboard/assets/index-NsrznfmA.js +1 -0
- package/dist/dashboard/assets/index-d0njwauj.css +32 -0
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-z-1I4Qyj.js → infoDiagram-42DDH7IO-D4tIVELa.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-DWGoVsQO.js → ishikawaDiagram-UXIWVN3A-C3kfQJPs.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-DhOvhKWm.js → it-IT-JPQ66NNP-BUL9bA1N.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-CEZ1K0xn.js → ja-JP-DBVTYXUO-D5RAsuhQ.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-Dqh8uQwc.js → journeyDiagram-VCZTEJTY-DhXdAiRb.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-DuFoQ8nX.js → kaa-6HZHGXH3-BFnf-Ufc.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-BkQCP_3o.js → kab-KAB-ZGHBKWFO-DiGK_ZTh.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-DCs65HUc.js → kanban-definition-6JOO6SKY-Cx5laNH2.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-Dh9BXA8_.js → kk-KZ-P5N5QNE5-DxsR0KaB.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-D1S2EcQ_.js → km-KH-HSX4SM5Z-CvoPabo9.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-DsI3vrEx.js → ko-KR-MTYHY66A-B9c5NmSl.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-CyjK_3XH.js → ku-TR-6OUDTVRD-DG055kJy.js} +1 -1
- package/dist/dashboard/assets/{layout-B_y9BOh6.js → layout-DwwzFzt3.js} +1 -1
- package/dist/dashboard/assets/{linear-BdGSdQOc.js → linear-CCkgZ20z.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-C6tJka1D.js → lt-LT-XHIRWOB4-CToLILNS.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-C_xyL_ee.js → lv-LV-5QDEKY6T-RFiS8ekQ.js} +1 -1
- package/dist/dashboard/assets/{min-U_KGhNEt.js → min-Dc2FnahZ.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-sXmpEpKw.js → mindmap-definition-QFDTVHPH-LUttOfMV.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-C0TwGtAU.js → mr-IN-CRQNXWMA-CnEWhejt.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-RlAQCiXW.js → my-MM-5M5IBNSE-Bf6P8QZs.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-C1JHqr1t.js → nb-NO-T6EIAALU-Cr7PzKgs.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-B0BVD_2p.js → nl-NL-IS3SIHDZ-D9Gjqrcc.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-zQTko94P.js → nn-NO-6E72VCQL-SGn5Xm7M.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-CBZRg6ku.js → oc-FR-POXYY2M6-BJrKiOwj.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-7s6qpn6h.js → pa-IN-N4M65BXN-CAMb13rV.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-DckRvLSG.js → percentages-BXMCSKIN-DYtyPGCn.js} +7 -7
- package/dist/dashboard/assets/{pica-ByOjSUxE.js → pica-CsfxH0Em.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-BJJsFOH9.js → pieDiagram-DEJITSTG-C3G7iSyy.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-QTzNyi10.js → pl-PL-T2D74RX3-D6RD-xuv.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-tntUlote.js → pt-BR-5N22H2LF-BubaEA_3.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-B9M5aHl1.js → pt-PT-UZXXM6DQ-CdM_0BZc.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-BearsU1w.js → quadrantDiagram-34T5L4WZ-CVEg1LD9.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-BixosHER.js → requirementDiagram-MS252O5E-DnXTKVKA.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-qbgXrb57.js → ro-RO-JPDTUUEW-5i2wmUHd.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-CgX4A1Ib.js → ru-RU-B4JR7IUQ-HtCIg5-6.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-DMSd55sU.js → sankeyDiagram-XADWPNL6-D-Q3LUMx.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-D2-Uwrtb.js → sequenceDiagram-FGHM5R23-D8wOCFBc.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-CWEkBvJB.js → si-LK-N5RQ5JYF-gdNFoVlI.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-CG8moyh9.js → sk-SK-C5VTKIMK-Eag9tQA5.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-CsBFEfKt.js → sl-SI-NN7IZMDC-BFlQuwpN.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-vG3jGBpo.js → stateDiagram-FHFEXIEX-Do9qEX6W.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-D7FDMEq6.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-Bin8VoC6.js → subset-shared.chunk-Cm4V9KkI.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-mRsEjVpS.js → subset-worker.chunk-DbIuMVFm.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-BMD7GbQV.js → sv-SE-XGPEYMSR-ZEKrtqFc.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-CjZ7GPuA.js → ta-IN-2NMHFXQM-gchwtW9r.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-BTE57yWh.js → th-TH-HPSO5L25-DohfXasj.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-Bz7MuXCz.js → timeline-definition-GMOUNBTQ-Czx9VG5g.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-CKY-uY5_.js → tr-TR-DEFEU3FU-DYV95LVI.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-BuopbANh.js → uk-UA-QMV73CPH-Bpxsn2xS.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-TsesBmH7.js → vennDiagram-DHZGUBPP-Ce_Sxxfx.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-CLrvMDM6.js → vi-VN-M7AON7JQ-BK8ew4LX.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-DlttwW9K.js → wardley-RL74JXVD-DPv1FABO.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-BfZXChhy.js → wardleyDiagram-NUSXRM2D-CCn43KWG.js} +1 -1
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-jjeDn8EJ.js → xychartDiagram-5P7HB3ND-D8jqISXa.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-C1MYPzyx.js → zh-CN-LNUGB5OW-MHsVZfMi.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-BriaHjNV.js → zh-HK-E62DVLB3-vWPe0Xiq.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-BUDimtjA.js → zh-TW-RAJ6MFWO-D1qdXP-0.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/git-sync/askpass.cjs +31 -0
- package/dist/index.js +6299 -1662
- package/dist/templates/AGENTS.md +1 -1
- package/dist/templates/CLAUDE.md +1 -1
- package/dist/templates/feature.md +5 -0
- package/dist/templates/obsidian/graph.json +1 -1
- package/package.json +2 -1
- package/skill/SKILL.md +6 -4
- package/skill/references/cli-reference.md +20 -1
- package/skill/references/integrations.md +45 -1
- package/skill/references/knowledge-and-recall.md +1 -1
- package/skill/references/sleep.md +2 -2
- package/skill/references/tasks-and-features.md +27 -6
- package/skill-curator/SKILL.md +3 -2
- package/skill-deep-research/SKILL.md +2 -2
- package/skill-initializer/SKILL.md +2 -2
- package/skill-sync/SKILL.md +94 -0
- package/skill-sync/references/merge-rules.md +201 -0
- package/dist/dashboard/assets/channel-DwaG7WPN.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-COGCH4LQ.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-COGCH4LQ.js +0 -1
- package/dist/dashboard/assets/clone-DwBiydth.js +0 -1
- package/dist/dashboard/assets/index-BK87l45R.js +0 -1
- package/dist/dashboard/assets/index-CkxvR2LH.css +0 -32
- package/dist/dashboard/assets/index-DalMBSek.js +0 -511
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-V8xCsZlI.js +0 -1
package/dist/templates/AGENTS.md
CHANGED
|
@@ -22,7 +22,7 @@ You are this project's engineering partner. Direct, concise, context-aware. One
|
|
|
22
22
|
This project uses **dreamcontext** — persistent memory for AI agents.
|
|
23
23
|
|
|
24
24
|
- `_dream_context/` is your brain. Soul/user/memory auto-load every session via SessionStart hook. Trust the snapshot — do not re-read what is already injected.
|
|
25
|
-
- Use the `dreamcontext` CLI for structured ops: `tasks create/log/complete`, `features create
|
|
25
|
+
- Use the `dreamcontext` CLI for structured ops: `tasks create/log/complete`, `features create` (deprecated alias — writes typed knowledge under `knowledge/features/`), `knowledge create/touch`, `bookmark add`, `core changelog add`, `memory recall/remember`. Never hand-edit task/feature files.
|
|
26
26
|
- Memory recall is auto-injected on prompts (UserPromptSubmit hook, top-3 hits over knowledge + features + tasks + memory + CHANGELOG). Opt-out: `DREAMCONTEXT_MEMORY_HOOK=0`. `memory remember "<note>"` appends a `type=note` CHANGELOG entry — not a LIFO section.
|
|
27
27
|
- Sleep debt is auto-tracked. When prompted, run the sleep flow per the `dreamcontext` skill (parallel fan-out: dispatch `sleep-tasks`, `sleep-state`, and conditionally `sleep-product`). Do not ignore consolidation prompts.
|
|
28
28
|
- Use `dreamcontext-explore` for codebase exploration.
|
package/dist/templates/CLAUDE.md
CHANGED
|
@@ -22,7 +22,7 @@ You are this project's engineering partner. Direct, concise, context-aware. One
|
|
|
22
22
|
This project uses **dreamcontext** — persistent memory for AI agents.
|
|
23
23
|
|
|
24
24
|
- `_dream_context/` is your brain. Soul/user/memory auto-load every session via SessionStart hook. Trust the snapshot — do not re-read what is already injected.
|
|
25
|
-
- Use the `dreamcontext` CLI for structured ops: `tasks create/log/complete`, `features create
|
|
25
|
+
- Use the `dreamcontext` CLI for structured ops: `tasks create/log/complete`, `features create` (deprecated alias — writes typed knowledge under `knowledge/features/`), `knowledge create/touch`, `bookmark add`, `core changelog add`, `memory recall/remember`. Never hand-edit task/feature files.
|
|
26
26
|
- Memory recall is auto-injected on prompts (UserPromptSubmit hook, top-3 hits over knowledge + features + tasks + memory + CHANGELOG). Opt-out: `DREAMCONTEXT_MEMORY_HOOK=0`. `memory remember "<note>"` appends a `type=note` CHANGELOG entry — not a LIFO section.
|
|
27
27
|
- Sleep debt is auto-tracked. When prompted, run the sleep flow per the `dreamcontext` skill (parallel fan-out: dispatch `sleep-tasks`, `sleep-state`, and conditionally `sleep-product`). Do not ignore consolidation prompts.
|
|
28
28
|
- Use `dreamcontext-explore` for codebase exploration (default Explorer is blocked).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dreamcontext",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "dreamcontext — the persistent brain for your AI agents. Remembers what you built, knows how your project works.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"skill-initializer",
|
|
13
13
|
"skill-curator",
|
|
14
14
|
"skill-deep-research",
|
|
15
|
+
"skill-sync",
|
|
15
16
|
"skill-packs",
|
|
16
17
|
"agents",
|
|
17
18
|
"README.md",
|
package/skill/SKILL.md
CHANGED
|
@@ -88,6 +88,7 @@ dreamcontext is **more than memory files**. Every capability below is real and s
|
|
|
88
88
|
| **Web dashboard** | Local React UI: Kanban, Eisenhower matrix, brain graph, sleep tracker, council hall | [integrations.md](references/integrations.md) |
|
|
89
89
|
| **Desktop app** | macOS Tauri app: multi-vault launcher, federation board, Sleepy notch capture | [integrations.md](references/integrations.md) |
|
|
90
90
|
| **Federation** | Recall across multiple projects (vaults) live, read-only | [integrations.md](references/integrations.md) |
|
|
91
|
+
| **✅ Team brain sync (shared repo)** | **Yes — a team can share ONE brain.** The whole `_dream_context/` becomes its own git repo (separate from the code repo); `sleep done` auto fetch→merge→commit→pushes it, and the `/dream-sync` skill resolves prose conflicts. Different from federation (read-only cross-project recall) and cloud task sync (tasks only). CLI shipped; one-click desktop flow is M2/pending. | [integrations.md](references/integrations.md) |
|
|
91
92
|
| **Council** | Structured multi-persona debates with a synthesized verdict | [integrations.md](references/integrations.md) |
|
|
92
93
|
| **Marketing (`mk`)** | Meta marketing skill: cohorts, campaigns, competitor ingest | [integrations.md](references/integrations.md) |
|
|
93
94
|
| **Versions / releases** | Planning versions and releases unify in RELEASES.json | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
@@ -131,7 +132,7 @@ The SessionStart hook injects this automatically every session — answer from i
|
|
|
131
132
|
|
|
132
133
|
| File | Load When |
|
|
133
134
|
|------|-----------|
|
|
134
|
-
| `
|
|
135
|
+
| `knowledge/features/<name>.md` | Feature scoping, sprint work, planning, "what's next" |
|
|
135
136
|
| `core/3.style_guide_and_branding.md` | UI/UX, frontend, branding, copy, design |
|
|
136
137
|
| `core/4.tech_stack.md` | Architecture, integrations, dependencies, infra |
|
|
137
138
|
| `knowledge/data-structures/<product>.md` (or `default.md`) | Database, API design, schema, data modeling |
|
|
@@ -182,7 +183,7 @@ When in doubt about a command or flag, open [cli-reference.md](references/cli-re
|
|
|
182
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 changelog in one shot — cheaper and more on-target than blind Grep.
|
|
183
184
|
|
|
184
185
|
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.
|
|
185
|
-
- **Know feature vs knowledge.** A **feature** (`
|
|
186
|
+
- **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.
|
|
186
187
|
- **Never create a knowledge file for something that is a feature**, and never keep a knowledge copy of content that already lives in a feature (or vice-versa). If a topic is a feature, the feature is its home — knowledge may *reference* it, not duplicate it. Don't have both a feature and a knowledge doc covering the same thing.
|
|
187
188
|
- **Never duplicate knowledge.** If two docs overlap, merge into one and point the other at it. Fragmented near-duplicate knowledge and duplicate tasks are the top failure modes — `sleep-product` dedupes, but don't create the mess.
|
|
188
189
|
|
|
@@ -326,6 +327,7 @@ All sub-agents get a lightweight context briefing via the SubagentStart hook. Wh
|
|
|
326
327
|
- `dreamcontext upgrade` — upgrade the CLI, then (one command) update the desktop app if installed and offer to refresh **every registered project** to match (`--yes` does it all non-interactively). **Keeping projects + app updated is the CLI's job — you should not run per-project updates by hand or ask the user to.**
|
|
327
328
|
- `dreamcontext doctor` — validate `_dream_context/` structure.
|
|
328
329
|
- `dreamcontext dashboard` — open the web UI. `dreamcontext app install|update|status` — the desktop app.
|
|
330
|
+
- **Team collaboration / shared brain** — when the user wants to **use one brain with other people** ("share the brain", "collaborate on tasks/knowledge together", "put the brain in its own repo"), that's the **shared brain repo**: `dreamcontext brain init` (create) / `brain attach <url>` (join) / `brain status`, auto-synced at `sleep done`, prose conflicts resolved by the **`/dream-sync`** skill. **Guide them into it — don't say "unsupported".** Setup is CLI-only today (the one-click desktop login/attach is M2/pending). Full surface → [integrations.md](references/integrations.md).
|
|
329
331
|
|
|
330
332
|
---
|
|
331
333
|
|
|
@@ -340,7 +342,6 @@ When dreamcontext gets in your way — a recall gap, a missing command, a confus
|
|
|
340
342
|
```
|
|
341
343
|
_dream_context/
|
|
342
344
|
├── core/
|
|
343
|
-
│ ├── features/<feature>.md ← Feature PRDs (may include product:)
|
|
344
345
|
│ ├── 0.soul.md 1.user.md 2.memory.md
|
|
345
346
|
│ ├── 3.style_guide_and_branding.md 4.tech_stack.md 6.system_flow.md
|
|
346
347
|
│ ├── CHANGELOG.json RELEASES.json taxonomy.json
|
|
@@ -349,6 +350,7 @@ _dream_context/
|
|
|
349
350
|
│ ├── <context>/ ← PROMOTED: group related docs into a context folder
|
|
350
351
|
│ │ ├── <doc>.md ← the context's knowledge
|
|
351
352
|
│ │ └── <title>/<title>.excalidraw.md ← diagrams live INSIDE their context folder
|
|
353
|
+
│ ├── features/<feature>.md ← Feature PRDs, typed knowledge (type: feature; may include product:)
|
|
352
354
|
│ ├── data-structures/{default,<product>}.md ← schemas (recall-indexed; ```sql body)
|
|
353
355
|
│ └── products/<product>.md ← per-product knowledge (multi-product)
|
|
354
356
|
├── overrides/
|
|
@@ -370,5 +372,5 @@ Open these with `Read` when the task needs depth:
|
|
|
370
372
|
- **[tasks-and-features.md](references/tasks-and-features.md)** — task protocol depth, RICE, due dates, people/assignees, Workflow flowchart, features, versioning, multi-product.
|
|
371
373
|
- **[knowledge-and-recall.md](references/knowledge-and-recall.md)** — knowledge files, pinning, recall modes, taxonomy, Excalidraw/diagrams.
|
|
372
374
|
- **[sleep.md](references/sleep.md)** — full consolidation flow, specialist contracts, deep sleep, epoch safety, reflect, marketing/council passes.
|
|
373
|
-
- **[integrations.md](references/integrations.md)** — ClickUp/GitHub task sync (one cloud backend at a time), dashboard, desktop app, federation/vaults, council, marketing.
|
|
375
|
+
- **[integrations.md](references/integrations.md)** — ClickUp/GitHub task sync (one cloud backend at a time), **team brain sync (shared brain repo — `brain init`/`attach`/`sync`, `/dream-sync` conflict resolution)**, dashboard, desktop app, federation/vaults, council, marketing.
|
|
374
376
|
- **[improving-dreamcontext.md](references/improving-dreamcontext.md)** — the feedback loop, when and how to file.
|
|
@@ -63,7 +63,7 @@ Sections for `tasks insert`: `why`, `user_stories`, `acceptance_criteria`, `cons
|
|
|
63
63
|
|
|
64
64
|
| Command | Description |
|
|
65
65
|
|---|---|
|
|
66
|
-
| `roadmap` | Render the objective board (rollups, target vs forecast, slip flags) and regenerate `knowledge/roadmap/board.md`. `--json` emits the typed RoadmapModel instead (no writes). |
|
|
66
|
+
| `roadmap` | Render the objective board (rollups, target vs forecast, slip flags) and regenerate `knowledge/roadmap/board.md`. `--json` emits the typed RoadmapModel instead (no writes). A slipping objective reports the numeric days late (`slip_days`) and the auto-derived cause (`slip_upstream`: the direct dependency slug(s) whose forecast runs past this target, else own member tasks). The SessionStart snapshot renders these (`Nd late (upstream: …)` or `(own tasks)`) plus each objective's impact/effort and a one-line description, and orders active objectives by time-box relevance (this month → this quarter → later). |
|
|
67
67
|
| `roadmap objective create <slug>` | Create `core/objectives/<slug>.md`. `--title <str>` (required), `--target YYYY-MM-DD`, `--depends-on <csv>`, `--feature <prd-slug>`, `--why <text>`. |
|
|
68
68
|
| `roadmap objective list` | All objectives with progress %, status, forecast. `--json`. |
|
|
69
69
|
| `roadmap objective show <slug>` | One objective: member tasks, direct dependents, and the transitive "if this slips, so do" set. `--json`. |
|
|
@@ -71,6 +71,7 @@ Sections for `tasks insert`: `why`, `user_stories`, `acceptance_criteria`, `cons
|
|
|
71
71
|
| `roadmap objective delete <slug>` | Delete; other objectives' `depends_on` are healed automatically. `--yes`. |
|
|
72
72
|
| `roadmap objective depend <A> <B>` | A depends on B — **rejected at write time** if it would create a circular dependency. |
|
|
73
73
|
| `roadmap objective undepend <A> <B>` | Remove the dependency edge. |
|
|
74
|
+
| `roadmap objective metric <slug>` | Set/update the objective's Key Result metric (outcome-based progress instead of task rollup). `--current <n>` (the common nudge — latest observed value), `--target <n>`, `--baseline <n>`, `--label <text>`, `--unit <text>`, `--clear` (remove the metric, back to task-based progress). Sleep may update `--current` when it observes a new real value; all other objective fields stay PO-owned. |
|
|
74
75
|
|
|
75
76
|
Task-side linkage: `tasks create --objectives a,b` · `tasks objectives <task> a,b|clear` · `tasks list --objective <slug>`. Objectives are recallable: `memory recall "<query>" --types objective`.
|
|
76
77
|
|
|
@@ -186,6 +187,24 @@ Never hand-edit `core/taxonomy.json` — mutate via these commands.
|
|
|
186
187
|
|
|
187
188
|
---
|
|
188
189
|
|
|
190
|
+
## Brain — team collaboration / shared brain repo (see [integrations.md](integrations.md))
|
|
191
|
+
|
|
192
|
+
Sync the WHOLE brain (`_dream_context/`) — tasks, knowledge, features, sleep state — to its own git remote so a **team collaborates on the same brain** the way they collaborate on code. Distinct from federation (which is read-only cross-*project* recall) and from cloud task sync (which mirrors only *tasks* to ClickUp/GitHub Issues). Brain repos default **private**; attaching one is a **trust decision** (a brain repo loads into every future session). Local indexes/caches are per-machine and never pushed. **M1 CLI is shipped; the one-click desktop/Launcher flow (device-flow GitHub login, repo picker, UI attach) is M2 — pending.**
|
|
193
|
+
|
|
194
|
+
| Command | Description |
|
|
195
|
+
|---|---|
|
|
196
|
+
| `brain status` | Show brain-repo mode (`separate`/`in-tree`), remote, sync state, and whether cloud sync is ON. Reports `mergeInProgress` / `pendingAgentMerge` (the `/dream-sync` handoff signals). |
|
|
197
|
+
| `brain init` | Create a NEW brain repo on GitHub (**private by default**) and push a scrubbed first commit. `--public` (requires interactive confirm), `--code-repo <url>` (store a pointer to the paired code repo). |
|
|
198
|
+
| `brain attach <url>` | Attach an EXISTING team brain repo — a **TRUST decision** (S6): prints a trust warning + incoming-diff preview and refuses without confirmation. `-y/--yes` to skip the prompt. |
|
|
199
|
+
| `brain discover` | List `dreamcontext-brain`-topic repos you can access on GitHub. |
|
|
200
|
+
| `brain sync` | Fetch → semantic-merge-on-conflict → commit → push (or, in `in-tree` mode, commit-only — never auto-pushes). `--pull-only` (take team content in, never push), `--push-only`, `--strict` (WARN scrub hits block too), `--resume` / `--continue` (the attended `/dream-sync` handoff — see below). |
|
|
201
|
+
| `brain enable` / `brain disable` | Explicit master switch for cloud sync on this project (v3.3). |
|
|
202
|
+
| `brain scrub` | Dry-run the secrets/absolute-path scrub gate against the current staged tree. |
|
|
203
|
+
|
|
204
|
+
**Automatic sync:** every `dreamcontext sleep done` runs a brain sync (fetch/merge/commit/push); failure never fails sleep. Session-start does a non-blocking background pull. **On an agent-class merge conflict** (two people edited the same prose section) the CLI stops at `already-awaiting-agent` and defers to the **`/dream-sync` skill** — the agent half that reads base/ours/theirs and writes the semantic merge, then `brain sync --continue`. Never drive `--resume`/`--continue` unattended.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
189
208
|
## Council (see [integrations.md](integrations.md))
|
|
190
209
|
|
|
191
210
|
`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`).
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Integrations — ClickUp / GitHub, Dashboard, Desktop App, Federation, Council, Marketing
|
|
2
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.
|
|
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, lets a *team share one brain*, or runs debates — the answer is yes.** Details below.
|
|
4
|
+
|
|
5
|
+
> **"I want to use dreamcontext WITH my team / with other people."** That is the **shared brain repo** — see [Team brain sync](#-team-brain-sync-shared-brain-repo-collaborate-on-one-brain) below. Don't confuse it with the three neighbors: **cloud task sync** (ClickUp/GitHub Issues) mirrors only *tasks*; **federation** is read-only cross-*project* recall (no copying); the shared **brain repo** git-syncs the *whole* `_dream_context/` so several people push/pull/merge the same tasks + knowledge + features.
|
|
4
6
|
|
|
5
7
|
---
|
|
6
8
|
|
|
@@ -212,6 +214,48 @@ dreamcontext federation purge --dry-run # preview
|
|
|
212
214
|
|
|
213
215
|
---
|
|
214
216
|
|
|
217
|
+
## ✅ Team brain sync (shared brain repo) — collaborate on ONE brain
|
|
218
|
+
|
|
219
|
+
**Yes, a team can share a single dreamcontext brain.** The whole `_dream_context/` (tasks, knowledge, features, sleep state) becomes **its own git repo** with its own remote — separate from the code repo — and the CLI/desktop app push/pull/merge it the way a team collaborates on code. The brain stays plain markdown/JSON on disk (local-first); git is just the sync transport, not a new database.
|
|
220
|
+
|
|
221
|
+
**Guide the user here** the moment they say *"I want to use this with my team / with other people," "share the brain," "collaborate on tasks/knowledge together,"* or *"put the brain in its own repo."* Do NOT answer "we don't support that" — this is the feature.
|
|
222
|
+
|
|
223
|
+
**How it differs from its neighbors** (say this if the user conflates them):
|
|
224
|
+
- **Cloud task sync** (ClickUp/GitHub Issues) — mirrors only *tasks* to a task manager, one backend at a time.
|
|
225
|
+
- **Federation** — read-only recall across your OWN separate projects; nothing is ever copied.
|
|
226
|
+
- **Shared brain repo (this)** — the *whole* brain is one git-synced artifact several people edit together.
|
|
227
|
+
|
|
228
|
+
### Onboarding a team (M1 — CLI, shipped today)
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
# Person A — create a brand-new shared brain repo (PRIVATE by default) and push a scrubbed first commit
|
|
232
|
+
dreamcontext brain init --code-repo https://github.com/acme/app # pointer back to the paired code repo
|
|
233
|
+
|
|
234
|
+
# Person B (and every teammate) — attach the existing brain repo (a TRUST decision: it loads every session)
|
|
235
|
+
dreamcontext brain discover # list dreamcontext-brain-topic repos you can access
|
|
236
|
+
dreamcontext brain attach https://github.com/acme/app-brain # trust warning + diff preview, then confirm
|
|
237
|
+
|
|
238
|
+
dreamcontext brain status # mode (separate/in-tree), remote, sync state, cloud-sync switch
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Day-to-day (mostly automatic)
|
|
242
|
+
|
|
243
|
+
- **Every `sleep done`** fetches → semantic-merges on conflict → commits → pushes the brain (sync failure never fails sleep). **Session start** does a non-blocking background pull. So teammates' consolidated context reaches everyone without a manual step.
|
|
244
|
+
- **Manual sync any time:** `dreamcontext brain sync` (or `--pull-only` to just take team content in).
|
|
245
|
+
- **On a prose merge conflict** (two people edited the same `##` section of a knowledge/feature doc), the CLI resolves every deterministic file itself and stops at `already-awaiting-agent`, deferring the rest to the **`/dream-sync` skill** — the agent reads base/ours/theirs snapshots, writes the real semantic merge, and hands back with `brain sync --continue`. (`--resume`/`--continue` are attended-only; never drive them unattended.)
|
|
246
|
+
|
|
247
|
+
### Editing / reconfiguring
|
|
248
|
+
|
|
249
|
+
- **Turn cloud sync on/off:** `dreamcontext brain enable` / `brain disable`.
|
|
250
|
+
- **Modes:** `separate` (own remote, full auto-sync) vs `in-tree` (brain nested in the code repo — commit-only, **never** auto-pushes; the safe default). Both always run the scrub gate.
|
|
251
|
+
- **Safety rails (always on):** brain repos default **private** (`--public` needs an explicit confirm); a **scrub gate** blocks secrets / absolute local paths before every commit and push; tokens are supplied via `GIT_ASKPASS` (never embedded in the remote URL); per-machine indexes/caches are gitignored and never pushed.
|
|
252
|
+
|
|
253
|
+
### From the desktop app? — M2, PENDING (not yet shipped)
|
|
254
|
+
|
|
255
|
+
The one-click UX — **GitHub device-flow login from the Launcher, a repo picker over your `dreamcontext-brain`-topic repos, UI "create"/"attach" with the trust preview, and a team-updates badge** — is **M2, still pending**. Today the shared-brain setup is **CLI-only** (a technical user runs `brain init` / `brain attach`). Be honest about this: a non-technical teammate can't yet do the *setup* from the app; once attached, the normal dashboard/app reads the shared brain like any other. (Full status: `knowledge/features/brain-repo-sync.md`; merge internals: `skill-sync/references/merge-rules.md`.)
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
215
259
|
## Council (multi-persona debates)
|
|
216
260
|
|
|
217
261
|
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.
|
|
@@ -43,7 +43,7 @@ It moves the file **and** rewrites every inbound `[[wikilink]]` in one atomic st
|
|
|
43
43
|
|
|
44
44
|
## Memory functions — what they are and how to use them
|
|
45
45
|
|
|
46
|
-
The `memory` command group is your interface to the curated corpus: `knowledge
|
|
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), and every `core/CHANGELOG.json` entry. No setup, no index file, no external service — rebuilt in memory each call (<100ms on ~130 docs).
|
|
47
47
|
|
|
48
48
|
| Function | Use it to… | Command |
|
|
49
49
|
|---|---|---|
|
|
@@ -43,7 +43,7 @@ For non-file-change work (architecture discussion, a decision with no edits): `d
|
|
|
43
43
|
- a `knowledge_access` entry is 30+ days untouched
|
|
44
44
|
- a research bookmark exists
|
|
45
45
|
- a task slug matches an existing feature PRD filename
|
|
46
|
-
- `git status` shows changes under `_dream_context/
|
|
46
|
+
- `git status` shows changes under `_dream_context/knowledge/features/`
|
|
47
47
|
- a session advanced ≥1 acceptance criterion, OR introduced a feature concept with ≥2 criteria, OR the user named something "a feature" / "we should add X", OR a task has `feature:` frontmatter pointing to a non-existent PRD
|
|
48
48
|
- the user hint mentions knowledge or a feature
|
|
49
49
|
- When unsure, **over-fire** `sleep-product` — it no-ops cheaply.
|
|
@@ -66,7 +66,7 @@ For non-file-change work (architecture discussion, a decision with no edits): `d
|
|
|
66
66
|
|---|---|---|
|
|
67
67
|
| `sleep-tasks` | Task files (`state/*.md`) | Reconciles task bodies to truth, bumps statuses, creates tasks for untracked work, attaches to the planning version, sets the start/due range, and keeps declared custom fields current (never fabricating `ask` fields in the no-user sleep context). When objectives exist, proposes `objectives:` links for tasks with an EMPTY/absent list (multiple slugs when a task serves several outcomes) — **never overwrites a non-empty list** (that's a PO decision). |
|
|
68
68
|
| `sleep-state` | Core identity (soul, user, memory, core 3–6), CHANGELOG, RELEASES | Records patterns/decisions/preferences, writes a changelog entry per meaningful change since the epoch, surfaces release readiness, enforces anti-bloat ceilings, flags stale knowledge for `sleep-product`. |
|
|
69
|
-
| `sleep-product` | Knowledge files + feature PRDs | Creates/reconciles `knowledge/*.md` and `
|
|
69
|
+
| `sleep-product` | Knowledge files + feature PRDs | Creates/reconciles `knowledge/*.md` and `knowledge/features/*.md` (typed knowledge, `type: feature`), processes staleness flags, maintains the knowledge index + taxonomy. |
|
|
70
70
|
| `sleep-migration` | Structure only | Moves/renames folders, normalizes frontmatter, wraps fences. Never alters body prose. |
|
|
71
71
|
|
|
72
72
|
**Consolidation discipline (remind specialists in the brief):** prefer *updating/extending* an existing entity over creating a new one. `sleep-tasks` folds a smaller slice into the task that already covers it (broaden its title + insert sub-items) rather than forking a duplicate. `sleep-product` keeps similar verticals/topics in the fewest knowledge files, splitting only on a sharp topical boundary. Duplicate tasks and fragmented near-duplicate knowledge are the top failure modes — but genuinely separate concerns still get their own task/file.
|
|
@@ -114,6 +114,7 @@ dreamcontext roadmap objective list|show <slug> # show = members + depende
|
|
|
114
114
|
dreamcontext roadmap objective edit <slug> [--title] [--target <date>|clear] [--status not_started|active|review|done|clear] [--feature <slug>|clear]
|
|
115
115
|
dreamcontext roadmap objective depend <A> <B> # A depends on B — REJECTED at write time if it would create a cycle
|
|
116
116
|
dreamcontext roadmap objective undepend <A> <B>
|
|
117
|
+
dreamcontext roadmap objective metric <slug> [--current <n>] [--target <n>] [--baseline <n>] [--label ..] [--unit ..] [--clear] # Key Result: --current is the common nudge
|
|
117
118
|
dreamcontext roadmap objective delete <slug> --yes # also heals other objectives' depends_on
|
|
118
119
|
dreamcontext tasks create <name> --objectives a,b # link at creation (slugs must exist)
|
|
119
120
|
dreamcontext tasks objectives <task> a,b|clear # set/clear on an existing task
|
|
@@ -124,8 +125,9 @@ dreamcontext tasks list --objective <slug> # all tasks serving an obj
|
|
|
124
125
|
- **Progress** = completed ÷ total member tasks (each objective counts over its OWN member set — a shared task contributes to each independently).
|
|
125
126
|
- **Rollup status** (real enum): all `completed`→`done` 🟢 · any `in_progress`→`active` 🔵 · any `in_review`→`review` 🟡 · else `not_started` ⚪. A manual `--status` override wins (`status_source: override`).
|
|
126
127
|
- **Forecast cascade — full transitive DAG:** `forecast_start = max(earliest member start, max(forecast_end of dependencies))`; `forecast_end = max(latest member due, forecast_start)`. A slip anywhere propagates to ALL transitive dependents (diamond shapes included).
|
|
127
|
-
- **
|
|
128
|
-
- **Slipping** 🔴 = `forecast_end > target_date` (the PO's committed date).
|
|
128
|
+
- **Milestone forecast:** an objective with NO dated tasks of its own but WITH dependencies inherits its forecast from its latest dependency (finish-to-start) — so a pure milestone ("launch", which only depends on others) slips when an upstream slips. Only an objective with neither dated tasks nor a forecastable dependency stays `null` ("unforecastable") — and a null-forecast objective still never drags its dependents to "now".
|
|
129
|
+
- **Slipping** 🔴 = `forecast_end > target_date` (the PO's committed date). The model also exposes `slip_days` (how many days late) and `slip_upstream` (the auto-derived cause — the dependency slug(s) responsible, else empty = the objective's own tasks overrun). Surfaced in the snapshot and the board.
|
|
130
|
+
- **Prioritization + description:** each objective also carries `impact` (1–5), `effort` (weeks) and a one-line `description` (first body line) — rendered in the snapshot, which now surfaces current-month/quarter targets first.
|
|
129
131
|
|
|
130
132
|
**Rules for agents:**
|
|
131
133
|
1. **Propose, never overwrite.** Suggest `objectives:` for tasks you create or find unlabeled; an existing non-empty list is a PO decision — never change it unless the user asks.
|
|
@@ -134,6 +136,19 @@ dreamcontext tasks list --objective <slug> # all tasks serving an obj
|
|
|
134
136
|
4. **`knowledge/roadmap/board.md` is auto-generated** — regenerate with `dreamcontext roadmap`, never hand-edit it. Objective files themselves are PO-authored prose — edit `## Why`/`## Notes` freely, but rollups/members are computed and don't belong in them.
|
|
135
137
|
5. A feature PRD *may* back an objective via the objective's `feature:` field — a convenience link, not a requirement.
|
|
136
138
|
|
|
139
|
+
### Proactive objective capture (in-session — ASK, never auto-create)
|
|
140
|
+
|
|
141
|
+
Objectives are PO-authored, so this is an **offer-and-confirm** flow, never a silent write. When, during a session, the user **states or clearly implies an outcome/goal** — an explicit target ("hedefimiz $2000 MRR", "we want to launch mobile by Q4") OR an inferred one from how they talk about direction ("we really need to grow this", "the whole point is to make it a business") — do this:
|
|
142
|
+
|
|
143
|
+
1. **Dedup first.** Run `dreamcontext roadmap objective list` and `dreamcontext memory recall "<the outcome>" --types objective`. If an objective already covers it, DON'T propose a new one — offer to update the existing one instead (or just link the current work to it).
|
|
144
|
+
2. **Offer it.** If it's genuinely new, ask: *"This sounds like a roadmap objective — want me to add it?"* Never create without a yes.
|
|
145
|
+
3. **Ask the dates.** On yes, ask for the committed window — start and target date (`--target`, and set start via `objective edit`/dashboard). Don't invent dates.
|
|
146
|
+
4. **Offer a Key Result.** Ask whether to track it by a number rather than member tasks: *"Track this by a metric (e.g. MRR 0→2000) or by its tasks?"* If a metric, capture `label` + `baseline`/`target` (`--metric*` flags on create, or `objective metric` after).
|
|
147
|
+
5. **Detect + propose dependencies.** From the existing objective list, infer likely `depends_on` edges ("make-it-a-business can't happen before simplified-ux and team-ready ship") and **propose them for confirmation**; on yes, apply with `objective depend <A> <B>` (the write-time cycle guard protects you). Never write a dependency edge silently.
|
|
148
|
+
6. **Keep the Key Result current.** When the session later surfaces a real observed value for a tracked objective ("MRR just hit $1,250", "we're at 400 active users"), offer to update it: `dreamcontext roadmap objective metric <slug> --current <n>`. Use a value you actually observed — never estimate. (Sleep may also refresh `--current` autonomously from observed values.)
|
|
149
|
+
|
|
150
|
+
The through-line: **you detect and propose; the PO confirms.** Every create, date, dependency, and metric write waits for a yes — matching the "objectives are PO-authored" invariant and the board-first ritual (`knowledge/visual-first-board-ritual.md`).
|
|
151
|
+
|
|
137
152
|
---
|
|
138
153
|
|
|
139
154
|
## The Workflow flowchart (keep it in sync)
|
|
@@ -221,16 +236,22 @@ When an override is active its briefing (the field list, each field's `required`
|
|
|
221
236
|
|
|
222
237
|
## Features (PRDs)
|
|
223
238
|
|
|
224
|
-
|
|
239
|
+
Features are **typed knowledge** — a feature PRD is a `knowledge/features/<name>.md` file with
|
|
240
|
+
frontmatter `type: feature` (plus `name`/`description`/`pinned:false`/`date` for knowledge-index
|
|
241
|
+
display). Retrospective product documentation, **created and updated exclusively by the sleep
|
|
242
|
+
agent**. During active work, everything goes in the task; sleep consolidates task content into
|
|
243
|
+
the matching feature. `dreamcontext features …` is a **deprecated compat alias** (prints a
|
|
244
|
+
deprecation notice on every call) that reads/writes `knowledge/features/` — it is not a separate
|
|
245
|
+
entity from knowledge.
|
|
225
246
|
|
|
226
247
|
```bash
|
|
227
|
-
dreamcontext features create <name> -w "Why" -t backend,api -s planning --related-tasks a,b
|
|
248
|
+
dreamcontext features create <name> -w "Why" -d "One-line description" -t backend,api -s planning --related-tasks a,b
|
|
228
249
|
dreamcontext features set <name> status active
|
|
229
250
|
dreamcontext features set <name> tags backend,api,topic:recall
|
|
230
251
|
dreamcontext features insert <name> acceptance_criteria "..." # auto-formats as - [ ]
|
|
231
252
|
dreamcontext features doctor # staleness / orphans / dangling refs
|
|
232
253
|
```
|
|
233
|
-
Status values: `planning | in_progress | in_review | active | shipped | deprecated`. Sections: `changelog`, `notes`, `technical_details`, `constraints`, `user_stories`, `acceptance_criteria`, `why`. PRDs live in `
|
|
254
|
+
Status values: `planning | in_progress | in_review | active | shipped | deprecated`. Sections: `changelog`, `notes`, `technical_details`, `constraints`, `user_stories`, `acceptance_criteria`, `why`. PRDs live in `knowledge/features/<name>.md` (flat directory under `knowledge/`; may carry `product:`); the generic knowledge index/recall channel excludes `knowledge/features/**` to avoid double-listing — features stay a distinct surface (snapshot Features section, dashboard Features tab, `--types feature` recall).
|
|
234
255
|
|
|
235
256
|
---
|
|
236
257
|
|
|
@@ -257,7 +278,7 @@ New tasks without `--version` auto-attach to the active planning version, so wor
|
|
|
257
278
|
- **Per-product data structures**: `knowledge/data-structures/<product>.md` (single-product → `default.md`). Body format is a single ` ```sql ` fenced block with `-- ...` comments (the dashboard highlights it). Recall-indexed, owned by `sleep-product`.
|
|
258
279
|
- **Per-product knowledge**: `knowledge/products/<product>.md`. Cross-cutting knowledge stays at top-level `knowledge/`.
|
|
259
280
|
- **Tasks** may carry `product: <name>` in frontmatter; CLI/dashboard surface a product filter.
|
|
260
|
-
- **Feature PRDs** may carry `product: <name>` (still in the flat `
|
|
281
|
+
- **Feature PRDs** may carry `product: <name>` (still in the flat `knowledge/features/` directory).
|
|
261
282
|
- **Auto-injection**: the SessionStart hook resolves the active task (override `state/.active-task`, else most-recently-modified `in_progress` task). If its `product:` is in `multiProduct`, the hook injects `knowledge/products/<name>.md` into the snapshot under `## Active Product Knowledge: <name>` (capped ~200 lines). You don't load it manually — it's already in context.
|
|
262
283
|
|
|
263
284
|
If `multiProduct` is `false`/absent, treat the project as single-product and use `data-structures/default.md`.
|
package/skill-curator/SKILL.md
CHANGED
|
@@ -10,7 +10,7 @@ description: >
|
|
|
10
10
|
stale task statuses, off-vocabulary tags, a flat knowledge dump that should be foldered).
|
|
11
11
|
This is the interactive, sub-agent-driven brain REFACTOR — the pass that sleep won't do. It is
|
|
12
12
|
allowed to MOVE, MERGE, SPLIT, RENAME, RE-TYPE, and RETIRE content to reach the right
|
|
13
|
-
knowledge / feature / task / version shape.
|
|
13
|
+
knowledge / feature / task / version / objective shape.
|
|
14
14
|
user-invocable: true
|
|
15
15
|
alwaysApply: false
|
|
16
16
|
tags: [curator, refactor, reorganize, cleanup, dedup, single-source-of-truth, orchestration, sub-agents, dreamcontext]
|
|
@@ -87,7 +87,7 @@ flowchart TD
|
|
|
87
87
|
2. **Read the current conventions** so the whole run targets *today's* shape: the installed
|
|
88
88
|
`dreamcontext` skill + references, `dreamcontext taxonomy vocab`, `core/0.soul.md`, `1.user.md`.
|
|
89
89
|
3. **Announce** (per the ritual) and ask **only what you can't determine** (keep it short):
|
|
90
|
-
- **Scope**: the whole brain, or one domain (knowledge / features / tasks / versions)?
|
|
90
|
+
- **Scope**: the whole brain, or one domain (knowledge / features / tasks / versions / objectives)?
|
|
91
91
|
- **Anything off-limits** — files/areas you should not touch this pass?
|
|
92
92
|
- Confirm they want a **real run** (it mutates the corpus) — the plan is shown before execution.
|
|
93
93
|
On a clean git tree, note it; if there are uncommitted changes, recommend committing first so the
|
|
@@ -106,6 +106,7 @@ findings:
|
|
|
106
106
|
| `features` | reconcile status to reality, rename to current vocabulary, dedup vs knowledge, flag stale |
|
|
107
107
|
| `tasks` | finished tasks still open (STATUS-BUMP), duplicate/stale tasks (MERGE/RETIRE), orphans → attach to a planning version |
|
|
108
108
|
| `versions` | reconcile release/version statuses so they're tidy and consistent |
|
|
109
|
+
| `objectives` | PO-authored roadmap objectives (`core/objectives/*.md`): dangling `depends_on`/task links, stale status overrides, malformed dates/metrics, target dates long past with no progress — flag; never rewrite PO prose (STATUS-BUMP/RETAG only, PO owns the file) |
|
|
109
110
|
|
|
110
111
|
Give each auditor its domain + the conventions you read in Phase 0. Each returns a **source → action
|
|
111
112
|
→ target** findings table. A finding that says "clean up knowledge" without naming each file and the
|
|
@@ -9,7 +9,7 @@ description: >
|
|
|
9
9
|
cite it", "cross-project / cross-corpus question", or any "tons of data, federated/tagged
|
|
10
10
|
vault" question where one explore agent and one answer under-serves. This is the heavy,
|
|
11
11
|
iterative, sub-agent-driven counterpart to `dreamcontext-explore`: it fans out searchers over
|
|
12
|
-
the whole curated corpus (knowledge + features + tasks + memory + CHANGELOG) AND connected
|
|
12
|
+
the whole curated corpus (knowledge + features + tasks + memory + CHANGELOG + objectives) AND connected
|
|
13
13
|
peer vaults, adversarially verifies the load-bearing claims, and returns a SYNTHESIZED, CITED
|
|
14
14
|
report — not raw hits.
|
|
15
15
|
user-invocable: true
|
|
@@ -91,7 +91,7 @@ the planner and the synthesizer.
|
|
|
91
91
|
- everything readable → `--connected` (out/both peers) or `--all-vaults`.
|
|
92
92
|
- **Seed with recall, in JSON, scoped by type:**
|
|
93
93
|
```bash
|
|
94
|
-
dreamcontext memory recall "<facet>" --json --top 15 --types knowledge,feature,task,memory,changelog --connected
|
|
94
|
+
dreamcontext memory recall "<facet>" --json --top 15 --types knowledge,feature,task,memory,changelog,objective --connected
|
|
95
95
|
```
|
|
96
96
|
Run it for **2–4 different phrasings/facets** of the question — recall is cheap (<100ms, zero
|
|
97
97
|
token overhead) and different keywords surface different docs. Collect the union of hits.
|
|
@@ -80,7 +80,7 @@ flowchart TD
|
|
|
80
80
|
### Phase 0 — RECOGNIZE & OFFER (interactive — ask, then wait)
|
|
81
81
|
|
|
82
82
|
1. Confirm the brain is missing/sparse (`ls _dream_context/`; if present, check for empty
|
|
83
|
-
`knowledge/`, zero `
|
|
83
|
+
`knowledge/`, zero `knowledge/features/`, untouched template stubs).
|
|
84
84
|
2. Make the **offer** above. Then ask **only what you can't detect** (3–6 questions max):
|
|
85
85
|
- **Where is your material?** Absolute paths to folders/files to ingest (docs, exports,
|
|
86
86
|
wiki, ADRs, specs, notes). "None — codebase only" is a valid answer.
|
|
@@ -116,7 +116,7 @@ mapped to a target:
|
|
|
116
116
|
|---|---|
|
|
117
117
|
| `knowledge/<context>/<slug>.md` | research, decisions, rationale, domain/technical deep context |
|
|
118
118
|
| `knowledge/data-structures/<product>.md` | real schemas (Prisma/SQL/ORM) — actual tables/fields |
|
|
119
|
-
| `
|
|
119
|
+
| `knowledge/features/<name>.md` | product capabilities (what a feature *is*, typed knowledge `type: feature`) — candidate PRDs |
|
|
120
120
|
| `state/<task>.md` | open/in-flight work, TODOs, roadmap items |
|
|
121
121
|
| people roster | distinct git authors (`git shortlog -sne`) |
|
|
122
122
|
| taxonomy `domain:<x>` | recurring project nouns |
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dream-sync
|
|
3
|
+
description: >
|
|
4
|
+
Load when the user asks to sync/reconcile the dreamcontext brain repo with a team (a shared
|
|
5
|
+
`_dream_context/` git remote), or when `dreamcontext brain sync` (or the SessionStart snapshot)
|
|
6
|
+
reports a team merge awaiting resolution. Triggers: "/dream-sync", "sync the brain", "reconcile
|
|
7
|
+
with the team", "resolve the brain merge conflict", "already-awaiting-agent", "awaiting-agent",
|
|
8
|
+
"pending team-merge handoff". This is the agent half of the semantic-merge contract: the CLI
|
|
9
|
+
resolves every deterministic file (JSON changelog/releases/config/taxonomy, task status +
|
|
10
|
+
changelog) automatically and only ever defers PROSE files (knowledge/features) where two people
|
|
11
|
+
edited the same section — you read base/ours/theirs snapshots and write the actual semantic
|
|
12
|
+
merge, then hand back to the CLI to commit + push.
|
|
13
|
+
user-invocable: true
|
|
14
|
+
alwaysApply: false
|
|
15
|
+
tags: [sync, brain-repo, git, merge, collaboration, dreamcontext]
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# /dream-sync — the agent half of the brain-repo merge contract
|
|
19
|
+
|
|
20
|
+
You are the **semantic merge resolver**. The CLI (`dreamcontext brain sync`) already did
|
|
21
|
+
everything it safely can on its own: every JSON class (changelog, releases, config, taxonomy) and
|
|
22
|
+
every task markdown file were merged and committed automatically — set-unions and furthest-status
|
|
23
|
+
logic never lose data and never need judgment. The ONLY thing left for you is **prose that two
|
|
24
|
+
people edited in the same `##` section** of a knowledge file or feature doc — a case the CLI
|
|
25
|
+
correctly refuses to resolve on its own (see `references/merge-rules.md` — the "C1 discard
|
|
26
|
+
contract"), because a naive textual merge mangles Markdown and a "remote wins" default would
|
|
27
|
+
silently throw away one author's words.
|
|
28
|
+
|
|
29
|
+
**Read `references/merge-rules.md` before touching anything** — it is the single source of truth
|
|
30
|
+
for the deterministic rules, the CLI-vs-agent split, and the full pull-only → resume → resolve →
|
|
31
|
+
continue state machine you are stepping into.
|
|
32
|
+
|
|
33
|
+
## Step 1 — determine the handoff state
|
|
34
|
+
|
|
35
|
+
Run `dreamcontext brain status`. It reports two independent booleans:
|
|
36
|
+
|
|
37
|
+
- `mergeInProgress` (a real git `MERGE_HEAD` exists) — the **classic** path: `brain sync` (auto
|
|
38
|
+
mode) hit an agent-class conflict directly and left the merge open.
|
|
39
|
+
- `pendingAgentMerge` (no `MERGE_HEAD`, but a report was deferred) — the **pull-only** path: a
|
|
40
|
+
headless background pull (session-start) hit the same conflict, but pull-only NEVER leaves the
|
|
41
|
+
tree mid-merge — it aborted back to a clean commit and recorded the defer for you to redo
|
|
42
|
+
attended.
|
|
43
|
+
|
|
44
|
+
Branch on exactly these two signals (equivalently: a plain `dreamcontext brain sync` returning
|
|
45
|
+
`already-awaiting-agent` tells you one of the two is true, without telling you which):
|
|
46
|
+
|
|
47
|
+
| State | What to do |
|
|
48
|
+
|---|---|
|
|
49
|
+
| `mergeInProgress: true` | Go straight to **Step 2** (report already exists, real `MERGE_HEAD`). |
|
|
50
|
+
| `pendingAgentMerge: true`, `mergeInProgress: false` | Run `dreamcontext brain sync --resume` FIRST. If it returns `pushed` or `pulled`, the handoff is DONE — the remote moved on and nothing needed your judgment. If it returns `awaiting-agent`, a FRESH report + a real `MERGE_HEAD` now exist — go to **Step 2**. |
|
|
51
|
+
| Neither | Just run `dreamcontext brain sync` (normal on-demand sync) — nothing to resolve. |
|
|
52
|
+
|
|
53
|
+
**You never call `--resume` when a `MERGE_HEAD` is already there, and you never skip `--resume`
|
|
54
|
+
for a `pendingAgentMerge`-only state** — the CLI enforces this with `invalid-flag`, but don't rely
|
|
55
|
+
on that as your only guardrail; read the state first.
|
|
56
|
+
|
|
57
|
+
## Step 2 — read the report and resolve each deferred file
|
|
58
|
+
|
|
59
|
+
Read `_dream_context/state/.brain-merge/report.json`. For each entry in `deferred`:
|
|
60
|
+
|
|
61
|
+
1. Read the three snapshots it names: `basePath` (common ancestor), `oursPath` (this machine's
|
|
62
|
+
version), `theirsPath` (the remote/teammate's version) — all under `state/.brain-merge/`.
|
|
63
|
+
2. Write the semantically-merged content directly into the REAL file at `path` (repo-relative,
|
|
64
|
+
possibly under an `_dream_context/` prefix in in-tree mode — strip it to find the file on disk).
|
|
65
|
+
Preserve both authors' intent: don't just pick one side. For a knowledge/feature doc, merge
|
|
66
|
+
section-by-section — sections only one side touched keep that side's version; sections BOTH
|
|
67
|
+
touched are the ones you're here for — read them and write prose that keeps both people's point,
|
|
68
|
+
reconciling wording, not concatenating raw diffs.
|
|
69
|
+
3. Stage it — run `git add <path>` inside the brain repo (in `separate` mode, the brain repo root
|
|
70
|
+
IS `_dream_context/`; in `in-tree` mode, it's the code repo root and `path` already carries the
|
|
71
|
+
`_dream_context/` prefix).
|
|
72
|
+
|
|
73
|
+
Do this for every entry in `deferred` before moving on — `--continue` commits everything staged in
|
|
74
|
+
one shot.
|
|
75
|
+
|
|
76
|
+
## Step 3 — hand back to the CLI
|
|
77
|
+
|
|
78
|
+
Run `dreamcontext brain sync --continue`. It re-scrubs (a secret can be reintroduced by a merge —
|
|
79
|
+
never skip this), commits, and pushes (retrying once on a non-fast-forward race). On success the
|
|
80
|
+
report and its snapshot files are gone, `pendingAgentMerge` flips back to `false`, and a normal
|
|
81
|
+
`brain sync` runs cleanly from here on. If it instead reports `blocked-scrub`, something you wrote
|
|
82
|
+
looks like a secret or a local path — fix it and re-run `--continue`.
|
|
83
|
+
|
|
84
|
+
## What you must NEVER do
|
|
85
|
+
|
|
86
|
+
- **Never call `--resume` or `--continue` unattended / speculatively** — they are the explicit
|
|
87
|
+
ATTENDED gates for exactly this handoff. `sleep done`'s autoSync, the session-start background
|
|
88
|
+
pull, and the dashboard all stop at `already-awaiting-agent` and print the instruction to run
|
|
89
|
+
`/dream-sync` — they never drive these flags themselves.
|
|
90
|
+
- **Never write the CLI's discarded remote-wins output** for a deferred knowledge/feature file —
|
|
91
|
+
if you see `report.json`'s `deferred` entry for a path, that means the CLI's own attempt was
|
|
92
|
+
thrown away specifically because it would have clobbered one side; only your snapshot-based
|
|
93
|
+
merge is authoritative for that file.
|
|
94
|
+
- **Never hand-edit `.brain-merge/report.json`** or its snapshots — they are inputs, not outputs.
|