@goondocks/myco 0.18.0 → 0.19.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 +17 -130
- package/dist/{agent-run-2NFYMQXW.js → agent-run-EADUYYAS.js} +6 -6
- package/dist/{agent-tasks-MEIYLXGN.js → agent-tasks-GC77JXQB.js} +6 -6
- package/dist/{chunk-EO2RQW4S.js → chunk-2CKDAFSX.js} +2 -2
- package/dist/{chunk-NZI7WBZI.js → chunk-2DF4OZ2D.js} +22 -2
- package/dist/chunk-2DF4OZ2D.js.map +1 -0
- package/dist/{chunk-OW433Q4C.js → chunk-2LN2BBKA.js} +45 -4
- package/dist/chunk-2LN2BBKA.js.map +1 -0
- package/dist/{chunk-U7GJTVSX.js → chunk-2OO3BRFK.js} +21 -7
- package/dist/chunk-2OO3BRFK.js.map +1 -0
- package/dist/{chunk-RAV5YMRU.js → chunk-3TPD6HEF.js} +4 -4
- package/dist/{chunk-JMOUFG6Y.js → chunk-44PZCAYS.js} +47 -5
- package/dist/chunk-44PZCAYS.js.map +1 -0
- package/dist/{chunk-D7TYRPRM.js → chunk-6LQIMRTC.js} +145 -145
- package/dist/chunk-6LQIMRTC.js.map +1 -0
- package/dist/{chunk-NI23QCHB.js → chunk-AELJ4PS5.js} +5 -5
- package/dist/{chunk-BUIR3JWM.js → chunk-CYBC2HZ3.js} +3 -3
- package/dist/chunk-EM63ZFKA.js +166 -0
- package/dist/chunk-EM63ZFKA.js.map +1 -0
- package/dist/{chunk-O3TRN3RC.js → chunk-INWD6AIQ.js} +2 -2
- package/dist/{chunk-CML4MCYF.js → chunk-KSXTNYXO.js} +2 -2
- package/dist/{chunk-KWTOCJLB.js → chunk-LLJMDXO2.js} +1176 -241
- package/dist/chunk-LLJMDXO2.js.map +1 -0
- package/dist/{chunk-2V7HR7HB.js → chunk-MDEUXYJG.js} +4 -4
- package/dist/{chunk-PFWIPRF6.js → chunk-MS6FDV45.js} +3 -3
- package/dist/{chunk-55QEICRO.js → chunk-N77K772N.js} +3 -3
- package/dist/{chunk-E4VLWIJC.js → chunk-ODXLRR4U.js} +1 -1
- package/dist/{chunk-DLFDBKEV.js → chunk-OZF5EURR.js} +19 -16
- package/dist/chunk-OZF5EURR.js.map +1 -0
- package/dist/{chunk-IB76KGBY.js → chunk-POEPHBQK.js} +1 -1
- package/dist/{chunk-7OYXB2NM.js → chunk-REN37KYI.js} +6 -2
- package/dist/chunk-REN37KYI.js.map +1 -0
- package/dist/{chunk-JDI4DPWD.js → chunk-RXROZBSK.js} +637 -150
- package/dist/chunk-RXROZBSK.js.map +1 -0
- package/dist/{chunk-U3J2DDSR.js → chunk-SCI55NKY.js} +2 -2
- package/dist/{chunk-GDY63YAW.js → chunk-U6PF3YII.js} +79 -79
- package/dist/chunk-U6PF3YII.js.map +1 -0
- package/dist/{chunk-FABWUX5G.js → chunk-UVKQ62II.js} +18 -4
- package/dist/chunk-UVKQ62II.js.map +1 -0
- package/dist/{chunk-VOCGURV7.js → chunk-UW6DGPSV.js} +3 -3
- package/dist/{chunk-CKJAWZQE.js → chunk-W4VHC2ES.js} +11 -3
- package/dist/chunk-W4VHC2ES.js.map +1 -0
- package/dist/{chunk-75AZFBFW.js → chunk-YPWF322W.js} +3 -3
- package/dist/{cli-IIMBALPV.js → cli-X7CFP4YD.js} +39 -39
- package/dist/{client-VZCUISHZ.js → client-YA33HUFY.js} +4 -4
- package/dist/{config-DA4IUVFL.js → config-RFB2DJC6.js} +6 -6
- package/dist/{detect-GEM3NVK6.js → detect-BEOIHGBC.js} +5 -5
- package/dist/{detect-providers-PSVKXTWE.js → detect-providers-2OQBU4VX.js} +4 -4
- package/dist/{doctor-QYD34X7Q.js → doctor-FAH7N66M.js} +11 -11
- package/dist/{executor-NSPRTH4M.js → executor-ICTRRUBY.js} +93 -285
- package/dist/executor-ICTRRUBY.js.map +1 -0
- package/dist/{init-WYYL44KZ.js → init-PTJEOTJV.js} +15 -15
- package/dist/{llm-KEDHK3TQ.js → llm-7D2OGDEK.js} +4 -4
- package/dist/{loader-Q3P3R4UP.js → loader-O2JFO2UC.js} +6 -6
- package/dist/{loader-SKKUMT5C.js → loader-VPE4RCIF.js} +6 -6
- package/dist/{main-6PY3ITQ5.js → main-EIKBLOUL.js} +752 -264
- package/dist/main-EIKBLOUL.js.map +1 -0
- package/dist/{open-HRFMJDQX.js → open-2JCSOLZS.js} +6 -6
- package/dist/{post-compact-HT24YMAN.js → post-compact-2HPPWPBI.js} +10 -10
- package/dist/{post-tool-use-DENRI5WB.js → post-tool-use-TWBBBABS.js} +9 -9
- package/dist/{post-tool-use-failure-A6SNJX42.js → post-tool-use-failure-LIJYR4KL.js} +10 -10
- package/dist/{pre-compact-3Q4BALCL.js → pre-compact-II2CMNTG.js} +10 -10
- package/dist/{provider-check-AE3L5Z6R.js → provider-check-KEQNQ6LO.js} +4 -4
- package/dist/{registry-O2NZLO3V.js → registry-X5FDGYXT.js} +7 -7
- package/dist/{remove-YB5A6HY2.js → remove-L5MVYBOY.js} +11 -11
- package/dist/{resolution-events-XWYLLDRK.js → resolution-events-MVIZMONR.js} +4 -4
- package/dist/{restart-RGDVHELZ.js → restart-VIT3JBD6.js} +7 -7
- package/dist/{search-WOHT3G55.js → search-O6BB5MTO.js} +7 -7
- package/dist/{server-6SUNYDV7.js → server-O3UPJVBR.js} +258 -173
- package/dist/server-O3UPJVBR.js.map +1 -0
- package/dist/{session-W3SKRFRV.js → session-5JV3DQIK.js} +8 -8
- package/dist/{session-end-OUTY7AFF.js → session-end-PZ2OXBGG.js} +9 -9
- package/dist/{session-start-5MB3LFOA.js → session-start-FDGM56BX.js} +22 -17
- package/dist/{session-start-5MB3LFOA.js.map → session-start-FDGM56BX.js.map} +1 -1
- package/dist/{setup-llm-ZMYGIQX5.js → setup-llm-MQK557BB.js} +10 -10
- 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 +45 -7
- package/dist/{stats-DGI6B3HX.js → stats-2STTARTC.js} +11 -11
- package/dist/{stop-YGHODSP7.js → stop-WNKCMCGO.js} +9 -9
- package/dist/{stop-failure-7IJTPJ6W.js → stop-failure-6GTOBVTN.js} +10 -10
- package/dist/{subagent-start-ZBQ5PJB5.js → subagent-start-VJF5YKVX.js} +10 -10
- package/dist/{subagent-stop-N2TDQU2D.js → subagent-stop-UW6HMICY.js} +10 -10
- package/dist/{task-completed-BDLMRSBB.js → task-completed-U4Q3XXLX.js} +10 -10
- package/dist/{team-2ZFGTSIN.js → team-N6TXS2PF.js} +148 -103
- package/dist/team-N6TXS2PF.js.map +1 -0
- package/dist/ui/assets/{index-DtT9_nlT.js → index-CHIm98OP.js} +48 -48
- package/dist/ui/index.html +1 -1
- package/dist/{update-STLAN7LR.js → update-ZYCOWKMD.js} +11 -11
- package/dist/{user-prompt-submit-4IBFUYQ3.js → user-prompt-submit-SOYL4OWF.js} +15 -12
- package/dist/user-prompt-submit-SOYL4OWF.js.map +1 -0
- package/dist/{verify-EJYPO7QA.js → verify-P37PQ4YM.js} +8 -8
- package/dist/{version-YPBIKH77.js → version-XAWC277D.js} +2 -2
- package/package.json +25 -8
- package/CONTRIBUTING.md +0 -132
- package/dist/chunk-7OYXB2NM.js.map +0 -1
- package/dist/chunk-CKJAWZQE.js.map +0 -1
- package/dist/chunk-D7TYRPRM.js.map +0 -1
- package/dist/chunk-DLFDBKEV.js.map +0 -1
- package/dist/chunk-FABWUX5G.js.map +0 -1
- package/dist/chunk-GDY63YAW.js.map +0 -1
- package/dist/chunk-JDI4DPWD.js.map +0 -1
- package/dist/chunk-JMOUFG6Y.js.map +0 -1
- package/dist/chunk-KWTOCJLB.js.map +0 -1
- package/dist/chunk-NZI7WBZI.js.map +0 -1
- package/dist/chunk-OW433Q4C.js.map +0 -1
- package/dist/chunk-RJMXDUMA.js +0 -40
- package/dist/chunk-RJMXDUMA.js.map +0 -1
- package/dist/chunk-U7GJTVSX.js.map +0 -1
- package/dist/executor-NSPRTH4M.js.map +0 -1
- package/dist/main-6PY3ITQ5.js.map +0 -1
- package/dist/server-6SUNYDV7.js.map +0 -1
- package/dist/src/worker/package-lock.json +0 -4338
- package/dist/src/worker/package.json +0 -22
- package/dist/src/worker/src/auth.ts +0 -31
- package/dist/src/worker/src/index.ts +0 -470
- package/dist/src/worker/src/mcp/auth.ts +0 -65
- package/dist/src/worker/src/mcp/server.ts +0 -53
- package/dist/src/worker/src/mcp/tools/context.ts +0 -13
- package/dist/src/worker/src/mcp/tools/get.ts +0 -15
- package/dist/src/worker/src/mcp/tools/graph.ts +0 -35
- package/dist/src/worker/src/mcp/tools/search.ts +0 -32
- package/dist/src/worker/src/mcp/tools/sessions.ts +0 -24
- package/dist/src/worker/src/mcp/tools/skills.ts +0 -16
- package/dist/src/worker/src/mcp/tools/team.ts +0 -9
- package/dist/src/worker/src/schema.ts +0 -324
- package/dist/src/worker/src/search-helpers.ts +0 -70
- package/dist/src/worker/tsconfig.json +0 -16
- package/dist/src/worker/wrangler.toml +0 -30
- package/dist/team-2ZFGTSIN.js.map +0 -1
- package/dist/user-prompt-submit-4IBFUYQ3.js.map +0 -1
- /package/dist/{agent-run-2NFYMQXW.js.map → agent-run-EADUYYAS.js.map} +0 -0
- /package/dist/{agent-tasks-MEIYLXGN.js.map → agent-tasks-GC77JXQB.js.map} +0 -0
- /package/dist/{chunk-EO2RQW4S.js.map → chunk-2CKDAFSX.js.map} +0 -0
- /package/dist/{chunk-RAV5YMRU.js.map → chunk-3TPD6HEF.js.map} +0 -0
- /package/dist/{chunk-NI23QCHB.js.map → chunk-AELJ4PS5.js.map} +0 -0
- /package/dist/{chunk-BUIR3JWM.js.map → chunk-CYBC2HZ3.js.map} +0 -0
- /package/dist/{chunk-O3TRN3RC.js.map → chunk-INWD6AIQ.js.map} +0 -0
- /package/dist/{chunk-CML4MCYF.js.map → chunk-KSXTNYXO.js.map} +0 -0
- /package/dist/{chunk-2V7HR7HB.js.map → chunk-MDEUXYJG.js.map} +0 -0
- /package/dist/{chunk-PFWIPRF6.js.map → chunk-MS6FDV45.js.map} +0 -0
- /package/dist/{chunk-55QEICRO.js.map → chunk-N77K772N.js.map} +0 -0
- /package/dist/{chunk-E4VLWIJC.js.map → chunk-ODXLRR4U.js.map} +0 -0
- /package/dist/{chunk-IB76KGBY.js.map → chunk-POEPHBQK.js.map} +0 -0
- /package/dist/{chunk-U3J2DDSR.js.map → chunk-SCI55NKY.js.map} +0 -0
- /package/dist/{chunk-VOCGURV7.js.map → chunk-UW6DGPSV.js.map} +0 -0
- /package/dist/{chunk-75AZFBFW.js.map → chunk-YPWF322W.js.map} +0 -0
- /package/dist/{cli-IIMBALPV.js.map → cli-X7CFP4YD.js.map} +0 -0
- /package/dist/{client-VZCUISHZ.js.map → client-YA33HUFY.js.map} +0 -0
- /package/dist/{config-DA4IUVFL.js.map → config-RFB2DJC6.js.map} +0 -0
- /package/dist/{detect-GEM3NVK6.js.map → detect-BEOIHGBC.js.map} +0 -0
- /package/dist/{detect-providers-PSVKXTWE.js.map → detect-providers-2OQBU4VX.js.map} +0 -0
- /package/dist/{doctor-QYD34X7Q.js.map → doctor-FAH7N66M.js.map} +0 -0
- /package/dist/{init-WYYL44KZ.js.map → init-PTJEOTJV.js.map} +0 -0
- /package/dist/{llm-KEDHK3TQ.js.map → llm-7D2OGDEK.js.map} +0 -0
- /package/dist/{loader-Q3P3R4UP.js.map → loader-O2JFO2UC.js.map} +0 -0
- /package/dist/{loader-SKKUMT5C.js.map → loader-VPE4RCIF.js.map} +0 -0
- /package/dist/{open-HRFMJDQX.js.map → open-2JCSOLZS.js.map} +0 -0
- /package/dist/{post-compact-HT24YMAN.js.map → post-compact-2HPPWPBI.js.map} +0 -0
- /package/dist/{post-tool-use-DENRI5WB.js.map → post-tool-use-TWBBBABS.js.map} +0 -0
- /package/dist/{post-tool-use-failure-A6SNJX42.js.map → post-tool-use-failure-LIJYR4KL.js.map} +0 -0
- /package/dist/{pre-compact-3Q4BALCL.js.map → pre-compact-II2CMNTG.js.map} +0 -0
- /package/dist/{provider-check-AE3L5Z6R.js.map → provider-check-KEQNQ6LO.js.map} +0 -0
- /package/dist/{registry-O2NZLO3V.js.map → registry-X5FDGYXT.js.map} +0 -0
- /package/dist/{remove-YB5A6HY2.js.map → remove-L5MVYBOY.js.map} +0 -0
- /package/dist/{resolution-events-XWYLLDRK.js.map → resolution-events-MVIZMONR.js.map} +0 -0
- /package/dist/{restart-RGDVHELZ.js.map → restart-VIT3JBD6.js.map} +0 -0
- /package/dist/{search-WOHT3G55.js.map → search-O6BB5MTO.js.map} +0 -0
- /package/dist/{session-W3SKRFRV.js.map → session-5JV3DQIK.js.map} +0 -0
- /package/dist/{session-end-OUTY7AFF.js.map → session-end-PZ2OXBGG.js.map} +0 -0
- /package/dist/{setup-llm-ZMYGIQX5.js.map → setup-llm-MQK557BB.js.map} +0 -0
- /package/dist/{stats-DGI6B3HX.js.map → stats-2STTARTC.js.map} +0 -0
- /package/dist/{stop-YGHODSP7.js.map → stop-WNKCMCGO.js.map} +0 -0
- /package/dist/{stop-failure-7IJTPJ6W.js.map → stop-failure-6GTOBVTN.js.map} +0 -0
- /package/dist/{subagent-start-ZBQ5PJB5.js.map → subagent-start-VJF5YKVX.js.map} +0 -0
- /package/dist/{subagent-stop-N2TDQU2D.js.map → subagent-stop-UW6HMICY.js.map} +0 -0
- /package/dist/{task-completed-BDLMRSBB.js.map → task-completed-U4Q3XXLX.js.map} +0 -0
- /package/dist/{update-STLAN7LR.js.map → update-ZYCOWKMD.js.map} +0 -0
- /package/dist/{verify-EJYPO7QA.js.map → verify-P37PQ4YM.js.map} +0 -0
- /package/dist/{version-YPBIKH77.js.map → version-XAWC277D.js.map} +0 -0
|
@@ -33,34 +33,40 @@ phases:
|
|
|
33
33
|
---
|
|
34
34
|
name: myco:kebab-case-name
|
|
35
35
|
description: |
|
|
36
|
-
One paragraph
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
One paragraph serving as the PRIMARY triggering mechanism.
|
|
37
|
+
Cover the full procedural domain — mention all the major
|
|
38
|
+
procedures this skill covers. Be explicit about when this
|
|
39
|
+
activates. Include "even if the user doesn't explicitly
|
|
40
|
+
ask for [topic]" language when appropriate.
|
|
41
41
|
managed_by: myco
|
|
42
42
|
user-invocable: true
|
|
43
43
|
allowed-tools: Read, Edit, Write, Bash, Grep, Glob
|
|
44
44
|
---
|
|
45
45
|
|
|
46
|
-
#
|
|
46
|
+
# Domain Title
|
|
47
47
|
|
|
48
|
-
Brief context paragraph (2-3 sentences) explaining
|
|
49
|
-
|
|
48
|
+
Brief context paragraph (2-3 sentences) explaining the
|
|
49
|
+
procedural domain and when you'd use this skill.
|
|
50
50
|
|
|
51
51
|
## Prerequisites
|
|
52
52
|
|
|
53
|
-
What must be true before starting.
|
|
53
|
+
What must be true before starting any procedure in this domain.
|
|
54
54
|
|
|
55
|
-
##
|
|
55
|
+
## Procedure A: [Name]
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
Each step should reference specific files in this project.
|
|
57
|
+
Steps for the first major procedure in this domain.
|
|
59
58
|
|
|
60
|
-
##
|
|
59
|
+
## Procedure B: [Name]
|
|
61
60
|
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
Steps for the second major procedure.
|
|
62
|
+
|
|
63
|
+
## Procedure C: [Name]
|
|
64
|
+
|
|
65
|
+
Steps for the third major procedure.
|
|
66
|
+
|
|
67
|
+
## Cross-Cutting Gotchas
|
|
68
|
+
|
|
69
|
+
Pitfalls that span multiple procedures in this domain.
|
|
64
70
|
```
|
|
65
71
|
|
|
66
72
|
## Frontmatter Fields
|
|
@@ -79,21 +85,27 @@ phases:
|
|
|
79
85
|
|
|
80
86
|
## Writing Principles
|
|
81
87
|
|
|
88
|
+
- **This candidate represents a procedural domain** — a family
|
|
89
|
+
of related tasks that share prerequisite knowledge. The skill
|
|
90
|
+
should cover the full domain, not just a single procedure.
|
|
91
|
+
- **A well-scoped skill has 3-6 major sections**, each describing
|
|
92
|
+
a distinct procedure within the domain. If the candidate maps
|
|
93
|
+
to fewer than 2 sections, note this in the rationale — it may
|
|
94
|
+
be too narrow.
|
|
82
95
|
- **Explain reasoning, not rigid rules.** "Because X, do Y"
|
|
83
|
-
is better than "ALWAYS do Y."
|
|
84
|
-
|
|
85
|
-
- **Stay under
|
|
86
|
-
- **Use concrete file paths** from this project
|
|
96
|
+
is better than "ALWAYS do Y." The agent using this skill
|
|
97
|
+
understands WHY.
|
|
98
|
+
- **Stay under 800 lines.** Be concise but complete.
|
|
99
|
+
- **Use concrete file paths** from this project.
|
|
87
100
|
- **Include code patterns** where they help (inline code blocks).
|
|
88
101
|
- **Include examples** — show input/output or before/after where
|
|
89
102
|
it makes the procedure clearer.
|
|
90
|
-
- **Reference gotchas inline** where the developer would
|
|
91
|
-
them, not in a separate section.
|
|
103
|
+
- **Reference gotchas inline** where the developer would
|
|
104
|
+
encounter them, not in a separate section.
|
|
92
105
|
- **The description is the trigger.** An agent reading just the
|
|
93
|
-
description should know whether this skill applies
|
|
106
|
+
description should know whether this skill applies.
|
|
94
107
|
- **Be general enough to survive change.** The skill should teach
|
|
95
|
-
the pattern, not just document the current state.
|
|
96
|
-
changes, the procedure should still make sense.
|
|
108
|
+
the pattern, not just document the current state.
|
|
97
109
|
|
|
98
110
|
## Tool Call
|
|
99
111
|
|
|
@@ -143,14 +155,19 @@ phases:
|
|
|
143
155
|
function names, and code patterns from this project?
|
|
144
156
|
Generic advice ("add a config file") is not enough.
|
|
145
157
|
|
|
146
|
-
4. **Length:** Under
|
|
158
|
+
4. **Length:** Under 800 lines?
|
|
159
|
+
|
|
160
|
+
5. **Domain scope:** Does this skill cover a procedural domain
|
|
161
|
+
(multiple related procedures as sections) or just a single
|
|
162
|
+
procedure? If single, flag as potentially too narrow. Count
|
|
163
|
+
the ## headings — expect 3-6 for a well-scoped domain skill.
|
|
147
164
|
|
|
148
|
-
|
|
165
|
+
6. **Conflicts:** Does it overlap with existing skills?
|
|
149
166
|
Use vault_skill_records (action: list) to check. The
|
|
150
167
|
staging path's dedup gate already ran on your description;
|
|
151
168
|
this is a sanity check on the procedural content itself.
|
|
152
169
|
|
|
153
|
-
|
|
170
|
+
7. **Accuracy:** Spot-check 2-3 specific claims against the
|
|
154
171
|
vault. Use vault_search_fts to verify file paths and
|
|
155
172
|
function names mentioned in the skill.
|
|
156
173
|
|
|
@@ -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-EIKBLOUL.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-TWBBBABS.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-PZ2OXBGG.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-FDGM56BX.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-WNKCMCGO.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-SOYL4OWF.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-O3UPJVBR.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=server.js.map
|
|
@@ -11,6 +11,8 @@ hookFields:
|
|
|
11
11
|
lastResponse: last_assistant_message
|
|
12
12
|
capture:
|
|
13
13
|
planDirs: []
|
|
14
|
+
planTags:
|
|
15
|
+
- proposed_plan
|
|
14
16
|
rules:
|
|
15
17
|
# Ephemeral sub-invocation filter (structural, two-layer defense).
|
|
16
18
|
#
|
|
@@ -51,13 +53,49 @@ capture:
|
|
|
51
53
|
action: drop
|
|
52
54
|
reason: ephemeral-sub-invocation
|
|
53
55
|
|
|
54
|
-
#
|
|
55
|
-
#
|
|
56
|
-
#
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
#
|
|
60
|
-
#
|
|
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.
|
|
61
99
|
registration:
|
|
62
100
|
hooksTarget: .codex/hooks.json
|
|
63
101
|
mcpTarget: .codex/config.toml
|
|
@@ -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-OZF5EURR.js";
|
|
5
5
|
import {
|
|
6
6
|
initVaultDb
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-N77K772N.js";
|
|
8
8
|
import "./chunk-SAKJMNSR.js";
|
|
9
9
|
import "./chunk-WYOE4IAX.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-KSXTNYXO.js";
|
|
11
|
+
import "./chunk-MDEUXYJG.js";
|
|
12
12
|
import "./chunk-MYX5NCRH.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-CYBC2HZ3.js";
|
|
14
|
+
import "./chunk-2CKDAFSX.js";
|
|
15
15
|
import "./chunk-LPUQPDC2.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-W4VHC2ES.js";
|
|
17
17
|
import "./chunk-E7NUADTQ.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-6LQIMRTC.js";
|
|
19
|
+
import "./chunk-ODXLRR4U.js";
|
|
20
|
+
import "./chunk-U6PF3YII.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-2STTARTC.js.map
|