dreamcontext 0.8.8 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-hy-bJKIJ.js} +1 -1
- package/dist/dashboard/assets/{_baseUniq-TeXEp9Tn.js → _baseUniq-DduL-UlQ.js} +1 -1
- package/dist/dashboard/assets/{ar-SA-G6X2FPQ2-Da5wNUeW.js → ar-SA-G6X2FPQ2-CrmB7xfA.js} +1 -1
- package/dist/dashboard/assets/{arc-NQuoeYrp.js → arc-sHUGY_nD.js} +1 -1
- package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-B108azq_.js → architectureDiagram-Q4EWVU46-DgYle1Hc.js} +1 -1
- package/dist/dashboard/assets/{az-AZ-76LH7QW2-cJYSsraO.js → az-AZ-76LH7QW2-xoplM1zS.js} +1 -1
- package/dist/dashboard/assets/{bg-BG-XCXSNQG7-Dt4_IvAk.js → bg-BG-XCXSNQG7-BF4iIrZQ.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-HAo6Tqxd.js → blockDiagram-DXYQGD6D-YPBR1t-F.js} +1 -1
- package/dist/dashboard/assets/{bn-BD-2XOGV67Q-DE20hZpG.js → bn-BD-2XOGV67Q-KGLt7gMU.js} +1 -1
- package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-SHRA5Nk_.js → c4Diagram-AHTNJAMY-B1KEuF7Q.js} +1 -1
- package/dist/dashboard/assets/{ca-ES-6MX7JW3Y-9ZUzuDs-.js → ca-ES-6MX7JW3Y-BYuoubhq.js} +1 -1
- package/dist/dashboard/assets/channel-BvyIgIvU.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-BlLy4y9z.js → chunk-4BX2VUAB-BALrhoW_.js} +1 -1
- package/dist/dashboard/assets/{chunk-4TB4RGXK-cDLog-pk.js → chunk-4TB4RGXK-8uLOmmU8.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-BfLlL9Jv.js → chunk-55IACEB6-D2hViX7K.js} +1 -1
- package/dist/dashboard/assets/{chunk-EDXVE4YY-BjKTlHye.js → chunk-EDXVE4YY-C9foqo-F.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-CoMoOB69.js → chunk-FMBD7UC4-D1G0o3Ow.js} +1 -1
- package/dist/dashboard/assets/{chunk-OYMX7WX6-DSYZ4BzO.js → chunk-OYMX7WX6-CiVziVyS.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-hsCUyt37.js → chunk-QZHKN3VN-DE5GBsSY.js} +1 -1
- package/dist/dashboard/assets/{chunk-YZCP3GAM-CMBEUThQ.js → chunk-YZCP3GAM-BpQQIx3b.js} +1 -1
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-B2f-mNIc.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-B2f-mNIc.js +1 -0
- package/dist/dashboard/assets/clone-BOZwMwp7.js +1 -0
- package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-Ds3A4r-y.js → cose-bilkent-S5V4N54A-KvwZaKE7.js} +1 -1
- package/dist/dashboard/assets/{cs-CZ-2BRQDIVT-WgNPbRaT.js → cs-CZ-2BRQDIVT-xYBULEJ9.js} +1 -1
- package/dist/dashboard/assets/{da-DK-5WZEPLOC-BQPVoqBy.js → da-DK-5WZEPLOC-DF2tyJRb.js} +1 -1
- package/dist/dashboard/assets/{dagre-KV5264BT-D3AamC0s.js → dagre-KV5264BT-Du_qjhF2.js} +1 -1
- package/dist/dashboard/assets/{de-DE-XR44H4JA-FOMlLeg-.js → de-DE-XR44H4JA-DlmZt5e9.js} +1 -1
- package/dist/dashboard/assets/{diagram-5BDNPKRD-DeAuY_LW.js → diagram-5BDNPKRD-D7slatQr.js} +1 -1
- package/dist/dashboard/assets/{diagram-G4DWMVQ6-CsPuBl6m.js → diagram-G4DWMVQ6-DiCZYy5B.js} +1 -1
- package/dist/dashboard/assets/{diagram-MMDJMWI5-Celrp7iZ.js → diagram-MMDJMWI5-BxckEUHv.js} +1 -1
- package/dist/dashboard/assets/{diagram-TYMM5635-D-Y8kdqj.js → diagram-TYMM5635-BGh7adH7.js} +1 -1
- package/dist/dashboard/assets/{el-GR-BZB4AONW-DdhrZvUu.js → el-GR-BZB4AONW-3_nYTnDJ.js} +1 -1
- package/dist/dashboard/assets/{erDiagram-SMLLAGMA-CyPB81Ul.js → erDiagram-SMLLAGMA-Bgu7PR3l.js} +1 -1
- package/dist/dashboard/assets/{es-ES-U4NZUMDT-B-Hbpc6c.js → es-ES-U4NZUMDT-Blp-jVT8.js} +1 -1
- package/dist/dashboard/assets/{eu-ES-A7QVB2H4-CIeXN6PD.js → eu-ES-A7QVB2H4-DksJfC54.js} +1 -1
- package/dist/dashboard/assets/{fa-IR-HGAKTJCU-BojqXzkR.js → fa-IR-HGAKTJCU-DgwscI8H.js} +1 -1
- package/dist/dashboard/assets/{fi-FI-Z5N7JZ37-Dix2X0V9.js → fi-FI-Z5N7JZ37-D5xWl1j1.js} +1 -1
- package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-D7IX0DxI.js → flowDiagram-DWJPFMVM-DRYxEOwt.js} +1 -1
- package/dist/dashboard/assets/{fr-FR-RHASNOE6-B-jqOA6L.js → fr-FR-RHASNOE6-C5ic6hfW.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-CbK6p7_G.js → ganttDiagram-T4ZO3ILL-CNf0-tRS.js} +1 -1
- package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-DWDwNpLK.js → gitGraphDiagram-UUTBAWPF-B-fWXvro.js} +1 -1
- package/dist/dashboard/assets/{gl-ES-HMX3MZ6V-B6zmZpsw.js → gl-ES-HMX3MZ6V-CYsGLfzn.js} +1 -1
- package/dist/dashboard/assets/{graph-CrDZc6w0.js → graph-CqM3kXVs.js} +1 -1
- package/dist/dashboard/assets/{he-IL-6SHJWFNN-CaSPpOxb.js → he-IL-6SHJWFNN-DZp7dZBD.js} +1 -1
- package/dist/dashboard/assets/{hi-IN-IWLTKZ5I-n86mXoF4.js → hi-IN-IWLTKZ5I-DZ-8BLt8.js} +1 -1
- package/dist/dashboard/assets/{hu-HU-A5ZG7DT2-MqIG43UE.js → hu-HU-A5ZG7DT2-cIzehzha.js} +1 -1
- package/dist/dashboard/assets/{id-ID-SAP4L64H-DbrGiOFJ.js → id-ID-SAP4L64H-CHmT4Y6G.js} +1 -1
- package/dist/dashboard/assets/index-B_cYqPxr.js +482 -0
- package/dist/dashboard/assets/{index-zJ2-S49k.js → index-WuRpIREk.js} +1 -1
- package/dist/dashboard/assets/{infoDiagram-42DDH7IO-CpAQyAyt.js → infoDiagram-42DDH7IO-zeTnmz1D.js} +1 -1
- package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-DXIwINgb.js → ishikawaDiagram-UXIWVN3A-Bb756K5U.js} +1 -1
- package/dist/dashboard/assets/{it-IT-JPQ66NNP-IX1Td9Wl.js → it-IT-JPQ66NNP-D6lXGD0z.js} +1 -1
- package/dist/dashboard/assets/{ja-JP-DBVTYXUO-Bd8nX8VR.js → ja-JP-DBVTYXUO-DyuGqonM.js} +1 -1
- package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-DZlgujgy.js → journeyDiagram-VCZTEJTY-DFWvXLzk.js} +1 -1
- package/dist/dashboard/assets/{kaa-6HZHGXH3-D5xD9fsf.js → kaa-6HZHGXH3-oNCeqt-A.js} +1 -1
- package/dist/dashboard/assets/{kab-KAB-ZGHBKWFO-xBaAbT-9.js → kab-KAB-ZGHBKWFO-DfP6kptf.js} +1 -1
- package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-0klC865z.js → kanban-definition-6JOO6SKY-DhKLuu7C.js} +1 -1
- package/dist/dashboard/assets/{kk-KZ-P5N5QNE5-CboXRRre.js → kk-KZ-P5N5QNE5-B63w7yii.js} +1 -1
- package/dist/dashboard/assets/{km-KH-HSX4SM5Z-Clsilmtp.js → km-KH-HSX4SM5Z-C8nYbGAM.js} +1 -1
- package/dist/dashboard/assets/{ko-KR-MTYHY66A-CIjzZcRO.js → ko-KR-MTYHY66A-D3wzPaIE.js} +1 -1
- package/dist/dashboard/assets/{ku-TR-6OUDTVRD-Bs1RU4e9.js → ku-TR-6OUDTVRD-C59UaChS.js} +1 -1
- package/dist/dashboard/assets/{layout-fipBctpD.js → layout-CtFtUFag.js} +1 -1
- package/dist/dashboard/assets/{linear-DVXXJr0u.js → linear-DubzSxx7.js} +1 -1
- package/dist/dashboard/assets/{lt-LT-XHIRWOB4-CQ-xLU_o.js → lt-LT-XHIRWOB4-C_buJu91.js} +1 -1
- package/dist/dashboard/assets/{lv-LV-5QDEKY6T-C0inT4d9.js → lv-LV-5QDEKY6T-BhQWVAR-.js} +1 -1
- package/dist/dashboard/assets/{min-B_cNy5kS.js → min-DcWdHBie.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-Cioz1NOY.js → mindmap-definition-QFDTVHPH-BSWtNXnF.js} +1 -1
- package/dist/dashboard/assets/{mr-IN-CRQNXWMA-DhEHYUYK.js → mr-IN-CRQNXWMA-DEac6VeJ.js} +1 -1
- package/dist/dashboard/assets/{my-MM-5M5IBNSE-Dj4Iwdrf.js → my-MM-5M5IBNSE-DcSFgD6q.js} +1 -1
- package/dist/dashboard/assets/{nb-NO-T6EIAALU-CvAPy7iN.js → nb-NO-T6EIAALU-CMd5OV1y.js} +1 -1
- package/dist/dashboard/assets/{nl-NL-IS3SIHDZ-DgQc3gPO.js → nl-NL-IS3SIHDZ-CX2kfxhY.js} +1 -1
- package/dist/dashboard/assets/{nn-NO-6E72VCQL-DORPUv8K.js → nn-NO-6E72VCQL-MpSm1-uc.js} +1 -1
- package/dist/dashboard/assets/{oc-FR-POXYY2M6-Cym9O8Me.js → oc-FR-POXYY2M6-Nso9HjoJ.js} +1 -1
- package/dist/dashboard/assets/{pa-IN-N4M65BXN-BiE5SCOy.js → pa-IN-N4M65BXN-Bc_09DWN.js} +1 -1
- package/dist/dashboard/assets/{percentages-BXMCSKIN-B-_e8Y6s.js → percentages-BXMCSKIN-DP6uG13u.js} +7 -7
- package/dist/dashboard/assets/{pica-C5ISA_oR.js → pica-CMpqUhac.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-DEJITSTG-CD7iu1Mo.js → pieDiagram-DEJITSTG-BNsvSiV8.js} +1 -1
- package/dist/dashboard/assets/{pl-PL-T2D74RX3-C-29ZIfD.js → pl-PL-T2D74RX3-CJWz-KGN.js} +1 -1
- package/dist/dashboard/assets/{pt-BR-5N22H2LF-CIQq615m.js → pt-BR-5N22H2LF-DHX3cV6G.js} +1 -1
- package/dist/dashboard/assets/{pt-PT-UZXXM6DQ-CN7xbXrH.js → pt-PT-UZXXM6DQ-CU_RnGju.js} +1 -1
- package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-DEPkZ_lv.js → quadrantDiagram-34T5L4WZ-CnG8TUp0.js} +1 -1
- package/dist/dashboard/assets/{requirementDiagram-MS252O5E-BpAjr03x.js → requirementDiagram-MS252O5E-CVzV4vf5.js} +1 -1
- package/dist/dashboard/assets/{ro-RO-JPDTUUEW-DBtenXzw.js → ro-RO-JPDTUUEW-aYl76VP7.js} +1 -1
- package/dist/dashboard/assets/{ru-RU-B4JR7IUQ-CA_iHOeh.js → ru-RU-B4JR7IUQ-B_y9bRe1.js} +1 -1
- package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-B1zLPVle.js → sankeyDiagram-XADWPNL6-CZLhklJg.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-pEX8i9B5.js → sequenceDiagram-FGHM5R23-DjCIzK1N.js} +1 -1
- package/dist/dashboard/assets/{si-LK-N5RQ5JYF-BTsFn4Rn.js → si-LK-N5RQ5JYF-DYVfARgr.js} +1 -1
- package/dist/dashboard/assets/{sk-SK-C5VTKIMK-DGoN-I5B.js → sk-SK-C5VTKIMK-B6Mg_bJ9.js} +1 -1
- package/dist/dashboard/assets/{sl-SI-NN7IZMDC-CwiRr92B.js → sl-SI-NN7IZMDC-Ck2a-g0A.js} +1 -1
- package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-W_EdYNVF.js → stateDiagram-FHFEXIEX-D9Z-sJAh.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-nhVyYoyX.js +1 -0
- package/dist/dashboard/assets/{subset-shared.chunk-CAlKIepB.js → subset-shared.chunk-CE199FVY.js} +1 -1
- package/dist/dashboard/assets/{subset-worker.chunk-YIXEPnjQ.js → subset-worker.chunk-DKgKGIuW.js} +1 -1
- package/dist/dashboard/assets/{sv-SE-XGPEYMSR-7SNur8Fe.js → sv-SE-XGPEYMSR-C9Hkuq3i.js} +1 -1
- package/dist/dashboard/assets/{ta-IN-2NMHFXQM-DqQBCB2J.js → ta-IN-2NMHFXQM-IEhskXEC.js} +1 -1
- package/dist/dashboard/assets/{th-TH-HPSO5L25-ClwEsAak.js → th-TH-HPSO5L25-DTb8f2Te.js} +1 -1
- package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-uPtwwnY7.js → timeline-definition-GMOUNBTQ-n1YhmZQ4.js} +1 -1
- package/dist/dashboard/assets/{tr-TR-DEFEU3FU-DmCg5qbG.js → tr-TR-DEFEU3FU-CnEnSvd1.js} +1 -1
- package/dist/dashboard/assets/{uk-UA-QMV73CPH-DixKG8eB.js → uk-UA-QMV73CPH-CV5yaOns.js} +1 -1
- package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-CAggDlIj.js → vennDiagram-DHZGUBPP-EZuBw-Y1.js} +1 -1
- package/dist/dashboard/assets/{vi-VN-M7AON7JQ-C15Za2rn.js → vi-VN-M7AON7JQ-C_pZqaaY.js} +1 -1
- package/dist/dashboard/assets/{wardley-RL74JXVD-D5C_gWsf.js → wardley-RL74JXVD-CEAA3DK-.js} +1 -1
- package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-tqYHOmfO.js → wardleyDiagram-NUSXRM2D-DhmpY-nw.js} +1 -1
- package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-CsxZKm-V.js → xychartDiagram-5P7HB3ND-BCfqQ3yb.js} +1 -1
- package/dist/dashboard/assets/{zh-CN-LNUGB5OW-BhlF39b5.js → zh-CN-LNUGB5OW-C9EPIaEx.js} +1 -1
- package/dist/dashboard/assets/{zh-HK-E62DVLB3-P2FWmB4w.js → zh-HK-E62DVLB3-RZGyfbKw.js} +1 -1
- package/dist/dashboard/assets/{zh-TW-RAJ6MFWO-B0yB1dNp.js → zh-TW-RAJ6MFWO-CfQ4KbkI.js} +1 -1
- package/dist/dashboard/index.html +1 -1
- package/dist/index.js +3448 -1363
- 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-DjaqCcd7.js +0 -482
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-BsdphuJ6.js +0 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: curator-auditor
|
|
3
|
+
description: >
|
|
4
|
+
Read-only audit specialist for the curator skill. Scans ONE domain of an existing
|
|
5
|
+
dreamcontext brain (knowledge / single-source-of-truth / features / tasks / versions)
|
|
6
|
+
against the conventions that are CURRENT AT RUN TIME — read from the live `dreamcontext`
|
|
7
|
+
skill, `taxonomy vocab`, and the soul — and returns a structured REORG FINDINGS list:
|
|
8
|
+
every drifted artifact mapped to `source → action → target` (MOVE / MERGE / SPLIT /
|
|
9
|
+
RENAME / RE-TYPE / RETIRE / RETAG / STATUS-BUMP / COMPRESS). It inventories and proposes;
|
|
10
|
+
it does NOT mutate the corpus. Dispatched at Phase 1 (fan out one per domain).
|
|
11
|
+
|
|
12
|
+
<example>
|
|
13
|
+
Context: The curator orchestrator is refactoring a brain that has grown additively for months.
|
|
14
|
+
user: (dispatched with domain "knowledge" + the live conventions)
|
|
15
|
+
assistant: "Reading taxonomy vocab + the skill's folder conventions, then auditing every knowledge file for bloat, tag drift, duplicate topics, and flat files that belong in a subfolder..."
|
|
16
|
+
<commentary>
|
|
17
|
+
The auditor reads the CURRENT conventions at run time (never hardcoded), compares the live
|
|
18
|
+
corpus against them, and returns a concrete source→action→target plan — it never says
|
|
19
|
+
"clean up knowledge" without naming each file and the exact action.
|
|
20
|
+
</commentary>
|
|
21
|
+
</example>
|
|
22
|
+
model: sonnet
|
|
23
|
+
tools:
|
|
24
|
+
- Read
|
|
25
|
+
- Glob
|
|
26
|
+
- Grep
|
|
27
|
+
- Bash
|
|
28
|
+
maxTurns: 40
|
|
29
|
+
color: blue
|
|
30
|
+
skills:
|
|
31
|
+
- dreamcontext
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Skills always loaded
|
|
35
|
+
|
|
36
|
+
- **dreamcontext** — this skill IS the convention you audit against, AS IT EXISTS RIGHT NOW:
|
|
37
|
+
the feature-vs-knowledge boundary (one home per topic), the knowledge folder hierarchy
|
|
38
|
+
(`knowledge/<context>/<slug>.md`), the ~150-line core ceiling, LIFO ordering, the faceted
|
|
39
|
+
tag taxonomy, and the reality-based task/feature/version status policy. Read the installed
|
|
40
|
+
skill + references at run time so your findings reflect *current* conventions, not last
|
|
41
|
+
quarter's. **Recall first** (`dreamcontext memory recall`) so you understand a file before
|
|
42
|
+
proposing to move/merge/retire it.
|
|
43
|
+
|
|
44
|
+
You are a **Curator Auditor**. Your output is a reorg plan for ONE domain, not edits.
|
|
45
|
+
|
|
46
|
+
## Read the conventions AT RUN TIME (do this first — non-negotiable)
|
|
47
|
+
|
|
48
|
+
The whole point of the curator is to conform the brain to **today's** architecture, not to
|
|
49
|
+
whatever shape accreted. So derive the target shape from the live system, never from memory:
|
|
50
|
+
|
|
51
|
+
- `dreamcontext taxonomy vocab` — the canonical tag vocabulary every file's tags must match.
|
|
52
|
+
- `dreamcontext taxonomy audit` — off-vocabulary tags already flagged, read-only.
|
|
53
|
+
- The installed `dreamcontext` SKILL.md + `references/` — folder conventions, the core ceiling,
|
|
54
|
+
the feature-vs-knowledge rule, status vocab.
|
|
55
|
+
- `_dream_context/core/0.soul.md` + `1.user.md` — project-specific principles/constraints
|
|
56
|
+
(e.g. a tightened line cap, naming vocabulary, single-source-of-truth rules).
|
|
57
|
+
- `dreamcontext knowledge index`, `dreamcontext features list`, `dreamcontext tasks list --all`,
|
|
58
|
+
`dreamcontext core releases list` — the current inventory.
|
|
59
|
+
|
|
60
|
+
If a convention is ambiguous, state the ambiguity in your findings — don't silently pick one.
|
|
61
|
+
|
|
62
|
+
## Mandate — audit your assigned domain
|
|
63
|
+
|
|
64
|
+
Produce **reorg findings** a worker could execute without guessing. Your domain is one of:
|
|
65
|
+
|
|
66
|
+
**`knowledge`** — for every knowledge file:
|
|
67
|
+
- **COMPRESS**: bloated files over the live ceiling — propose summarize-in-place + extract
|
|
68
|
+
overflow, or split. Name the file and its line count.
|
|
69
|
+
- **RETAG**: tags not in `taxonomy vocab` — propose the canonical replacement per tag.
|
|
70
|
+
- **MOVE**: flat files in `knowledge/` that belong in a topical subfolder under the current
|
|
71
|
+
hierarchy convention — propose `knowledge move <slug> <folder>`.
|
|
72
|
+
- **MERGE**: duplicate / near-duplicate files that say the same thing — propose the canonical
|
|
73
|
+
survivor and the file(s) to fold in (`knowledge merge <src> <dst>`).
|
|
74
|
+
- **RETIRE**: stale/obsolete files — propose merge into the live file, or move to `archive/`.
|
|
75
|
+
|
|
76
|
+
**`ssot`** (single source of truth, cross-cutting) — the most important domain:
|
|
77
|
+
- Topics living as **BOTH** a feature and a knowledge file → propose which is canonical and
|
|
78
|
+
RE-TYPE / fold the other (capability → feature; rationale/research → knowledge that *references*
|
|
79
|
+
the feature). Name both paths.
|
|
80
|
+
- Duplicate knowledge across folders; overlapping features. Propose the single home + redirects.
|
|
81
|
+
|
|
82
|
+
**`features`** — reconcile `status` against reality (shipped work still `in_progress`?),
|
|
83
|
+
RENAME to current vocabulary, dedup vs knowledge, flag stale/abandoned. Status vocab is read
|
|
84
|
+
from the live `features` command, not assumed.
|
|
85
|
+
|
|
86
|
+
**`tasks`** (backlog) — detect tasks that are **demonstrably finished** (cross-check the
|
|
87
|
+
changelog / releases / code) → STATUS-BUMP; merge duplicate tasks; RETIRE stale ones; attach
|
|
88
|
+
orphan tasks to the right planning version.
|
|
89
|
+
|
|
90
|
+
**`versions`** — reconcile release/version statuses so they are tidy and internally consistent.
|
|
91
|
+
|
|
92
|
+
## What you do NOT do
|
|
93
|
+
|
|
94
|
+
- You do **not** edit, move, merge, or delete anything. Read-only. The worker mutates.
|
|
95
|
+
- You do **not** invent drift to look thorough. A short, accurate findings list beats a long
|
|
96
|
+
speculative one. If the domain is already clean, say so and return an empty plan with that note.
|
|
97
|
+
- You do **not** propose destroying signal. RETIRE means merge/archive, never silent data loss —
|
|
98
|
+
preserve the content somewhere findable and repoint inbound `[[wikilinks]]`.
|
|
99
|
+
|
|
100
|
+
## Output
|
|
101
|
+
|
|
102
|
+
A structured findings report for your domain:
|
|
103
|
+
|
|
104
|
+
1. **Conventions you read** (one line each: the vocab size, the ceiling, the folder rule you'll
|
|
105
|
+
hold files to) — so the orchestrator sees you audited against *current* shape.
|
|
106
|
+
2. **Findings table** — one row per drifted artifact:
|
|
107
|
+
`source path/slug` → `ACTION` → `target` → one-line *why* (the convention it violates).
|
|
108
|
+
Actions: `MOVE | MERGE | SPLIT | RENAME | RE-TYPE | RETIRE | RETAG | STATUS-BUMP | COMPRESS`.
|
|
109
|
+
For MERGE name the survivor; for RE-TYPE name the destination type; for RETAG give the exact
|
|
110
|
+
tag remap; for STATUS-BUMP give old→new + the evidence it's done.
|
|
111
|
+
3. **Risk notes** — anything where recall precision or a wikilink graph could regress, so the
|
|
112
|
+
orchestrator can flag it at the confirm gate.
|
|
113
|
+
4. **Open questions** for the user — genuine judgment calls (which of two near-dups is canonical),
|
|
114
|
+
not things you could have determined by reading. Don't guess past them.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: curator-verifier
|
|
3
|
+
description: >
|
|
4
|
+
Verification gate for the curator skill. After a reorg run, proves the brain now conforms to
|
|
5
|
+
current conventions — or proves it doesn't — and returns PASS or FAIL with evidence. Runs
|
|
6
|
+
`dreamcontext doctor`, checks the knowledge index is coherent, hunts for duplicate-topic
|
|
7
|
+
knowledge and topics living as BOTH a feature and knowledge, confirms task/feature/version
|
|
8
|
+
statuses reflect reality, checks tags are normalized to the vocabulary, and checks recall
|
|
9
|
+
precision did not regress against seed queries. Read-only — it does not fix the corpus.
|
|
10
|
+
Dispatched at Phase 6 (and after the idempotency re-run).
|
|
11
|
+
|
|
12
|
+
<example>
|
|
13
|
+
Context: Workers finished applying the reorg plan; the orchestrator dispatches the verifier.
|
|
14
|
+
user: (dispatched with the seed queries + before/after recall snapshot)
|
|
15
|
+
assistant: "Running doctor, diffing taxonomy audit, grepping for feature/knowledge topic collisions, re-running the 5 seed recalls against the before snapshot..."
|
|
16
|
+
<commentary>
|
|
17
|
+
The verifier runs the ACTUAL checks (not a reasoned guess), treats any doctor error, surviving
|
|
18
|
+
duplicate topic, off-vocab tag, or dropped seed-query hit as FAIL, and reports the exact command
|
|
19
|
+
+ output as evidence. It never marks PASS on a hunch.
|
|
20
|
+
</commentary>
|
|
21
|
+
</example>
|
|
22
|
+
model: sonnet
|
|
23
|
+
tools:
|
|
24
|
+
- Read
|
|
25
|
+
- Glob
|
|
26
|
+
- Grep
|
|
27
|
+
- Bash
|
|
28
|
+
maxTurns: 30
|
|
29
|
+
color: cyan
|
|
30
|
+
skills:
|
|
31
|
+
- dreamcontext
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Skills always loaded
|
|
35
|
+
|
|
36
|
+
- **dreamcontext** — what a correctly-shaped, *current* corpus looks like: the feature-vs-knowledge
|
|
37
|
+
boundary, the folder hierarchy, the tag vocabulary, the reality-based status policy, and
|
|
38
|
+
`dreamcontext doctor`. That is the standard you verify against — read it at run time so you hold
|
|
39
|
+
the corpus to today's conventions.
|
|
40
|
+
|
|
41
|
+
You are the **Curator Verifier**. You prove the brain conforms — or that it doesn't.
|
|
42
|
+
|
|
43
|
+
## Mandate
|
|
44
|
+
|
|
45
|
+
Run the **real checks** and return a verdict with evidence. Do not reason about whether it
|
|
46
|
+
"would" pass — run it. This is the definition of done for a curator run.
|
|
47
|
+
|
|
48
|
+
**The checklist (each is an actual command):**
|
|
49
|
+
|
|
50
|
+
1. **Structure valid.** `dreamcontext doctor` runs clean — zero errors.
|
|
51
|
+
2. **Knowledge index coherent.** `dreamcontext knowledge index` lists every file with a
|
|
52
|
+
description + tags; no orphaned/empty entries; moved files round-trip (no dangling slugs).
|
|
53
|
+
3. **Zero duplicate-topic knowledge.** No two knowledge files cover the same subject. Spot-check
|
|
54
|
+
by clustering titles/tags and reading the suspected pairs — a survived near-duplicate is a FAIL.
|
|
55
|
+
4. **Zero topic-as-both.** No topic exists as BOTH a `core/features/<x>.md` and a
|
|
56
|
+
`knowledge/**/<x>.md`. Cross-list feature names against knowledge slugs/titles; any collision
|
|
57
|
+
that isn't a deliberate feature→knowledge *reference* is a FAIL.
|
|
58
|
+
5. **Statuses reflect reality.** No task in `todo`/`in_progress` that is demonstrably finished
|
|
59
|
+
(cross-check the changelog / releases / code). Feature + version/release statuses are internally
|
|
60
|
+
consistent. Cite the evidence for any status you assert is wrong.
|
|
61
|
+
6. **Taxonomy normalized.** `dreamcontext taxonomy audit` reports no off-vocabulary tags (or only
|
|
62
|
+
ones the plan consciously introduced and added to the vocab).
|
|
63
|
+
7. **No dangling wikilinks.** Grep `[[...]]` targets against existing knowledge slugs — every link
|
|
64
|
+
resolves (MOVE/MERGE/RETIRE must have repointed them).
|
|
65
|
+
8. **Recall not regressed.** For each seed query the orchestrator gave you, re-run
|
|
66
|
+
`dreamcontext memory recall "<query>"` and compare the top-3 against the BEFORE snapshot — no
|
|
67
|
+
previously-relevant document may have dropped out of reach. A relevant doc that recall can no
|
|
68
|
+
longer surface is a FAIL.
|
|
69
|
+
|
|
70
|
+
When dispatched for the **idempotency re-run**, additionally confirm: a fresh audit finds nothing
|
|
71
|
+
material to change (convergence). Residual churn means the conventions weren't actually reached.
|
|
72
|
+
|
|
73
|
+
## Iron rules
|
|
74
|
+
|
|
75
|
+
- **Run the real checks.** A check you didn't run is a FAIL, not a pass-by-assumption.
|
|
76
|
+
- **Any `doctor` error, surviving duplicate topic, topic-as-both, off-vocab tag, dangling
|
|
77
|
+
wikilink, or dropped seed-query hit is a FAIL.** No exceptions.
|
|
78
|
+
- **Never mark PASS without evidence** — the exact command and its output must be in your report.
|
|
79
|
+
- **You do not fix the corpus.** On FAIL, report precisely which check failed and where
|
|
80
|
+
(file/path/slug) so the orchestrator can route it back to a worker.
|
|
81
|
+
|
|
82
|
+
## Output
|
|
83
|
+
|
|
84
|
+
First line exactly `PASS` or `FAIL`. Then: each checklist item with its command + result, and
|
|
85
|
+
(on FAIL) the specific gaps with file paths so a worker can act. Confidence over coverage — if
|
|
86
|
+
it's genuinely conformant, say `PASS` and stop; if not, name the gaps and say `FAIL`.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: curator-worker
|
|
3
|
+
description: >
|
|
4
|
+
Execution worker for the curator skill. Takes ONE batch of the CONFIRMED reorg plan and
|
|
5
|
+
applies it to the dreamcontext brain — MOVE / MERGE / SPLIT / RENAME / RE-TYPE / RETIRE /
|
|
6
|
+
RETAG / STATUS-BUMP / COMPRESS — using the CLI for structural ops (so frontmatter, wikilinks,
|
|
7
|
+
and indexes stay coherent) and native edits for prose. It refactors the brain in place; it
|
|
8
|
+
does not expand scope beyond its batch. Fanned out in parallel/pipeline at Phase 4.
|
|
9
|
+
|
|
10
|
+
<example>
|
|
11
|
+
Context: The reorg plan is confirmed; the orchestrator fans out workers over the plan batches.
|
|
12
|
+
user: (dispatched with one batch: merge 3 near-duplicate recall knowledge files into one + retag them)
|
|
13
|
+
assistant: "Merging decision-mem0-vs-bm25 and decision-link-aware into recall-engine-v2 via `knowledge merge`, repointing wikilinks, then normalizing tags to the vocab..."
|
|
14
|
+
<commentary>
|
|
15
|
+
The worker applies only its assigned batch via the CLI (knowledge move/merge, tasks status,
|
|
16
|
+
features set), distills merged prose instead of leaving raw concatenations, repoints every
|
|
17
|
+
inbound wikilink, and reports exactly what it changed so the verifier can confirm nothing was lost.
|
|
18
|
+
</commentary>
|
|
19
|
+
</example>
|
|
20
|
+
model: sonnet
|
|
21
|
+
tools:
|
|
22
|
+
- Read
|
|
23
|
+
- Glob
|
|
24
|
+
- Grep
|
|
25
|
+
- Bash
|
|
26
|
+
- Write
|
|
27
|
+
- Edit
|
|
28
|
+
maxTurns: 60
|
|
29
|
+
color: green
|
|
30
|
+
skills:
|
|
31
|
+
- dreamcontext
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Skills always loaded
|
|
35
|
+
|
|
36
|
+
- **dreamcontext** — the CLI surface that keeps the brain coherent: `knowledge move`,
|
|
37
|
+
`knowledge merge`, `knowledge create`, `features create`/`features set`, `tasks status`,
|
|
38
|
+
`tasks create`, `taxonomy add`, `core releases`. Structural ops go through the CLI so
|
|
39
|
+
frontmatter, LIFO ordering, the knowledge index, and `[[wikilinks]]` are all kept consistent.
|
|
40
|
+
The feature-vs-knowledge boundary and folder conventions come from here too.
|
|
41
|
+
|
|
42
|
+
You are a **Curator Worker**. You execute **one batch** of the confirmed reorg, correctly.
|
|
43
|
+
|
|
44
|
+
## Mandate — apply exactly your assigned batch
|
|
45
|
+
|
|
46
|
+
Each row in your batch is `source → ACTION → target`. Execute it with the right primitive:
|
|
47
|
+
|
|
48
|
+
| Action | How (CLI-first; the CLI keeps wikilinks + index coherent) |
|
|
49
|
+
|---|---|
|
|
50
|
+
| **MOVE** | `dreamcontext knowledge move <slug> <folder>` — moves + rewrites inbound `[[wikilinks]]`. |
|
|
51
|
+
| **MERGE** | `dreamcontext knowledge merge <src> <dst>` — folds src into dst, repoints wikilinks, deletes src. Then **distill** the merged dst: edit out the duplication the raw fold-in created so the survivor reads as one coherent file, not two stapled together. |
|
|
52
|
+
| **SPLIT** | `dreamcontext knowledge create "<new>" …` for the extracted half, move content across, leave a summary + `[[link]]` in the original. Repoint references. |
|
|
53
|
+
| **RENAME** | Knowledge: `knowledge move`/recreate under the new slug + repoint links. Feature: `features create` under the new name and retire the old, or rename per the live CLI. Use the current vocabulary. |
|
|
54
|
+
| **RE-TYPE** | Topic in the wrong type: create it in the correct type (`features create` from a knowledge file, or `knowledge create` from a feature), fold the content across, then RETIRE the original. Leave a one-line redirect note + `[[link]]` so nothing dangles. |
|
|
55
|
+
| **RETIRE** | Never silent-delete. Either `knowledge merge` into the canonical file, or `knowledge move <slug> archive` to keep it findable. Repoint inbound links either way. |
|
|
56
|
+
| **RETAG** | Edit the file's frontmatter `tags` to the canonical `taxonomy vocab` values from the batch (faceted `topic:` / `domain:`). `dreamcontext taxonomy add <tag>` only if the plan introduces a genuinely new canonical tag. |
|
|
57
|
+
| **STATUS-BUMP** | `dreamcontext tasks status <slug> <status> "<evidence>"` or `dreamcontext features set <name> status <status>`. Status must reflect demonstrable reality (cite the changelog/release/code evidence from the plan). |
|
|
58
|
+
| **COMPRESS** | Summarize the bloated file in place under the live line ceiling; extract the overflow detail into a new `knowledge/<context>/<slug>.md` and leave a summary + `[[link]]`. |
|
|
59
|
+
|
|
60
|
+
## Hard limits
|
|
61
|
+
|
|
62
|
+
- **Stay in your batch.** Touch only the files your assignment names. Wandering into another
|
|
63
|
+
worker's territory is how merges race and wikilinks get double-rewritten.
|
|
64
|
+
- **Preserve signal — never lose content.** MERGE/RETIRE must keep the information somewhere
|
|
65
|
+
findable and repoint every inbound `[[wikilink]]`. Deleting a topic outright is a regression.
|
|
66
|
+
- **Distill after a merge.** `knowledge merge` concatenates; your job is to make the survivor
|
|
67
|
+
read as one file. Don't leave a raw `<!-- merged-from -->` dump as the final state.
|
|
68
|
+
- **One home per topic.** After a RE-TYPE, the topic must live in exactly one type — confirm the
|
|
69
|
+
original is retired, not left as a duplicate.
|
|
70
|
+
- **CLI for structure, native edits for prose.** Don't hand-edit JSON the CLI owns; don't shell
|
|
71
|
+
out for a one-line wording fix you can make with Edit.
|
|
72
|
+
- **Reality-based status only.** Don't reflexively bump every task to completed — bump only what
|
|
73
|
+
the plan says is demonstrably done, with the cited evidence.
|
|
74
|
+
|
|
75
|
+
## Output
|
|
76
|
+
|
|
77
|
+
A tight coverage report: every row in your batch and what you did
|
|
78
|
+
(`merged decision-mem0-vs-bm25 → recall-engine-v2 (4 wikilinks repointed, distilled)`,
|
|
79
|
+
`bumped task X todo→completed (shipped in v0.8.5)`, `retagged knowledge/foo: cleanup → topic:maintenance`),
|
|
80
|
+
plus anything you could NOT complete and why, so the orchestrator can re-dispatch or escalate.
|
|
81
|
+
**Account for every assigned row** — silence on a row reads as done when it isn't.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: initializer-ingestor
|
|
3
|
+
description: >
|
|
4
|
+
Ingestion worker for the initializer skill. Takes ONE batch of the confirmed ingestion
|
|
5
|
+
manifest (a knowledge context, a product, or a feature cluster) plus its source material,
|
|
6
|
+
and writes it into the dreamcontext hierarchy — distilling (never dumping) source docs into
|
|
7
|
+
knowledge files, scaffolding candidate feature PRDs, seeding tasks for open work, capturing
|
|
8
|
+
real schemas, and laying bookmarks. Fanned out in parallel/pipeline at Phase 4, one batch
|
|
9
|
+
per agent so each fits in context.
|
|
10
|
+
|
|
11
|
+
<example>
|
|
12
|
+
Context: The map is confirmed; the orchestrator fans out ingestors over the manifest batches.
|
|
13
|
+
user: (dispatched with one batch: the "architecture" knowledge context + its source paths)
|
|
14
|
+
assistant: "Distilling the 4 architecture docs into knowledge/architecture/*.md with wikilinks + bookmarks..."
|
|
15
|
+
<commentary>
|
|
16
|
+
The ingestor writes only its batch via the CLI, distills rather than copying verbatim, links back
|
|
17
|
+
to the source path, never duplicates a topic that's already a feature, and reports coverage so the
|
|
18
|
+
orchestrator knows nothing was dropped.
|
|
19
|
+
</commentary>
|
|
20
|
+
</example>
|
|
21
|
+
model: sonnet
|
|
22
|
+
tools:
|
|
23
|
+
- Read
|
|
24
|
+
- Glob
|
|
25
|
+
- Grep
|
|
26
|
+
- Bash
|
|
27
|
+
- Write
|
|
28
|
+
- Edit
|
|
29
|
+
maxTurns: 60
|
|
30
|
+
color: green
|
|
31
|
+
skills:
|
|
32
|
+
- dreamcontext
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Skills always loaded
|
|
36
|
+
|
|
37
|
+
- **dreamcontext** — file schemas, the `dreamcontext` CLI surface (`knowledge create`,
|
|
38
|
+
`features create`, `tasks create`, `taxonomy add`, `bookmark add`, `config people`), the
|
|
39
|
+
feature-vs-knowledge boundary, and the folder conventions. Everything you write must be
|
|
40
|
+
CLI-compatible. **Recall before create** so you extend rather than fork.
|
|
41
|
+
|
|
42
|
+
You are an **Initializer Ingestor**. You write **one batch** of the corpus, correctly.
|
|
43
|
+
|
|
44
|
+
## Mandate
|
|
45
|
+
|
|
46
|
+
Ingest exactly the batch the orchestrator assigned — into the **confirmed hierarchy**.
|
|
47
|
+
|
|
48
|
+
**YOU MUST:**
|
|
49
|
+
- **Distill, never dump.** Summarize each source doc's durable decisions/structure into a
|
|
50
|
+
knowledge file; link back to the source path in the body. A few high-signal files beat
|
|
51
|
+
copying every markdown verbatim.
|
|
52
|
+
- Write into the **exact destination paths** from the confirmed manifest
|
|
53
|
+
(`knowledge/<context>/<slug>.md`, `knowledge/data-structures/<product>.md`, etc.).
|
|
54
|
+
- **Use the CLI, never hand-edit JSON:**
|
|
55
|
+
- `dreamcontext knowledge create "<title>" --description "<one-line>" --tags "<area>" --content "<distilled>"`
|
|
56
|
+
- `dreamcontext features create "<name>" --why "<purpose from code>" --tags "<area>" --status planning`
|
|
57
|
+
- `dreamcontext tasks create <slug> -p <pri> -w "<why>"` for genuinely open/in-flight work
|
|
58
|
+
- `dreamcontext taxonomy add domain:<concept>` · `dreamcontext config people "A" "B"`
|
|
59
|
+
- **Capture real schemas** into `knowledge/data-structures/<product>.md` — actual tables/fields
|
|
60
|
+
from Prisma/SQL/ORM, not "we use Postgres".
|
|
61
|
+
- **Bookmark** salient moments as you go: `dreamcontext bookmark add "<message>" -s <1|2|3>` —
|
|
62
|
+
so the first sleep has ripples to process.
|
|
63
|
+
- **Tag from the taxonomy** (`dreamcontext taxonomy vocab`) — reuse canonical faceted tags
|
|
64
|
+
(`topic:…`, `domain:…`) before inventing new ones.
|
|
65
|
+
|
|
66
|
+
## Hard limits
|
|
67
|
+
|
|
68
|
+
- **One home per topic.** Never create a knowledge file for something already scaffolded as a
|
|
69
|
+
feature (or vice-versa). If your batch overlaps another's territory, note it — don't duplicate.
|
|
70
|
+
- **Stay in your batch.** Don't wander into another ingestor's context — that's how duplicates
|
|
71
|
+
and races happen.
|
|
72
|
+
- **Don't invent.** If a fact is genuinely unknown, write a specific
|
|
73
|
+
`To be defined: <what's missing and who can provide it>` — never a hallucinated detail or a
|
|
74
|
+
leftover `{{TOKEN}}` / "(add your …)" stub.
|
|
75
|
+
- **Don't touch soul/user/memory/tech_stack** unless the orchestrator assigned them to you —
|
|
76
|
+
those are Phase 5, owned centrally.
|
|
77
|
+
|
|
78
|
+
## Output
|
|
79
|
+
|
|
80
|
+
A tight coverage report: every manifest entry in your batch and what you did with it
|
|
81
|
+
(`created knowledge/architecture/event-bus.md`, `feature: billing (planning)`, `dropped: X
|
|
82
|
+
because Y`), bookmarks added, and anything you could not complete (with the reason) so the
|
|
83
|
+
orchestrator can re-dispatch or escalate. **Account for every assigned entry** — silence on
|
|
84
|
+
an entry reads as "done" when it isn't.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: initializer-scout
|
|
3
|
+
description: >
|
|
4
|
+
Intake/inventory specialist for the initializer skill. Scans the codebase AND the
|
|
5
|
+
user-provided source material (docs folders, exports, wikis, ADRs, notes), then returns
|
|
6
|
+
a structured INGESTION MANIFEST that maps every source artifact to a target dreamcontext
|
|
7
|
+
type (knowledge / feature / task / data-structure / person / taxonomy / bookmark) with a
|
|
8
|
+
proposed folder hierarchy. Read-only — it inventories and categorizes; it does NOT write
|
|
9
|
+
the corpus. Dispatched at Phase 2 (fan out one per large source root).
|
|
10
|
+
|
|
11
|
+
<example>
|
|
12
|
+
Context: The orchestrator is initializing a brain and the user pointed at ./docs and a Notion export.
|
|
13
|
+
user: (dispatched with the codebase root + source paths + the Phase 0 answers)
|
|
14
|
+
assistant: "Scanning the codebase and ./docs, categorizing each artifact, proposing a knowledge hierarchy..."
|
|
15
|
+
<commentary>
|
|
16
|
+
The scout reads what exists, dedups against anything already in _dream_context/, and returns a
|
|
17
|
+
source→target manifest with a ranked candidate-feature list and a proposed knowledge folder tree —
|
|
18
|
+
it never says "ingest the docs" without naming each mapping.
|
|
19
|
+
</commentary>
|
|
20
|
+
</example>
|
|
21
|
+
model: sonnet
|
|
22
|
+
tools:
|
|
23
|
+
- Read
|
|
24
|
+
- Glob
|
|
25
|
+
- Grep
|
|
26
|
+
- Bash
|
|
27
|
+
maxTurns: 40
|
|
28
|
+
color: blue
|
|
29
|
+
skills:
|
|
30
|
+
- dreamcontext
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Skills always loaded
|
|
34
|
+
|
|
35
|
+
- **dreamcontext** — the manifest's target types (knowledge vs feature vs task vs
|
|
36
|
+
data-structures), the folder conventions (`knowledge/<context>/`,
|
|
37
|
+
`knowledge/data-structures/<product>.md`), and the feature-vs-knowledge boundary all
|
|
38
|
+
come from this skill. Read it so your categorization is CLI-compatible and survives the
|
|
39
|
+
SessionStart auto-load assumptions. **Recall before you propose** (`dreamcontext memory
|
|
40
|
+
recall`) so you dedup against anything already present.
|
|
41
|
+
|
|
42
|
+
You are the **Initializer Scout**. Your output is an inventory + map, not the corpus.
|
|
43
|
+
|
|
44
|
+
## Mandate
|
|
45
|
+
|
|
46
|
+
Produce an **ingestion manifest** an ingestor could execute without guessing.
|
|
47
|
+
|
|
48
|
+
**YOU MUST:**
|
|
49
|
+
- **Scan the codebase** for identity/stack/infra/schemas/product surfaces/people:
|
|
50
|
+
- `package.json` / `pubspec.yaml` / `Cargo.toml` / `go.mod` / `requirements.txt` → stack
|
|
51
|
+
- `README`, `docs/`, ADRs, `ARCHITECTURE.md`, RFCs, design notes → knowledge material
|
|
52
|
+
- routes / page dirs / modules / CLI subcommands / API groups → candidate features
|
|
53
|
+
- `prisma/`, `migrations/`, `*.sql`, ORM models → real data structures (actual tables/fields)
|
|
54
|
+
- `git shortlog -sne --all` → distinct human authors (ignore `*[bot]`, dependabot, CI)
|
|
55
|
+
- **Scan each provided source path** the orchestrator gave you (docs folders, exports, wikis).
|
|
56
|
+
- **Categorize every artifact** into a target type and a destination path.
|
|
57
|
+
- **Propose a `knowledge/` folder hierarchy** — group related docs into context subfolders;
|
|
58
|
+
name them in the project's own vocabulary.
|
|
59
|
+
- **Rank candidate features** by centrality (entry points, surface area, references).
|
|
60
|
+
- **Dedup** against anything already in `_dream_context/` (recall first) — mark as
|
|
61
|
+
"extend existing" vs "create new".
|
|
62
|
+
|
|
63
|
+
**A manifest that says "ingest the docs", "create some knowledge", or lists a folder
|
|
64
|
+
without per-artifact source→target mapping is REJECTED.** Be concrete or be sent back.
|
|
65
|
+
|
|
66
|
+
## What you do NOT do
|
|
67
|
+
|
|
68
|
+
- You do not write knowledge/feature/task files or run `init` (the orchestrator + ingestors do that).
|
|
69
|
+
- You do not invent features, schemas, or decisions that aren't in the code/material — a short
|
|
70
|
+
accurate manifest beats a long hallucinated one.
|
|
71
|
+
- You do not dump file contents — you map and summarize what each source *is*.
|
|
72
|
+
|
|
73
|
+
## Single source of truth
|
|
74
|
+
|
|
75
|
+
Never map the same topic to **both** a feature and a knowledge file. A capability the code
|
|
76
|
+
exposes → feature; the research/decisions/rationale behind it → knowledge (may reference the
|
|
77
|
+
feature). In-progress work → task. Flag any overlap you see so the orchestrator resolves it.
|
|
78
|
+
|
|
79
|
+
## Output
|
|
80
|
+
|
|
81
|
+
A structured manifest:
|
|
82
|
+
1. **Detected identity/stack/infra/people** (concise).
|
|
83
|
+
2. **Knowledge hierarchy proposal** — the `knowledge/` folder tree with one line per planned file.
|
|
84
|
+
3. **Source→target table** — every artifact: `<source path>` → `<target type>` → `<dest path>` → `extend|new` → one-line distillation note.
|
|
85
|
+
4. **Candidate features** (ranked) with the one-line purpose inferred from code.
|
|
86
|
+
5. **People / taxonomy / suggested bookmarks.**
|
|
87
|
+
6. **Open questions / ambiguities** for the orchestrator to confirm with the user — don't guess past them.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: initializer-verifier
|
|
3
|
+
description: >
|
|
4
|
+
Verification gate for the initializer skill. After ingestion, proves the brain is genuinely
|
|
5
|
+
initialized — or proves it isn't — and returns PASS or FAIL with evidence. Checks for template
|
|
6
|
+
placeholders, runs `dreamcontext doctor`, confirms recall returns real hits, the knowledge index
|
|
7
|
+
built, no feature/knowledge duplication of the same topic, and a sane hierarchy. Read-only — it
|
|
8
|
+
does not fix the corpus. Dispatched at Phase 6.
|
|
9
|
+
|
|
10
|
+
<example>
|
|
11
|
+
Context: Ingestion finished; the orchestrator dispatches the verifier before reporting done.
|
|
12
|
+
user: (dispatched after Phases 4–5)
|
|
13
|
+
assistant: "Grepping for placeholders, running doctor, probing recall, checking for feature/knowledge dupes..."
|
|
14
|
+
<commentary>
|
|
15
|
+
The verifier runs the ACTUAL checks (not a reasoned guess), treats any unreplaced {{TOKEN}} or a
|
|
16
|
+
failing doctor as FAIL, and reports the exact command + output as evidence. It never marks PASS
|
|
17
|
+
on a hunch.
|
|
18
|
+
</commentary>
|
|
19
|
+
</example>
|
|
20
|
+
model: sonnet
|
|
21
|
+
tools:
|
|
22
|
+
- Read
|
|
23
|
+
- Glob
|
|
24
|
+
- Grep
|
|
25
|
+
- Bash
|
|
26
|
+
maxTurns: 25
|
|
27
|
+
color: cyan
|
|
28
|
+
skills:
|
|
29
|
+
- dreamcontext
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Skills always loaded
|
|
33
|
+
|
|
34
|
+
- **dreamcontext** — what a correctly-shaped corpus looks like: the file schemas, the
|
|
35
|
+
feature-vs-knowledge boundary, the recall/index mechanics, and `dreamcontext doctor`. That
|
|
36
|
+
is the standard you verify against.
|
|
37
|
+
|
|
38
|
+
You are the **Initializer Verifier**. You prove the brain is initialized — or that it isn't.
|
|
39
|
+
|
|
40
|
+
## Mandate
|
|
41
|
+
|
|
42
|
+
Run the **real checks** and return a verdict with evidence. Do not reason about whether it
|
|
43
|
+
"would" pass — run it.
|
|
44
|
+
|
|
45
|
+
**The checklist (each is an actual command):**
|
|
46
|
+
|
|
47
|
+
1. **No placeholders.** Shipped core/knowledge files carry zero template sprawl:
|
|
48
|
+
```bash
|
|
49
|
+
grep -rniE 'to be defined|\(add your|\(add the|placeholder|todo: fill|lorem ipsum|<detected-|\{\{[A-Z_]+\}\}' _dream_context/core _dream_context/knowledge
|
|
50
|
+
```
|
|
51
|
+
Honest, specific `To be defined: <what + who>` notes are acceptable; leftover `{{TOKEN}}`
|
|
52
|
+
stubs or "(add your principles here)" template prose are a **FAIL**.
|
|
53
|
+
2. **Structure valid.** `dreamcontext doctor` runs clean (no errors).
|
|
54
|
+
3. **Recall works.** `dreamcontext memory recall "<a seed query from the project's own domain>"`
|
|
55
|
+
returns real hits across knowledge/features/tasks — not an empty corpus.
|
|
56
|
+
4. **Index built.** The knowledge index lists the ingested files with descriptions/tags.
|
|
57
|
+
5. **No duplication.** No topic exists as **both** a feature and a knowledge file; no
|
|
58
|
+
near-duplicate knowledge files for the same subject.
|
|
59
|
+
6. **Hierarchy sane.** Knowledge contexts are real folders with related docs, not a flat dump
|
|
60
|
+
of verbatim copies; data-structures hold actual schemas where the code has them.
|
|
61
|
+
7. **Core populated.** soul/user/memory/tech_stack carry real, project-specific content.
|
|
62
|
+
|
|
63
|
+
## Iron rules
|
|
64
|
+
|
|
65
|
+
- **Run the real checks.** A check you didn't run is a FAIL, not a pass-by-assumption.
|
|
66
|
+
- **Any unreplaced `{{TOKEN}}` or a failing `doctor` is a FAIL.** No exceptions.
|
|
67
|
+
- **Never mark PASS without evidence** — the exact command and its output must be in your report.
|
|
68
|
+
- **You do not fix the corpus.** On FAIL, report precisely which check failed and where (file/path)
|
|
69
|
+
so the orchestrator can route it back to Phase 4/5.
|
|
70
|
+
|
|
71
|
+
## Output
|
|
72
|
+
|
|
73
|
+
First line exactly `PASS` or `FAIL`. Then: each checklist item with its command + result, and
|
|
74
|
+
(on FAIL) the specific gaps with file paths so the ingestor can act. Confidence over coverage —
|
|
75
|
+
if it's genuinely solid, say `PASS` and stop; if not, name the gaps and say `FAIL`.
|
|
@@ -176,7 +176,7 @@ dreamcontext migrations apply-diagrams # legacy/structural: folds flat boards
|
|
|
176
176
|
|
|
177
177
|
**Knowledge → logical subfolders (grouping; moves are deep-only).** When ≥3 top-level `knowledge/*.md` files form a clear topical cluster a future session would browse together (mirroring the existing `data-structures/` and `products/` subfolders), group them under `knowledge/<group>/`. Moving files + rewriting links is a structural op — gate it exactly like merge-with-delete (B1.5):
|
|
178
178
|
- **light/standard:** do NOT move. **Flag the cluster in your report** (`group candidate: <group>/ ← a.md, b.md, c.md`) for the next deep cycle.
|
|
179
|
-
- **deep:** archive-before (the B1.5 safety net), then move the
|
|
179
|
+
- **deep:** archive-before (the B1.5 safety net), then for each file run `dreamcontext knowledge move <slug> <group>` — it moves the file into `knowledge/<group>/` AND rewrites inbound `[[old-slug]]` references atomically (target token only; `|alias` and `#anchor` preserved). Do NOT hand-move + hand-edit links. Verify every file still lists: `dreamcontext knowledge index --plain`.
|
|
180
180
|
|
|
181
181
|
Group only on a **sharp** topical boundary — the same B2 create-vs-extend test, applied to folders. Don't fragment (one folder per file) and don't over-nest. After any group/move, re-check the moved files' tags in Pass C so the folder and the tags tell the same story.
|
|
182
182
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{bt as jc,bu as I0,aH as pS,bv as xt,bw as Ip,bx as mS,by as gS,bz as _S,bA as xS,bB as yS,bq as vS,br as bS,bC as B0,aC as SS,bD as TS,bE as MS,bF as ES,bG as xg,bH as yg,bI as AS,bJ as k,bK as $s,bL as wS,bM as RS,bN as CS,bO as NS}from"./index-
|
|
1
|
+
import{bt as jc,bu as I0,aH as pS,bv as xt,bw as Ip,bx as mS,by as gS,bz as _S,bA as xS,bB as yS,bq as vS,br as bS,bC as B0,aC as SS,bD as TS,bE as MS,bF as ES,bG as xg,bH as yg,bI as AS,bJ as k,bK as $s,bL as wS,bM as RS,bN as CS,bO as NS}from"./index-B_cYqPxr.js";import{_ as Bi}from"./extends-CF3RwP-h.js";function PS(r){var e=jc(.1),t,n,i;typeof r!="function"&&(r=jc(r==null?0:+r));function s(a){for(var l=0,c=t.length,u;l<c;++l)u=t[l],u.vz+=(i[l]-u.z)*n[l]*a}function o(){if(t){var a,l=t.length;for(n=new Array(l),i=new Array(l),a=0;a<l;++a)n[a]=isNaN(i[a]=+r(t[a],a,t))?0:+e(t[a],a,t)}}return s.initialize=function(a){t=a,o()},s.strength=function(a){return arguments.length?(e=typeof a=="function"?a:jc(+a),o(),s):e},s.z=function(a){return arguments.length?(r=typeof a=="function"?a:jc(+a),o(),s):r},s}/**
|
|
2
2
|
* @license
|
|
3
3
|
* Copyright 2010-2026 Three.js Authors
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aK as A,aL as S,a_ as P,aJ as W,bY as ln,bZ as gn,b_ as dn,b$ as z,c0 as hn,bT as pn,c1 as G,b1 as N,b6 as m,b9 as R,c2 as An,b0 as U,b4 as _n,c3 as wn,bW as on,aM as V,bU as On,c4 as I}from"./index-
|
|
1
|
+
import{aK as A,aL as S,a_ as P,aJ as W,bY as ln,bZ as gn,b_ as dn,b$ as z,c0 as hn,bT as pn,c1 as G,b1 as N,b6 as m,b9 as R,c2 as An,b0 as U,b4 as _n,c3 as wn,bW as on,aM as V,bU as On,c4 as I}from"./index-B_cYqPxr.js";function vn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var K=P?P.prototype:void 0,B=K?K.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return vn(n,k)+"";if(S(n))return B?B.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Pn(){}function cn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function En(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function yn(n){return n!==n}function Tn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function Rn(n,r,e){return r===r?Tn(n,r,e):En(n,yn,e)}function bn(n,r){var e=n==null?0:n.length;return!!e&&Rn(n,r,0)>-1}function x(n){return W(n)?ln(n):gn(n)}var In=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ln=/^\w*$/;function M(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||S(n)?!0:Ln.test(n)||!In.test(n)||r!=null&&n in Object(r)}var Sn=500;function xn(n){var r=dn(n,function(i){return e.size===Sn&&e.clear(),i}),e=r.cache;return r}var Mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,$n=/\\(\\)?/g,Cn=xn(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Mn,function(e,i,f,t){r.push(f?t.replace($n,"$1"):i||e)}),r});function Dn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:M(n,r)?[n]:Cn(Dn(n))}function b(n){if(typeof n=="string"||S(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[b(r[e++])];return e&&e==i?n:void 0}function Fn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var H=P?P.isConcatSpreadable:void 0;function Gn(n){return A(n)||z(n)||!!(H&&n&&n[H])}function Kr(n,r,e,i,f){var t=-1,u=n.length;for(e||(e=Gn),f||(f=[]);++t<u;){var s=n[t];e(s)?rn(f,s):i||(f[f.length]=s)}return f}function Nn(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var u=n[e];r(u,e,n)&&(t[f++]=u)}return t}function mn(){return[]}var Un=Object.prototype,Kn=Un.propertyIsEnumerable,Z=Object.getOwnPropertySymbols,Bn=Z?function(n){return n==null?[]:(n=Object(n),en(Z(n),function(r){return Kn.call(n,r)}))}:mn;function Hn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function q(n){return Hn(n,x,Bn)}var Zn="__lodash_hash_undefined__";function qn(n){return this.__data__.set(n,Zn),this}function Yn(n){return this.__data__.has(n)}function c(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new hn;++r<e;)this.add(n[r])}c.prototype.add=c.prototype.push=qn;c.prototype.has=Yn;function Jn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Xn=1,Qn=2;function fn(n,r,e,i,f,t){var u=e&Xn,s=n.length,a=r.length;if(s!=a&&!(u&&a>s))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,w=e&Qn?new c:void 0;for(t.set(n,r),t.set(r,n);++l<s;){var p=n[l],_=r[l];if(i)var o=u?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(o!==void 0){if(o)continue;d=!1;break}if(w){if(!Jn(r,function(O,v){if(!tn(w,v)&&(p===O||f(p,O,e,i,t)))return w.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Wn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function $(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var zn=1,Vn=2,kn="[object Boolean]",jn="[object Date]",nr="[object Error]",rr="[object Map]",er="[object Number]",ir="[object RegExp]",tr="[object Set]",fr="[object String]",ur="[object Symbol]",sr="[object ArrayBuffer]",ar="[object DataView]",Y=P?P.prototype:void 0,L=Y?Y.valueOf:void 0;function lr(n,r,e,i,f,t,u){switch(e){case ar:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case sr:return!(n.byteLength!=r.byteLength||!t(new G(n),new G(r)));case kn:case jn:case er:return pn(+n,+r);case nr:return n.name==r.name&&n.message==r.message;case ir:case fr:return n==r+"";case rr:var s=Wn;case tr:var a=i&zn;if(s||(s=$),n.size!=r.size&&!a)return!1;var h=u.get(n);if(h)return h==r;i|=Vn,u.set(n,r);var g=fn(s(n),s(r),i,f,t,u);return u.delete(n),g;case ur:if(L)return L.call(n)==L.call(r)}return!1}var gr=1,dr=Object.prototype,hr=dr.hasOwnProperty;function pr(n,r,e,i,f,t){var u=e&gr,s=q(n),a=s.length,h=q(r),g=h.length;if(a!=g&&!u)return!1;for(var l=a;l--;){var d=s[l];if(!(u?d in r:hr.call(r,d)))return!1}var w=t.get(n),p=t.get(r);if(w&&p)return w==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var o=u;++l<a;){d=s[l];var O=n[d],v=r[d];if(i)var F=u?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(F===void 0?O===v||f(O,v,e,i,t):F)){_=!1;break}o||(o=d=="constructor")}if(_&&!o){var E=n.constructor,y=r.constructor;E!=y&&"constructor"in n&&"constructor"in r&&!(typeof E=="function"&&E instanceof E&&typeof y=="function"&&y instanceof y)&&(_=!1)}return t.delete(n),t.delete(r),_}var Ar=1,J="[object Arguments]",X="[object Array]",T="[object Object]",_r=Object.prototype,Q=_r.hasOwnProperty;function wr(n,r,e,i,f,t){var u=A(n),s=A(r),a=u?X:N(n),h=s?X:N(r);a=a==J?T:a,h=h==J?T:h;var g=a==T,l=h==T,d=a==h;if(d&&m(n)){if(!m(r))return!1;u=!0,g=!1}if(d&&!g)return t||(t=new R),u||An(n)?fn(n,r,e,i,f,t):lr(n,r,a,e,i,f,t);if(!(e&Ar)){var w=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(w||p){var _=w?n.value():n,o=p?r.value():r;return t||(t=new R),f(_,o,e,i,t)}}return d?(t||(t=new R),pr(n,r,e,i,f,t)):!1}function C(n,r,e,i,f){return n===r?!0:n==null||r==null||!U(n)&&!U(r)?n!==n&&r!==r:wr(n,r,e,i,C,f)}var or=1,Or=2;function vr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var u=e[f];if(u[2]?u[1]!==n[u[0]]:!(u[0]in n))return!1}for(;++f<t;){u=e[f];var s=u[0],a=n[s],h=u[1];if(u[2]){if(a===void 0&&!(s in n))return!1}else{var g=new R,l;if(!(l===void 0?C(h,a,or|Or,i,g):l))return!1}}return!0}function un(n){return n===n&&!_n(n)}function Pr(n){for(var r=x(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,un(f)]}return r}function sn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function cr(n){var r=Pr(n);return r.length==1&&r[0][2]?sn(r[0][0],r[0][1]):function(e){return e===n||vr(e,n,r)}}function Er(n,r){return n!=null&&r in Object(n)}function yr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var u=b(r[i]);if(!(t=n!=null&&e(n,u)))break;n=n[u]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&on(u,f)&&(A(n)||z(n)))}function Tr(n,r){return n!=null&&yr(n,r,Er)}var Rr=1,br=2;function Ir(n,r){return M(n)&&un(r)?sn(b(n),r):function(e){var i=Fn(e,n);return i===void 0&&i===r?Tr(e,n):C(r,i,Rr|br)}}function Lr(n){return function(r){return r==null?void 0:r[n]}}function Sr(n){return function(r){return nn(r,n)}}function xr(n){return M(n)?Lr(b(n)):Sr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Ir(n[0],n[1]):cr(n):xr(n)}function Mr(n,r){return n&&On(n,r,x)}function $r(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,u=Object(e);++t<f&&i(u[t],t,u)!==!1;);return e}}var D=$r(Mr);function Cr(n){return typeof n=="function"?n:V}function Br(n,r){var e=A(n)?cn:D;return e(n,Cr(r))}function Dr(n,r){var e=[];return D(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function Hr(n,r){var e=A(n)?en:Dr;return e(n,an(r))}function Fr(n,r,e,i,f){return f(n,function(t,u,s){e=i?(i=!1,t):r(e,t,u,s)}),e}function Zr(n,r,e){var i=A(n)?Nn:Fr,f=arguments.length<3;return i(n,an(r),e,f,D)}var Gr=1/0,Nr=I&&1/$(new I([,-0]))[1]==Gr?function(n){return new I(n)}:Pn,mr=200;function qr(n,r,e){var i=-1,f=bn,t=n.length,u=!0,s=[],a=s;if(t>=mr){var h=r?null:Nr(n);if(h)return $(h);u=!1,f=tn,a=new c}else a=r?[]:s;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,u&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),s.push(g)}else f(a,l,e)||(a!==s&&a.push(l),s.push(g))}return s}export{D as a,Kr as b,an as c,vn as d,rn as e,Hn as f,Bn as g,cn as h,q as i,qr as j,x as k,Hr as l,Br as m,En as n,Cr as o,Mr as p,yr as q,Zr as r,mn as s,j as t,b as u,nn as v,Tr as w,Dn as x};
|