dreamcontext 0.8.3 → 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +2 -1
  2. package/agents/sleep-product.md +23 -0
  3. package/agents/sleep-tasks.md +31 -12
  4. package/dist/agents/sleep-product.md +23 -0
  5. package/dist/agents/sleep-tasks.md +31 -12
  6. package/dist/dashboard/assets/{BrainCanvas3D-CoTzHqzT.js → BrainCanvas3D-D8PjCqhM.js} +1 -1
  7. package/dist/dashboard/assets/{_baseUniq-BlQ6XWxs.js → _baseUniq-Bh1FtvZ1.js} +1 -1
  8. package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-C4qyHe9L.js → ar-SA-G6X2FPQ2-B2U2zDyG.js} +1 -1
  9. package/dist/dashboard/assets/{arc-uGukQNxI.js → arc-CjP2r6kV.js} +1 -1
  10. package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-BhtWTFvf.js → architectureDiagram-Q4EWVU46-NKSTolLw.js} +1 -1
  11. package/dist/dashboard/assets/{az-AZ-76LH7QW2-HfK2pIVQ.js → az-AZ-76LH7QW2-DVg6avJ2.js} +1 -1
  12. package/dist/dashboard/assets/{bg-BG-XCXSNQG7-L7TlhXli.js → bg-BG-XCXSNQG7-DGe9j5k-.js} +1 -1
  13. package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-BmPhQEp6.js → blockDiagram-DXYQGD6D-9TIN16so.js} +1 -1
  14. package/dist/dashboard/assets/{bn-BD-2XOGV67Q-DE0uNoU6.js → bn-BD-2XOGV67Q-gu4ZPvYK.js} +1 -1
  15. package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-DtQKYrmP.js → c4Diagram-AHTNJAMY-CnCRm_Qw.js} +1 -1
  16. package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-7JHCTA6b.js → ca-ES-6MX7JW3Y-DkBWO2rb.js} +1 -1
  17. package/dist/dashboard/assets/channel-CvynutAQ.js +1 -0
  18. package/dist/dashboard/assets/{chunk-4BX2VUAB-BvnLY9qE.js → chunk-4BX2VUAB-DWsjDEg5.js} +1 -1
  19. package/dist/dashboard/assets/{chunk-4TB4RGXK--piiFXgS.js → chunk-4TB4RGXK-BsxBp2-h.js} +1 -1
  20. package/dist/dashboard/assets/{chunk-55IACEB6-C7uvmawY.js → chunk-55IACEB6-DSTYhHTs.js} +1 -1
  21. package/dist/dashboard/assets/{chunk-EDXVE4YY-BuWBKOPY.js → chunk-EDXVE4YY-9RDG5so7.js} +1 -1
  22. package/dist/dashboard/assets/{chunk-FMBD7UC4-C1Le6hxh.js → chunk-FMBD7UC4-BQQGv7tV.js} +1 -1
  23. package/dist/dashboard/assets/{chunk-OYMX7WX6-B8JE8Wz4.js → chunk-OYMX7WX6-B62jTGjc.js} +1 -1
  24. package/dist/dashboard/assets/{chunk-QZHKN3VN-U9FJi59p.js → chunk-QZHKN3VN-CgTBTZrW.js} +1 -1
  25. package/dist/dashboard/assets/{chunk-YZCP3GAM-BNc94uy1.js → chunk-YZCP3GAM-3Dg1saYb.js} +1 -1
  26. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-DWhdz8wj.js +1 -0
  27. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-DWhdz8wj.js +1 -0
  28. package/dist/dashboard/assets/clone-DJK7V3ll.js +1 -0
  29. package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-D0hUzBCj.js → cose-bilkent-S5V4N54A-B3idOsw5.js} +1 -1
  30. package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-B0rWHDIi.js → cs-CZ-2BRQDIVT-xyFkB9a5.js} +1 -1
  31. package/dist/dashboard/assets/{da-DK-5WZEPLOC-D_PQO_T0.js → da-DK-5WZEPLOC-B3hFYjJY.js} +1 -1
  32. package/dist/dashboard/assets/{dagre-KV5264BT-B_bjkEDQ.js → dagre-KV5264BT-BoSSN-hv.js} +1 -1
  33. package/dist/dashboard/assets/{de-DE-XR44H4JA-D1G4J6Mz.js → de-DE-XR44H4JA-Bkx00nEq.js} +1 -1
  34. package/dist/dashboard/assets/{diagram-5BDNPKRD-B63uEoiS.js → diagram-5BDNPKRD-Buj8iksu.js} +1 -1
  35. package/dist/dashboard/assets/{diagram-G4DWMVQ6-DShdwm3D.js → diagram-G4DWMVQ6-DRBYjDWl.js} +1 -1
  36. package/dist/dashboard/assets/{diagram-MMDJMWI5-DdVsHQ-l.js → diagram-MMDJMWI5-DdlofmeO.js} +1 -1
  37. package/dist/dashboard/assets/{diagram-TYMM5635-BdHifyqU.js → diagram-TYMM5635-C8y8IvnA.js} +1 -1
  38. package/dist/dashboard/assets/{el-GR-BZB4AONW-a0CO4RfB.js → el-GR-BZB4AONW-SsFgxQNu.js} +1 -1
  39. package/dist/dashboard/assets/{erDiagram-SMLLAGMA-CYxdxNcb.js → erDiagram-SMLLAGMA-OZ3J3PG9.js} +1 -1
  40. package/dist/dashboard/assets/{es-ES-U4NZUMDT-ejRYVYRf.js → es-ES-U4NZUMDT-BInO41Bx.js} +1 -1
  41. package/dist/dashboard/assets/{eu-ES-A7QVB2H4-B-4OXJLd.js → eu-ES-A7QVB2H4-DjjnJ8cU.js} +1 -1
  42. package/dist/dashboard/assets/{fa-IR-HGAKTJCU-DhOcLy7v.js → fa-IR-HGAKTJCU-BjCsO05-.js} +1 -1
  43. package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-CKQF9xKf.js → fi-FI-Z5N7JZ37-kAJ6_O9R.js} +1 -1
  44. package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-azQUtREP.js → flowDiagram-DWJPFMVM-BvvULyyH.js} +1 -1
  45. package/dist/dashboard/assets/{fr-FR-RHASNOE6-CsGekBXq.js → fr-FR-RHASNOE6-CrZukXCy.js} +1 -1
  46. package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-DjXmGcb4.js → ganttDiagram-T4ZO3ILL-Sv7sneaT.js} +1 -1
  47. package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-Dz87wo6e.js → gitGraphDiagram-UUTBAWPF-BWplv5am.js} +1 -1
  48. package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-NRfsjlmW.js → gl-ES-HMX3MZ6V-CY3NLwyQ.js} +1 -1
  49. package/dist/dashboard/assets/{graph-BMW3t-Jz.js → graph-DU5PqGxo.js} +1 -1
  50. package/dist/dashboard/assets/{he-IL-6SHJWFNN-CK4gfEss.js → he-IL-6SHJWFNN-DcuQngSU.js} +1 -1
  51. package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-CqyBl1jA.js → hi-IN-IWLTKZ5I-DKr_uuss.js} +1 -1
  52. package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-BO0SthvO.js → hu-HU-A5ZG7DT2-CgZklxQN.js} +1 -1
  53. package/dist/dashboard/assets/{id-ID-SAP4L64H-CrHxJe1s.js → id-ID-SAP4L64H-BFYAclqc.js} +1 -1
  54. package/dist/dashboard/assets/index-CPZ-rEGO.js +480 -0
  55. package/dist/dashboard/assets/{index-B0pCDfL8.js → index-DhbH7HLB.js} +1 -1
  56. package/dist/dashboard/assets/index-DrwAz5zg.css +1 -0
  57. package/dist/dashboard/assets/{infoDiagram-42DDH7IO-zG-8q9HR.js → infoDiagram-42DDH7IO-DcL21hYD.js} +1 -1
  58. package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-5OzPmL1c.js → ishikawaDiagram-UXIWVN3A-CP4-Ha6a.js} +1 -1
  59. package/dist/dashboard/assets/{it-IT-JPQ66NNP-CW6fpZrT.js → it-IT-JPQ66NNP-DgbO8z_0.js} +1 -1
  60. package/dist/dashboard/assets/{ja-JP-DBVTYXUO-DMJRiMhd.js → ja-JP-DBVTYXUO-2nM4bVbo.js} +1 -1
  61. package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-f8lbDQ22.js → journeyDiagram-VCZTEJTY-CZV9JSbl.js} +1 -1
  62. package/dist/dashboard/assets/{kaa-6HZHGXH3-C4yr2X6j.js → kaa-6HZHGXH3-DyVkacqp.js} +1 -1
  63. package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-BtwhZ5Ak.js → kab-KAB-ZGHBKWFO-CqnQNV46.js} +1 -1
  64. package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-BJtF1llZ.js → kanban-definition-6JOO6SKY-CMFYpVon.js} +1 -1
  65. package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-BiS5ISFw.js → kk-KZ-P5N5QNE5-CKaF_obh.js} +1 -1
  66. package/dist/dashboard/assets/{km-KH-HSX4SM5Z-CJcAjj0D.js → km-KH-HSX4SM5Z-DX5TUZuC.js} +1 -1
  67. package/dist/dashboard/assets/{ko-KR-MTYHY66A-yw6XRj7m.js → ko-KR-MTYHY66A-DX2Igsee.js} +1 -1
  68. package/dist/dashboard/assets/{ku-TR-6OUDTVRD-nAwdHGyN.js → ku-TR-6OUDTVRD-B0tZGs6G.js} +1 -1
  69. package/dist/dashboard/assets/{layout-guqP2e-e.js → layout-3g_7BoW1.js} +1 -1
  70. package/dist/dashboard/assets/{linear-W2_Ct9N6.js → linear-CXZ_mpWm.js} +1 -1
  71. package/dist/dashboard/assets/{lt-LT-XHIRWOB4-D7h1NJrv.js → lt-LT-XHIRWOB4-BzCZwLwu.js} +1 -1
  72. package/dist/dashboard/assets/{lv-LV-5QDEKY6T-DJfUJgRc.js → lv-LV-5QDEKY6T-Dn-Fj6_V.js} +1 -1
  73. package/dist/dashboard/assets/{min-BlLHklQU.js → min-bJtV9AiD.js} +1 -1
  74. package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-Ch2AO4mc.js → mindmap-definition-QFDTVHPH-Dz61NELW.js} +1 -1
  75. package/dist/dashboard/assets/{mr-IN-CRQNXWMA-BV3znx0p.js → mr-IN-CRQNXWMA-D8KTtR8X.js} +1 -1
  76. package/dist/dashboard/assets/{my-MM-5M5IBNSE-IjUN-e5U.js → my-MM-5M5IBNSE-BbCYwFaj.js} +1 -1
  77. package/dist/dashboard/assets/{nb-NO-T6EIAALU-MMsvbc2a.js → nb-NO-T6EIAALU-DEJxZlzk.js} +1 -1
  78. package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-ByYTJGOK.js → nl-NL-IS3SIHDZ-DTQekKhh.js} +1 -1
  79. package/dist/dashboard/assets/{nn-NO-6E72VCQL-Bgbgzvhm.js → nn-NO-6E72VCQL-Otz1_Q7Y.js} +1 -1
  80. package/dist/dashboard/assets/{oc-FR-POXYY2M6-BMBbvfQp.js → oc-FR-POXYY2M6-BO1pOtcy.js} +1 -1
  81. package/dist/dashboard/assets/{pa-IN-N4M65BXN-CgcUC9Zd.js → pa-IN-N4M65BXN-o_zcafD8.js} +1 -1
  82. package/dist/dashboard/assets/{percentages-BXMCSKIN-AuedyVVS.js → percentages-BXMCSKIN-C9aZbplb.js} +7 -7
  83. package/dist/dashboard/assets/{pica-DxO5y0j_.js → pica-B0_4dS6Q.js} +1 -1
  84. package/dist/dashboard/assets/{pieDiagram-DEJITSTG-q-J8tI3B.js → pieDiagram-DEJITSTG-CMwhT31D.js} +1 -1
  85. package/dist/dashboard/assets/{pl-PL-T2D74RX3-BaZSYTKJ.js → pl-PL-T2D74RX3-CvJKdZLx.js} +1 -1
  86. package/dist/dashboard/assets/{pt-BR-5N22H2LF-DSPF7aLm.js → pt-BR-5N22H2LF-DH69aomh.js} +1 -1
  87. package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-aoPTHC3m.js → pt-PT-UZXXM6DQ-Bt_HMT7S.js} +1 -1
  88. package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-CGbfFson.js → quadrantDiagram-34T5L4WZ-BdXgbSGH.js} +1 -1
  89. package/dist/dashboard/assets/{requirementDiagram-MS252O5E-ThxVmoCe.js → requirementDiagram-MS252O5E-Bq0YQege.js} +1 -1
  90. package/dist/dashboard/assets/{ro-RO-JPDTUUEW-YfCwiIS2.js → ro-RO-JPDTUUEW-DetQ1m4p.js} +1 -1
  91. package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-zIVsVhsz.js → ru-RU-B4JR7IUQ-B744z7Cd.js} +1 -1
  92. package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-BvEv917s.js → sankeyDiagram-XADWPNL6-CTYt5Kku.js} +1 -1
  93. package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-JrhjN3MG.js → sequenceDiagram-FGHM5R23-BbPhy9K6.js} +1 -1
  94. package/dist/dashboard/assets/{si-LK-N5RQ5JYF-CegSAwip.js → si-LK-N5RQ5JYF-DueeMRG5.js} +1 -1
  95. package/dist/dashboard/assets/{sk-SK-C5VTKIMK-C_K-Uoai.js → sk-SK-C5VTKIMK-BivWC8UI.js} +1 -1
  96. package/dist/dashboard/assets/{sl-SI-NN7IZMDC-DHGXOoZl.js → sl-SI-NN7IZMDC-CHxsSSJQ.js} +1 -1
  97. package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-BzOtZESp.js → stateDiagram-FHFEXIEX-DAPXkQkR.js} +1 -1
  98. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-ZA5uLv7f.js +1 -0
  99. package/dist/dashboard/assets/{subset-shared.chunk-BWfXaC19.js → subset-shared.chunk-CxWeBga7.js} +1 -1
  100. package/dist/dashboard/assets/{subset-worker.chunk-DHcqLDUZ.js → subset-worker.chunk-V3gpxiYs.js} +1 -1
  101. package/dist/dashboard/assets/{sv-SE-XGPEYMSR-BoNob2y3.js → sv-SE-XGPEYMSR-C-EJgqb-.js} +1 -1
  102. package/dist/dashboard/assets/{ta-IN-2NMHFXQM-C8UHJYct.js → ta-IN-2NMHFXQM-DAjiKKkH.js} +1 -1
  103. package/dist/dashboard/assets/{th-TH-HPSO5L25-D7wP1iSi.js → th-TH-HPSO5L25-Bq7BADtY.js} +1 -1
  104. package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-Gwb0w7bX.js → timeline-definition-GMOUNBTQ-BJhY_iVV.js} +1 -1
  105. package/dist/dashboard/assets/{tr-TR-DEFEU3FU-He51QB-L.js → tr-TR-DEFEU3FU--adx_Tct.js} +1 -1
  106. package/dist/dashboard/assets/{uk-UA-QMV73CPH-Blg5n9CR.js → uk-UA-QMV73CPH-DfnkGhht.js} +1 -1
  107. package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-y2S0dZjp.js → vennDiagram-DHZGUBPP-BpuWdXIB.js} +1 -1
  108. package/dist/dashboard/assets/{vi-VN-M7AON7JQ-2z-4xcM3.js → vi-VN-M7AON7JQ-RQSwYL0s.js} +1 -1
  109. package/dist/dashboard/assets/{wardley-RL74JXVD-BNThyuCt.js → wardley-RL74JXVD-BuB77QmE.js} +1 -1
  110. package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-Sljri5hz.js → wardleyDiagram-NUSXRM2D-BomUXaGE.js} +1 -1
  111. package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-BIFYd4_d.js → xychartDiagram-5P7HB3ND-BueWOzBo.js} +1 -1
  112. package/dist/dashboard/assets/{zh-CN-LNUGB5OW-DZ8sfmlq.js → zh-CN-LNUGB5OW-Bq_CyCdn.js} +1 -1
  113. package/dist/dashboard/assets/{zh-HK-E62DVLB3-Zvqwoloz.js → zh-HK-E62DVLB3-dhMk2wl1.js} +1 -1
  114. package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-Ck_uDtMQ.js → zh-TW-RAJ6MFWO-BTBKc5WB.js} +1 -1
  115. package/dist/dashboard/index.html +2 -2
  116. package/dist/index.js +851 -633
  117. package/dist/skill-packs/goal-skill/SKILL.md +8 -6
  118. package/package.json +1 -1
  119. package/skill/SKILL.md +3 -3
  120. package/skill-packs/goal-skill/SKILL.md +8 -6
  121. package/dist/dashboard/assets/channel-3OfE-PZ3.js +0 -1
  122. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-Dpt9qwZI.js +0 -1
  123. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-Dpt9qwZI.js +0 -1
  124. package/dist/dashboard/assets/clone-CZ-InUnR.js +0 -1
  125. package/dist/dashboard/assets/index-rIZLhbl7.js +0 -480
  126. package/dist/dashboard/assets/index-sax--nf3.css +0 -1
  127. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-CjcHIbj7.js +0 -1
@@ -64,7 +64,7 @@ flowchart TD
64
64
  P5 -->|cap reached| ESC2[ESCALATE to user — do NOT proceed]
65
65
  P5 -->|PASS| P6{Phase 6 — goal-validator runs the chosen method: PASS?}
66
66
  P6 -->|FAIL| P4
67
- P6 -->|PASS| DONE[Goal reached — task to in_review, ask the user to complete]
67
+ P6 -->|PASS| DONE[Goal reached — validation passed, mark task completed + tell the user]
68
68
  ```
69
69
 
70
70
  ### Phase 0 — Scope & validation method (ask the user)
@@ -143,9 +143,11 @@ recorded in the task and returns `PASS | FAIL` with evidence (exact command + ou
143
143
 
144
144
  - **FAIL** → append the failure report to the task (`dreamcontext tasks log`), and route
145
145
  **back to Phase 4** (IMPLEMENT). Loop IMPLEMENT → REVIEW → VALIDATE until validation PASSES.
146
- - **PASS** → the goal is reached. `dreamcontext tasks status <slug> in_review "all criteria
147
- met; validation passed via <method>"`, then **ask the user to confirm completion**
148
- `tasks complete` is a user action; you never auto-complete.
146
+ - **PASS** → the goal is reached. The user-chosen validation method *is* the definition of
147
+ done, and it passed with evidence so close it: `dreamcontext tasks status <slug> completed
148
+ "all criteria met; validation passed via <method>"`, then **tell the user it's done** (what
149
+ shipped + the evidence). Only leave it in `in_review` instead if the validation surfaced
150
+ something a human should still eyeball before closing.
149
151
 
150
152
  ## Convergence rules (how the loops end)
151
153
 
@@ -166,7 +168,7 @@ recorded in the task and returns `PASS | FAIL` with evidence (exact command + ou
166
168
  | "I'll let the implementer review its own work." | Self-review is not review. Use a clean-context `reviewer`. |
167
169
  | "I'll skip asking the user how to validate, tests are obviously the way." | Phase 0 is non-negotiable. Validation criteria are the user's call. |
168
170
  | "We've looped 4 times, but I think this next one fixes it." | Cap is 3. Escalate. The user decides whether to keep going. |
169
- | "I'll auto-complete the task, validation passed." | `complete` is user-only. Move to `in_review` and ask. |
171
+ | "I'll mark it complete because I *think* it's done." | Done is defined by Phase 6 validation passing with evidence — not by your hunch. Complete only after PASS. |
170
172
 
171
173
  ## Rationalization table
172
174
 
@@ -182,7 +184,7 @@ recorded in the task and returns `PASS | FAIL` with evidence (exact command + ou
182
184
  - **Orchestrator never writes production code.** Dispatch sub-agents.
183
185
  - **Plan reviewers run in parallel**, in one message. Sequential dispatch defeats the design.
184
186
  - **Never skip Phase 0's validation-method question.**
185
- - **Never auto-`complete` the task** — that's the user's action; you stop at `in_review`.
187
+ - **`complete` only after Phase 6 PASS** — validation passing with evidence is the definition of done; never complete on a hunch, and never before validation.
186
188
  - **Tell `reviewer` to run `git diff` itself**; don't paste diffs into prompts.
187
189
  - **Caps are hard** (3 per loop). At the cap, escalate — never declare done.
188
190
  - **Use the `dreamcontext` skill** throughout — the task doc is the source of truth.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dreamcontext",
3
- "version": "0.8.3",
3
+ "version": "0.8.5",
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": {
package/skill/SKILL.md CHANGED
@@ -408,10 +408,10 @@ dreamcontext tasks insert <name> changelog "Implemented pagination for /api/task
408
408
  # Lifecycle
409
409
  dreamcontext tasks log <name> "what was done" # Quick changelog entry (MANDATORY)
410
410
  dreamcontext tasks status <name> in_review "Ready for review" # Bump status (todo|in_progress|in_review|completed)
411
- dreamcontext tasks complete <name> "summary" # Mark complete (user only; sleep agent never auto-completes)
411
+ dreamcontext tasks complete <name> "summary" # Convenience for marking complete
412
412
  ```
413
413
 
414
- **Status convention:** `todo` -> `in_progress` -> `in_review` -> `completed`. The sleep agent bumps tasks it touched to `in_review` (never `completed`) so the user can verify before declaring done. This prevents the "task rotting in todo" failure mode.
414
+ **Status convention:** `todo` -> `in_progress` -> `in_review` -> `completed`. The sleep agent picks the status that matches reality — `completed` for work that's demonstrably done, low-risk, and already validated, and `in_review` only when a human genuinely must verify something (a behaviour change, a design decision, a risky/critical-path change). It does **not** reflexively park everything in `in_review`; finished work that needs no review is closed, so neither "task rotting in todo" nor "task rotting half-closed in in_review" happens.
415
415
 
416
416
  Task insert sections: `why`, `user_stories`, `acceptance_criteria`, `constraints`, `technical_details`, `notes`, `changelog`
417
417
 
@@ -601,7 +601,7 @@ All commands prefixed with `dreamcontext`. For reading/searching, use native too
601
601
  | `tasks rice <name> [--reach N] [--impact N] [--confidence N] [--effort N] [--clear]` | Print or update RICE values; no flags prints current values |
602
602
  | `tasks insert <name> <section> <content>` | Insert into task section |
603
603
  | `tasks status <name> <todo\|in_progress\|in_review\|completed> [reason...]` | Change task status (logs to changelog) |
604
- | `tasks complete <name>` | Complete task (user only; sleep agent uses `tasks status ... in_review`) |
604
+ | `tasks complete <name>` | Complete task (convenience for `tasks status <name> completed`) |
605
605
  | `tasks log <name> <content>` | Log task progress |
606
606
  | `bookmark add "<message>" [-s 1\|2\|3] [--task <slug>]` | Bookmark an important moment with optional task link |
607
607
  | `bookmark list` | Show current bookmarks |
@@ -64,7 +64,7 @@ flowchart TD
64
64
  P5 -->|cap reached| ESC2[ESCALATE to user — do NOT proceed]
65
65
  P5 -->|PASS| P6{Phase 6 — goal-validator runs the chosen method: PASS?}
66
66
  P6 -->|FAIL| P4
67
- P6 -->|PASS| DONE[Goal reached — task to in_review, ask the user to complete]
67
+ P6 -->|PASS| DONE[Goal reached — validation passed, mark task completed + tell the user]
68
68
  ```
69
69
 
70
70
  ### Phase 0 — Scope & validation method (ask the user)
@@ -143,9 +143,11 @@ recorded in the task and returns `PASS | FAIL` with evidence (exact command + ou
143
143
 
144
144
  - **FAIL** → append the failure report to the task (`dreamcontext tasks log`), and route
145
145
  **back to Phase 4** (IMPLEMENT). Loop IMPLEMENT → REVIEW → VALIDATE until validation PASSES.
146
- - **PASS** → the goal is reached. `dreamcontext tasks status <slug> in_review "all criteria
147
- met; validation passed via <method>"`, then **ask the user to confirm completion**
148
- `tasks complete` is a user action; you never auto-complete.
146
+ - **PASS** → the goal is reached. The user-chosen validation method *is* the definition of
147
+ done, and it passed with evidence so close it: `dreamcontext tasks status <slug> completed
148
+ "all criteria met; validation passed via <method>"`, then **tell the user it's done** (what
149
+ shipped + the evidence). Only leave it in `in_review` instead if the validation surfaced
150
+ something a human should still eyeball before closing.
149
151
 
150
152
  ## Convergence rules (how the loops end)
151
153
 
@@ -166,7 +168,7 @@ recorded in the task and returns `PASS | FAIL` with evidence (exact command + ou
166
168
  | "I'll let the implementer review its own work." | Self-review is not review. Use a clean-context `reviewer`. |
167
169
  | "I'll skip asking the user how to validate, tests are obviously the way." | Phase 0 is non-negotiable. Validation criteria are the user's call. |
168
170
  | "We've looped 4 times, but I think this next one fixes it." | Cap is 3. Escalate. The user decides whether to keep going. |
169
- | "I'll auto-complete the task, validation passed." | `complete` is user-only. Move to `in_review` and ask. |
171
+ | "I'll mark it complete because I *think* it's done." | Done is defined by Phase 6 validation passing with evidence — not by your hunch. Complete only after PASS. |
170
172
 
171
173
  ## Rationalization table
172
174
 
@@ -182,7 +184,7 @@ recorded in the task and returns `PASS | FAIL` with evidence (exact command + ou
182
184
  - **Orchestrator never writes production code.** Dispatch sub-agents.
183
185
  - **Plan reviewers run in parallel**, in one message. Sequential dispatch defeats the design.
184
186
  - **Never skip Phase 0's validation-method question.**
185
- - **Never auto-`complete` the task** — that's the user's action; you stop at `in_review`.
187
+ - **`complete` only after Phase 6 PASS** — validation passing with evidence is the definition of done; never complete on a hunch, and never before validation.
186
188
  - **Tell `reviewer` to run `git diff` itself**; don't paste diffs into prompts.
187
189
  - **Caps are hard** (3 per loop). At the cap, escalate — never declare done.
188
190
  - **Use the `dreamcontext` skill** throughout — the task doc is the source of truth.
@@ -1 +0,0 @@
1
- import{aq as o,ar as n}from"./index-rIZLhbl7.js";const t=(r,a)=>o.lang.round(n.parse(r)[a]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK--piiFXgS.js";import{_ as i}from"./index-rIZLhbl7.js";import"./chunk-FMBD7UC4-C1Le6hxh.js";import"./chunk-YZCP3GAM-BNc94uy1.js";import"./chunk-55IACEB6-C7uvmawY.js";import"./chunk-EDXVE4YY-BuWBKOPY.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK--piiFXgS.js";import{_ as i}from"./index-rIZLhbl7.js";import"./chunk-FMBD7UC4-C1Le6hxh.js";import"./chunk-YZCP3GAM-BNc94uy1.js";import"./chunk-55IACEB6-C7uvmawY.js";import"./chunk-EDXVE4YY-BuWBKOPY.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./graph-BMW3t-Jz.js";var e=4;function a(o){return r(o,e)}export{a as c};