@goondocks/myco 0.21.0 → 0.21.2
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/bin/myco-run +68 -7
- package/dist/{agent-eval-RJSQI5S2.js → agent-eval-2MQKTXX3.js} +7 -6
- package/dist/{agent-eval-RJSQI5S2.js.map → agent-eval-2MQKTXX3.js.map} +1 -1
- package/dist/{agent-run-2JSYFOKU.js → agent-run-XJBTSVJR.js} +5 -5
- package/dist/{agent-tasks-APFJIM2T.js → agent-tasks-7MWBZOC7.js} +5 -5
- package/dist/{chunk-75Z7UKDY.js → chunk-4D22KTXY.js} +2 -2
- package/dist/{chunk-P66DLD6G.js → chunk-6FBLL7MD.js} +8 -2
- package/dist/chunk-6FBLL7MD.js.map +1 -0
- package/dist/{chunk-JZS6GZ6T.js → chunk-AUIXX33A.js} +10 -3
- package/dist/chunk-AUIXX33A.js.map +1 -0
- package/dist/{chunk-F3OEQYLS.js → chunk-DBBO6FHE.js} +33 -30
- package/dist/{chunk-F3OEQYLS.js.map → chunk-DBBO6FHE.js.map} +1 -1
- package/dist/{chunk-CESKJD44.js → chunk-DMPCC7V6.js} +19 -11
- package/dist/chunk-DMPCC7V6.js.map +1 -0
- package/dist/{chunk-RL5R4CQU.js → chunk-DTWUHHFI.js} +39 -2
- package/dist/{chunk-RL5R4CQU.js.map → chunk-DTWUHHFI.js.map} +1 -1
- package/dist/{chunk-XL75KZGI.js → chunk-EKZG2MCD.js} +7 -3
- package/dist/chunk-EKZG2MCD.js.map +1 -0
- package/dist/{chunk-NGH7U6A3.js → chunk-HCT7RMM2.js} +487 -98
- package/dist/chunk-HCT7RMM2.js.map +1 -0
- package/dist/{chunk-G6QIBNZM.js → chunk-IMW5TJ3O.js} +7 -6
- package/dist/chunk-IMW5TJ3O.js.map +1 -0
- package/dist/chunk-LQIPXVDH.js +17 -0
- package/dist/chunk-LQIPXVDH.js.map +1 -0
- package/dist/{chunk-5ZG4RMUH.js → chunk-N2DGFACQ.js} +2 -2
- package/dist/{chunk-VHNRMM4O.js → chunk-OTQH5KZW.js} +87 -37
- package/dist/chunk-OTQH5KZW.js.map +1 -0
- package/dist/{chunk-6LB7XELY.js → chunk-QATYARI5.js} +15 -13
- package/dist/chunk-QATYARI5.js.map +1 -0
- package/dist/{chunk-LVIY7P35.js → chunk-QLLBJEM7.js} +5 -1
- package/dist/chunk-QLLBJEM7.js.map +1 -0
- package/dist/{chunk-DJ3IHNYO.js → chunk-TFRUDNLI.js} +2 -2
- package/dist/{chunk-R2JIJBCL.js → chunk-TMAXWERS.js} +87 -4
- package/dist/chunk-TMAXWERS.js.map +1 -0
- package/dist/chunk-TSM6VESW.js +25 -0
- package/dist/chunk-TSM6VESW.js.map +1 -0
- package/dist/{chunk-ILJPRYES.js → chunk-USVFEWYL.js} +2 -2
- package/dist/{chunk-JR54LTPP.js → chunk-W5L5IHP5.js} +3 -3
- package/dist/{chunk-BUTL6IFS.js → chunk-Z55WGA2J.js} +2 -2
- package/dist/{chunk-NGROSFOH.js → chunk-Z66IT5KL.js} +14 -9
- package/dist/chunk-Z66IT5KL.js.map +1 -0
- package/dist/{cli-LNYSTDQM.js → cli-DDHTHU2J.js} +37 -37
- package/dist/{client-NWE4TCNO.js → client-PQU53UQU.js} +5 -3
- package/dist/{detect-PXNM6TA7.js → detect-7NUD5B5R.js} +2 -2
- package/dist/{doctor-TI7EZ3RW.js → doctor-QK6KFY6H.js} +6 -6
- package/dist/{executor-F2YU7HXJ.js → executor-FJCMNSXM.js} +11 -10
- package/dist/{init-KG3TYVGE.js → init-GQPD6HHX.js} +9 -9
- package/dist/{installer-UMH7OJ5A.js → installer-N4UTEACX.js} +2 -2
- package/dist/{loader-NAVVZK63.js → loader-UDNUMEDA.js} +3 -2
- package/dist/{main-5PRQNEEE.js → main-4HKTZFIM.js} +469 -187
- package/dist/main-4HKTZFIM.js.map +1 -0
- package/dist/{open-5A27BCSB.js → open-3P3DDAOA.js} +5 -5
- package/dist/{post-compact-USAODKPQ.js → post-compact-QA5LME2J.js} +7 -7
- package/dist/{post-tool-use-GMMSYBII.js → post-tool-use-QRZMPNYL.js} +6 -6
- package/dist/{post-tool-use-failure-NZVSL2PO.js → post-tool-use-failure-XNHIKBZG.js} +7 -7
- package/dist/{pre-compact-LZ57DLUS.js → pre-compact-HDV6X5QM.js} +7 -7
- package/dist/{registry-M2Z5QBWH.js → registry-F3THYC5M.js} +4 -3
- package/dist/{remove-T3KE6C5N.js → remove-USQDLGTJ.js} +7 -7
- package/dist/{restart-YWDEVZUJ.js → restart-FQLZE2TW.js} +6 -6
- package/dist/{search-GKFDGELR.js → search-5COKV6TD.js} +6 -6
- package/dist/{server-AHUR6CWF.js → server-KRMBRW4T.js} +23 -7
- package/dist/{server-AHUR6CWF.js.map → server-KRMBRW4T.js.map} +1 -1
- package/dist/{session-2ZEPLWW6.js → session-NJCUW3OX.js} +5 -5
- package/dist/{session-end-LWJYQAXX.js → session-end-XD27GRYF.js} +6 -6
- package/dist/{session-start-WTA6GCOQ.js → session-start-RDTXUSYL.js} +11 -11
- package/dist/{setup-llm-E7UU5IO7.js → setup-llm-FYPPJI6W.js} +5 -5
- package/dist/src/agent/definitions/tasks/cortex-instructions.yaml +63 -41
- package/dist/src/agent/definitions/tasks/skill-evolve.yaml +178 -22
- package/dist/src/agent/definitions/tasks/skill-generate.yaml +20 -6
- package/dist/src/agent/definitions/tasks/vault-evolve.yaml +65 -55
- 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/opencode.yaml +7 -0
- package/dist/src/symbionts/templates/agents-starter.md +1 -1
- package/dist/src/symbionts/templates/opencode/plugin.ts +41 -1
- package/dist/src/symbionts/templates/pi/plugin.ts +12 -1
- package/dist/{stats-DFG6S23S.js → stats-JCLZLA5G.js} +6 -6
- package/dist/{stop-WRBTXEVT.js → stop-B7XCXEM5.js} +6 -6
- package/dist/{stop-failure-32MGIG2Q.js → stop-failure-R6QZCUOZ.js} +7 -7
- package/dist/{subagent-start-VFGHQFVL.js → subagent-start-N7A622F3.js} +7 -7
- package/dist/{subagent-stop-663FXG3P.js → subagent-stop-SVOG5MZJ.js} +7 -7
- package/dist/{task-completed-ZCQYEFMZ.js → task-completed-3DL5LJXF.js} +7 -7
- package/dist/{team-JTI5CDUO.js → team-VJ3M263F.js} +3 -3
- package/dist/ui/assets/{index-DGf1h-Ha.js → index-O1kNWlWM.js} +119 -119
- package/dist/ui/assets/index-z2Jm8i4A.css +1 -0
- package/dist/ui/index.html +2 -2
- package/dist/{update-3NBQTG32.js → update-TVXAUJMZ.js} +45 -11
- package/dist/update-TVXAUJMZ.js.map +1 -0
- package/dist/{user-prompt-submit-ME2TBKOS.js → user-prompt-submit-KYO2VGLB.js} +10 -9
- package/dist/user-prompt-submit-KYO2VGLB.js.map +1 -0
- package/dist/{version-GQAFBBPX.js → version-LDFEALUJ.js} +2 -2
- package/package.json +1 -1
- package/skills/myco-rules/SKILL.md +94 -0
- package/skills/{rules → myco-rules}/references/rules-bad-example.md +1 -1
- package/skills/{rules → myco-rules}/references/rules-good-example.md +1 -1
- package/dist/chunk-6LB7XELY.js.map +0 -1
- package/dist/chunk-CESKJD44.js.map +0 -1
- package/dist/chunk-CUDIZJY7.js +0 -36
- package/dist/chunk-CUDIZJY7.js.map +0 -1
- package/dist/chunk-G6QIBNZM.js.map +0 -1
- package/dist/chunk-JZS6GZ6T.js.map +0 -1
- package/dist/chunk-LVIY7P35.js.map +0 -1
- package/dist/chunk-NGH7U6A3.js.map +0 -1
- package/dist/chunk-NGROSFOH.js.map +0 -1
- package/dist/chunk-P66DLD6G.js.map +0 -1
- package/dist/chunk-R2JIJBCL.js.map +0 -1
- package/dist/chunk-VHNRMM4O.js.map +0 -1
- package/dist/chunk-XL75KZGI.js.map +0 -1
- package/dist/main-5PRQNEEE.js.map +0 -1
- package/dist/ui/assets/index-_OP4ifzH.css +0 -1
- package/dist/update-3NBQTG32.js.map +0 -1
- package/dist/user-prompt-submit-ME2TBKOS.js.map +0 -1
- package/skills/myco-curate/SKILL.md +0 -86
- package/skills/rules/SKILL.md +0 -214
- /package/dist/{agent-run-2JSYFOKU.js.map → agent-run-XJBTSVJR.js.map} +0 -0
- /package/dist/{agent-tasks-APFJIM2T.js.map → agent-tasks-7MWBZOC7.js.map} +0 -0
- /package/dist/{chunk-75Z7UKDY.js.map → chunk-4D22KTXY.js.map} +0 -0
- /package/dist/{chunk-5ZG4RMUH.js.map → chunk-N2DGFACQ.js.map} +0 -0
- /package/dist/{chunk-DJ3IHNYO.js.map → chunk-TFRUDNLI.js.map} +0 -0
- /package/dist/{chunk-ILJPRYES.js.map → chunk-USVFEWYL.js.map} +0 -0
- /package/dist/{chunk-JR54LTPP.js.map → chunk-W5L5IHP5.js.map} +0 -0
- /package/dist/{chunk-BUTL6IFS.js.map → chunk-Z55WGA2J.js.map} +0 -0
- /package/dist/{cli-LNYSTDQM.js.map → cli-DDHTHU2J.js.map} +0 -0
- /package/dist/{client-NWE4TCNO.js.map → client-PQU53UQU.js.map} +0 -0
- /package/dist/{detect-PXNM6TA7.js.map → detect-7NUD5B5R.js.map} +0 -0
- /package/dist/{doctor-TI7EZ3RW.js.map → doctor-QK6KFY6H.js.map} +0 -0
- /package/dist/{executor-F2YU7HXJ.js.map → executor-FJCMNSXM.js.map} +0 -0
- /package/dist/{init-KG3TYVGE.js.map → init-GQPD6HHX.js.map} +0 -0
- /package/dist/{installer-UMH7OJ5A.js.map → installer-N4UTEACX.js.map} +0 -0
- /package/dist/{loader-NAVVZK63.js.map → loader-UDNUMEDA.js.map} +0 -0
- /package/dist/{open-5A27BCSB.js.map → open-3P3DDAOA.js.map} +0 -0
- /package/dist/{post-compact-USAODKPQ.js.map → post-compact-QA5LME2J.js.map} +0 -0
- /package/dist/{post-tool-use-GMMSYBII.js.map → post-tool-use-QRZMPNYL.js.map} +0 -0
- /package/dist/{post-tool-use-failure-NZVSL2PO.js.map → post-tool-use-failure-XNHIKBZG.js.map} +0 -0
- /package/dist/{pre-compact-LZ57DLUS.js.map → pre-compact-HDV6X5QM.js.map} +0 -0
- /package/dist/{registry-M2Z5QBWH.js.map → registry-F3THYC5M.js.map} +0 -0
- /package/dist/{remove-T3KE6C5N.js.map → remove-USQDLGTJ.js.map} +0 -0
- /package/dist/{restart-YWDEVZUJ.js.map → restart-FQLZE2TW.js.map} +0 -0
- /package/dist/{search-GKFDGELR.js.map → search-5COKV6TD.js.map} +0 -0
- /package/dist/{session-2ZEPLWW6.js.map → session-NJCUW3OX.js.map} +0 -0
- /package/dist/{session-end-LWJYQAXX.js.map → session-end-XD27GRYF.js.map} +0 -0
- /package/dist/{session-start-WTA6GCOQ.js.map → session-start-RDTXUSYL.js.map} +0 -0
- /package/dist/{setup-llm-E7UU5IO7.js.map → setup-llm-FYPPJI6W.js.map} +0 -0
- /package/dist/{stats-DFG6S23S.js.map → stats-JCLZLA5G.js.map} +0 -0
- /package/dist/{stop-WRBTXEVT.js.map → stop-B7XCXEM5.js.map} +0 -0
- /package/dist/{stop-failure-32MGIG2Q.js.map → stop-failure-R6QZCUOZ.js.map} +0 -0
- /package/dist/{subagent-start-VFGHQFVL.js.map → subagent-start-N7A622F3.js.map} +0 -0
- /package/dist/{subagent-stop-663FXG3P.js.map → subagent-stop-SVOG5MZJ.js.map} +0 -0
- /package/dist/{task-completed-ZCQYEFMZ.js.map → task-completed-3DL5LJXF.js.map} +0 -0
- /package/dist/{team-JTI5CDUO.js.map → team-VJ3M263F.js.map} +0 -0
- /package/dist/{version-GQAFBBPX.js.map → version-LDFEALUJ.js.map} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
initVaultDb
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-W5L5IHP5.js";
|
|
5
5
|
import "./chunk-SAKJMNSR.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-OTQH5KZW.js";
|
|
7
7
|
import "./chunk-X3IGT5RV.js";
|
|
8
8
|
import {
|
|
9
9
|
getSession,
|
|
@@ -13,8 +13,8 @@ import "./chunk-53RPGOEN.js";
|
|
|
13
13
|
import "./chunk-OUJSQSKE.js";
|
|
14
14
|
import "./chunk-POEPHBQK.js";
|
|
15
15
|
import "./chunk-MYX5NCRH.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-6FBLL7MD.js";
|
|
17
|
+
import "./chunk-Z55WGA2J.js";
|
|
18
18
|
import "./chunk-LPUQPDC2.js";
|
|
19
19
|
import "./chunk-6C6QZ4PM.js";
|
|
20
20
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -72,4 +72,4 @@ ${target.summary}`);
|
|
|
72
72
|
export {
|
|
73
73
|
run
|
|
74
74
|
};
|
|
75
|
-
//# sourceMappingURL=session-
|
|
75
|
+
//# sourceMappingURL=session-NJCUW3OX.js.map
|
|
@@ -2,16 +2,16 @@ 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-N2DGFACQ.js";
|
|
6
6
|
import "./chunk-ZXZPJJN3.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveVaultDir
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TSM6VESW.js";
|
|
10
10
|
import {
|
|
11
11
|
DaemonClient
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-6FBLL7MD.js";
|
|
13
|
+
import "./chunk-Z55WGA2J.js";
|
|
14
|
+
import "./chunk-Z66IT5KL.js";
|
|
15
15
|
import "./chunk-LPUQPDC2.js";
|
|
16
16
|
import "./chunk-6C6QZ4PM.js";
|
|
17
17
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -41,4 +41,4 @@ async function main() {
|
|
|
41
41
|
export {
|
|
42
42
|
main
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=session-end-
|
|
44
|
+
//# sourceMappingURL=session-end-XD27GRYF.js.map
|
|
@@ -2,20 +2,20 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
|
|
|
2
2
|
import {
|
|
3
3
|
composeSessionStartContext,
|
|
4
4
|
shouldInjectSessionStartDigest
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-TFRUDNLI.js";
|
|
6
6
|
import {
|
|
7
7
|
getCortexInstructions,
|
|
8
8
|
shouldInjectCortex
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DBBO6FHE.js";
|
|
10
10
|
import "./chunk-RQSJLWP4.js";
|
|
11
11
|
import {
|
|
12
12
|
evaluateSessionCaptureRules,
|
|
13
13
|
readTranscriptMeta
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-EKZG2MCD.js";
|
|
15
|
+
import "./chunk-DMPCC7V6.js";
|
|
16
16
|
import {
|
|
17
17
|
createSchema
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-DTWUHHFI.js";
|
|
19
19
|
import {
|
|
20
20
|
loadMergedConfig
|
|
21
21
|
} from "./chunk-53RPGOEN.js";
|
|
@@ -28,18 +28,18 @@ import {
|
|
|
28
28
|
import {
|
|
29
29
|
normalizeHookInput,
|
|
30
30
|
readStdin
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-N2DGFACQ.js";
|
|
32
32
|
import "./chunk-ZXZPJJN3.js";
|
|
33
33
|
import {
|
|
34
34
|
resolveVaultDir
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-TSM6VESW.js";
|
|
36
36
|
import {
|
|
37
37
|
DaemonClient
|
|
38
|
-
} from "./chunk-
|
|
39
|
-
import "./chunk-
|
|
38
|
+
} from "./chunk-6FBLL7MD.js";
|
|
39
|
+
import "./chunk-Z55WGA2J.js";
|
|
40
40
|
import {
|
|
41
41
|
loadManifests
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-Z66IT5KL.js";
|
|
43
43
|
import "./chunk-LPUQPDC2.js";
|
|
44
44
|
import {
|
|
45
45
|
DEFAULT_AGENT_ID,
|
|
@@ -131,4 +131,4 @@ async function main() {
|
|
|
131
131
|
export {
|
|
132
132
|
main
|
|
133
133
|
};
|
|
134
|
-
//# sourceMappingURL=session-start-
|
|
134
|
+
//# sourceMappingURL=session-start-RDTXUSYL.js.map
|
|
@@ -2,11 +2,11 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
|
|
|
2
2
|
import {
|
|
3
3
|
withEmbedding
|
|
4
4
|
} from "./chunk-IPPMYQ2Y.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-W5L5IHP5.js";
|
|
6
6
|
import {
|
|
7
7
|
parseStringFlag
|
|
8
8
|
} from "./chunk-SAKJMNSR.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-OTQH5KZW.js";
|
|
10
10
|
import "./chunk-X3IGT5RV.js";
|
|
11
11
|
import {
|
|
12
12
|
loadConfig,
|
|
@@ -16,8 +16,8 @@ import "./chunk-OUJSQSKE.js";
|
|
|
16
16
|
import "./chunk-POEPHBQK.js";
|
|
17
17
|
import "./chunk-MYX5NCRH.js";
|
|
18
18
|
import "./chunk-ZXZPJJN3.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-6FBLL7MD.js";
|
|
20
|
+
import "./chunk-Z55WGA2J.js";
|
|
21
21
|
import "./chunk-LPUQPDC2.js";
|
|
22
22
|
import "./chunk-6C6QZ4PM.js";
|
|
23
23
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -82,4 +82,4 @@ async function run(args, vaultDir) {
|
|
|
82
82
|
export {
|
|
83
83
|
run
|
|
84
84
|
};
|
|
85
|
-
//# sourceMappingURL=setup-llm-
|
|
85
|
+
//# sourceMappingURL=setup-llm-FYPPJI6W.js.map
|
|
@@ -14,55 +14,61 @@ maxTurns: 12
|
|
|
14
14
|
timeoutSeconds: 180
|
|
15
15
|
schedule:
|
|
16
16
|
enabled: true
|
|
17
|
-
intervalSeconds:
|
|
17
|
+
intervalSeconds: 14400
|
|
18
18
|
runIn:
|
|
19
19
|
- idle
|
|
20
20
|
- sleep
|
|
21
21
|
|
|
22
22
|
prompt: |
|
|
23
|
-
|
|
23
|
+
You are producing session-start instructions for another coding agent
|
|
24
|
+
working in this project. The final artifact is written in the `author`
|
|
25
|
+
phase via `vault_report` with action "cortex_instructions". The `research`
|
|
26
|
+
phase does NOT draft markdown — it produces a compact situation brief
|
|
27
|
+
that the author phase shapes into prose.
|
|
24
28
|
|
|
25
29
|
You will receive:
|
|
26
|
-
- current context configuration
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
+
- current context configuration and capability summary
|
|
31
|
+
- tool guidance that must be encoded in the final instructions
|
|
32
|
+
- a digest excerpt plus recent sessions, spores (wisdom, decision, discovery),
|
|
33
|
+
and active plans
|
|
30
34
|
- authoring requirements that constrain the final output
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- Start with the heading `## Myco-Enabled Project`.
|
|
36
|
-
- Immediately follow with one brief sentence explaining that Myco provides project memory, prior decisions, plans, and retrieval tools for this project.
|
|
37
|
-
- Teach the most useful Myco tool behavior, not implementation details.
|
|
38
|
-
- Mention Myco tools using backticks.
|
|
39
|
-
- Use the recent vault context to make the instructions feel current when it adds signal.
|
|
40
|
-
- Keep the heading and intro brief so most tokens go to retrieval guidance.
|
|
41
|
-
- Keep the output compact and ready for direct injection.
|
|
42
|
-
- Do not restate AGENTS.md.
|
|
43
|
-
- Do not invent unavailable tools.
|
|
44
|
-
- Do not tell the agent to call `myco_skills`; project and Myco skills are already registered separately.
|
|
45
|
-
|
|
46
|
-
Call `vault_report` with action "cortex_instructions" and:
|
|
47
|
-
- summary: what the instructions emphasize
|
|
48
|
-
- details.content: the final markdown instructions
|
|
36
|
+
Do not restate AGENTS.md, installation details, or generic Myco boilerplate.
|
|
37
|
+
Do not invent unavailable tools. Do not tell the downstream agent to call
|
|
38
|
+
`myco_skills` — project and Myco skills are registered separately.
|
|
49
39
|
|
|
50
40
|
phases:
|
|
51
41
|
- name: research
|
|
42
|
+
reasoningLevel: default
|
|
52
43
|
prompt: |
|
|
53
|
-
|
|
44
|
+
Produce a compact situation brief. DO NOT write the final markdown
|
|
45
|
+
— that is the author phase's job.
|
|
46
|
+
|
|
47
|
+
Output exactly this structure as your phase summary:
|
|
54
48
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
## Hotspots (2-3)
|
|
50
|
+
- <named workstream, plan, or branch> — <one sentence on why a new
|
|
51
|
+
agent working in this repo should know about it>
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
-
|
|
61
|
-
- which current project hotspots or active workstreams are worth naming
|
|
62
|
-
- whether recent sessions, spores, or active plans reveal a better tool-use hint
|
|
53
|
+
## Recent signal
|
|
54
|
+
- <recent session title or spore worth citing> — <why it matters>
|
|
63
55
|
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
## Tool-use hint
|
|
57
|
+
- <one concrete hint a new agent would benefit from, grounded in
|
|
58
|
+
the recent activity above — e.g. "check active plans before
|
|
59
|
+
proposing X because plan Y already covers it">
|
|
60
|
+
|
|
61
|
+
Use the pre-assembled input (digest, recent sessions, spores,
|
|
62
|
+
active plans) as your starting point. Use `vault_search_fts`,
|
|
63
|
+
`vault_spores`, `vault_session_summary_material`, and
|
|
64
|
+
`vault_sessions` only to confirm a hotspot is current or to
|
|
65
|
+
disambiguate. Prefer active plans and the last 3 settled sessions
|
|
66
|
+
as anchors. If the input names a hotspot, verify it's still live
|
|
67
|
+
before keeping it — stale hotspots (work that has shipped and
|
|
68
|
+
moved on) are worse than no hotspot.
|
|
69
|
+
|
|
70
|
+
If you cannot identify 2-3 genuine hotspots, emit fewer — never
|
|
71
|
+
pad with boilerplate.
|
|
66
72
|
tools:
|
|
67
73
|
- vault_read_digest
|
|
68
74
|
- vault_sessions
|
|
@@ -77,16 +83,32 @@ phases:
|
|
|
77
83
|
- name: author
|
|
78
84
|
dependsOn: [research]
|
|
79
85
|
prompt: |
|
|
80
|
-
Write the final session-start
|
|
86
|
+
Write the final session-start markdown from the research brief.
|
|
87
|
+
|
|
88
|
+
Required structure:
|
|
89
|
+
- `## Myco-Enabled Project` heading, then one sentence explaining
|
|
90
|
+
that Myco provides project memory, prior decisions, plans, and
|
|
91
|
+
retrieval tools for this repository.
|
|
92
|
+
- A retrieval paragraph naming the highest-priority tools from the
|
|
93
|
+
tool guidance list (typically `myco_search`, `myco_recall`,
|
|
94
|
+
`myco_context`). Describe when each is useful, not what each
|
|
95
|
+
argument does.
|
|
96
|
+
- A plan-persistence paragraph naming `myco_plans` and
|
|
97
|
+
`myco_save_plan`.
|
|
98
|
+
- A `### Current workstreams` section that MUST cite at least
|
|
99
|
+
one active plan or recent session BY TITLE from the research
|
|
100
|
+
brief. If the research brief contains zero hotspots, write
|
|
101
|
+
"No active workstreams worth flagging right now." verbatim —
|
|
102
|
+
do not invent, recycle, or pad with stale items.
|
|
103
|
+
- A closing paragraph on `myco_remember` for saving discoveries.
|
|
81
104
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- teach the agent how to retrieve the right Myco knowledge on demand and persist plans when appropriate
|
|
85
|
-
- mention the most relevant current project activity when it adds value
|
|
86
|
-
- avoid generic boilerplate
|
|
87
|
-
- avoid telling the agent to call `myco_skills`
|
|
105
|
+
Keep the output compact and ready for direct injection. Do not
|
|
106
|
+
restate AGENTS.md. Do not mention `myco_skills`.
|
|
88
107
|
|
|
89
|
-
Report the final markdown via `vault_report
|
|
108
|
+
Report the final markdown via `vault_report` with:
|
|
109
|
+
- action: "cortex_instructions"
|
|
110
|
+
- summary: what the instructions emphasize
|
|
111
|
+
- details.content: the final markdown
|
|
90
112
|
tools:
|
|
91
113
|
- vault_report
|
|
92
114
|
maxTurns: 4
|
|
@@ -2,17 +2,20 @@ name: skill-evolve
|
|
|
2
2
|
displayName: Skill Evolution
|
|
3
3
|
description: >-
|
|
4
4
|
Evaluate and evolve existing Myco-managed skills. Assesses content
|
|
5
|
-
freshness
|
|
6
|
-
|
|
5
|
+
freshness against new spores AND codebase drift from refactors,
|
|
6
|
+
identifies merge and narrowness opportunities, and autonomously
|
|
7
|
+
consolidates the skill inventory.
|
|
7
8
|
agent: myco-agent
|
|
8
9
|
prompt: >-
|
|
9
|
-
Assess and evolve skills that have new knowledge
|
|
10
|
-
overlap. The instruction contains pre-filtered skills
|
|
11
|
-
content, new spore IDs, and pre-computed similarity
|
|
10
|
+
Assess and evolve skills that have new knowledge, codebase drift,
|
|
11
|
+
or structural overlap. The instruction contains pre-filtered skills
|
|
12
|
+
with their content, new spore IDs, and pre-computed similarity
|
|
13
|
+
analysis; the verify phase fact-checks the broader active skill
|
|
14
|
+
set against the codebase.
|
|
12
15
|
isDefault: false
|
|
13
16
|
reasoningLevel: default
|
|
14
|
-
maxTurns:
|
|
15
|
-
timeoutSeconds:
|
|
17
|
+
maxTurns: 72
|
|
18
|
+
timeoutSeconds: 2400
|
|
16
19
|
schedule:
|
|
17
20
|
enabled: false
|
|
18
21
|
intervalSeconds: 900
|
|
@@ -22,7 +25,7 @@ schedule:
|
|
|
22
25
|
preCondition: has-active-skills
|
|
23
26
|
params:
|
|
24
27
|
assess_interval_hours: 24
|
|
25
|
-
max_skills_per_run:
|
|
28
|
+
max_skills_per_run: 3
|
|
26
29
|
phases:
|
|
27
30
|
- name: inventory
|
|
28
31
|
reasoningLevel: low
|
|
@@ -81,13 +84,145 @@ phases:
|
|
|
81
84
|
required: true
|
|
82
85
|
readOnly: true
|
|
83
86
|
|
|
87
|
+
- name: verify
|
|
88
|
+
reasoningLevel: default
|
|
89
|
+
prompt: |
|
|
90
|
+
Fact-check active skills against the actual codebase. This phase
|
|
91
|
+
catches silent drift from refactors that didn't produce spores —
|
|
92
|
+
e.g., a file was renamed, a function was removed, a pattern was
|
|
93
|
+
replaced — so the spore-driven assessment in the next phase would
|
|
94
|
+
otherwise leave the skill's stale content in place.
|
|
95
|
+
|
|
96
|
+
## Selection
|
|
97
|
+
|
|
98
|
+
List active skills via vault_skill_records (action: list,
|
|
99
|
+
status: active). Prioritize up to 2 skills with the OLDEST
|
|
100
|
+
`last_verified_at` in properties (missing/zero counts as oldest,
|
|
101
|
+
so never-verified skills sort to the front). If fewer than 2
|
|
102
|
+
active skills exist, verify them all. This watermark is
|
|
103
|
+
independent of `last_assessed_at` — it rotates verify coverage
|
|
104
|
+
even when assess never touches the skill, which is the whole
|
|
105
|
+
point: skills that never get new spores still need to be
|
|
106
|
+
fact-checked for silent refactor drift. Full rotation time
|
|
107
|
+
scales with the active skill count divided by 2, so a larger
|
|
108
|
+
skill inventory naturally stretches the verify cadence.
|
|
109
|
+
|
|
110
|
+
Skills flagged by the inventory phase (merge_candidates or
|
|
111
|
+
narrow_candidates in vault_state:skill-evolve-inventory) can be
|
|
112
|
+
skipped here — they're already going to be rewritten in act.
|
|
113
|
+
|
|
114
|
+
## Per-skill procedure
|
|
115
|
+
|
|
116
|
+
For each selected skill:
|
|
117
|
+
|
|
118
|
+
1. Read full content via vault_skill_records (action: get).
|
|
119
|
+
2. Identify the 3-5 most LOAD-BEARING concrete claims. A claim
|
|
120
|
+
is load-bearing if the procedure depends on it being true.
|
|
121
|
+
Examples:
|
|
122
|
+
- "Edit `packages/myco/src/db/schema.ts`" — path claim
|
|
123
|
+
- "Call `setFocusedPanel()`" — identifier claim
|
|
124
|
+
- "The daemon restarts executor on SIGHUP" — behavior claim
|
|
125
|
+
Skip generic advice ("use good naming"), tool names that are
|
|
126
|
+
universal (e.g., `grep`), and illustrative code snippets that
|
|
127
|
+
aren't literal file content.
|
|
128
|
+
3. Verify each claim with the cheapest tool that answers it:
|
|
129
|
+
- **Path claim** → fs_read with a narrow line window (e.g.,
|
|
130
|
+
start_line=1, end_line=30). ENOENT or unrelated content =
|
|
131
|
+
MISSING/OUTDATED. For a DIRECTORY path, use fs_list or
|
|
132
|
+
fs_tree instead — fs_read on a directory returns an error
|
|
133
|
+
and burns a turn.
|
|
134
|
+
- **Identifier claim** → code_grep for the symbol with a
|
|
135
|
+
path+glob filter. Zero hits in expected location = MISSING.
|
|
136
|
+
- **Behavior claim** → code_grep for signature patterns that
|
|
137
|
+
would implement it. Zero hits = MISSING.
|
|
138
|
+
|
|
139
|
+
HARD LIMIT: **at most 2 tool calls per claim**, and **at most
|
|
140
|
+
4 claims per skill**, so ~8 filesystem calls per skill
|
|
141
|
+
absolute maximum. If your first grep returns too many hits
|
|
142
|
+
or the wrong ones, DO NOT refine and retry — accept
|
|
143
|
+
INCONCLUSIVE and move on. Exploratory refinement is exactly
|
|
144
|
+
how this phase burned through budget on earlier runs.
|
|
145
|
+
|
|
146
|
+
4. Categorize each claim: VERIFIED / MISSING / OUTDATED /
|
|
147
|
+
INCONCLUSIVE. INCONCLUSIVE is fine when the claim is too
|
|
148
|
+
fuzzy to verify cheaply — don't burn turns on it.
|
|
149
|
+
|
|
150
|
+
5. Aggregate for the skill:
|
|
151
|
+
- confidence: high (>=80% verified), medium, or low
|
|
152
|
+
- severity: none / minor (1 cosmetic miss) / major
|
|
153
|
+
(load-bearing miss) / critical (most refs gone)
|
|
154
|
+
|
|
155
|
+
6. Update the skill's verify watermark REGARDLESS of severity —
|
|
156
|
+
skipping this step on severity=none would make verify re-pick
|
|
157
|
+
the same skill forever. Example call:
|
|
158
|
+
|
|
159
|
+
vault_skill_records({
|
|
160
|
+
action: "update",
|
|
161
|
+
id: "<the-skill-uuid>",
|
|
162
|
+
properties: "{\"last_verified_at\": 1776580022}"
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
`properties` is a JSON string, merged into the skill's existing
|
|
166
|
+
properties. Any recent epoch-seconds integer works as the
|
|
167
|
+
timestamp — this is a rotation cursor, not an audit timestamp.
|
|
168
|
+
|
|
169
|
+
## Budget discipline
|
|
170
|
+
|
|
171
|
+
Total budget for this phase: {{max_turns}} turns covering ALL
|
|
172
|
+
selected skills combined. Plan per-skill budget as roughly
|
|
173
|
+
`{{max_turns}} / skills_selected` turns. Recommended shape:
|
|
174
|
+
1 content read + up to 4 claim checks × up to 2 tool calls +
|
|
175
|
+
1 watermark write. Stop verifying a skill as soon as severity
|
|
176
|
+
is clear — finding one MISSING load-bearing claim is enough
|
|
177
|
+
to flag the skill; don't check remaining claims.
|
|
178
|
+
|
|
179
|
+
Prefer narrow fs_read windows (start/end lines) over whole-file
|
|
180
|
+
reads. Prefer code_grep with a path/glob filter over an open grep.
|
|
181
|
+
When a tool returns "Not a file" or zero matches, accept that
|
|
182
|
+
answer and move on — do not retry with adjusted args.
|
|
183
|
+
|
|
184
|
+
Tools available for this phase: {{phase_tools}}.
|
|
185
|
+
|
|
186
|
+
## Store results
|
|
187
|
+
|
|
188
|
+
Store via vault_set_state (key: skill-evolve-drift) as JSON:
|
|
189
|
+
{
|
|
190
|
+
"verified_at": <epoch-seconds>,
|
|
191
|
+
"reports": [
|
|
192
|
+
{
|
|
193
|
+
"skill_id": "...",
|
|
194
|
+
"name": "...",
|
|
195
|
+
"severity": "none|minor|major|critical",
|
|
196
|
+
"confidence": "high|medium|low",
|
|
197
|
+
"notes": "Short: what's missing or outdated.",
|
|
198
|
+
"load_bearing_misses": ["claim 1", "claim 2"]
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
Report via vault_report. If no active skills are selectable
|
|
204
|
+
(e.g., all were flagged by inventory for merge), store an empty
|
|
205
|
+
reports array and report skip.
|
|
206
|
+
tools:
|
|
207
|
+
- vault_skill_records
|
|
208
|
+
- vault_set_state
|
|
209
|
+
- vault_report
|
|
210
|
+
- fs_read
|
|
211
|
+
- fs_list
|
|
212
|
+
- code_grep
|
|
213
|
+
maxTurns: 24
|
|
214
|
+
required: true
|
|
215
|
+
dependsOn:
|
|
216
|
+
- inventory
|
|
217
|
+
|
|
84
218
|
- name: assess
|
|
85
219
|
reasoningLevel: default
|
|
86
220
|
prompt: |
|
|
87
|
-
Read
|
|
88
|
-
|
|
221
|
+
Read two pre-computed inputs from vault_state:
|
|
222
|
+
- key: skill-evolve-inventory (merge/narrow candidates)
|
|
223
|
+
- key: skill-evolve-drift (codebase verification reports)
|
|
89
224
|
|
|
90
|
-
There are
|
|
225
|
+
There are THREE sources of skills to assess:
|
|
91
226
|
|
|
92
227
|
**A. Skills with new knowledge** — listed in the instruction
|
|
93
228
|
with descriptions and new spore IDs (full content is NOT in
|
|
@@ -98,8 +233,8 @@ phases:
|
|
|
98
233
|
get, id: "<name>") and verify 2-3 code references via
|
|
99
234
|
vault_search_fts. Skip content reads for skills where
|
|
100
235
|
the new spores are clearly unrelated.
|
|
101
|
-
3. Check the inventory
|
|
102
|
-
for merge or
|
|
236
|
+
3. Check the inventory AND drift analyses: is this skill also
|
|
237
|
+
flagged for merge, narrowness, or codebase drift?
|
|
103
238
|
|
|
104
239
|
**B. Inventory-flagged skills** — merge_candidates and
|
|
105
240
|
narrow_candidates from the inventory analysis. These may NOT
|
|
@@ -109,12 +244,30 @@ phases:
|
|
|
109
244
|
2. Verify the inventory's merge/narrow recommendation by
|
|
110
245
|
reading both skills' content.
|
|
111
246
|
|
|
112
|
-
|
|
247
|
+
**C. Drift-flagged skills** — reports from the verify phase with
|
|
248
|
+
severity of `minor`, `major`, or `critical`. These may NOT appear
|
|
249
|
+
in the instruction (no new spores) but need attention because
|
|
250
|
+
their content no longer matches the codebase. For each drift
|
|
251
|
+
report not already covered above:
|
|
252
|
+
1. Read the skill's content via vault_skill_records (action: get).
|
|
253
|
+
2. Trust the verify phase's load_bearing_misses as the STALE
|
|
254
|
+
detail set. You do NOT need to re-run fs_read/code_grep —
|
|
255
|
+
the verify phase already did that work. Only re-check if
|
|
256
|
+
the verify report's confidence is low.
|
|
257
|
+
3. Major/critical severity with confidence high/medium should
|
|
258
|
+
classify as STALE (or DEPRECATED if the entire subsystem
|
|
259
|
+
described is gone). Minor severity may stay CURRENT unless
|
|
260
|
+
combined with new-spore evidence.
|
|
261
|
+
|
|
262
|
+
For ALL skills from all three sources, classify with one of:
|
|
113
263
|
- CURRENT — still accurate, no changes needed.
|
|
114
|
-
- STALE — new knowledge changes specific
|
|
115
|
-
or gotchas. Note exactly WHAT is new
|
|
264
|
+
- STALE — new knowledge OR drift report changes specific
|
|
265
|
+
steps, paths, or gotchas. Note exactly WHAT is new or
|
|
266
|
+
wrong (cite the drift report's load_bearing_misses if
|
|
267
|
+
that's the driver).
|
|
116
268
|
- DEPRECATED — key code references are gone or the
|
|
117
269
|
procedure is no longer relevant. Note what's missing.
|
|
270
|
+
Drift severity=critical is the strongest signal here.
|
|
118
271
|
- MERGE — overlaps significantly with another skill
|
|
119
272
|
(from inventory analysis). Note the TARGET skill to
|
|
120
273
|
merge into.
|
|
@@ -122,10 +275,11 @@ phases:
|
|
|
122
275
|
inventory analysis). Note the BROADER skill to absorb
|
|
123
276
|
into.
|
|
124
277
|
|
|
125
|
-
Bias toward CURRENT. A skill that is 90%
|
|
126
|
-
better left alone than rewritten with risk of
|
|
127
|
-
|
|
128
|
-
|
|
278
|
+
Bias toward CURRENT for cosmetic issues. A skill that is 90%
|
|
279
|
+
accurate is better left alone than rewritten with risk of
|
|
280
|
+
losing detail. Do NOT bias toward CURRENT when a drift report
|
|
281
|
+
flags load-bearing misses with high confidence — that's
|
|
282
|
+
exactly the refactor-drift case this pipeline exists to catch.
|
|
129
283
|
|
|
130
284
|
5. Update the skill's properties with the new watermark:
|
|
131
285
|
vault_skill_records (action: update, id: <skill_id>,
|
|
@@ -143,8 +297,9 @@ phases:
|
|
|
143
297
|
Report via vault_report.
|
|
144
298
|
|
|
145
299
|
If the instruction says "No skills need assessment" AND the
|
|
146
|
-
inventory has no merge/narrow candidates
|
|
147
|
-
|
|
300
|
+
inventory has no merge/narrow candidates AND the drift report
|
|
301
|
+
has no minor+ severity entries, report skip via vault_report
|
|
302
|
+
and finish.
|
|
148
303
|
tools:
|
|
149
304
|
- vault_spores
|
|
150
305
|
- vault_search_fts
|
|
@@ -155,6 +310,7 @@ phases:
|
|
|
155
310
|
required: true
|
|
156
311
|
dependsOn:
|
|
157
312
|
- inventory
|
|
313
|
+
- verify
|
|
158
314
|
|
|
159
315
|
- name: act
|
|
160
316
|
reasoningLevel: low
|
|
@@ -11,7 +11,7 @@ prompt: >-
|
|
|
11
11
|
source material. Stage the skill, validate it, then finalize it.
|
|
12
12
|
isDefault: false
|
|
13
13
|
reasoningLevel: default
|
|
14
|
-
maxTurns:
|
|
14
|
+
maxTurns: 32
|
|
15
15
|
timeoutSeconds: 900
|
|
16
16
|
schedule:
|
|
17
17
|
enabled: false
|
|
@@ -177,9 +177,22 @@ phases:
|
|
|
177
177
|
staging path's dedup gate already ran on your description;
|
|
178
178
|
this is a sanity check on the procedural content itself.
|
|
179
179
|
|
|
180
|
-
7. **Accuracy
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
7. **Accuracy (codebase-grounded):** Identify the 3-5 most
|
|
181
|
+
LOAD-BEARING concrete claims — paths, function/class names,
|
|
182
|
+
patterns the procedure depends on — and verify each against
|
|
183
|
+
the actual source:
|
|
184
|
+
- **Path claim** → `fs_read` (narrow window). ENOENT or
|
|
185
|
+
unrelated content = FAIL.
|
|
186
|
+
- **Identifier claim** → `code_grep` with a path+glob filter.
|
|
187
|
+
Zero hits in the expected location = FAIL.
|
|
188
|
+
- **Behavior claim** → `code_grep` for signature patterns
|
|
189
|
+
that would implement it. Zero hits = FAIL.
|
|
190
|
+
Budget 1-2 tool calls per claim.
|
|
191
|
+
|
|
192
|
+
If any load-bearing claim FAILS, treat as a criterion failure
|
|
193
|
+
and re-stage with corrected content. Do not finalize a skill
|
|
194
|
+
whose load-bearing paths can't be verified against the
|
|
195
|
+
current codebase — that's how hallucinated paths ship.
|
|
183
196
|
|
|
184
197
|
## If criteria fail
|
|
185
198
|
|
|
@@ -216,9 +229,10 @@ phases:
|
|
|
216
229
|
- vault_skill_records
|
|
217
230
|
- vault_skill_candidates
|
|
218
231
|
- vault_spores
|
|
219
|
-
- vault_search_fts
|
|
220
232
|
- vault_report
|
|
221
|
-
|
|
233
|
+
- fs_read
|
|
234
|
+
- code_grep
|
|
235
|
+
maxTurns: 18
|
|
222
236
|
required: true
|
|
223
237
|
dependsOn:
|
|
224
238
|
- draft
|