@goondocks/myco 0.17.2 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -22
- package/bin/myco-run +15 -2
- package/dist/{agent-run-7AYHXIEF.js → agent-run-I4O2K2CK.js} +7 -7
- package/dist/{agent-tasks-UUIFKBD4.js → agent-tasks-UOW5BQIB.js} +7 -7
- package/dist/{chunk-XD3NEN3Q.js → chunk-2V7HR7HB.js} +2 -2
- package/dist/chunk-44PZCAYS.js +107 -0
- package/dist/chunk-44PZCAYS.js.map +1 -0
- package/dist/{chunk-DT42247G.js → chunk-75AZFBFW.js} +3 -3
- package/dist/{chunk-RMJPQZGF.js → chunk-C3EGL5JX.js} +755 -266
- package/dist/chunk-C3EGL5JX.js.map +1 -0
- package/dist/{chunk-7DAH5GLC.js → chunk-CKJAWZQE.js} +5 -1
- package/dist/chunk-CKJAWZQE.js.map +1 -0
- package/dist/{chunk-ML6GTPZU.js → chunk-CML4MCYF.js} +2 -2
- package/dist/{chunk-UTLWSKDV.js → chunk-CURS2TNP.js} +45 -4
- package/dist/chunk-CURS2TNP.js.map +1 -0
- package/dist/{chunk-EBIYONNZ.js → chunk-DPSLJ242.js} +34 -2
- package/dist/chunk-DPSLJ242.js.map +1 -0
- package/dist/{chunk-BZDZORVP.js → chunk-LSP5HYOO.js} +19 -16
- package/dist/chunk-LSP5HYOO.js.map +1 -0
- package/dist/{chunk-NUSTG3BH.js → chunk-N75GMQGA.js} +3 -3
- package/dist/{chunk-F6C4IC6R.js → chunk-NI23QCHB.js} +3 -3
- package/dist/{chunk-C3C5QVLK.js → chunk-O3TRN3RC.js} +2 -2
- package/dist/{chunk-3NCVCGUZ.js → chunk-RAV5YMRU.js} +3 -3
- package/dist/{chunk-25WHTV4N.js → chunk-RIDSOQDR.js} +21 -7
- package/dist/chunk-RIDSOQDR.js.map +1 -0
- package/dist/{chunk-HPZ7YAMA.js → chunk-TCSVDQF5.js} +1130 -195
- package/dist/chunk-TCSVDQF5.js.map +1 -0
- package/dist/{chunk-CTF7TQMJ.js → chunk-TLK46KKD.js} +14 -4
- package/dist/chunk-TLK46KKD.js.map +1 -0
- package/dist/{chunk-IGBHLFV5.js → chunk-TOER6RNC.js} +22 -2
- package/dist/chunk-TOER6RNC.js.map +1 -0
- package/dist/{chunk-ZSJPI5MS.js → chunk-TZAXQKO6.js} +6 -2
- package/dist/chunk-TZAXQKO6.js.map +1 -0
- package/dist/{chunk-RKPTMHED.js → chunk-U3J2DDSR.js} +2 -2
- package/dist/{chunk-SI5BBQAT.js → chunk-W7WENJ6F.js} +2 -2
- package/dist/{chunk-VVGZL2HX.js → chunk-WYOE4IAX.js} +153 -15
- package/dist/{chunk-VVGZL2HX.js.map → chunk-WYOE4IAX.js.map} +1 -1
- package/dist/{chunk-XZWFMMJR.js → chunk-XWOQL4XN.js} +3 -3
- package/dist/{chunk-5ZISXCDC.js → chunk-YZPI2Y3E.js} +39 -5
- package/dist/chunk-YZPI2Y3E.js.map +1 -0
- package/dist/{cli-WJVYP2QT.js → cli-D3TJYJ2U.js} +40 -40
- package/dist/{client-LZ3ZR4HC.js → client-4LLEXLVK.js} +4 -4
- package/dist/{config-ZQIMG3FB.js → config-DA4IUVFL.js} +3 -3
- package/dist/{detect-NJ2OREDP.js → detect-SZ2KDUF4.js} +2 -2
- package/dist/{detect-providers-C64L3QET.js → detect-providers-PSVKXTWE.js} +4 -4
- package/dist/{doctor-XEPBNHM3.js → doctor-KCTXPX5D.js} +12 -12
- package/dist/{executor-NXKJU5KW.js → executor-UYIZC3L5.js} +93 -285
- package/dist/executor-UYIZC3L5.js.map +1 -0
- package/dist/{init-BHVQAQ27.js → init-QFNBKKDC.js} +13 -13
- package/dist/{installer-45ZLP2RP.js → installer-BWJED3ED.js} +2 -2
- package/dist/{llm-KTD6SR55.js → llm-SMA5ZEAW.js} +4 -4
- package/dist/{loader-SHRKUKOS.js → loader-Q3P3R4UP.js} +3 -3
- package/dist/{loader-NEX3UF6U.js → loader-SKKUMT5C.js} +3 -3
- package/dist/{main-YFVBIRRK.js → main-5THODR77.js} +751 -257
- package/dist/main-5THODR77.js.map +1 -0
- package/dist/{open-2U7ZRGA3.js → open-7737CSPN.js} +7 -7
- package/dist/{post-compact-QIBMEWL3.js → post-compact-2TJ5FPZH.js} +7 -7
- package/dist/{post-tool-use-ICGFXDVY.js → post-tool-use-FRTSICC3.js} +6 -6
- package/dist/{post-tool-use-failure-C7TLH3XQ.js → post-tool-use-failure-KYO2NCNB.js} +7 -7
- package/dist/{pre-compact-IF7K4TQK.js → pre-compact-J6GCJEJR.js} +7 -7
- package/dist/{provider-check-LTLQ6BUZ.js → provider-check-AE3L5Z6R.js} +4 -4
- package/dist/{registry-TFQ22Z7N.js → registry-O2NZLO3V.js} +4 -4
- package/dist/{remove-FBGM2QVJ.js → remove-3WZZC7AX.js} +9 -9
- package/dist/{resolution-events-HGKIJOTA.js → resolution-events-XWYLLDRK.js} +4 -4
- package/dist/{restart-TQEECRNW.js → restart-HUHEFOXU.js} +8 -8
- package/dist/{search-NN5FC4Z6.js → search-ZGN3LDXG.js} +8 -8
- package/dist/{server-XMWJ4GF7.js → server-PTXLVVEE.js} +4 -4
- package/dist/{session-GLPAFYPO.js → session-7VV3IQMO.js} +9 -9
- package/dist/{session-end-TI3ILRBC.js → session-end-SMU55UCM.js} +6 -6
- package/dist/{session-start-PJLJDVJJ.js → session-start-NIMWEOIZ.js} +29 -13
- package/dist/session-start-NIMWEOIZ.js.map +1 -0
- package/dist/{setup-llm-AQSWLXCZ.js → setup-llm-7S3VPAPN.js} +8 -8
- package/dist/src/agent/definitions/tasks/extract-only.yaml +1 -1
- package/dist/src/agent/definitions/tasks/full-intelligence.yaml +10 -0
- package/dist/src/agent/definitions/tasks/skill-evolve.yaml +163 -49
- package/dist/src/agent/definitions/tasks/skill-generate.yaml +44 -27
- package/dist/src/agent/definitions/tasks/skill-survey.yaml +132 -138
- package/dist/src/agent/definitions/tasks/supersession-sweep.yaml +1 -1
- 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/symbionts/manifests/codex.yaml +85 -0
- package/dist/src/symbionts/templates/claude-code/hooks.json +12 -12
- package/dist/src/symbionts/templates/claude-code/settings.json +3 -3
- package/dist/src/symbionts/templates/codex/hooks.json +4 -4
- package/dist/src/symbionts/templates/cursor/hooks.json +9 -9
- package/dist/src/symbionts/templates/cursor/settings.json +2 -2
- package/dist/src/symbionts/templates/gemini/hooks.json +6 -6
- package/dist/src/symbionts/templates/gemini/settings.json +2 -2
- package/dist/src/symbionts/templates/myco-run.cjs +44 -0
- package/dist/src/symbionts/templates/opencode/settings.json +2 -2
- package/dist/src/symbionts/templates/vscode-copilot/hooks.json +7 -7
- package/dist/src/symbionts/templates/vscode-copilot/settings.json +2 -2
- package/dist/src/symbionts/templates/windsurf/hooks.json +4 -4
- package/dist/src/symbionts/templates/windsurf/settings.json +2 -2
- package/dist/src/worker/package-lock.json +4338 -0
- package/dist/src/worker/package.json +5 -0
- package/dist/src/worker/src/index.ts +58 -65
- package/dist/src/worker/src/mcp/auth.ts +65 -0
- package/dist/src/worker/src/mcp/server.ts +53 -0
- package/dist/src/worker/src/mcp/tools/context.ts +13 -0
- package/dist/src/worker/src/mcp/tools/get.ts +15 -0
- package/dist/src/worker/src/mcp/tools/graph.ts +35 -0
- package/dist/src/worker/src/mcp/tools/search.ts +32 -0
- package/dist/src/worker/src/mcp/tools/sessions.ts +24 -0
- package/dist/src/worker/src/mcp/tools/skills.ts +16 -0
- package/dist/src/worker/src/mcp/tools/team.ts +9 -0
- package/dist/src/worker/src/schema.ts +5 -1
- package/dist/src/worker/src/search-helpers.ts +70 -0
- package/dist/src/worker/wrangler.toml +9 -0
- package/dist/{stats-BISBIBXZ.js → stats-GEOQ2DFF.js} +9 -9
- package/dist/{stop-47BJ42EO.js → stop-7AKYBJJ2.js} +6 -6
- package/dist/{stop-failure-VU5BTLWX.js → stop-failure-NLE2EURG.js} +7 -7
- package/dist/{subagent-start-SPTKQRHU.js → subagent-start-LBNZF2TG.js} +7 -7
- package/dist/{subagent-stop-UU75BYLC.js → subagent-stop-B2Z5GYAB.js} +7 -7
- package/dist/{task-completed-MVDO7TZF.js → task-completed-PO5TETJ7.js} +7 -7
- package/dist/{team-7X64J4Y6.js → team-DPNP2RN7.js} +97 -14
- package/dist/team-DPNP2RN7.js.map +1 -0
- package/dist/ui/assets/{index-rpmSpJpm.js → index-CiI1fwas.js} +120 -120
- package/dist/ui/index.html +1 -1
- package/dist/{update-DA7VEXOS.js → update-WBWB5URU.js} +18 -9
- package/dist/update-WBWB5URU.js.map +1 -0
- package/dist/{user-prompt-submit-ADZ4NTVO.js → user-prompt-submit-IZJC3NV7.js} +30 -7
- package/dist/user-prompt-submit-IZJC3NV7.js.map +1 -0
- package/dist/{verify-QYSERHF7.js → verify-FNSP62I3.js} +5 -5
- package/dist/{version-A72TAL2J.js → version-QEVU66NT.js} +2 -2
- package/package.json +7 -7
- package/dist/chunk-25WHTV4N.js.map +0 -1
- package/dist/chunk-5ZISXCDC.js.map +0 -1
- package/dist/chunk-7DAH5GLC.js.map +0 -1
- package/dist/chunk-BZDZORVP.js.map +0 -1
- package/dist/chunk-CTF7TQMJ.js.map +0 -1
- package/dist/chunk-EBIYONNZ.js.map +0 -1
- package/dist/chunk-HPZ7YAMA.js.map +0 -1
- package/dist/chunk-IGBHLFV5.js.map +0 -1
- package/dist/chunk-RMJPQZGF.js.map +0 -1
- package/dist/chunk-UTLWSKDV.js.map +0 -1
- package/dist/chunk-ZSJPI5MS.js.map +0 -1
- package/dist/executor-NXKJU5KW.js.map +0 -1
- package/dist/main-YFVBIRRK.js.map +0 -1
- package/dist/session-start-PJLJDVJJ.js.map +0 -1
- package/dist/src/symbionts/templates/hook-guard.cjs +0 -19
- package/dist/team-7X64J4Y6.js.map +0 -1
- package/dist/update-DA7VEXOS.js.map +0 -1
- package/dist/user-prompt-submit-ADZ4NTVO.js.map +0 -1
- /package/dist/{agent-run-7AYHXIEF.js.map → agent-run-I4O2K2CK.js.map} +0 -0
- /package/dist/{agent-tasks-UUIFKBD4.js.map → agent-tasks-UOW5BQIB.js.map} +0 -0
- /package/dist/{chunk-XD3NEN3Q.js.map → chunk-2V7HR7HB.js.map} +0 -0
- /package/dist/{chunk-DT42247G.js.map → chunk-75AZFBFW.js.map} +0 -0
- /package/dist/{chunk-ML6GTPZU.js.map → chunk-CML4MCYF.js.map} +0 -0
- /package/dist/{chunk-NUSTG3BH.js.map → chunk-N75GMQGA.js.map} +0 -0
- /package/dist/{chunk-F6C4IC6R.js.map → chunk-NI23QCHB.js.map} +0 -0
- /package/dist/{chunk-C3C5QVLK.js.map → chunk-O3TRN3RC.js.map} +0 -0
- /package/dist/{chunk-3NCVCGUZ.js.map → chunk-RAV5YMRU.js.map} +0 -0
- /package/dist/{chunk-RKPTMHED.js.map → chunk-U3J2DDSR.js.map} +0 -0
- /package/dist/{chunk-SI5BBQAT.js.map → chunk-W7WENJ6F.js.map} +0 -0
- /package/dist/{chunk-XZWFMMJR.js.map → chunk-XWOQL4XN.js.map} +0 -0
- /package/dist/{cli-WJVYP2QT.js.map → cli-D3TJYJ2U.js.map} +0 -0
- /package/dist/{client-LZ3ZR4HC.js.map → client-4LLEXLVK.js.map} +0 -0
- /package/dist/{config-ZQIMG3FB.js.map → config-DA4IUVFL.js.map} +0 -0
- /package/dist/{detect-NJ2OREDP.js.map → detect-SZ2KDUF4.js.map} +0 -0
- /package/dist/{detect-providers-C64L3QET.js.map → detect-providers-PSVKXTWE.js.map} +0 -0
- /package/dist/{doctor-XEPBNHM3.js.map → doctor-KCTXPX5D.js.map} +0 -0
- /package/dist/{init-BHVQAQ27.js.map → init-QFNBKKDC.js.map} +0 -0
- /package/dist/{installer-45ZLP2RP.js.map → installer-BWJED3ED.js.map} +0 -0
- /package/dist/{llm-KTD6SR55.js.map → llm-SMA5ZEAW.js.map} +0 -0
- /package/dist/{loader-NEX3UF6U.js.map → loader-Q3P3R4UP.js.map} +0 -0
- /package/dist/{loader-SHRKUKOS.js.map → loader-SKKUMT5C.js.map} +0 -0
- /package/dist/{open-2U7ZRGA3.js.map → open-7737CSPN.js.map} +0 -0
- /package/dist/{post-compact-QIBMEWL3.js.map → post-compact-2TJ5FPZH.js.map} +0 -0
- /package/dist/{post-tool-use-ICGFXDVY.js.map → post-tool-use-FRTSICC3.js.map} +0 -0
- /package/dist/{post-tool-use-failure-C7TLH3XQ.js.map → post-tool-use-failure-KYO2NCNB.js.map} +0 -0
- /package/dist/{pre-compact-IF7K4TQK.js.map → pre-compact-J6GCJEJR.js.map} +0 -0
- /package/dist/{provider-check-LTLQ6BUZ.js.map → provider-check-AE3L5Z6R.js.map} +0 -0
- /package/dist/{registry-TFQ22Z7N.js.map → registry-O2NZLO3V.js.map} +0 -0
- /package/dist/{remove-FBGM2QVJ.js.map → remove-3WZZC7AX.js.map} +0 -0
- /package/dist/{resolution-events-HGKIJOTA.js.map → resolution-events-XWYLLDRK.js.map} +0 -0
- /package/dist/{restart-TQEECRNW.js.map → restart-HUHEFOXU.js.map} +0 -0
- /package/dist/{search-NN5FC4Z6.js.map → search-ZGN3LDXG.js.map} +0 -0
- /package/dist/{server-XMWJ4GF7.js.map → server-PTXLVVEE.js.map} +0 -0
- /package/dist/{session-GLPAFYPO.js.map → session-7VV3IQMO.js.map} +0 -0
- /package/dist/{session-end-TI3ILRBC.js.map → session-end-SMU55UCM.js.map} +0 -0
- /package/dist/{setup-llm-AQSWLXCZ.js.map → setup-llm-7S3VPAPN.js.map} +0 -0
- /package/dist/{stats-BISBIBXZ.js.map → stats-GEOQ2DFF.js.map} +0 -0
- /package/dist/{stop-47BJ42EO.js.map → stop-7AKYBJJ2.js.map} +0 -0
- /package/dist/{stop-failure-VU5BTLWX.js.map → stop-failure-NLE2EURG.js.map} +0 -0
- /package/dist/{subagent-start-SPTKQRHU.js.map → subagent-start-LBNZF2TG.js.map} +0 -0
- /package/dist/{subagent-stop-UU75BYLC.js.map → subagent-stop-B2Z5GYAB.js.map} +0 -0
- /package/dist/{task-completed-MVDO7TZF.js.map → task-completed-PO5TETJ7.js.map} +0 -0
- /package/dist/{verify-QYSERHF7.js.map → verify-FNSP62I3.js.map} +0 -0
- /package/dist/{version-A72TAL2J.js.map → version-QEVU66NT.js.map} +0 -0
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
name: skill-survey
|
|
2
2
|
displayName: Skill Candidate Survey
|
|
3
3
|
description: >-
|
|
4
|
-
Analyze vault knowledge for procedural
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
Analyze vault knowledge for procedural domain candidates. Identifies
|
|
5
|
+
broad categories of recurring developer work — not individual micro-
|
|
6
|
+
procedures — that warrant guided skill context.
|
|
7
7
|
agent: myco-agent
|
|
8
8
|
prompt: >-
|
|
9
|
-
Survey the vault knowledge graph for procedural
|
|
9
|
+
Survey the vault knowledge graph for procedural domain candidates.
|
|
10
|
+
The instruction contains pre-assembled vault context.
|
|
10
11
|
isDefault: false
|
|
11
12
|
model: claude-sonnet-4-6
|
|
12
|
-
maxTurns:
|
|
13
|
+
maxTurns: 35
|
|
13
14
|
timeoutSeconds: 600
|
|
14
15
|
schedule:
|
|
15
16
|
enabled: true
|
|
@@ -17,167 +18,160 @@ schedule:
|
|
|
17
18
|
runIn:
|
|
18
19
|
- idle
|
|
19
20
|
phases:
|
|
20
|
-
- name: explore
|
|
21
|
+
- name: explore
|
|
21
22
|
prompt: |
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
The instruction contains pre-assembled vault context: digest,
|
|
24
|
+
recent wisdom spores, decisions, gotchas, sessions, and the
|
|
25
|
+
current skill inventory. Read it carefully — this is your
|
|
26
|
+
primary input.
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
Your goal: identify PROCEDURAL DOMAINS — broad categories of
|
|
29
|
+
recurring work where a developer benefits from guided context.
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
These are highest signal — synthesized from multiple sessions.
|
|
31
|
+
## What is a procedural domain?
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
A domain groups related procedures that share prerequisite
|
|
34
|
+
knowledge. Think "extending the daemon infrastructure" (covering
|
|
35
|
+
PowerManager jobs, MCP tools, config writes, notification
|
|
36
|
+
wiring) — NOT "registering a PowerManager job" alone.
|
|
34
37
|
|
|
35
|
-
|
|
38
|
+
Good domain examples:
|
|
39
|
+
- "Vault schema and data layer extension" (migrations, tables,
|
|
40
|
+
queries, FTS indexes, constants)
|
|
41
|
+
- "Agent pipeline task authoring" (YAML anatomy, phases,
|
|
42
|
+
scheduling, parameter injection, fault tolerance)
|
|
43
|
+
- "Symbiont integration lifecycle" (manifests, hooks, config
|
|
44
|
+
directories, capture rules, installer registration)
|
|
36
45
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- vault_spores
|
|
42
|
-
- vault_entities
|
|
43
|
-
- vault_edges
|
|
44
|
-
- vault_read_digest
|
|
45
|
-
maxTurns: 15
|
|
46
|
-
required: true
|
|
47
|
-
readOnly: true
|
|
46
|
+
Bad examples (too narrow — these are SECTIONS within a domain):
|
|
47
|
+
- "How to register a PowerManager job"
|
|
48
|
+
- "Adding an FTS5 index"
|
|
49
|
+
- "Writing a symbiont capture rule"
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
prompt: |
|
|
51
|
-
Identify procedural workflows from session history.
|
|
52
|
-
You are one of three parallel exploration phases — focus only on sessions.
|
|
53
|
-
Budget is tight — be efficient, not exhaustive.
|
|
51
|
+
## Scale guidance
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
20-30 broad skills for a complex project is the right order
|
|
54
|
+
of magnitude. If a topic would be a section heading within a
|
|
55
|
+
broader skill, it is not its own candidate.
|
|
57
56
|
|
|
58
|
-
|
|
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.
|
|
57
|
+
## Process
|
|
62
58
|
|
|
63
|
-
|
|
64
|
-
Stop when you have a clear picture — you don't need to search
|
|
65
|
-
every possible keyword.
|
|
66
|
-
tools:
|
|
67
|
-
- vault_sessions
|
|
68
|
-
- vault_search_fts
|
|
69
|
-
maxTurns: 10
|
|
70
|
-
required: true
|
|
71
|
-
readOnly: true
|
|
59
|
+
1. Read the pre-assembled context for orientation.
|
|
72
60
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
You are one of three parallel exploration phases — focus only on plans.
|
|
77
|
-
Budget is tight — be efficient, not exhaustive.
|
|
61
|
+
2. Use vault tools for TARGETED follow-up on promising
|
|
62
|
+
clusters. The baseline gives you direction — follow threads
|
|
63
|
+
that suggest a procedural domain exists.
|
|
78
64
|
|
|
79
|
-
|
|
80
|
-
|
|
65
|
+
Good follow-up queries:
|
|
66
|
+
- vault_search_fts to find additional sessions touching
|
|
67
|
+
a domain you spotted in the digest
|
|
68
|
+
- vault_spores to read full content of high-signal spores
|
|
69
|
+
summarized in the baseline
|
|
70
|
+
- vault_entities for components with high mention counts
|
|
71
|
+
that might anchor a domain
|
|
81
72
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- "migration setup configuration deployment"
|
|
85
|
-
Combine related concepts in each query. Do NOT search each
|
|
86
|
-
keyword separately.
|
|
73
|
+
Do NOT exhaustively paginate or search every keyword.
|
|
74
|
+
You have ~12 tool calls — use them purposefully.
|
|
87
75
|
|
|
88
|
-
|
|
89
|
-
|
|
76
|
+
3. Group findings into candidate domains. For each domain,
|
|
77
|
+
note: the core theme, which procedures it covers, and
|
|
78
|
+
which source items provide evidence.
|
|
90
79
|
|
|
91
|
-
|
|
92
|
-
Stop when you have coverage — more queries have diminishing returns.
|
|
80
|
+
Store your domain clusters in working notes for the next phase.
|
|
93
81
|
tools:
|
|
94
|
-
-
|
|
82
|
+
- vault_spores
|
|
83
|
+
- vault_entities
|
|
84
|
+
- vault_edges
|
|
85
|
+
- vault_sessions
|
|
95
86
|
- vault_search_fts
|
|
96
|
-
|
|
87
|
+
- vault_search_semantic
|
|
88
|
+
maxTurns: 15
|
|
97
89
|
required: true
|
|
98
90
|
readOnly: true
|
|
99
91
|
|
|
100
|
-
- name: evaluate
|
|
92
|
+
- name: synthesize-evaluate
|
|
93
|
+
model: claude-sonnet-4-6
|
|
101
94
|
prompt: |
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
95
|
+
The explore phase identified procedural domain clusters from
|
|
96
|
+
the vault. Now evaluate each and create candidates for domains
|
|
97
|
+
that pass all criteria.
|
|
105
98
|
|
|
106
|
-
BEFORE creating any candidates,
|
|
107
|
-
1. vault_skill_records (action: list) — all active skills
|
|
99
|
+
BEFORE creating any candidates, load the dedup context:
|
|
100
|
+
1. vault_skill_records (action: list) — all active skills
|
|
108
101
|
2. vault_skill_candidates (action: list) — all existing candidates
|
|
109
|
-
Keep both lists for reference
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
102
|
+
Keep both lists for reference.
|
|
103
|
+
|
|
104
|
+
## Evaluation criteria
|
|
105
|
+
|
|
106
|
+
Each candidate must pass ALL of these at the DOMAIN level:
|
|
107
|
+
|
|
108
|
+
1. PROCEDURE TEST: Does this domain describe "how to do a
|
|
109
|
+
family of related tasks in this project"? A domain about
|
|
110
|
+
"what X is" or "X exists" is knowledge, not a skill.
|
|
111
|
+
|
|
112
|
+
2. REPEATABILITY TEST: Will developers need these procedures
|
|
113
|
+
again as the project grows? Domains covering extension
|
|
114
|
+
points (adding new X, extending Y) are strong candidates.
|
|
115
|
+
One-time fixes and bug patches are NOT skills.
|
|
116
|
+
|
|
117
|
+
3. BREADTH TEST: Does this domain cover 2+ distinct procedures
|
|
118
|
+
that share prerequisite knowledge? A single procedure is
|
|
119
|
+
too narrow — it should be a section within a broader domain.
|
|
120
|
+
If you can't imagine 3+ major section headings, it's not
|
|
121
|
+
broad enough.
|
|
122
|
+
|
|
123
|
+
4. CROSS-SESSION EVIDENCE: Knowledge from 2+ sessions and 3+
|
|
124
|
+
source items (spores, sessions, plans).
|
|
125
|
+
|
|
126
|
+
5. DEDUPLICATION: Check BOTH lists from step 0.
|
|
127
|
+
- If an active skill already covers this domain, skip.
|
|
128
|
+
- If the domain SUBSUMES existing narrow skills (the domain
|
|
129
|
+
is broader and the narrow skills are sections within it),
|
|
130
|
+
create the candidate with `supersedes` listing the narrow
|
|
131
|
+
skill names as a JSON array. The dedup gate exempts
|
|
132
|
+
superseded skills from vocabulary overlap checks.
|
|
133
|
+
- If a non-dismissed candidate covers the same domain,
|
|
134
|
+
UPDATE it with new evidence instead of creating.
|
|
135
|
+
- Dismissed candidates: the gate allows creation with a
|
|
136
|
+
warning. If the dismissed topic is a narrow subset of
|
|
137
|
+
your broader domain, proceed.
|
|
138
|
+
|
|
139
|
+
6. CONFIDENCE SCORE (0.0-1.0):
|
|
140
|
+
- Domain breadth (more procedures covered = higher)
|
|
146
141
|
- Cross-session evidence (wider = higher)
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
142
|
+
- Wisdom spore presence (higher quality signal)
|
|
143
|
+
- Plan presence (step-by-step procedures = higher)
|
|
144
|
+
|
|
145
|
+
## Creating candidates
|
|
146
|
+
|
|
147
|
+
Use vault_skill_candidates (action: create) with:
|
|
148
|
+
- topic: the domain name (e.g., "Vault Schema and Data Layer Extension")
|
|
149
|
+
- rationale: markdown with these sections:
|
|
150
|
+
- **Domain scope**: what procedures this covers (bulleted list)
|
|
151
|
+
- **Procedure verdict**: PASS/FAIL
|
|
152
|
+
- **Repeatability verdict**: PASS/FAIL with justification
|
|
153
|
+
- **Breadth verdict**: PASS/FAIL with section count estimate
|
|
154
|
+
- **Cross-session evidence**: session IDs and source count
|
|
155
|
+
- **Existing coverage**: skills/candidates checked and why this
|
|
156
|
+
is new or broader (name what you checked, not "NONE")
|
|
157
|
+
- **Supersedes**: which existing narrow skills this replaces
|
|
158
|
+
(if any)
|
|
159
|
+
- confidence: 0.0-1.0
|
|
160
|
+
- source_ids: JSON array of {id, type} objects
|
|
161
|
+
- supersedes: JSON array of skill names this replaces (or omit)
|
|
162
|
+
|
|
163
|
+
If an existing candidate has new evidence, use action: update.
|
|
164
|
+
|
|
165
|
+
Dismiss candidates whose underlying knowledge has been
|
|
166
|
+
superseded (action: update, status: dismissed).
|
|
167
|
+
|
|
168
|
+
Report a summary via vault_report.
|
|
173
169
|
tools:
|
|
174
170
|
- vault_skill_candidates
|
|
175
171
|
- vault_skill_records
|
|
176
172
|
- vault_set_state
|
|
177
173
|
- vault_report
|
|
178
|
-
maxTurns:
|
|
174
|
+
maxTurns: 15
|
|
179
175
|
required: true
|
|
180
176
|
dependsOn:
|
|
181
|
-
- explore
|
|
182
|
-
- explore-sessions
|
|
183
|
-
- explore-plans
|
|
177
|
+
- explore
|
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-5THODR77.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-FRTSICC3.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-SMU55UCM.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-NIMWEOIZ.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-7AKYBJJ2.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-IZJC3NV7.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-PTXLVVEE.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=server.js.map
|
|
@@ -11,6 +11,91 @@ hookFields:
|
|
|
11
11
|
lastResponse: last_assistant_message
|
|
12
12
|
capture:
|
|
13
13
|
planDirs: []
|
|
14
|
+
planTags:
|
|
15
|
+
- proposed_plan
|
|
16
|
+
rules:
|
|
17
|
+
# Ephemeral sub-invocation filter (structural, two-layer defense).
|
|
18
|
+
#
|
|
19
|
+
# Codex spawns internal LLM sub-invocations for things like UI
|
|
20
|
+
# title generation. Those sub-invocations fire SessionStart and
|
|
21
|
+
# UserPromptSubmit with their own session_id but never write a
|
|
22
|
+
# rollout transcript file, so both events arrive with
|
|
23
|
+
# `transcript_path: null`. Real user-facing sessions always have a
|
|
24
|
+
# rollout file in ~/.codex/sessions/... and therefore a populated
|
|
25
|
+
# transcript_path.
|
|
26
|
+
#
|
|
27
|
+
# Dropping on `transcript_path_missing` is a deliberately
|
|
28
|
+
# pattern-based signal — robust across Codex and extension updates
|
|
29
|
+
# because it keys on the Codex protocol contract (transcript_path
|
|
30
|
+
# is populated iff a real transcript exists), not on any specific
|
|
31
|
+
# prompt text that could drift.
|
|
32
|
+
#
|
|
33
|
+
# Scope is `any_agent` for both rules because detection itself
|
|
34
|
+
# falls back to transcript_path → configDir matching; when that's
|
|
35
|
+
# missing the hook can't attribute the event, so the owning
|
|
36
|
+
# manifest has to opt into enforcing the rule regardless.
|
|
37
|
+
|
|
38
|
+
# Layer 1 — stop the phantom from ever being registered.
|
|
39
|
+
- event: session_start
|
|
40
|
+
scope: any_agent
|
|
41
|
+
when:
|
|
42
|
+
transcript_path_missing: true
|
|
43
|
+
action: drop
|
|
44
|
+
reason: ephemeral-sub-invocation
|
|
45
|
+
|
|
46
|
+
# Layer 2 — safety net. Deletes any phantom session row that did
|
|
47
|
+
# slip past SessionStart (e.g. because Codex's rollout file hadn't
|
|
48
|
+
# been flushed by the time SessionStart was queried).
|
|
49
|
+
- event: user_prompt
|
|
50
|
+
scope: any_agent
|
|
51
|
+
when:
|
|
52
|
+
transcript_path_missing: true
|
|
53
|
+
action: drop
|
|
54
|
+
reason: ephemeral-sub-invocation
|
|
55
|
+
|
|
56
|
+
# Layer 3 — sub-agent thread spawn filter (structural).
|
|
57
|
+
#
|
|
58
|
+
# Codex spawns sub-agents (thread_spawn) for code review, testing,
|
|
59
|
+
# etc. These write real transcript files but are NOT user-initiated
|
|
60
|
+
# sessions. Their session_meta has:
|
|
61
|
+
# "source": {"subagent": {"thread_spawn": {...}}}
|
|
62
|
+
# while user sessions have "source": "vscode" or similar strings.
|
|
63
|
+
#
|
|
64
|
+
# This condition reads the transcript's first JSON line and checks
|
|
65
|
+
# the dot-path field — a structural signal that won't drift.
|
|
66
|
+
- event: session_start
|
|
67
|
+
scope: this_agent
|
|
68
|
+
when:
|
|
69
|
+
transcript_meta_field_exists: source.subagent
|
|
70
|
+
action: drop
|
|
71
|
+
reason: subagent-thread-spawn
|
|
72
|
+
|
|
73
|
+
# Layer 4 — safety net for sub-agent prompts that slip past
|
|
74
|
+
# SessionStart (e.g. transcript not yet flushed).
|
|
75
|
+
- event: user_prompt
|
|
76
|
+
scope: this_agent
|
|
77
|
+
when:
|
|
78
|
+
transcript_meta_field_exists: source.subagent
|
|
79
|
+
action: drop
|
|
80
|
+
reason: subagent-thread-spawn
|
|
81
|
+
|
|
82
|
+
# Codex Desktop wraps user prompts with a file-mention preamble when
|
|
83
|
+
# screenshots or files are attached:
|
|
84
|
+
# "# Files mentioned by the user:\n## <filename>: <path>\n## My request for Codex:\n<actual prompt>"
|
|
85
|
+
# Strip the preamble so the captured prompt contains only the user's text.
|
|
86
|
+
- event: user_prompt
|
|
87
|
+
scope: this_agent
|
|
88
|
+
when:
|
|
89
|
+
prompt_contains: "## My request for Codex:"
|
|
90
|
+
action: rewrite_prompt
|
|
91
|
+
extract_after: "## My request for Codex:\n"
|
|
92
|
+
reason: codex-desktop-file-preamble
|
|
93
|
+
|
|
94
|
+
# NOTE: the VS Code Codex extension uses a different preamble
|
|
95
|
+
# (`# Context from my IDE setup:` … `## My request for Codex:`).
|
|
96
|
+
# Keying on the shared `## My request for Codex:` marker above
|
|
97
|
+
# should handle both Desktop and VS Code variants. If the VS Code
|
|
98
|
+
# preamble diverges, add a separate rule keyed on its specific marker.
|
|
14
99
|
registration:
|
|
15
100
|
hooksTarget: .codex/hooks.json
|
|
16
101
|
mcpTarget: .codex/config.toml
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"hooks": [
|
|
5
5
|
{
|
|
6
6
|
"type": "command",
|
|
7
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
7
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook session-start --symbiont claude-code",
|
|
8
8
|
"timeout": 10
|
|
9
9
|
}
|
|
10
10
|
]
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"hooks": [
|
|
16
16
|
{
|
|
17
17
|
"type": "command",
|
|
18
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
18
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook user-prompt-submit --symbiont claude-code",
|
|
19
19
|
"timeout": 5
|
|
20
20
|
}
|
|
21
21
|
]
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"hooks": [
|
|
27
27
|
{
|
|
28
28
|
"type": "command",
|
|
29
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
29
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook post-tool-use --symbiont claude-code",
|
|
30
30
|
"timeout": 5
|
|
31
31
|
}
|
|
32
32
|
]
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"hooks": [
|
|
38
38
|
{
|
|
39
39
|
"type": "command",
|
|
40
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
40
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook post-tool-use-failure --symbiont claude-code",
|
|
41
41
|
"timeout": 5
|
|
42
42
|
}
|
|
43
43
|
]
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"hooks": [
|
|
49
49
|
{
|
|
50
50
|
"type": "command",
|
|
51
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
51
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook stop --symbiont claude-code",
|
|
52
52
|
"timeout": 30
|
|
53
53
|
}
|
|
54
54
|
]
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"hooks": [
|
|
60
60
|
{
|
|
61
61
|
"type": "command",
|
|
62
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
62
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook session-end --symbiont claude-code",
|
|
63
63
|
"timeout": 10
|
|
64
64
|
}
|
|
65
65
|
]
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"hooks": [
|
|
71
71
|
{
|
|
72
72
|
"type": "command",
|
|
73
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
73
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook subagent-start --symbiont claude-code",
|
|
74
74
|
"timeout": 5
|
|
75
75
|
}
|
|
76
76
|
]
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"hooks": [
|
|
82
82
|
{
|
|
83
83
|
"type": "command",
|
|
84
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
84
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook subagent-stop --symbiont claude-code",
|
|
85
85
|
"timeout": 10
|
|
86
86
|
}
|
|
87
87
|
]
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"hooks": [
|
|
93
93
|
{
|
|
94
94
|
"type": "command",
|
|
95
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
95
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook stop-failure --symbiont claude-code",
|
|
96
96
|
"timeout": 10
|
|
97
97
|
}
|
|
98
98
|
]
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"hooks": [
|
|
104
104
|
{
|
|
105
105
|
"type": "command",
|
|
106
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
106
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook task-completed --symbiont claude-code",
|
|
107
107
|
"timeout": 5
|
|
108
108
|
}
|
|
109
109
|
]
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"hooks": [
|
|
115
115
|
{
|
|
116
116
|
"type": "command",
|
|
117
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
117
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook pre-compact --symbiont claude-code",
|
|
118
118
|
"timeout": 5
|
|
119
119
|
}
|
|
120
120
|
]
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"hooks": [
|
|
126
126
|
{
|
|
127
127
|
"type": "command",
|
|
128
|
-
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-
|
|
128
|
+
"command": "cd \"${CLAUDE_PROJECT_DIR:-.}\" && node .agents/myco-run.cjs hook post-compact --symbiont claude-code",
|
|
129
129
|
"timeout": 5
|
|
130
130
|
}
|
|
131
131
|
]
|