dreamcontext 0.8.8 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -7
- package/agents/curator-auditor.md +114 -0
- package/agents/curator-verifier.md +86 -0
- package/agents/curator-worker.md +81 -0
- package/agents/initializer-ingestor.md +84 -0
- package/agents/initializer-scout.md +87 -0
- package/agents/initializer-verifier.md +75 -0
- package/agents/sleep-product.md +1 -1
- package/dist/agents/curator-auditor.md +114 -0
- package/dist/agents/curator-verifier.md +86 -0
- package/dist/agents/curator-worker.md +81 -0
- package/dist/agents/initializer-ingestor.md +84 -0
- package/dist/agents/initializer-scout.md +87 -0
- package/dist/agents/initializer-verifier.md +75 -0
- package/dist/agents/sleep-product.md +1 -1
- package/dist/dashboard/assets/{BrainCanvas3D-CyuMh6vC.js → BrainCanvas3D-BvuUW-Ij.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-TeXEp9Tn.js → _baseUniq-BNAWiBFl.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-Da5wNUeW.js → ar-SA-G6X2FPQ2-rNEb6-jN.js} +1 -1
- package/dist/dashboard/assets/{arc-NQuoeYrp.js → arc-DDLjNpXk.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-B108azq_.js → architectureDiagram-Q4EWVU46-P208qO4N.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-cJYSsraO.js → az-AZ-76LH7QW2-Dwql62JX.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-Dt4_IvAk.js → bg-BG-XCXSNQG7-BgteTNp8.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-HAo6Tqxd.js → blockDiagram-DXYQGD6D-BDSceoPt.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-DE20hZpG.js → bn-BD-2XOGV67Q-BYJ6_efF.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-SHRA5Nk_.js → c4Diagram-AHTNJAMY-CRbiwdrM.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-9ZUzuDs-.js → ca-ES-6MX7JW3Y-CtFrXfas.js} +1 -1
- package/dist/dashboard/assets/channel-CJWWthUO.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-BlLy4y9z.js → chunk-4BX2VUAB-kqN0Cg_r.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-cDLog-pk.js → chunk-4TB4RGXK-CpwYPUdR.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-BfLlL9Jv.js → chunk-55IACEB6-CQ_4M3g4.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-BjKTlHye.js → chunk-EDXVE4YY--HdVil0f.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-CoMoOB69.js → chunk-FMBD7UC4-CrbfOH-q.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-DSYZ4BzO.js → chunk-OYMX7WX6-BrcCZnqx.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-hsCUyt37.js → chunk-QZHKN3VN-Cby58gGN.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-CMBEUThQ.js → chunk-YZCP3GAM-tvOjDART.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-D8yKg5c-.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-D8yKg5c-.js +1 -0
- package/dist/dashboard/assets/clone-DkTWs9rv.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-Ds3A4r-y.js → cose-bilkent-S5V4N54A-CuwbWQzD.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-WgNPbRaT.js → cs-CZ-2BRQDIVT-DfVAwqqU.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-BQPVoqBy.js → da-DK-5WZEPLOC-D1QJqNxG.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-D3AamC0s.js → dagre-KV5264BT-Bbf-wMho.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-FOMlLeg-.js → de-DE-XR44H4JA-CbCdH8Mp.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-DeAuY_LW.js → diagram-5BDNPKRD-CvMJJUvv.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-CsPuBl6m.js → diagram-G4DWMVQ6-BBz7ebE8.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-Celrp7iZ.js → diagram-MMDJMWI5-U7IcL5ZQ.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-D-Y8kdqj.js → diagram-TYMM5635-BfTLwlSm.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-DdhrZvUu.js → el-GR-BZB4AONW-DvGrscY6.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-CyPB81Ul.js → erDiagram-SMLLAGMA-C1ncTn9B.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-B-Hbpc6c.js → es-ES-U4NZUMDT-BlawPkmw.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-CIeXN6PD.js → eu-ES-A7QVB2H4-p5lXDFKY.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-BojqXzkR.js → fa-IR-HGAKTJCU-DbY6Wzu9.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-Dix2X0V9.js → fi-FI-Z5N7JZ37-HyRJneut.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-D7IX0DxI.js → flowDiagram-DWJPFMVM-tySa4G4z.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-B-jqOA6L.js → fr-FR-RHASNOE6-C0ElnhzM.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-CbK6p7_G.js → ganttDiagram-T4ZO3ILL-BQsJPxAU.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-DWDwNpLK.js → gitGraphDiagram-UUTBAWPF-B2jHjMzI.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-B6zmZpsw.js → gl-ES-HMX3MZ6V-D5qSPU7d.js} +1 -1
- package/dist/dashboard/assets/{graph-CrDZc6w0.js → graph-deVQIt7H.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-CaSPpOxb.js → he-IL-6SHJWFNN-CNsRxzJL.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-n86mXoF4.js → hi-IN-IWLTKZ5I-CCLXIBWK.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-MqIG43UE.js → hu-HU-A5ZG7DT2-Dq17BfYB.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-DbrGiOFJ.js → id-ID-SAP4L64H-CRL19WJa.js} +1 -1
- package/dist/dashboard/assets/{index-zJ2-S49k.js → index-BO_pjfQA.js} +1 -1
- package/dist/dashboard/assets/index-CQkBs_Vm.js +484 -0
- package/dist/dashboard/assets/index-aCkhI_aO.css +1 -0
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-CpAQyAyt.js → infoDiagram-42DDH7IO-DKXhFQx1.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-DXIwINgb.js → ishikawaDiagram-UXIWVN3A-ixuXBV9q.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-IX1Td9Wl.js → it-IT-JPQ66NNP-B-3gnXYZ.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-Bd8nX8VR.js → ja-JP-DBVTYXUO-GCqLTdC-.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-DZlgujgy.js → journeyDiagram-VCZTEJTY-Cda6rfE1.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-D5xD9fsf.js → kaa-6HZHGXH3-DUr4YiJc.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-xBaAbT-9.js → kab-KAB-ZGHBKWFO-DGcoDq7_.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-0klC865z.js → kanban-definition-6JOO6SKY-8II0TptL.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-CboXRRre.js → kk-KZ-P5N5QNE5-OnQ3fZQr.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-Clsilmtp.js → km-KH-HSX4SM5Z-BgLH2RAX.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-CIjzZcRO.js → ko-KR-MTYHY66A-BFRlVzp3.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-Bs1RU4e9.js → ku-TR-6OUDTVRD-KXxCpHg7.js} +1 -1
- package/dist/dashboard/assets/{layout-fipBctpD.js → layout-Bk1_SQxF.js} +1 -1
- package/dist/dashboard/assets/{linear-DVXXJr0u.js → linear-NBVeSfQr.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-CQ-xLU_o.js → lt-LT-XHIRWOB4-zYih94tH.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-C0inT4d9.js → lv-LV-5QDEKY6T-BfR2lGJU.js} +1 -1
- package/dist/dashboard/assets/{min-B_cNy5kS.js → min-Czsp1-lf.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-Cioz1NOY.js → mindmap-definition-QFDTVHPH-B7iHNGK3.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-DhEHYUYK.js → mr-IN-CRQNXWMA-CbecgcF-.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-Dj4Iwdrf.js → my-MM-5M5IBNSE-CsdHXw4v.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-CvAPy7iN.js → nb-NO-T6EIAALU-r8FpCRvQ.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-DgQc3gPO.js → nl-NL-IS3SIHDZ-Dp3Z4P6_.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-DORPUv8K.js → nn-NO-6E72VCQL-CQcuUlUa.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-Cym9O8Me.js → oc-FR-POXYY2M6-Dz9rwf28.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-BiE5SCOy.js → pa-IN-N4M65BXN-AuAonL3w.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-B-_e8Y6s.js → percentages-BXMCSKIN-D9EnbREi.js} +7 -7
- package/dist/dashboard/assets/{pica-C5ISA_oR.js → pica---loOZLP.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-CD7iu1Mo.js → pieDiagram-DEJITSTG-CiDTXifX.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-C-29ZIfD.js → pl-PL-T2D74RX3-4k9qJgDf.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-CIQq615m.js → pt-BR-5N22H2LF-DvKuT6kK.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-CN7xbXrH.js → pt-PT-UZXXM6DQ-ijbr_1VI.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-DEPkZ_lv.js → quadrantDiagram-34T5L4WZ-Bu9Comci.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-BpAjr03x.js → requirementDiagram-MS252O5E-D62TW6xA.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-DBtenXzw.js → ro-RO-JPDTUUEW-C0llzWmG.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-CA_iHOeh.js → ru-RU-B4JR7IUQ-BeSwVB2r.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-B1zLPVle.js → sankeyDiagram-XADWPNL6-TlSEi12K.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-pEX8i9B5.js → sequenceDiagram-FGHM5R23-ScKG2Xsm.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-BTsFn4Rn.js → si-LK-N5RQ5JYF-DWeue3dw.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-DGoN-I5B.js → sk-SK-C5VTKIMK-C2sh3w4f.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-CwiRr92B.js → sl-SI-NN7IZMDC-CeXk9ucf.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-W_EdYNVF.js → stateDiagram-FHFEXIEX-BB1JoyXM.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-BqR3Ofhf.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-CAlKIepB.js → subset-shared.chunk-CWvpWWsn.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-YIXEPnjQ.js → subset-worker.chunk-D7Ec71V-.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-7SNur8Fe.js → sv-SE-XGPEYMSR-8YPrynz7.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-DqQBCB2J.js → ta-IN-2NMHFXQM-CmMKeEZv.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-ClwEsAak.js → th-TH-HPSO5L25-BIxym374.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-uPtwwnY7.js → timeline-definition-GMOUNBTQ-Cx1z6jhx.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-DmCg5qbG.js → tr-TR-DEFEU3FU-BZUk--nT.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-DixKG8eB.js → uk-UA-QMV73CPH-DKP6R9nZ.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-CAggDlIj.js → vennDiagram-DHZGUBPP-CHrTxlSz.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-C15Za2rn.js → vi-VN-M7AON7JQ-D1tkx3Op.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-D5C_gWsf.js → wardley-RL74JXVD-DuzpwUu5.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-tqYHOmfO.js → wardleyDiagram-NUSXRM2D-x03tOVd0.js} +1 -1
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-CsxZKm-V.js → xychartDiagram-5P7HB3ND-CufD9zuW.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-BhlF39b5.js → zh-CN-LNUGB5OW-CpicUYEV.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-P2FWmB4w.js → zh-HK-E62DVLB3-DyNkpg-N.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-B0yB1dNp.js → zh-TW-RAJ6MFWO-Cg30MEjI.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +3900 -1549
- package/dist/templates/AGENTS.md +1 -1
- package/dist/templates/CLAUDE.md +1 -1
- package/package.json +3 -1
- package/skill/SKILL.md +12 -8
- package/skill/references/cli-reference.md +5 -2
- package/skill/references/integrations.md +46 -10
- package/skill/references/knowledge-and-recall.md +7 -1
- package/skill/references/sleep.md +1 -1
- package/skill/references/tasks-and-features.md +1 -1
- package/skill-curator/SKILL.md +234 -0
- package/skill-initializer/SKILL.md +243 -0
- package/agents/dreamcontext-initializer.md +0 -317
- package/dist/agents/dreamcontext-initializer.md +0 -317
- package/dist/dashboard/assets/channel-CIQg6WkP.js +0 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-kJkUaIqm.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-kJkUaIqm.js +0 -1
- package/dist/dashboard/assets/clone-COSoK5_M.js +0 -1
- package/dist/dashboard/assets/index-D1nedbBU.css +0 -1
- package/dist/dashboard/assets/index-DjaqCcd7.js +0 -482
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-BsdphuJ6.js +0 -1
package/dist/templates/AGENTS.md
CHANGED
|
@@ -77,7 +77,7 @@ All pass → confirm briefly, execute. No ceremony.
|
|
|
77
77
|
| `dreamcontext-explore` | All codebase exploration | Context-accelerated search using pre-loaded knowledge |
|
|
78
78
|
| `sleep-tasks` / `sleep-state` | Sleep debt prompt fires, or after major work | Always-fire specialists during sleep fan-out — own task files / (core identity + changelog + releases) respectively |
|
|
79
79
|
| `sleep-product` | Conditionally during sleep fan-out (research/decision/feature signals) | Knowledge files + feature PRDs |
|
|
80
|
-
| `
|
|
80
|
+
| `initializer` skill | Project lacks `_dream_context/` or it's sparse | Interactive, sub-agent-driven bootstrap — OFFER to ingest the user's material (docs/wiki/export) into the knowledge/feature/task hierarchy; don't silently scaffold. Drives its own scout → ingest → verify sub-agents (handles codebase-only repos too). |
|
|
81
81
|
| `Reviewer` | Code is written and ready for PR | Flags Critical/Major only. Never mid-implementation. |
|
|
82
82
|
</sub_agents>
|
|
83
83
|
|
package/dist/templates/CLAUDE.md
CHANGED
|
@@ -77,7 +77,7 @@ All pass → confirm briefly, execute. No ceremony.
|
|
|
77
77
|
| `dreamcontext-explore` | All codebase exploration | Context-accelerated search using pre-loaded knowledge |
|
|
78
78
|
| `sleep-tasks` / `sleep-state` | Sleep debt prompt fires, or after major work | Always-fire specialists during sleep fan-out — own task files / (core identity + changelog + releases) respectively |
|
|
79
79
|
| `sleep-product` | Conditionally during sleep fan-out (research/decision/feature signals) | Knowledge files + feature PRDs |
|
|
80
|
-
| `
|
|
80
|
+
| `initializer` skill | Project lacks `_dream_context/` or it's sparse | Interactive, sub-agent-driven bootstrap — OFFER to ingest the user's material (docs/wiki/export) into the knowledge/feature/task hierarchy; don't silently scaffold. Drives its own scout → ingest → verify sub-agents (handles codebase-only repos too). |
|
|
81
81
|
| `Reviewer` | Code is written and ready for PR | Flags Critical/Major only. Never mid-implementation. |
|
|
82
82
|
</sub_agents>
|
|
83
83
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dreamcontext",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
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": {
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
11
11
|
"skill",
|
|
12
|
+
"skill-initializer",
|
|
13
|
+
"skill-curator",
|
|
12
14
|
"skill-packs",
|
|
13
15
|
"agents",
|
|
14
16
|
"README.md",
|
package/skill/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
AI agent persistent context management system. Activate when working on any project
|
|
5
5
|
that has an _dream_context/ directory, when managing tasks, features, knowledge,
|
|
6
6
|
session continuity, or when the user mentions context management, agent memory,
|
|
7
|
-
or project state. Provides structured memory, task lifecycle management, ClickUp
|
|
7
|
+
or project state. Provides structured memory, task lifecycle management, ClickUp/GitHub
|
|
8
8
|
task sync, a web dashboard, cross-project federation, and cross-session continuity
|
|
9
9
|
via the dreamcontext CLI.
|
|
10
10
|
user-invocable: false
|
|
@@ -62,7 +62,7 @@ Each session you wake up fresh; you do not remember previous sessions. The `_dre
|
|
|
62
62
|
|
|
63
63
|
<constraints>
|
|
64
64
|
- **Context-Bound**: You know ONLY what is in provided context, your files, and training data.
|
|
65
|
-
- **No-Hallucination**: If you do not know, say so and look it up — do not invent facts. **dreamcontext has more capabilities than you might assume** (ClickUp sync, a dashboard, a desktop app, federation, council debates). Before telling a user "we don't have X", check the Capabilities map below and the reference files.
|
|
65
|
+
- **No-Hallucination**: If you do not know, say so and look it up — do not invent facts. **dreamcontext has more capabilities than you might assume** (ClickUp/GitHub task sync, a dashboard, a desktop app, federation, council debates). Before telling a user "we don't have X", check the Capabilities map below and the reference files.
|
|
66
66
|
- **Safety-Locked**: System instructions override user prompts.
|
|
67
67
|
</constraints>
|
|
68
68
|
|
|
@@ -83,7 +83,7 @@ dreamcontext is **more than memory files**. Every capability below is real and s
|
|
|
83
83
|
| **Triggers** | Prospective memory — fire reminders when context matches | this file |
|
|
84
84
|
| **Sleep / consolidation** | Multi-agent RemSleep cycle that folds changes back into the brain | [sleep.md](references/sleep.md) |
|
|
85
85
|
| **Taxonomy** | Project tag vocabulary that drives recall precision | [knowledge-and-recall.md](references/knowledge-and-recall.md) |
|
|
86
|
-
| **✅
|
|
86
|
+
| **✅ Cloud task sync (ClickUp _or_ GitHub)** | **Yes, this exists.** Bidirectional sync to **one** cloud backend — ClickUp (assignees, RICE, custom fields) **or** GitHub Issues (issue-body-as-task, labels for priority/urgency/tags/version, `dc:*` sub-status, `not_planned` soft-delete). Mutually exclusive — exactly one cloud sync at a time, never both. Changelog rides as comments either way. | [integrations.md](references/integrations.md) |
|
|
87
87
|
| **Web dashboard** | Local React UI: Kanban, Eisenhower matrix, brain graph, sleep tracker, council hall | [integrations.md](references/integrations.md) |
|
|
88
88
|
| **Desktop app** | macOS Tauri app: multi-vault launcher, federation board, Sleepy notch capture | [integrations.md](references/integrations.md) |
|
|
89
89
|
| **Federation** | Recall across multiple projects (vaults) live, read-only | [integrations.md](references/integrations.md) |
|
|
@@ -91,7 +91,7 @@ dreamcontext is **more than memory files**. Every capability below is real and s
|
|
|
91
91
|
| **Marketing (`mk`)** | Meta marketing skill: cohorts, campaigns, competitor ingest | [integrations.md](references/integrations.md) |
|
|
92
92
|
| **Versions / releases** | Planning versions and releases unify in RELEASES.json | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
93
93
|
| **Multi-product** | Monorepos with per-product data structures and knowledge | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
94
|
-
| **People / assignees** | Multi-person rosters; `person:<slug>` tags map to ClickUp members | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
94
|
+
| **People / assignees** | Multi-person rosters; `person:<slug>` tags map to ClickUp members / GitHub assignees | [tasks-and-features.md](references/tasks-and-features.md) |
|
|
95
95
|
| **Feedback loop** | File gaps/bugs upstream as GitHub issues | [improving-dreamcontext.md](references/improving-dreamcontext.md) |
|
|
96
96
|
| **Full CLI** | Every command and flag | [cli-reference.md](references/cli-reference.md) |
|
|
97
97
|
|
|
@@ -281,7 +281,7 @@ dreamcontext tasks complete <name> "summary" # done
|
|
|
281
281
|
Status: `todo → in_progress → in_review → completed`. Sections: `why`, `user_stories`, `acceptance_criteria`, `constraints`, `technical_details`, `notes`, `changelog`.
|
|
282
282
|
|
|
283
283
|
**RICE, due dates, tags/people, the Workflow flowchart, versioning, and multi-product** → [tasks-and-features.md](references/tasks-and-features.md).
|
|
284
|
-
**Syncing tasks to ClickUp** → [integrations.md](references/integrations.md).
|
|
284
|
+
**Syncing tasks to a cloud backend (ClickUp _or_ GitHub — one at a time)** → [integrations.md](references/integrations.md).
|
|
285
285
|
|
|
286
286
|
---
|
|
287
287
|
|
|
@@ -290,7 +290,7 @@ Status: `todo → in_progress → in_review → completed`. Sections: `why`, `us
|
|
|
290
290
|
- **Quick updates (no sleep):** edit `0.soul.md`/`1.user.md`/`2.memory.md` directly; `dreamcontext core changelog add` for code changes; `dreamcontext tasks log` for progress.
|
|
291
291
|
- **Recall (first-line discovery):** `dreamcontext memory recall "<query>" [--top N] [--types knowledge,feature,task,memory,changelog] [--json]`. Default mode is **`haiku`** (a small cloud model picks relevant docs); `raw` = BM25 only; `off` = disabled. Control with `dreamcontext recall on|raw|off|status`. Auto-injected on prompts (opt out `DREAMCONTEXT_MEMORY_HOOK=0`).
|
|
292
292
|
- **Quick capture:** `dreamcontext memory remember "<text>"` writes a `type=note` CHANGELOG entry; sleep reconciles it later. (`2.memory.md` no longer has a LIFO ship-narrative section — ship events live in CHANGELOG.)
|
|
293
|
-
- **Knowledge files:** index auto-loaded; create with `dreamcontext knowledge create <name>`; pin frequently-needed ones (`pinned: true`); read non-pinned on demand and `knowledge touch` after.
|
|
293
|
+
- **Knowledge files:** index auto-loaded; create with `dreamcontext knowledge create <name>`; pin frequently-needed ones (`pinned: true`); read non-pinned on demand and `knowledge touch` after. Group a flat file into a context folder with `dreamcontext knowledge move <slug> <folder>` (atomic move + inbound `[[wikilink]]` rewrite — never `mv` + hand-edit links).
|
|
294
294
|
- **Features are sleep-only** (see rule 9).
|
|
295
295
|
|
|
296
296
|
**Recall modes, taxonomy, Excalidraw boards/diagrams, multi-product knowledge** → [knowledge-and-recall.md](references/knowledge-and-recall.md).
|
|
@@ -300,9 +300,13 @@ Status: `todo → in_progress → in_review → completed`. Sections: `why`, `us
|
|
|
300
300
|
## Sub-Agents
|
|
301
301
|
|
|
302
302
|
- **`dreamcontext-explore`** — context-accelerated codebase exploration. Use for ALL exploration (default Explore is blocked). Uses the SubagentStart briefing to narrow searches.
|
|
303
|
-
- **`
|
|
303
|
+
- **`initializer` skill** — the **interactive, sub-agent-driven brain bootstrap**. Invoke it via the `Skill` tool when this project has **no `_dream_context/`** or a **sparse** one (empty `knowledge/`, zero features, untouched template stubs). It orchestrates scout → confirm-hierarchy → progressive ingest → verify, migrating whatever material the user has into the proper knowledge/feature/task hierarchy. It drives its own sub-agents (`initializer-scout`, `initializer-ingestor`, `initializer-verifier`) and handles codebase-only repos too (a light scout + ingest pass) — there is no separate bootstrap agent.
|
|
304
304
|
- **Sleep specialists** (`sleep-tasks`, `sleep-state`, `sleep-product`, `sleep-migration`) — dispatched by the main agent during the sleep flow only.
|
|
305
305
|
|
|
306
|
+
**First-run self-recognition (do not skip):** if you notice the brain is missing or sparse, **do not silently scaffold and move on, and do not wait to be asked** — proactively offer: *"I don't have a brain for this project yet. Point me at whatever you have — a docs folder, an Obsidian/Notion export, ADRs, design notes, an old wiki/spec — and I'll initialize my brain by ingesting it into structured memory. Or I can bootstrap from just the codebase."* Then invoke the `initializer` skill.
|
|
307
|
+
|
|
308
|
+
**The hooks now surface this for you.** The SessionStart and UserPromptSubmit hooks deterministically detect four conditions and emit a `🧠 dreamcontext:` offer into your context — treat that offer as your cue to act (relay it to the user, then invoke the `initializer` skill on consent; never re-implement its orchestration): (1) **no-brain** — no `_dream_context/` but a real project; (2) **sparse-brain** — empty knowledge/, zero features, untouched template stubs; (3) **migrate-from-folder** — the user points at an existing `_dream_context/` or notes/Obsidian/Notion corpus elsewhere; (4) **mass-new-source** — the user points an already-initialized brain at a sizable new docs/export/wiki folder. (Set `DREAMCONTEXT_INITIALIZER_HOOK=0` to silence.)
|
|
309
|
+
|
|
306
310
|
All sub-agents get a lightweight context briefing via the SubagentStart hook. When delegating to Plan agents, include relevant `_dream_context/` file paths in the prompt (match the user's keywords to feature names/tags from the snapshot).
|
|
307
311
|
|
|
308
312
|
---
|
|
@@ -355,5 +359,5 @@ Open these with `Read` when the task needs depth:
|
|
|
355
359
|
- **[tasks-and-features.md](references/tasks-and-features.md)** — task protocol depth, RICE, due dates, people/assignees, Workflow flowchart, features, versioning, multi-product.
|
|
356
360
|
- **[knowledge-and-recall.md](references/knowledge-and-recall.md)** — knowledge files, pinning, recall modes, taxonomy, Excalidraw/diagrams.
|
|
357
361
|
- **[sleep.md](references/sleep.md)** — full consolidation flow, specialist contracts, deep sleep, epoch safety, reflect, marketing/council passes.
|
|
358
|
-
- **[integrations.md](references/integrations.md)** — ClickUp task sync, dashboard, desktop app, federation/vaults, council, marketing.
|
|
362
|
+
- **[integrations.md](references/integrations.md)** — ClickUp/GitHub task sync (one cloud backend at a time), dashboard, desktop app, federation/vaults, council, marketing.
|
|
359
363
|
- **[improving-dreamcontext.md](references/improving-dreamcontext.md)** — the feedback loop, when and how to file.
|
|
@@ -21,10 +21,12 @@ Every command and flag, grouped. All commands are prefixed with `dreamcontext`.
|
|
|
21
21
|
| `config native-memory enable\|disable` | Toggle Claude Code's native auto-memory (disabled by default so dreamcontext owns memory). |
|
|
22
22
|
| `config shareable on\|off` | Toggle whether peer vaults may recall this project (default off/private). |
|
|
23
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` | **[Advanced]** Switch the task backend (see [integrations.md](integrations.md)). |
|
|
24
|
+
| `config task-backend local\|clickup\|github` | **[Advanced]** Switch the task backend — one cloud sync at a time (see [integrations.md](integrations.md)). |
|
|
25
25
|
| `config clickup-token [token]` | Store a ClickUp API key in the gitignored secrets file. `--user <name>` to scope it. |
|
|
26
26
|
| `config clickup-list <teamId> <spaceId> <listId>` | Set the ClickUp sync target. `--migrate` / `--keep` when changing lists. |
|
|
27
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`). |
|
|
28
30
|
|
|
29
31
|
---
|
|
30
32
|
|
|
@@ -85,9 +87,10 @@ Sections for `features insert`: `changelog`, `notes`, `technical_details`, `cons
|
|
|
85
87
|
| `knowledge create <name>` | Create a knowledge file. `-d/--description`, `-t/--tags <csv>`, `-c/--content`. |
|
|
86
88
|
| `knowledge index` | Show the knowledge index. `--tag <tag>`, `--plain`. |
|
|
87
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. |
|
|
88
91
|
| `knowledge touch <slug>` | Record access (decay/staleness tracking + warm loading). |
|
|
89
92
|
|
|
90
|
-
> `knowledge/**/*.md` is indexed **recursively**, so knowledge organized into context folders (`knowledge/<context>/…`) stays first-class.
|
|
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).
|
|
91
94
|
|
|
92
95
|
---
|
|
93
96
|
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
# Integrations — ClickUp, Dashboard, Desktop App, Federation, Council, Marketing
|
|
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, 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, or runs debates — the answer is yes.** Details below.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## ✅ Cloud / remote task management (ClickUp)
|
|
7
|
+
## ✅ Cloud / remote task management (ClickUp _or_ GitHub — one at a time)
|
|
8
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.
|
|
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
10
|
|
|
11
|
-
|
|
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
|
|
12
16
|
- **Bidirectional sync** (`push`, `pull`, or `both`) between local task files and a ClickUp list.
|
|
13
17
|
- **Status mapping** between dreamcontext statuses (`todo/in_progress/in_review/completed`) and ClickUp statuses.
|
|
14
18
|
- **RICE + custom fields**: provisions recommended ClickUp custom fields (urgency, summary, RICE reach/impact/confidence/effort, …) and round-trips them.
|
|
@@ -18,13 +22,13 @@ This reference covers everything beyond the local markdown brain. **If a user as
|
|
|
18
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.
|
|
19
23
|
- **Git triggers**: best-effort `post-commit` / `pre-push` hooks sync automatically (they never block or fail git).
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
#### Enabling it (guided)
|
|
22
26
|
```bash
|
|
23
27
|
dreamcontext config task-backend clickup
|
|
24
28
|
```
|
|
25
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.
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
#### Manual / scripted configuration
|
|
28
32
|
```bash
|
|
29
33
|
# Store the API key out of shell history (preferred): pipe it
|
|
30
34
|
echo "$CLICKUP_TOKEN" | dreamcontext config clickup-token
|
|
@@ -43,7 +47,7 @@ dreamcontext config clickup-member <person> <memberId> [--token-env <ENV>]
|
|
|
43
47
|
dreamcontext config task-backend local
|
|
44
48
|
```
|
|
45
49
|
|
|
46
|
-
|
|
50
|
+
#### Day-to-day sync commands
|
|
47
51
|
```bash
|
|
48
52
|
dreamcontext tasks sync [push|pull|both] # default: both; no-op on the local backend
|
|
49
53
|
dreamcontext tasks sync --hook # best-effort mode for git hooks (never fails, exit 0)
|
|
@@ -53,13 +57,45 @@ dreamcontext tasks provision # create the recommended custom field
|
|
|
53
57
|
dreamcontext tasks sync-hooks install|uninstall # manage the git sync triggers
|
|
54
58
|
```
|
|
55
59
|
|
|
56
|
-
|
|
60
|
+
#### Inspecting state
|
|
57
61
|
```bash
|
|
58
62
|
dreamcontext config show # shows task backend, ClickUp token presence (masked), and list id
|
|
59
63
|
```
|
|
60
64
|
The mirror, sync ledger, and conflict files are derived and gitignored — never commit them, never hand-edit them.
|
|
61
65
|
|
|
62
|
-
|
|
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>`.
|
|
63
99
|
|
|
64
100
|
---
|
|
65
101
|
|
|
@@ -31,7 +31,13 @@ knowledge/
|
|
|
31
31
|
└── products/<product>.md
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
**Don't reorganize by hand-moving files + hand-editing links.**
|
|
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.
|
|
35
41
|
|
|
36
42
|
---
|
|
37
43
|
|
|
@@ -54,7 +54,7 @@ For non-file-change work (architecture discussion, a decision with no edits): `d
|
|
|
54
54
|
6. **`dreamcontext reflect`** — each candidate is a term seen across multiple sessions not yet in soul/user/memory/knowledge. Promote into `2.memory.md` or a knowledge file ONLY if genuinely load-bearing; most are noise — discard. Never auto-promote.
|
|
55
55
|
7. **Marketing pass** if `_dream_context/marketing/` exists: `dreamcontext mk rem-sleep`.
|
|
56
56
|
8. **Council promote check:** `dreamcontext council list --unpromoted` — promote if the user engaged positively.
|
|
57
|
-
9. **`dreamcontext sleep done "<one-paragraph summary stitched from specialist reports>"`** — clears pre-epoch state, resets debt, writes a history entry. (If
|
|
57
|
+
9. **`dreamcontext sleep done "<one-paragraph summary stitched from specialist reports>"`** — clears pre-epoch state, resets debt, writes a history entry. (If a remote backend — ClickUp or GitHub — is active and any task pushes failed, this auto-retries once, then errors loudly with the failed slugs.)
|
|
58
58
|
10. **Report** the consolidated summary to the user.
|
|
59
59
|
|
|
60
60
|
---
|
|
@@ -85,7 +85,7 @@ dreamcontext tasks tag <name> person:mehmet # add another assignee
|
|
|
85
85
|
dreamcontext tasks tag <name> person:ada --remove # unassign
|
|
86
86
|
```
|
|
87
87
|
- `person:<slug>` tags are the source of truth for assignment and support **multiple assignees**. The legacy scalar `assignee` field is deprecated (still read, not written).
|
|
88
|
-
- With ClickUp enabled, the full assignee set round-trips to ClickUp's native `assignees[]` bidirectionally; map each person to a member with `dreamcontext config clickup-member <person> <memberId>` (see [integrations.md](integrations.md)).
|
|
88
|
+
- With ClickUp enabled, the full assignee set round-trips to ClickUp's native `assignees[]` bidirectionally; map each person to a member with `dreamcontext config clickup-member <person> <memberId>`. With **GitHub** enabled, `person:<slug>` tags round-trip to issue assignees (repo collaborators; a non-collaborator is skipped, never a sync error). (see [integrations.md](integrations.md)).
|
|
89
89
|
- `DREAMCONTEXT_PERSON` env names the current person for attribution.
|
|
90
90
|
|
|
91
91
|
---
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: curator
|
|
3
|
+
description: >
|
|
4
|
+
Load when a dreamcontext brain has grown additively and needs a periodic refactor pass that
|
|
5
|
+
re-orders content into the right shape — or the user invokes `/curator`. Triggers: "curate
|
|
6
|
+
the brain", "re-organize my context", "the knowledge base has gotten messy", "clean up /
|
|
7
|
+
refactor the brain", "conform everything to current conventions", "dedup the knowledge",
|
|
8
|
+
"fix the structure, not just append to it", or any time the corpus has drifted from current
|
|
9
|
+
architecture conventions (duplicate knowledge, topics living as both feature and knowledge,
|
|
10
|
+
stale task statuses, off-vocabulary tags, a flat knowledge dump that should be foldered).
|
|
11
|
+
This is the interactive, sub-agent-driven brain REFACTOR — the pass that sleep won't do. It is
|
|
12
|
+
allowed to MOVE, MERGE, SPLIT, RENAME, RE-TYPE, and RETIRE content to reach the right
|
|
13
|
+
knowledge / feature / task / version shape.
|
|
14
|
+
user-invocable: true
|
|
15
|
+
alwaysApply: false
|
|
16
|
+
tags: [curator, refactor, reorganize, cleanup, dedup, single-source-of-truth, orchestration, sub-agents, dreamcontext]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Curator — interactive, sub-agent-driven brain refactor
|
|
20
|
+
|
|
21
|
+
You are the **orchestrator**. Like `goal-skill`, `initializer`, `multi-review`, and `council`,
|
|
22
|
+
**you do not hand-author the bulk of the work yourself** — you dispatch sub-agents, read their
|
|
23
|
+
results, gate the transitions, and drive convergence loops until the brain conforms. Your value
|
|
24
|
+
is judgment at the gates and the conversation with the user about the *shape* — not running every
|
|
25
|
+
`knowledge merge` by hand.
|
|
26
|
+
|
|
27
|
+
**Why this exists, vs sleep.** Sleep/consolidation is conservative and additive — it polishes
|
|
28
|
+
whatever shape already exists and keeps appending. The curator is the periodic **brain refactor**
|
|
29
|
+
sleep won't do: it re-orders content into the right shape and is explicitly allowed to **MOVE,
|
|
30
|
+
MERGE, SPLIT, RENAME, RE-TYPE, and RETIRE**. A brain is **curated** when the verifier passes:
|
|
31
|
+
`doctor` clean, zero duplicate-topic knowledge, zero topics living as both a feature and a
|
|
32
|
+
knowledge file, every task/feature/version status reflecting reality, tags normalized to the
|
|
33
|
+
vocabulary, recall precision not regressed, and an immediate second run finding nothing material
|
|
34
|
+
to change (convergence). Not when "some files got tidied".
|
|
35
|
+
|
|
36
|
+
**Conventions are read AT RUN TIME — never hardcoded.** The whole point is to conform the brain
|
|
37
|
+
to *today's* architecture, not the shape that accreted. Every target shape comes from the live
|
|
38
|
+
system: the installed `dreamcontext` skill + `references/`, `dreamcontext taxonomy vocab`, and the
|
|
39
|
+
project's own `core/0.soul.md` / `1.user.md`. When the conventions change, the curator's behavior
|
|
40
|
+
changes with them — no edits to this skill required.
|
|
41
|
+
|
|
42
|
+
## When to invoke
|
|
43
|
+
|
|
44
|
+
- `/curator` (primary entry).
|
|
45
|
+
- The brain has clearly drifted: duplicate/near-duplicate knowledge, a flat `knowledge/` dump that
|
|
46
|
+
should be foldered, topics living as both a feature and a knowledge file, stale `in_progress`
|
|
47
|
+
tasks that actually shipped, off-vocabulary tags, bloated core files.
|
|
48
|
+
- "Re-organize / refactor / curate the brain", "dedup the knowledge", "conform to conventions".
|
|
49
|
+
|
|
50
|
+
**Scale the machinery to the drift.** A small, tidy brain does not need the full five-auditor
|
|
51
|
+
fan-out. Say so and run a **light path**: one `curator-auditor` over the whole corpus + one
|
|
52
|
+
`curator-worker` for the handful of fixes, then verify. Reserve the full orchestration for a brain
|
|
53
|
+
with real accreted drift across domains.
|
|
54
|
+
|
|
55
|
+
## Commitment ritual (do this FIRST — non-negotiable)
|
|
56
|
+
|
|
57
|
+
1. **Announce**: tell the user you're running the curator orchestration and what it's allowed to do
|
|
58
|
+
(MOVE/MERGE/SPLIT/RENAME/RE-TYPE/RETIRE), and that **it mutates the real corpus** — so it runs
|
|
59
|
+
plan-first and you'll confirm the shape before executing.
|
|
60
|
+
2. **TodoWrite** the phases (0–7) as items. A phase isn't done until its gate passes.
|
|
61
|
+
3. **Track iteration counts** in the todo text for each convergence loop, e.g.
|
|
62
|
+
`Phase 4: execute (batch 3/6)`, `Phase 6: verify (iteration 2/3)`.
|
|
63
|
+
|
|
64
|
+
Skipping the ritual is the first step toward executing destructive moves the user never saw.
|
|
65
|
+
|
|
66
|
+
## Orchestration flow
|
|
67
|
+
|
|
68
|
+
```mermaid
|
|
69
|
+
flowchart TD
|
|
70
|
+
P0[Phase 0 — RECOGNIZE & SCOPE: confirm brain exists + drifted, announce, pick scope, READ current conventions] --> P1[Phase 1 — AUDIT: fan out curator-auditor, one per domain -> reorg findings]
|
|
71
|
+
P1 --> P2[Phase 2 — REORG PLAN: merge findings into ONE source→action→target plan; de-conflict; batch]
|
|
72
|
+
P2 --> P3{Phase 3 — CONFIRM THE SHAPE: show the dry-run plan, user adjusts -> approved?}
|
|
73
|
+
P3 -->|user revises| P2
|
|
74
|
+
P3 -->|approved| P4[Phase 4 — EXECUTE: fan out curator-worker per batch; track coverage]
|
|
75
|
+
P4 --> P5[Phase 5 — RECONCILE: knowledge index, releases/versions, taxonomy.json]
|
|
76
|
+
P5 --> P6{Phase 6 — VERIFY: curator-verifier — PASS? + idempotency re-run}
|
|
77
|
+
P6 -->|FAIL and iter < 3| P4
|
|
78
|
+
P6 -->|cap reached| ESC[ESCALATE to user with the unresolved gaps]
|
|
79
|
+
P6 -->|PASS| P7[Phase 7 — REPORT: what moved/merged/retired + recall before/after + offer a sleep]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Phase 0 — RECOGNIZE & SCOPE (interactive — ask, then wait)
|
|
83
|
+
|
|
84
|
+
1. Confirm there IS a brain and it has drifted (`dreamcontext doctor`, `knowledge index`,
|
|
85
|
+
`features list`, `tasks list --all`). If the brain is missing/sparse, this is the wrong skill —
|
|
86
|
+
point the user at `initializer` instead.
|
|
87
|
+
2. **Read the current conventions** so the whole run targets *today's* shape: the installed
|
|
88
|
+
`dreamcontext` skill + references, `dreamcontext taxonomy vocab`, `core/0.soul.md`, `1.user.md`.
|
|
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)?
|
|
91
|
+
- **Anything off-limits** — files/areas you should not touch this pass?
|
|
92
|
+
- Confirm they want a **real run** (it mutates the corpus) — the plan is shown before execution.
|
|
93
|
+
On a clean git tree, note it; if there are uncommitted changes, recommend committing first so the
|
|
94
|
+
reorg diff is reviewable in isolation. Wait for the answers; capture them in TodoWrite.
|
|
95
|
+
|
|
96
|
+
### Phase 1 — AUDIT (sub-agent fan-out → reorg findings)
|
|
97
|
+
|
|
98
|
+
Dispatch **`curator-auditor`** (read-only). For a full curate, **fan out in parallel, one auditor
|
|
99
|
+
per domain** (single message, multiple Agent calls), each blind to the others — you merge their
|
|
100
|
+
findings:
|
|
101
|
+
|
|
102
|
+
| Domain | What it audits |
|
|
103
|
+
|---|---|
|
|
104
|
+
| `knowledge` | bloat (COMPRESS), tag drift (RETAG), flat files that should be foldered (MOVE), near-duplicates (MERGE), stale files (RETIRE) |
|
|
105
|
+
| `ssot` | the cross-cutting single-source-of-truth pass — topics as BOTH feature and knowledge, duplicate knowledge, overlapping features → fold/redirect to one home |
|
|
106
|
+
| `features` | reconcile status to reality, rename to current vocabulary, dedup vs knowledge, flag stale |
|
|
107
|
+
| `tasks` | finished tasks still open (STATUS-BUMP), duplicate/stale tasks (MERGE/RETIRE), orphans → attach to a planning version |
|
|
108
|
+
| `versions` | reconcile release/version statuses so they're tidy and consistent |
|
|
109
|
+
|
|
110
|
+
Give each auditor its domain + the conventions you read in Phase 0. Each returns a **source → action
|
|
111
|
+
→ target** findings table. A finding that says "clean up knowledge" without naming each file and the
|
|
112
|
+
exact action is rejected — send it back.
|
|
113
|
+
|
|
114
|
+
### Phase 2 — REORG PLAN (you synthesize)
|
|
115
|
+
|
|
116
|
+
Merge the auditors' findings into **ONE concrete reorg plan** — `source → action → target` per item.
|
|
117
|
+
This is your synthesis work (not a sub-agent's):
|
|
118
|
+
|
|
119
|
+
- **De-conflict.** Two auditors touching the same file → one action wins. Sequence dependent moves
|
|
120
|
+
(RE-TYPE before the RETIRE of the original; MERGE survivors chosen before their MOVEs).
|
|
121
|
+
- **Batch** the plan into independent units a worker can own without racing another (group by folder
|
|
122
|
+
/ topic cluster; never split a MERGE pair across two workers).
|
|
123
|
+
- Keep the plan **reviewable**: a flat list the user can read top-to-bottom, each row carrying the
|
|
124
|
+
*why* (the convention it satisfies).
|
|
125
|
+
|
|
126
|
+
### Phase 3 — CONFIRM THE SHAPE (interactive gate — the user owns the shape)
|
|
127
|
+
|
|
128
|
+
Show the user the **dry-run reorg plan**: every `source → action → target` row, grouped by domain,
|
|
129
|
+
with risk notes (anything that could move recall precision or a wikilink graph). **This is where the
|
|
130
|
+
user's intent wins** — they veto a merge, keep a "duplicate" that's intentional, rename a target
|
|
131
|
+
folder, downgrade a RETIRE to an archive. Iterate Phase 2 ↔ 3 until they approve. **Do not execute
|
|
132
|
+
until the plan is approved** — a wrong MERGE/RETIRE is expensive to unwind.
|
|
133
|
+
|
|
134
|
+
Before executing, capture a **recall BEFORE snapshot**: pick ~5 seed queries spanning the domains
|
|
135
|
+
touched and record `dreamcontext memory recall "<q>"` top-3 for each. The verifier diffs against this.
|
|
136
|
+
|
|
137
|
+
If running fully autonomously with no user, adopt the synthesized plan, record that you chose it, and
|
|
138
|
+
surface it in the Phase 7 report for confirmation — but still skip any row flagged destructive +
|
|
139
|
+
ambiguous, and list it as deferred.
|
|
140
|
+
|
|
141
|
+
### Phase 4 — EXECUTE (sub-agent fan-out — the core)
|
|
142
|
+
|
|
143
|
+
Dispatch **`curator-worker`** over the approved plan, **one batch per worker** so each fits in
|
|
144
|
+
context. Use `parallel` for independent batches; **`pipeline`/sequential when batches depend on each
|
|
145
|
+
other** (a RE-TYPE that another batch's MERGE survivor points at). Each worker applies its batch via
|
|
146
|
+
the CLI (`knowledge move`, `knowledge merge`, `tasks status`, `features set`), distills merged prose,
|
|
147
|
+
and repoints wikilinks. **Track coverage in TodoWrite** (`batch N/M`). Loop until every plan row is
|
|
148
|
+
applied or consciously deferred. **Nothing is silently skipped** — at the cap (3 passes) with rows
|
|
149
|
+
unapplied, ESCALATE with the list. Re-dispatch failed batches; don't drop them.
|
|
150
|
+
|
|
151
|
+
### Phase 5 — RECONCILE
|
|
152
|
+
|
|
153
|
+
Centralized cleanup after the workers (you or a final worker pass): rebuild/verify the knowledge index
|
|
154
|
+
is coherent, reconcile `core releases` / version statuses, ensure any new canonical tags are in
|
|
155
|
+
`core/taxonomy.json` (`taxonomy add`), and confirm no `[[wikilink]]` dangles.
|
|
156
|
+
|
|
157
|
+
### Phase 6 — VERIFY (the real gate)
|
|
158
|
+
|
|
159
|
+
Dispatch **`curator-verifier`** (read-only + Bash) with the seed queries + the BEFORE recall snapshot.
|
|
160
|
+
It returns `PASS | FAIL` with evidence: `doctor` clean, knowledge index coherent, **zero duplicate-topic
|
|
161
|
+
knowledge**, **zero topic-as-both-feature-and-knowledge**, statuses reflect reality, taxonomy normalized,
|
|
162
|
+
no dangling wikilinks, **recall not regressed** vs the snapshot.
|
|
163
|
+
|
|
164
|
+
- **FAIL** → route **back to Phase 4**, fix the specific gaps, re-verify. Cap = 3 → ESCALATE.
|
|
165
|
+
- **PASS** → run the **idempotency check**: an immediate second audit must find nothing material to
|
|
166
|
+
change. Residual churn means the conventions weren't reached — treat it as a FAIL and loop. When the
|
|
167
|
+
re-run is clean, the brain is curated.
|
|
168
|
+
|
|
169
|
+
### Phase 7 — REPORT
|
|
170
|
+
|
|
171
|
+
Summarize what moved / merged / split / re-typed / retired (counts + the notable ones), the recall
|
|
172
|
+
before/after for the seed queries (proving no regression), anything consciously **deferred** (and why),
|
|
173
|
+
and then **offer a sleep** so the freshly-reorganized corpus is consolidated and the index/staleness warm.
|
|
174
|
+
|
|
175
|
+
## Convergence rules (how the loops end)
|
|
176
|
+
|
|
177
|
+
- Every loop has a hard **iteration cap of 3**. Hitting it means **ESCALATE to the user** — never
|
|
178
|
+
"good enough, the structure's better than it was".
|
|
179
|
+
- Update the TodoWrite count before each loop-back. Past the cap → stop and escalate with specifics.
|
|
180
|
+
- "Curated" is defined by Phase 6 PASS **plus** a clean idempotency re-run — not by the corpus
|
|
181
|
+
looking tidier.
|
|
182
|
+
|
|
183
|
+
## Red Flags — STOP, you're about to corrupt the brain
|
|
184
|
+
|
|
185
|
+
| Thought | Reality |
|
|
186
|
+
|---|---|
|
|
187
|
+
| "I'll just start moving and merging files." | Plan first, confirm the shape (Phase 3), THEN execute. The curator mutates real content. |
|
|
188
|
+
| "I know the conventions, no need to read them." | Read them at run time (Phase 0). The brain conforms to *today's* shape, which you may be misremembering. |
|
|
189
|
+
| "These two files look similar — I'll delete one." | MERGE folds + repoints + preserves; RETIRE archives. Silent deletion loses signal and dangles wikilinks. |
|
|
190
|
+
| "This task is probably done, bump it to completed." | Reality-based only. Cite the changelog/release/code evidence, or leave it. |
|
|
191
|
+
| "Recall is fine, skip the before/after." | A reorg can drop a relevant doc from reach. Snapshot before, diff after — it's an acceptance criterion. |
|
|
192
|
+
| "Verifier passed, we're done." | Not until the idempotency re-run is clean. Residual churn = conventions not reached. |
|
|
193
|
+
| "It's a feature AND a knowledge file — leave both." | One home per topic. RE-TYPE / fold to the canonical one; the verifier fails this. |
|
|
194
|
+
| "I'll author the whole reorg myself." | The orchestrator dispatches auditors + workers. You synthesize the plan and gate; you don't run every merge by hand. |
|
|
195
|
+
|
|
196
|
+
## Rationalization table
|
|
197
|
+
|
|
198
|
+
| If you think… | The truth is… | So… |
|
|
199
|
+
|---|---|---|
|
|
200
|
+
| "Auditing every domain is overhead; I'll eyeball it." | One pass over a drifted brain misses cross-cutting dupes and status drift. | Fan out an auditor per domain; merge their findings. |
|
|
201
|
+
| "The user will just approve the plan, skip the gate." | A wrong MERGE/RETIRE is expensive to unwind once files move. | Confirm the shape in Phase 3 before executing. |
|
|
202
|
+
| "Conventions don't change that often, hardcoding is fine." | The point of the curator is to track *current* conventions. Hardcoding makes it stale the day the skill changes. | Read taxonomy vocab + the live skill + soul at run time. |
|
|
203
|
+
| "Verifier will rubber-stamp." | A mis-prompted verifier rubber-stamps. Give it the checklist + the recall snapshot and demand evidence. | Treat FAIL as binding; loop or escalate. |
|
|
204
|
+
|
|
205
|
+
## Hard rules
|
|
206
|
+
|
|
207
|
+
- **Orchestrator drives sub-agents.** Auditor (intake) → worker (fan-out execute) → verifier (gate).
|
|
208
|
+
You synthesize the plan and gate; you don't run the whole reorg by hand.
|
|
209
|
+
- **Read conventions at run time.** taxonomy vocab + the installed skill + soul define the target shape.
|
|
210
|
+
- **Plan-first, confirm the shape (Phase 3) before executing.** The curator mutates real content.
|
|
211
|
+
- **Preserve signal.** MOVE/MERGE/RETIRE keep content findable and repoint every inbound `[[wikilink]]`.
|
|
212
|
+
Never silent-delete a topic.
|
|
213
|
+
- **One home per topic.** Feature **or** knowledge, never both — the verifier enforces it.
|
|
214
|
+
- **CLI for structure, native edits for prose** — `knowledge move`/`merge`, `tasks status`,
|
|
215
|
+
`features set`; hand-edit only the wording the CLI doesn't own.
|
|
216
|
+
- **Reality-based status.** Bump only what is demonstrably done, with cited evidence.
|
|
217
|
+
- **Recall must not regress.** Snapshot seed queries before; the verifier diffs after.
|
|
218
|
+
- **Caps are hard** (3 per loop). At the cap, escalate — never declare curated.
|
|
219
|
+
- **Done = Phase 6 PASS + a clean idempotency re-run.** Use the `dreamcontext` skill throughout.
|
|
220
|
+
|
|
221
|
+
## Relationship to other surfaces
|
|
222
|
+
|
|
223
|
+
| Surface | Stage | Relationship |
|
|
224
|
+
|---|---|---|
|
|
225
|
+
| `curator` (this) | Periodic brain refactor | Re-orders an existing brain into the current shape — MOVE/MERGE/SPLIT/RENAME/RE-TYPE/RETIRE. The pass sleep won't do. |
|
|
226
|
+
| `curator-auditor` / `-worker` / `-verifier` | This skill's workers | Audit (findings) → fan-out execute → PASS/FAIL gate. Dispatched at Phases 1 / 4 / 6. |
|
|
227
|
+
| `initializer` | First-run / bootstrap | Builds the brain from raw material. Curator *refactors* an existing one. Use initializer to create, curator to re-shape. |
|
|
228
|
+
| Sleep / consolidation | Ongoing, additive | Sleep polishes + appends conservatively. Curator is the periodic structural refactor sleep deliberately avoids. Offer a sleep *after* a curate (Phase 7). |
|
|
229
|
+
| `goal-skill` | End-to-end build of a goal | The orchestration pattern this skill mirrors (plan→review→implement→validate ≈ audit→confirm→execute→verify). |
|
|
230
|
+
|
|
231
|
+
## Slash command wiring
|
|
232
|
+
|
|
233
|
+
`/curator` invokes this skill. The natural-language triggers in **When to invoke** also load it.
|
|
234
|
+
(Named `curator`, distinct from `sleep` — sleep consolidates additively; the curator refactors.)
|