@goondocks/myco 0.14.4 → 0.15.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/dist/{agent-run-GZ5UVLDV.js → agent-run-DUOJ3KDI.js} +6 -6
- package/dist/{agent-tasks-KKQ2GBBB.js → agent-tasks-LUWBY5JD.js} +6 -6
- package/dist/{chunk-X34OFKYU.js → chunk-23FJUKCN.js} +2 -2
- package/dist/{chunk-KNTJOMWY.js → chunk-3MEOYXOW.js} +2 -2
- package/dist/{chunk-PSYLKCWQ.js → chunk-4BQ5QE76.js} +24 -5
- package/dist/chunk-4BQ5QE76.js.map +1 -0
- package/dist/{chunk-JTYZRPX5.js → chunk-5ZT2Q6P5.js} +1 -1
- package/dist/{chunk-JJXVDCEX.js → chunk-75J2BR4P.js} +486 -488
- package/dist/chunk-75J2BR4P.js.map +1 -0
- package/dist/{chunk-GMTWRMLP.js → chunk-B3SF2CCW.js} +3 -3
- package/dist/{chunk-S6I62FAH.js → chunk-CUADDHHU.js} +4 -2
- package/dist/{chunk-S6I62FAH.js.map → chunk-CUADDHHU.js.map} +1 -1
- package/dist/{chunk-4VF6KQ2Z.js → chunk-DJQOYEK3.js} +87 -84
- package/dist/chunk-DJQOYEK3.js.map +1 -0
- package/dist/{chunk-LD6U3L6O.js → chunk-DK5VEBB5.js} +5 -5
- package/dist/{chunk-STBNNKL5.js → chunk-DKGUCEWU.js} +6 -6
- package/dist/{chunk-OQVKLTQY.js → chunk-EYMKBNRP.js} +2 -2
- package/dist/{chunk-KH64DHOY.js → chunk-GDY63YAW.js} +279 -277
- package/dist/chunk-GDY63YAW.js.map +1 -0
- package/dist/{chunk-ZESTWGJT.js → chunk-GYIA6XLB.js} +2 -2
- package/dist/{chunk-BCKYVLUZ.js → chunk-GZ7MXWYX.js} +3 -3
- package/dist/{chunk-S66YG6QK.js → chunk-LF5Z62X6.js} +46 -7
- package/dist/chunk-LF5Z62X6.js.map +1 -0
- package/dist/{chunk-TFBAV3PV.js → chunk-OMZCVRX6.js} +2 -2
- package/dist/{chunk-UZ5Y6XMP.js → chunk-R3YW7XVF.js} +2 -2
- package/dist/{chunk-PX5KIOKY.js → chunk-SPJGJEFV.js} +10 -2
- package/dist/{chunk-PX5KIOKY.js.map → chunk-SPJGJEFV.js.map} +1 -1
- package/dist/{chunk-QFMBZ72S.js → chunk-SV6UCB2Z.js} +2 -2
- package/dist/{chunk-NVCGF2DS.js → chunk-X4XFJG6I.js} +10 -6
- package/dist/chunk-X4XFJG6I.js.map +1 -0
- package/dist/{chunk-TNCBMGWB.js → chunk-X5IXK5KO.js} +262 -226
- package/dist/chunk-X5IXK5KO.js.map +1 -0
- package/dist/{chunk-TVV6PZOC.js → chunk-Z7TZJ2SP.js} +2 -2
- package/dist/{cli-JLDCZ77U.js → cli-YBD2GPK4.js} +45 -44
- package/dist/cli-YBD2GPK4.js.map +1 -0
- package/dist/{client-LRQMMKLP.js → client-CJ3X252K.js} +4 -4
- package/dist/{config-H657SF6B.js → config-MOWCOJJ4.js} +4 -4
- package/dist/{detect-27DN6UTL.js → detect-GFYKKHLJ.js} +3 -3
- package/dist/{detect-providers-PAVE2X6O.js → detect-providers-EU35RUL3.js} +2 -2
- package/dist/{doctor-IG3CXMI7.js → doctor-JR7NEL7K.js} +38 -19
- package/dist/doctor-JR7NEL7K.js.map +1 -0
- package/dist/{executor-HKNINUWO.js → executor-7XOKS6HS.js} +439 -248
- package/dist/executor-7XOKS6HS.js.map +1 -0
- package/dist/{init-RHQUINC2.js → init-PDLKYWQ4.js} +41 -23
- package/dist/init-PDLKYWQ4.js.map +1 -0
- package/dist/{init-wizard-ZB3JRDLE.js → init-wizard-WH3SXNMB.js} +7 -7
- package/dist/{installer-25TSX4SR.js → installer-BTUNKWOU.js} +2 -2
- package/dist/{llm-T3QVHC3Y.js → llm-DK44LYO6.js} +4 -4
- package/dist/{loader-WQKVWL5D.js → loader-WC4U5NM5.js} +4 -4
- package/dist/{loader-JQLO6K44.js → loader-WGDVRGLM.js} +6 -4
- package/dist/{logs-LXHPDKUA.js → logs-WFBX2I7C.js} +3 -3
- package/dist/{main-MVXPBP5Z.js → main-JB3R3DQE.js} +2346 -1912
- package/dist/main-JB3R3DQE.js.map +1 -0
- package/dist/{open-CVEMRH3Z.js → open-AADZPSLW.js} +6 -6
- package/dist/{openai-embeddings-5T5ZP7LO.js → openai-embeddings-SEIV7AM3.js} +2 -2
- package/dist/{openrouter-RD2COFC7.js → openrouter-ELODIZRP.js} +2 -2
- package/dist/{post-compact-ALQ2UGZ7.js → post-compact-KNQ4DYLM.js} +9 -9
- package/dist/{post-tool-use-SPL7HIYU.js → post-tool-use-OMWHFQLM.js} +10 -10
- package/dist/{post-tool-use-failure-B3CUYBTR.js → post-tool-use-failure-KFP6MB7Z.js} +9 -9
- package/dist/{pre-compact-KPWC4V64.js → pre-compact-2ZYE2HRB.js} +9 -9
- package/dist/{provider-check-QN7OGXZA.js → provider-check-B66E5PWS.js} +2 -2
- package/dist/{registry-2XQMCPA6.js → registry-DHWVHXWY.js} +5 -5
- package/dist/{remove-O2WCN6RC.js → remove-QT7634L5.js} +52 -20
- package/dist/remove-QT7634L5.js.map +1 -0
- package/dist/{resolution-events-5EVUEWHS.js → resolution-events-DBCRVZGU.js} +4 -4
- package/dist/{restart-S52VV3SP.js → restart-YQNQEHOU.js} +7 -7
- package/dist/{search-IOJ5O37S.js → search-C6JTQDWY.js} +6 -6
- package/dist/{server-T4VPK6FU.js → server-QJ3RWZZZ.js} +8 -8
- package/dist/{session-ID6BX72K.js → session-JLVL5TYX.js} +8 -8
- package/dist/{session-end-I7ZABXRI.js → session-end-XFZRRP5H.js} +10 -10
- package/dist/{session-start-VPOUY42U.js → session-start-XGINISXO.js} +15 -15
- package/dist/{setup-llm-G5UG5N3T.js → setup-llm-X2OCM6R7.js} +8 -8
- package/dist/src/agent/definitions/tasks/full-intelligence.yaml +8 -7
- package/dist/src/agent/definitions/tasks/skill-evolve.yaml +71 -144
- package/dist/src/agent/definitions/tasks/skill-generate.yaml +10 -62
- package/dist/src/agent/definitions/tasks/skill-survey.yaml +87 -53
- package/dist/src/agent/prompts/agent.md +1 -0
- package/dist/src/cli.js +1 -1
- package/dist/src/daemon/main.js +1 -1
- package/dist/src/hooks/post-tool-use.js +1 -1
- package/dist/src/hooks/session-end.js +1 -1
- package/dist/src/hooks/session-start.js +1 -1
- package/dist/src/hooks/stop.js +1 -1
- package/dist/src/hooks/user-prompt-submit.js +1 -1
- package/dist/src/mcp/server.js +1 -1
- package/dist/src/worker/src/schema.ts +14 -0
- package/dist/{stats-GRI4MTS2.js → stats-2EAETG2T.js} +9 -9
- package/dist/{stop-UTZ2CXI2.js → stop-WOBDYTSA.js} +10 -10
- package/dist/{stop-failure-CECM5NB7.js → stop-failure-QEC7ZGBQ.js} +9 -9
- package/dist/{subagent-start-SYZGJYUN.js → subagent-start-H6DVRVOE.js} +9 -9
- package/dist/{subagent-stop-7WWW7TGQ.js → subagent-stop-LKENKJ65.js} +9 -9
- package/dist/{task-completed-N7SIY6T6.js → task-completed-ZZ47PRPD.js} +9 -9
- package/dist/{team-SJPDXELY.js → team-J62N7VMG.js} +34 -26
- package/dist/team-J62N7VMG.js.map +1 -0
- package/dist/ui/assets/index-Bx9l8uxa.js +837 -0
- package/dist/ui/assets/{index-BmsHIwjl.css → index-DlEQ8A8Y.css} +1 -1
- package/dist/ui/index.html +2 -2
- package/dist/{update-DZZYQ4NJ.js → update-LX3CJ4TJ.js} +30 -14
- package/dist/update-LX3CJ4TJ.js.map +1 -0
- package/dist/{user-prompt-submit-UUNRRS5P.js → user-prompt-submit-NNMLY3EW.js} +10 -10
- package/dist/{verify-JHIMXTY5.js → verify-AMRQXQ3K.js} +6 -6
- package/dist/{version-VKNCAPZW.js → version-6OJH5HLZ.js} +2 -2
- package/package.json +2 -2
- package/dist/chunk-4VF6KQ2Z.js.map +0 -1
- package/dist/chunk-JJXVDCEX.js.map +0 -1
- package/dist/chunk-KH64DHOY.js.map +0 -1
- package/dist/chunk-NVCGF2DS.js.map +0 -1
- package/dist/chunk-PSYLKCWQ.js.map +0 -1
- package/dist/chunk-S66YG6QK.js.map +0 -1
- package/dist/chunk-TNCBMGWB.js.map +0 -1
- package/dist/cli-JLDCZ77U.js.map +0 -1
- package/dist/doctor-IG3CXMI7.js.map +0 -1
- package/dist/executor-HKNINUWO.js.map +0 -1
- package/dist/init-RHQUINC2.js.map +0 -1
- package/dist/main-MVXPBP5Z.js.map +0 -1
- package/dist/remove-O2WCN6RC.js.map +0 -1
- package/dist/resolve-3FEUV462.js +0 -9
- package/dist/team-SJPDXELY.js.map +0 -1
- package/dist/ui/assets/index-Cn6cQwJy.js +0 -842
- package/dist/update-DZZYQ4NJ.js.map +0 -1
- package/dist/version-VKNCAPZW.js.map +0 -1
- /package/dist/{agent-run-GZ5UVLDV.js.map → agent-run-DUOJ3KDI.js.map} +0 -0
- /package/dist/{agent-tasks-KKQ2GBBB.js.map → agent-tasks-LUWBY5JD.js.map} +0 -0
- /package/dist/{chunk-X34OFKYU.js.map → chunk-23FJUKCN.js.map} +0 -0
- /package/dist/{chunk-KNTJOMWY.js.map → chunk-3MEOYXOW.js.map} +0 -0
- /package/dist/{chunk-JTYZRPX5.js.map → chunk-5ZT2Q6P5.js.map} +0 -0
- /package/dist/{chunk-GMTWRMLP.js.map → chunk-B3SF2CCW.js.map} +0 -0
- /package/dist/{chunk-LD6U3L6O.js.map → chunk-DK5VEBB5.js.map} +0 -0
- /package/dist/{chunk-STBNNKL5.js.map → chunk-DKGUCEWU.js.map} +0 -0
- /package/dist/{chunk-OQVKLTQY.js.map → chunk-EYMKBNRP.js.map} +0 -0
- /package/dist/{chunk-ZESTWGJT.js.map → chunk-GYIA6XLB.js.map} +0 -0
- /package/dist/{chunk-BCKYVLUZ.js.map → chunk-GZ7MXWYX.js.map} +0 -0
- /package/dist/{chunk-TFBAV3PV.js.map → chunk-OMZCVRX6.js.map} +0 -0
- /package/dist/{chunk-UZ5Y6XMP.js.map → chunk-R3YW7XVF.js.map} +0 -0
- /package/dist/{chunk-QFMBZ72S.js.map → chunk-SV6UCB2Z.js.map} +0 -0
- /package/dist/{chunk-TVV6PZOC.js.map → chunk-Z7TZJ2SP.js.map} +0 -0
- /package/dist/{client-LRQMMKLP.js.map → client-CJ3X252K.js.map} +0 -0
- /package/dist/{config-H657SF6B.js.map → config-MOWCOJJ4.js.map} +0 -0
- /package/dist/{detect-27DN6UTL.js.map → detect-GFYKKHLJ.js.map} +0 -0
- /package/dist/{detect-providers-PAVE2X6O.js.map → detect-providers-EU35RUL3.js.map} +0 -0
- /package/dist/{init-wizard-ZB3JRDLE.js.map → init-wizard-WH3SXNMB.js.map} +0 -0
- /package/dist/{installer-25TSX4SR.js.map → installer-BTUNKWOU.js.map} +0 -0
- /package/dist/{llm-T3QVHC3Y.js.map → llm-DK44LYO6.js.map} +0 -0
- /package/dist/{loader-JQLO6K44.js.map → loader-WC4U5NM5.js.map} +0 -0
- /package/dist/{loader-WQKVWL5D.js.map → loader-WGDVRGLM.js.map} +0 -0
- /package/dist/{logs-LXHPDKUA.js.map → logs-WFBX2I7C.js.map} +0 -0
- /package/dist/{open-CVEMRH3Z.js.map → open-AADZPSLW.js.map} +0 -0
- /package/dist/{openai-embeddings-5T5ZP7LO.js.map → openai-embeddings-SEIV7AM3.js.map} +0 -0
- /package/dist/{openrouter-RD2COFC7.js.map → openrouter-ELODIZRP.js.map} +0 -0
- /package/dist/{post-compact-ALQ2UGZ7.js.map → post-compact-KNQ4DYLM.js.map} +0 -0
- /package/dist/{post-tool-use-SPL7HIYU.js.map → post-tool-use-OMWHFQLM.js.map} +0 -0
- /package/dist/{post-tool-use-failure-B3CUYBTR.js.map → post-tool-use-failure-KFP6MB7Z.js.map} +0 -0
- /package/dist/{pre-compact-KPWC4V64.js.map → pre-compact-2ZYE2HRB.js.map} +0 -0
- /package/dist/{provider-check-QN7OGXZA.js.map → provider-check-B66E5PWS.js.map} +0 -0
- /package/dist/{registry-2XQMCPA6.js.map → registry-DHWVHXWY.js.map} +0 -0
- /package/dist/{resolution-events-5EVUEWHS.js.map → resolution-events-DBCRVZGU.js.map} +0 -0
- /package/dist/{restart-S52VV3SP.js.map → restart-YQNQEHOU.js.map} +0 -0
- /package/dist/{search-IOJ5O37S.js.map → search-C6JTQDWY.js.map} +0 -0
- /package/dist/{server-T4VPK6FU.js.map → server-QJ3RWZZZ.js.map} +0 -0
- /package/dist/{session-ID6BX72K.js.map → session-JLVL5TYX.js.map} +0 -0
- /package/dist/{session-end-I7ZABXRI.js.map → session-end-XFZRRP5H.js.map} +0 -0
- /package/dist/{session-start-VPOUY42U.js.map → session-start-XGINISXO.js.map} +0 -0
- /package/dist/{setup-llm-G5UG5N3T.js.map → setup-llm-X2OCM6R7.js.map} +0 -0
- /package/dist/{stats-GRI4MTS2.js.map → stats-2EAETG2T.js.map} +0 -0
- /package/dist/{stop-UTZ2CXI2.js.map → stop-WOBDYTSA.js.map} +0 -0
- /package/dist/{stop-failure-CECM5NB7.js.map → stop-failure-QEC7ZGBQ.js.map} +0 -0
- /package/dist/{subagent-start-SYZGJYUN.js.map → subagent-start-H6DVRVOE.js.map} +0 -0
- /package/dist/{subagent-stop-7WWW7TGQ.js.map → subagent-stop-LKENKJ65.js.map} +0 -0
- /package/dist/{task-completed-N7SIY6T6.js.map → task-completed-ZZ47PRPD.js.map} +0 -0
- /package/dist/{user-prompt-submit-UUNRRS5P.js.map → user-prompt-submit-NNMLY3EW.js.map} +0 -0
- /package/dist/{verify-JHIMXTY5.js.map → verify-AMRQXQ3K.js.map} +0 -0
- /package/dist/{resolve-3FEUV462.js.map → version-6OJH5HLZ.js.map} +0 -0
|
@@ -9,7 +9,7 @@ prompt: >-
|
|
|
9
9
|
Survey the vault knowledge graph for procedural skill candidates.
|
|
10
10
|
isDefault: false
|
|
11
11
|
model: claude-sonnet-4-6
|
|
12
|
-
maxTurns:
|
|
12
|
+
maxTurns: 65
|
|
13
13
|
timeoutSeconds: 600
|
|
14
14
|
schedule:
|
|
15
15
|
enabled: true
|
|
@@ -19,77 +19,83 @@ schedule:
|
|
|
19
19
|
phases:
|
|
20
20
|
- name: explore-spores
|
|
21
21
|
prompt: |
|
|
22
|
-
|
|
22
|
+
Identify procedural patterns from spores and entities.
|
|
23
23
|
You are one of three parallel exploration phases — focus only on spores.
|
|
24
|
+
Budget is tight — be efficient, not exhaustive.
|
|
24
25
|
|
|
25
|
-
1.
|
|
26
|
-
|
|
26
|
+
1. Read the digest (vault_read_digest) for a high-level overview.
|
|
27
|
+
This gives you the landscape in one call.
|
|
27
28
|
|
|
28
|
-
2. Query
|
|
29
|
-
|
|
29
|
+
2. Query wisdom spores (vault_spores, observation_type: wisdom).
|
|
30
|
+
These are highest signal — synthesized from multiple sessions.
|
|
30
31
|
|
|
31
|
-
3.
|
|
32
|
-
|
|
32
|
+
3. Query decisions and gotchas (vault_spores, limit 30 each).
|
|
33
|
+
One page per type is sufficient — don't paginate exhaustively.
|
|
33
34
|
|
|
34
|
-
4.
|
|
35
|
+
4. Check vault_entities for high-mention components.
|
|
35
36
|
|
|
36
|
-
For each finding, note: what procedure does this relate to?
|
|
37
37
|
Group findings by procedural topic ("how to do X").
|
|
38
|
+
Stop when you have a clear picture — diminishing returns
|
|
39
|
+
from additional queries waste turns.
|
|
38
40
|
tools:
|
|
39
41
|
- vault_spores
|
|
40
42
|
- vault_entities
|
|
41
43
|
- vault_edges
|
|
42
44
|
- vault_read_digest
|
|
43
|
-
maxTurns:
|
|
45
|
+
maxTurns: 15
|
|
44
46
|
required: true
|
|
47
|
+
readOnly: true
|
|
45
48
|
|
|
46
49
|
- name: explore-sessions
|
|
47
50
|
prompt: |
|
|
48
|
-
|
|
51
|
+
Identify procedural workflows from session history.
|
|
49
52
|
You are one of three parallel exploration phases — focus only on sessions.
|
|
53
|
+
Budget is tight — be efficient, not exhaustive.
|
|
50
54
|
|
|
51
|
-
1. List
|
|
52
|
-
|
|
55
|
+
1. List recent sessions (vault_sessions, limit 20). Read summaries
|
|
56
|
+
to identify multi-step workflows and recurring implementation patterns.
|
|
53
57
|
|
|
54
|
-
2.
|
|
55
|
-
|
|
58
|
+
2. Do 2-3 targeted FTS searches for procedural keywords:
|
|
59
|
+
vault_search_fts with queries like "migration step", "configure install",
|
|
60
|
+
"refactor debug". Combine related terms in ONE query rather than
|
|
61
|
+
searching each keyword separately.
|
|
56
62
|
|
|
57
|
-
3. Use vault_search_fts to search session content for procedural
|
|
58
|
-
keywords: "how to", "step", "migration", "refactor", "debug",
|
|
59
|
-
"configure", "install", "deploy".
|
|
60
|
-
|
|
61
|
-
For each finding, note: what procedure does this relate to?
|
|
62
63
|
Group findings by procedural topic ("how to do X").
|
|
64
|
+
Stop when you have a clear picture — you don't need to search
|
|
65
|
+
every possible keyword.
|
|
63
66
|
tools:
|
|
64
67
|
- vault_sessions
|
|
65
68
|
- vault_search_fts
|
|
66
|
-
maxTurns:
|
|
69
|
+
maxTurns: 10
|
|
67
70
|
required: true
|
|
71
|
+
readOnly: true
|
|
68
72
|
|
|
69
73
|
- name: explore-plans
|
|
70
74
|
prompt: |
|
|
71
|
-
|
|
75
|
+
Identify procedures from plans and artifacts.
|
|
72
76
|
You are one of three parallel exploration phases — focus only on plans.
|
|
77
|
+
Budget is tight — be efficient, not exhaustive.
|
|
73
78
|
|
|
74
79
|
Plans contain explicit step-by-step procedures and design decisions.
|
|
75
80
|
They are often the most directly skill-ready content.
|
|
76
81
|
|
|
77
|
-
1. Use vault_search_semantic with broad queries to find plans:
|
|
82
|
+
1. Use vault_search_semantic with 2-3 broad queries to find plans:
|
|
78
83
|
- "implementation plan design architecture"
|
|
79
|
-
- "migration
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
- "migration setup configuration deployment"
|
|
85
|
+
Combine related concepts in each query. Do NOT search each
|
|
86
|
+
keyword separately.
|
|
82
87
|
|
|
83
|
-
2.
|
|
84
|
-
|
|
88
|
+
2. If semantic search returns thin results, do ONE targeted FTS
|
|
89
|
+
search for a specific procedural term.
|
|
85
90
|
|
|
86
|
-
For each finding, note: what procedure does this relate to?
|
|
87
91
|
Group findings by procedural topic ("how to do X").
|
|
92
|
+
Stop when you have coverage — more queries have diminishing returns.
|
|
88
93
|
tools:
|
|
89
94
|
- vault_search_semantic
|
|
90
95
|
- vault_search_fts
|
|
91
|
-
maxTurns:
|
|
96
|
+
maxTurns: 22
|
|
92
97
|
required: true
|
|
98
|
+
readOnly: true
|
|
93
99
|
|
|
94
100
|
- name: evaluate
|
|
95
101
|
prompt: |
|
|
@@ -97,20 +103,45 @@ phases:
|
|
|
97
103
|
spores and entities, one explored sessions, one explored plans.
|
|
98
104
|
Their findings are in the prior context.
|
|
99
105
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
106
|
+
BEFORE creating any candidates, you MUST load the dedup context:
|
|
107
|
+
1. vault_skill_records (action: list) — all active skills on disk
|
|
108
|
+
2. vault_skill_candidates (action: list) — all existing candidates
|
|
109
|
+
Keep both lists for reference throughout this phase.
|
|
110
|
+
|
|
111
|
+
For each procedural cluster identified, evaluate ALL of these
|
|
112
|
+
criteria. A candidate must pass EVERY one:
|
|
113
|
+
|
|
114
|
+
1. PROCEDURE TEST: Is this "how to do X in this project"?
|
|
115
|
+
"What is X" or "X exists" is knowledge, not a skill. Skip it.
|
|
116
|
+
|
|
117
|
+
2. REPEATABILITY TEST: Will someone need to do this again?
|
|
118
|
+
Skills are repeatable how-to's for recurring tasks — things
|
|
119
|
+
a developer will do more than once as the project grows.
|
|
120
|
+
One-time fixes, bug patches, version-specific workarounds,
|
|
121
|
+
and already-applied migration steps are NOT skills. They are
|
|
122
|
+
vault knowledge (spores/wisdom) that should stay as spores.
|
|
123
|
+
Ask: "if a new contributor joined tomorrow, would they ever
|
|
124
|
+
need to follow this procedure?" If the answer is "no, it was
|
|
125
|
+
done once and the result is permanent," it is not a skill.
|
|
126
|
+
Examples of SKILLS: adding a new symbiont, creating a DB
|
|
127
|
+
migration, registering an MCP tool, authoring an agent task.
|
|
128
|
+
NOT skills: fixing a specific bug, applying a one-off schema
|
|
129
|
+
change, adapting to a framework update, addressing a one-off
|
|
130
|
+
behavioral change in a dependency.
|
|
131
|
+
|
|
132
|
+
3. CROSS-SESSION EVIDENCE: Knowledge from 2+ sessions, 3+ source
|
|
133
|
+
items across sessions, spores, and plans.
|
|
134
|
+
|
|
135
|
+
4. DEDUPLICATION (mandatory — failures here create real problems):
|
|
136
|
+
Check BOTH lists from step 0 above.
|
|
137
|
+
- If an active skill record's name or description covers the
|
|
138
|
+
same procedure, do NOT create a duplicate. Skip it entirely.
|
|
139
|
+
- If a non-dismissed candidate covers the same topic, UPDATE
|
|
140
|
+
that candidate with new evidence instead of creating a new one.
|
|
141
|
+
- If a generated/dismissed candidate covered this, it was
|
|
142
|
+
already handled. Do not re-create it.
|
|
143
|
+
|
|
144
|
+
5. CONFIDENCE SCORE (0.0-1.0):
|
|
114
145
|
- Knowledge density (more sources = higher)
|
|
115
146
|
- Cross-session evidence (wider = higher)
|
|
116
147
|
- Presence of wisdom spores (higher quality signal)
|
|
@@ -120,13 +151,16 @@ phases:
|
|
|
120
151
|
with topic, rationale, confidence, and source_ids (JSON array of
|
|
121
152
|
{id, type} objects referencing the spores, sessions, and plans).
|
|
122
153
|
|
|
123
|
-
IMPORTANT: Write the rationale field as markdown.
|
|
124
|
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
|
|
154
|
+
IMPORTANT: Write the rationale field as markdown. Include these
|
|
155
|
+
sections in every rationale:
|
|
156
|
+
- **Procedure verdict**: PASS/FAIL
|
|
157
|
+
- **Repeatability verdict**: PASS/FAIL with justification
|
|
158
|
+
- **Cross-session evidence**: session IDs and source count
|
|
159
|
+
- **Existing coverage**: list the skills/candidates you checked
|
|
160
|
+
and why this is genuinely new (not "NONE" — name what you checked)
|
|
161
|
+
Use **bold** for verdicts, numbered lists for steps, `code` for
|
|
162
|
+
file paths and function names. The rationale is displayed directly
|
|
163
|
+
to the user in the dashboard.
|
|
130
164
|
|
|
131
165
|
If an existing candidate has new evidence, use vault_skill_candidates
|
|
132
166
|
(action: update) to increase confidence and add source_ids.
|
|
@@ -141,7 +175,7 @@ phases:
|
|
|
141
175
|
- vault_skill_records
|
|
142
176
|
- vault_set_state
|
|
143
177
|
- vault_report
|
|
144
|
-
maxTurns:
|
|
178
|
+
maxTurns: 12
|
|
145
179
|
required: true
|
|
146
180
|
dependsOn:
|
|
147
181
|
- explore-spores
|
|
@@ -142,6 +142,7 @@ For phased tasks, follow only your assigned phase instructions. The executor con
|
|
|
142
142
|
- One observation per spore, specific not vague
|
|
143
143
|
- Report via `vault_report` after each significant action
|
|
144
144
|
- If no work to do, report "skip" with reason and finish
|
|
145
|
+
- Be efficient with tool calls — batch related queries, stop searching when you have enough data. Each turn has a cost. Prefer one broad query over five narrow ones.
|
|
145
146
|
|
|
146
147
|
## Exit Behavior
|
|
147
148
|
|
package/dist/src/cli.js
CHANGED
package/dist/src/daemon/main.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/daemon.ts
|
|
4
|
-
var { main } = await import("../../main-
|
|
4
|
+
var { main } = await import("../../main-JB3R3DQE.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=main.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/post-tool-use.ts
|
|
4
|
-
var { main } = await import("../../post-tool-use-
|
|
4
|
+
var { main } = await import("../../post-tool-use-OMWHFQLM.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=post-tool-use.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/session-end.ts
|
|
4
|
-
var { main } = await import("../../session-end-
|
|
4
|
+
var { main } = await import("../../session-end-XFZRRP5H.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=session-end.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/session-start.ts
|
|
4
|
-
var { main } = await import("../../session-start-
|
|
4
|
+
var { main } = await import("../../session-start-XGINISXO.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=session-start.js.map
|
package/dist/src/hooks/stop.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/stop.ts
|
|
4
|
-
var { main } = await import("../../stop-
|
|
4
|
+
var { main } = await import("../../stop-WOBDYTSA.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=stop.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/user-prompt-submit.ts
|
|
4
|
-
var { main } = await import("../../user-prompt-submit-
|
|
4
|
+
var { main } = await import("../../user-prompt-submit-NNMLY3EW.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=user-prompt-submit.js.map
|
package/dist/src/mcp/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/mcp-server.ts
|
|
4
|
-
var { main } = await import("../../server-
|
|
4
|
+
var { main } = await import("../../server-QJ3RWZZZ.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=server.js.map
|
|
@@ -229,6 +229,7 @@ const SKILL_USAGE_TABLE = `
|
|
|
229
229
|
skill_id TEXT NOT NULL,
|
|
230
230
|
session_id TEXT NOT NULL,
|
|
231
231
|
detected_at INTEGER NOT NULL,
|
|
232
|
+
synced_at INTEGER,
|
|
232
233
|
PRIMARY KEY (id, machine_id)
|
|
233
234
|
)`;
|
|
234
235
|
|
|
@@ -284,9 +285,22 @@ const ALL_DDLS = [
|
|
|
284
285
|
|
|
285
286
|
/**
|
|
286
287
|
* Create all D1 tables and indexes. Fully idempotent via IF NOT EXISTS.
|
|
288
|
+
* Includes ALTER TABLE migrations for columns added after initial deployment.
|
|
287
289
|
*/
|
|
288
290
|
export async function initD1Schema(db: D1Database): Promise<void> {
|
|
289
291
|
const statements = [...ALL_DDLS, ...SECONDARY_INDEXES];
|
|
290
292
|
const batch = statements.map((sql) => db.prepare(sql));
|
|
291
293
|
await db.batch(batch);
|
|
294
|
+
|
|
295
|
+
// Migrations for existing tables (safe to re-run — silently ignored if column exists)
|
|
296
|
+
const migrations = [
|
|
297
|
+
'ALTER TABLE skill_usage ADD COLUMN synced_at INTEGER',
|
|
298
|
+
];
|
|
299
|
+
for (const sql of migrations) {
|
|
300
|
+
try {
|
|
301
|
+
await db.prepare(sql).run();
|
|
302
|
+
} catch {
|
|
303
|
+
// Column already exists — expected after first run
|
|
304
|
+
}
|
|
305
|
+
}
|
|
292
306
|
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
gatherStats
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-B3SF2CCW.js";
|
|
5
5
|
import {
|
|
6
6
|
initVaultDb
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-GZ7MXWYX.js";
|
|
8
8
|
import "./chunk-SAKJMNSR.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-X5IXK5KO.js";
|
|
10
10
|
import "./chunk-HHZ3RTEI.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-4BQ5QE76.js";
|
|
12
12
|
import "./chunk-MYX5NCRH.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-R3YW7XVF.js";
|
|
14
|
+
import "./chunk-OMZCVRX6.js";
|
|
15
15
|
import "./chunk-LPUQPDC2.js";
|
|
16
16
|
import "./chunk-TRA3R4EC.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-CUADDHHU.js";
|
|
18
18
|
import "./chunk-D7TYRPRM.js";
|
|
19
19
|
import "./chunk-E4VLWIJC.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-GDY63YAW.js";
|
|
21
21
|
import "./chunk-PZUWP5VK.js";
|
|
22
22
|
|
|
23
23
|
// src/cli/stats.ts
|
|
@@ -92,4 +92,4 @@ function formatUptime(seconds) {
|
|
|
92
92
|
export {
|
|
93
93
|
run
|
|
94
94
|
};
|
|
95
|
-
//# sourceMappingURL=stats-
|
|
95
|
+
//# sourceMappingURL=stats-2EAETG2T.js.map
|
|
@@ -2,21 +2,21 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
|
|
|
2
2
|
import {
|
|
3
3
|
normalizeHookInput,
|
|
4
4
|
readStdin
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-EYMKBNRP.js";
|
|
6
|
+
import {
|
|
7
|
+
resolveVaultDir
|
|
8
|
+
} from "./chunk-5ZT2Q6P5.js";
|
|
6
9
|
import {
|
|
7
10
|
DaemonClient
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-R3YW7XVF.js";
|
|
12
|
+
import "./chunk-OMZCVRX6.js";
|
|
13
|
+
import "./chunk-SV6UCB2Z.js";
|
|
11
14
|
import "./chunk-LPUQPDC2.js";
|
|
12
15
|
import "./chunk-TRA3R4EC.js";
|
|
13
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-CUADDHHU.js";
|
|
14
17
|
import "./chunk-D7TYRPRM.js";
|
|
15
18
|
import "./chunk-E4VLWIJC.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import {
|
|
18
|
-
resolveVaultDir
|
|
19
|
-
} from "./chunk-JTYZRPX5.js";
|
|
19
|
+
import "./chunk-GDY63YAW.js";
|
|
20
20
|
import "./chunk-PZUWP5VK.js";
|
|
21
21
|
|
|
22
22
|
// src/hooks/stop.ts
|
|
@@ -45,4 +45,4 @@ async function main() {
|
|
|
45
45
|
export {
|
|
46
46
|
main
|
|
47
47
|
};
|
|
48
|
-
//# sourceMappingURL=stop-
|
|
48
|
+
//# sourceMappingURL=stop-WOBDYTSA.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DKGUCEWU.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-EYMKBNRP.js";
|
|
7
|
+
import "./chunk-5ZT2Q6P5.js";
|
|
8
|
+
import "./chunk-R3YW7XVF.js";
|
|
9
|
+
import "./chunk-OMZCVRX6.js";
|
|
10
|
+
import "./chunk-SV6UCB2Z.js";
|
|
10
11
|
import "./chunk-LPUQPDC2.js";
|
|
11
12
|
import "./chunk-TRA3R4EC.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-CUADDHHU.js";
|
|
13
14
|
import "./chunk-D7TYRPRM.js";
|
|
14
15
|
import "./chunk-E4VLWIJC.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-JTYZRPX5.js";
|
|
16
|
+
import "./chunk-GDY63YAW.js";
|
|
17
17
|
import "./chunk-PZUWP5VK.js";
|
|
18
18
|
|
|
19
19
|
// src/hooks/stop-failure.ts
|
|
@@ -27,4 +27,4 @@ async function main() {
|
|
|
27
27
|
export {
|
|
28
28
|
main
|
|
29
29
|
};
|
|
30
|
-
//# sourceMappingURL=stop-failure-
|
|
30
|
+
//# sourceMappingURL=stop-failure-QEC7ZGBQ.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DKGUCEWU.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-EYMKBNRP.js";
|
|
7
|
+
import "./chunk-5ZT2Q6P5.js";
|
|
8
|
+
import "./chunk-R3YW7XVF.js";
|
|
9
|
+
import "./chunk-OMZCVRX6.js";
|
|
10
|
+
import "./chunk-SV6UCB2Z.js";
|
|
10
11
|
import "./chunk-LPUQPDC2.js";
|
|
11
12
|
import "./chunk-TRA3R4EC.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-CUADDHHU.js";
|
|
13
14
|
import "./chunk-D7TYRPRM.js";
|
|
14
15
|
import "./chunk-E4VLWIJC.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-JTYZRPX5.js";
|
|
16
|
+
import "./chunk-GDY63YAW.js";
|
|
17
17
|
import "./chunk-PZUWP5VK.js";
|
|
18
18
|
|
|
19
19
|
// src/hooks/subagent-start.ts
|
|
@@ -27,4 +27,4 @@ async function main() {
|
|
|
27
27
|
export {
|
|
28
28
|
main
|
|
29
29
|
};
|
|
30
|
-
//# sourceMappingURL=subagent-start-
|
|
30
|
+
//# sourceMappingURL=subagent-start-H6DVRVOE.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DKGUCEWU.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-EYMKBNRP.js";
|
|
7
|
+
import "./chunk-5ZT2Q6P5.js";
|
|
8
|
+
import "./chunk-R3YW7XVF.js";
|
|
9
|
+
import "./chunk-OMZCVRX6.js";
|
|
10
|
+
import "./chunk-SV6UCB2Z.js";
|
|
10
11
|
import "./chunk-LPUQPDC2.js";
|
|
11
12
|
import "./chunk-TRA3R4EC.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-CUADDHHU.js";
|
|
13
14
|
import "./chunk-D7TYRPRM.js";
|
|
14
15
|
import "./chunk-E4VLWIJC.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-JTYZRPX5.js";
|
|
16
|
+
import "./chunk-GDY63YAW.js";
|
|
17
17
|
import "./chunk-PZUWP5VK.js";
|
|
18
18
|
|
|
19
19
|
// src/hooks/subagent-stop.ts
|
|
@@ -29,4 +29,4 @@ async function main() {
|
|
|
29
29
|
export {
|
|
30
30
|
main
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=subagent-stop-
|
|
32
|
+
//# sourceMappingURL=subagent-stop-LKENKJ65.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DKGUCEWU.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-EYMKBNRP.js";
|
|
7
|
+
import "./chunk-5ZT2Q6P5.js";
|
|
8
|
+
import "./chunk-R3YW7XVF.js";
|
|
9
|
+
import "./chunk-OMZCVRX6.js";
|
|
10
|
+
import "./chunk-SV6UCB2Z.js";
|
|
10
11
|
import "./chunk-LPUQPDC2.js";
|
|
11
12
|
import "./chunk-TRA3R4EC.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-CUADDHHU.js";
|
|
13
14
|
import "./chunk-D7TYRPRM.js";
|
|
14
15
|
import "./chunk-E4VLWIJC.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-JTYZRPX5.js";
|
|
16
|
+
import "./chunk-GDY63YAW.js";
|
|
17
17
|
import "./chunk-PZUWP5VK.js";
|
|
18
18
|
|
|
19
19
|
// src/hooks/task-completed.ts
|
|
@@ -28,4 +28,4 @@ async function main() {
|
|
|
28
28
|
export {
|
|
29
29
|
main
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=task-completed-
|
|
31
|
+
//# sourceMappingURL=task-completed-ZZ47PRPD.js.map
|