@elizaos/skills 2.0.0-alpha.41 → 2.0.0-alpha.411

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.
Files changed (154) hide show
  1. package/README.md +4 -0
  2. package/dist/formatter.d.ts.map +1 -1
  3. package/dist/formatter.js +3 -3
  4. package/dist/frontmatter.d.ts +13 -1
  5. package/dist/frontmatter.d.ts.map +1 -1
  6. package/dist/frontmatter.js +51 -1
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +2 -2
  10. package/dist/loader.d.ts.map +1 -1
  11. package/dist/loader.js +10 -3
  12. package/dist/resolver.d.ts +17 -0
  13. package/dist/resolver.d.ts.map +1 -1
  14. package/dist/resolver.js +54 -1
  15. package/dist/types.d.ts +38 -1
  16. package/dist/types.d.ts.map +1 -1
  17. package/package.json +7 -6
  18. package/skills/apple-reminders/SKILL.md +1 -1
  19. package/skills/blucli/SKILL.md +1 -1
  20. package/skills/bluebubbles/SKILL.md +1 -1
  21. package/skills/camsnap/SKILL.md +1 -1
  22. package/skills/canvas/SKILL.md +6 -6
  23. package/skills/coding-agent/SKILL.md +2 -2
  24. package/skills/eliza-app-development/SKILL.md +62 -0
  25. package/skills/eliza-app-development/references/repo-map.md +70 -0
  26. package/skills/eliza-app-development/references/runtime-and-cloud.md +61 -0
  27. package/skills/eliza-cloud/SKILL.md +39 -0
  28. package/skills/eliza-cloud/references/apps-and-containers.md +73 -0
  29. package/skills/eliza-cloud/references/cloud-backend-and-monetization.md +99 -0
  30. package/skills/elizaos/SKILL.md +27 -0
  31. package/skills/elizaos/references/core-abstractions.md +101 -0
  32. package/skills/elizaos/references/plugin-development.md +74 -0
  33. package/skills/github/SKILL.md +1 -1
  34. package/skills/imsg/SKILL.md +1 -1
  35. package/skills/nano-banana-pro/SKILL.md +1 -1
  36. package/skills/nano-pdf/SKILL.md +1 -1
  37. package/skills/notion/SKILL.md +1 -1
  38. package/skills/obsidian/SKILL.md +1 -1
  39. package/skills/ordercli/SKILL.md +1 -1
  40. package/skills/skill-creator/SKILL.md +1 -1
  41. package/skills/slack/SKILL.md +1 -1
  42. package/skills/spotify-player/SKILL.md +1 -1
  43. package/skills/tmux/SKILL.md +1 -1
  44. package/skills/trello/SKILL.md +1 -1
  45. package/skills/wacli/SKILL.md +1 -1
  46. package/skills/weather/SKILL.md +1 -1
  47. package/skills/yara-authoring/SKILL.md +111 -0
  48. package/skills/bear-notes/SKILL.md +0 -107
  49. package/skills/bird/SKILL.md +0 -224
  50. package/skills/blogwatcher/SKILL.md +0 -69
  51. package/skills/clawhub/SKILL.md +0 -77
  52. package/skills/eightctl/SKILL.md +0 -50
  53. package/skills/food-order/SKILL.md +0 -48
  54. package/skills/gemini/SKILL.md +0 -43
  55. package/skills/gifgrep/SKILL.md +0 -79
  56. package/skills/gog/SKILL.md +0 -116
  57. package/skills/goplaces/SKILL.md +0 -52
  58. package/skills/himalaya/SKILL.md +0 -257
  59. package/skills/himalaya/references/configuration.md +0 -184
  60. package/skills/himalaya/references/message-composition.md +0 -199
  61. package/skills/local-places/SERVER_README.md +0 -101
  62. package/skills/local-places/SKILL.md +0 -102
  63. package/skills/local-places/pyproject.toml +0 -21
  64. package/skills/local-places/src/local_places/__init__.py +0 -2
  65. package/skills/local-places/src/local_places/google_places.py +0 -314
  66. package/skills/local-places/src/local_places/main.py +0 -65
  67. package/skills/local-places/src/local_places/schemas.py +0 -107
  68. package/skills/mcporter/SKILL.md +0 -61
  69. package/skills/model-usage/SKILL.md +0 -69
  70. package/skills/model-usage/references/codexbar-cli.md +0 -33
  71. package/skills/model-usage/scripts/model_usage.py +0 -310
  72. package/skills/openai-image-gen/SKILL.md +0 -89
  73. package/skills/openai-image-gen/scripts/gen.py +0 -240
  74. package/skills/openai-whisper/SKILL.md +0 -38
  75. package/skills/openai-whisper-api/SKILL.md +0 -52
  76. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
  77. package/skills/openhue/SKILL.md +0 -51
  78. package/skills/oracle/SKILL.md +0 -125
  79. package/skills/peekaboo/SKILL.md +0 -190
  80. package/skills/sag/SKILL.md +0 -87
  81. package/skills/session-logs/SKILL.md +0 -115
  82. package/skills/sharp-edges/.claude-plugin/plugin.json +0 -10
  83. package/skills/sharp-edges/README.md +0 -48
  84. package/skills/sharp-edges/SKILL.md +0 -292
  85. package/skills/sharp-edges/skills/sharp-edges/SKILL.md +0 -292
  86. package/skills/sharp-edges/skills/sharp-edges/references/auth-patterns.md +0 -252
  87. package/skills/sharp-edges/skills/sharp-edges/references/case-studies.md +0 -274
  88. package/skills/sharp-edges/skills/sharp-edges/references/config-patterns.md +0 -333
  89. package/skills/sharp-edges/skills/sharp-edges/references/crypto-apis.md +0 -190
  90. package/skills/sharp-edges/skills/sharp-edges/references/lang-c.md +0 -205
  91. package/skills/sharp-edges/skills/sharp-edges/references/lang-csharp.md +0 -285
  92. package/skills/sharp-edges/skills/sharp-edges/references/lang-go.md +0 -270
  93. package/skills/sharp-edges/skills/sharp-edges/references/lang-java.md +0 -263
  94. package/skills/sharp-edges/skills/sharp-edges/references/lang-javascript.md +0 -269
  95. package/skills/sharp-edges/skills/sharp-edges/references/lang-kotlin.md +0 -265
  96. package/skills/sharp-edges/skills/sharp-edges/references/lang-php.md +0 -245
  97. package/skills/sharp-edges/skills/sharp-edges/references/lang-python.md +0 -274
  98. package/skills/sharp-edges/skills/sharp-edges/references/lang-ruby.md +0 -273
  99. package/skills/sharp-edges/skills/sharp-edges/references/lang-rust.md +0 -272
  100. package/skills/sharp-edges/skills/sharp-edges/references/lang-swift.md +0 -287
  101. package/skills/sharp-edges/skills/sharp-edges/references/language-specific.md +0 -588
  102. package/skills/sherpa-onnx-tts/SKILL.md +0 -103
  103. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  104. package/skills/songsee/SKILL.md +0 -49
  105. package/skills/sonoscli/SKILL.md +0 -46
  106. package/skills/spec-to-code-compliance/.claude-plugin/plugin.json +0 -10
  107. package/skills/spec-to-code-compliance/README.md +0 -67
  108. package/skills/spec-to-code-compliance/SKILL.md +0 -349
  109. package/skills/spec-to-code-compliance/commands/spec-compliance.md +0 -22
  110. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md +0 -349
  111. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +0 -69
  112. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +0 -417
  113. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +0 -105
  114. package/skills/static-analysis/.claude-plugin/plugin.json +0 -8
  115. package/skills/static-analysis/README.md +0 -59
  116. package/skills/static-analysis/SKILL.md +0 -91
  117. package/skills/static-analysis/skills/codeql/SKILL.md +0 -315
  118. package/skills/static-analysis/skills/sarif-parsing/SKILL.md +0 -479
  119. package/skills/static-analysis/skills/sarif-parsing/resources/jq-queries.md +0 -162
  120. package/skills/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +0 -331
  121. package/skills/static-analysis/skills/semgrep/SKILL.md +0 -337
  122. package/skills/summarize/SKILL.md +0 -87
  123. package/skills/testing-handbook-skills/.claude-plugin/plugin.json +0 -8
  124. package/skills/testing-handbook-skills/README.md +0 -241
  125. package/skills/testing-handbook-skills/SKILL.md +0 -104
  126. package/skills/testing-handbook-skills/scripts/pyproject.toml +0 -8
  127. package/skills/testing-handbook-skills/scripts/validate-skills.py +0 -657
  128. package/skills/testing-handbook-skills/skills/address-sanitizer/SKILL.md +0 -341
  129. package/skills/testing-handbook-skills/skills/aflpp/SKILL.md +0 -640
  130. package/skills/testing-handbook-skills/skills/atheris/SKILL.md +0 -515
  131. package/skills/testing-handbook-skills/skills/cargo-fuzz/SKILL.md +0 -454
  132. package/skills/testing-handbook-skills/skills/codeql/SKILL.md +0 -549
  133. package/skills/testing-handbook-skills/skills/constant-time-testing/SKILL.md +0 -507
  134. package/skills/testing-handbook-skills/skills/coverage-analysis/SKILL.md +0 -607
  135. package/skills/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md +0 -297
  136. package/skills/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md +0 -426
  137. package/skills/testing-handbook-skills/skills/harness-writing/SKILL.md +0 -614
  138. package/skills/testing-handbook-skills/skills/libafl/SKILL.md +0 -625
  139. package/skills/testing-handbook-skills/skills/libfuzzer/SKILL.md +0 -795
  140. package/skills/testing-handbook-skills/skills/ossfuzz/SKILL.md +0 -426
  141. package/skills/testing-handbook-skills/skills/ruzzy/SKILL.md +0 -443
  142. package/skills/testing-handbook-skills/skills/semgrep/SKILL.md +0 -601
  143. package/skills/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md +0 -372
  144. package/skills/testing-handbook-skills/skills/testing-handbook-generator/agent-prompt.md +0 -280
  145. package/skills/testing-handbook-skills/skills/testing-handbook-generator/discovery.md +0 -452
  146. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/domain-skill.md +0 -504
  147. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/fuzzer-skill.md +0 -454
  148. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/technique-skill.md +0 -527
  149. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/tool-skill.md +0 -366
  150. package/skills/testing-handbook-skills/skills/testing-handbook-generator/testing.md +0 -482
  151. package/skills/testing-handbook-skills/skills/wycheproof/SKILL.md +0 -533
  152. package/skills/video-frames/SKILL.md +0 -46
  153. package/skills/video-frames/scripts/frame.sh +0 -81
  154. package/skills/voice-call/SKILL.md +0 -45
package/README.md CHANGED
@@ -62,6 +62,10 @@ const commands = buildSkillCommandSpecs(entries);
62
62
  // Returns array of command specs for chat interfaces
63
63
  ```
64
64
 
65
+ ## Bundled documentation skills
66
+
67
+ Alongside community-oriented skills, this package ships **`elizaos`**, **`eliza-cloud`**, and **`eliza-app-development`** — concise references for elizaOS runtime concepts, Eliza Cloud as a backend, and building elizaOS-based applications (including the Eliza app repository layout).
68
+
65
69
  ## Skill Discovery
66
70
 
67
71
  Skills are loaded from multiple locations in precedence order (later overrides earlier):
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAkBtE;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CA8B7D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAMzE;AAyDD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,UAAU,EAAE,EACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,gBAAgB,EAAE,CAgEpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBtE;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CA8B7D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAMzE;AA0DD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,UAAU,EAAE,EACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,gBAAgB,EAAE,CAgEpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAExD"}
package/dist/formatter.js CHANGED
@@ -5,8 +5,7 @@
5
5
  * @returns XML-escaped string
6
6
  */
7
7
  function escapeXml(str) {
8
- const s = typeof str === "string" ? str : String(str ?? "");
9
- return s
8
+ return str
10
9
  .replace(/&/g, "&")
11
10
  .replace(/</g, "&lt;")
12
11
  .replace(/>/g, "&gt;")
@@ -74,7 +73,8 @@ const SKILL_COMMAND_DESCRIPTION_MAX_LENGTH = 100;
74
73
  * @returns Sanitized command name
75
74
  */
76
75
  function sanitizeSkillCommandName(raw) {
77
- const normalized = raw
76
+ const clamped = raw.length > 1024 ? raw.slice(0, 1024) : raw;
77
+ const normalized = clamped
78
78
  .toLowerCase()
79
79
  .replace(/[^a-z0-9_]+/g, "_")
80
80
  .replace(/_+/g, "_")
@@ -1,4 +1,4 @@
1
- import type { SkillFrontmatter, SkillInvocationPolicy, SkillMetadata } from "./types.js";
1
+ import type { SkillFrontmatter, SkillInvocationPolicy, SkillMetadata, SkillProvenance } from "./types.js";
2
2
  /**
3
3
  * Result of parsing frontmatter from a file
4
4
  */
@@ -36,4 +36,16 @@ export declare function resolveSkillMetadata(frontmatter: SkillFrontmatter): Ski
36
36
  * @returns Invocation policy
37
37
  */
38
38
  export declare function resolveSkillInvocationPolicy(frontmatter: SkillFrontmatter): SkillInvocationPolicy;
39
+ /**
40
+ * Best-effort provenance parsing from a frontmatter block. Returns `undefined`
41
+ * when the block is missing or malformed (we do not fail loading on bad
42
+ * provenance — it is informational metadata).
43
+ */
44
+ export declare function resolveSkillProvenance(frontmatter: SkillFrontmatter): SkillProvenance | undefined;
45
+ /**
46
+ * Serialize a SKILL.md file with updated frontmatter, preserving body content.
47
+ * Used by the closed learning loop to rewrite provenance after refinement and
48
+ * scoring.
49
+ */
50
+ export declare function serializeSkillFile(frontmatter: SkillFrontmatter, body: string): string;
39
51
  //# sourceMappingURL=frontmatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,gCAAgC;IAChC,WAAW,EAAE,CAAC,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;CACd;AAkCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAOvC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,gBAAgB,GAC5B,aAAa,CAmCf;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,gBAAgB,GAC5B,qBAAqB,CAmBvB"}
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,gCAAgC;IAChC,WAAW,EAAE,CAAC,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;CACd;AAkCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAOvC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,gBAAgB,GAC5B,aAAa,CAmCf;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,gBAAgB,GAC5B,qBAAqB,CAmBvB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,gBAAgB,GAC5B,eAAe,GAAG,SAAS,CAwC7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,gBAAgB,EAC7B,IAAI,EAAE,MAAM,GACX,MAAM,CAIR"}
@@ -1,4 +1,4 @@
1
- import { parse } from "yaml";
1
+ import { parse, stringify } from "yaml";
2
2
  /**
3
3
  * Normalize line endings to Unix-style LF
4
4
  */
@@ -103,3 +103,53 @@ export function resolveSkillInvocationPolicy(frontmatter) {
103
103
  }
104
104
  return policy;
105
105
  }
106
+ /**
107
+ * Best-effort provenance parsing from a frontmatter block. Returns `undefined`
108
+ * when the block is missing or malformed (we do not fail loading on bad
109
+ * provenance — it is informational metadata).
110
+ */
111
+ export function resolveSkillProvenance(frontmatter) {
112
+ const raw = frontmatter.provenance;
113
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
114
+ return undefined;
115
+ }
116
+ const record = raw;
117
+ const source = record.source;
118
+ if (source !== "human" &&
119
+ source !== "agent-generated" &&
120
+ source !== "agent-refined") {
121
+ return undefined;
122
+ }
123
+ const createdAt = typeof record.createdAt === "string" ? record.createdAt : undefined;
124
+ if (!createdAt) {
125
+ return undefined;
126
+ }
127
+ const refinedCountRaw = record.refinedCount;
128
+ const refinedCount = typeof refinedCountRaw === "number" && Number.isFinite(refinedCountRaw)
129
+ ? Math.max(0, Math.floor(refinedCountRaw))
130
+ : 0;
131
+ const provenance = {
132
+ source,
133
+ createdAt,
134
+ refinedCount,
135
+ };
136
+ if (typeof record.derivedFromTrajectory === "string") {
137
+ provenance.derivedFromTrajectory = record.derivedFromTrajectory;
138
+ }
139
+ if (typeof record.lastEvalScore === "number" &&
140
+ Number.isFinite(record.lastEvalScore)) {
141
+ const score = record.lastEvalScore;
142
+ provenance.lastEvalScore = Math.max(0, Math.min(1, score));
143
+ }
144
+ return provenance;
145
+ }
146
+ /**
147
+ * Serialize a SKILL.md file with updated frontmatter, preserving body content.
148
+ * Used by the closed learning loop to rewrite provenance after refinement and
149
+ * scoring.
150
+ */
151
+ export function serializeSkillFile(frontmatter, body) {
152
+ const yaml = stringify(frontmatter).trimEnd();
153
+ const trimmedBody = body.replace(/^\n+/, "");
154
+ return `---\n${yaml}\n---\n\n${trimmedBody}`;
155
+ }
package/dist/index.d.ts CHANGED
@@ -22,8 +22,8 @@
22
22
  * ```
23
23
  */
24
24
  export { buildSkillCommandSpecs, formatSkillEntriesForPrompt, formatSkillSummary, formatSkillsForPrompt, formatSkillsList, } from "./formatter.js";
25
- export { type ParsedFrontmatter, parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, stripFrontmatter, } from "./frontmatter.js";
25
+ export { type ParsedFrontmatter, parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, resolveSkillProvenance, serializeSkillFile, stripFrontmatter, } from "./frontmatter.js";
26
26
  export { loadSkillEntries, loadSkills, loadSkillsFromDir } from "./loader.js";
27
- export { clearSkillsDirCache, getSkillsDir } from "./resolver.js";
28
- export type { LoadSkillsFromDirOptions, LoadSkillsOptions, LoadSkillsResult, Skill, SkillActionDefinition, SkillCommandSpec, SkillDiagnostic, SkillEntry, SkillFrontmatter, SkillInvocationPolicy, SkillMetadata, SkillProviderDefinition, SkillToolDefinition, } from "./types.js";
27
+ export { clearSkillsDirCache, getCuratedActiveDir, getProposedSkillsDir, getSkillsDir, promoteSkill, } from "./resolver.js";
28
+ export type { LoadSkillsFromDirOptions, LoadSkillsOptions, LoadSkillsResult, Skill, SkillActionDefinition, SkillCommandSpec, SkillDiagnostic, SkillEntry, SkillFrontmatter, SkillInvocationPolicy, SkillMetadata, SkillProvenance, SkillProviderDefinition, SkillToolDefinition, } from "./types.js";
29
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElE,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -24,8 +24,8 @@
24
24
  // Prompt formatting
25
25
  export { buildSkillCommandSpecs, formatSkillEntriesForPrompt, formatSkillSummary, formatSkillsForPrompt, formatSkillsList, } from "./formatter.js";
26
26
  // Frontmatter parsing
27
- export { parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, stripFrontmatter, } from "./frontmatter.js";
27
+ export { parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, resolveSkillProvenance, serializeSkillFile, stripFrontmatter, } from "./frontmatter.js";
28
28
  // Skill loading
29
29
  export { loadSkillEntries, loadSkills, loadSkillsFromDir } from "./loader.js";
30
30
  // Path resolution
31
- export { clearSkillsDirCache, getSkillsDir } from "./resolver.js";
31
+ export { clearSkillsDirCache, getCuratedActiveDir, getProposedSkillsDir, getSkillsDir, promoteSkill, } from "./resolver.js";
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAGhB,UAAU,EAEX,MAAM,YAAY,CAAC;AAkMpB;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,gBAAgB,CAGlB;AA8CD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CA0H5E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,iBAAsB,GAC9B,UAAU,EAAE,CAuBd"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAGhB,UAAU,EAEX,MAAM,YAAY,CAAC;AAqMpB;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,gBAAgB,CAGlB;AA8CD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAiI5E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,iBAAsB,GAC9B,UAAU,EAAE,CAuBd"}
package/dist/loader.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { existsSync, readdirSync, readFileSync, realpathSync, statSync, } from "node:fs";
2
2
  import { homedir } from "node:os";
3
3
  import { basename, dirname, isAbsolute, join, resolve, sep } from "node:path";
4
- import { parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, } from "./frontmatter.js";
5
- import { getSkillsDir } from "./resolver.js";
4
+ import { parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, resolveSkillProvenance, } from "./frontmatter.js";
5
+ import { getCuratedActiveDir, getSkillsDir } from "./resolver.js";
6
6
  /** Maximum skill name length per Agent Skills spec */
7
7
  const MAX_NAME_LENGTH = 64;
8
8
  /** Maximum description length per Agent Skills spec */
@@ -83,6 +83,7 @@ function loadSkillFromFile(filePath, source) {
83
83
  if (!frontmatter.description || frontmatter.description.trim() === "") {
84
84
  return { skill: null, diagnostics };
85
85
  }
86
+ const provenance = resolveSkillProvenance(frontmatter);
86
87
  return {
87
88
  skill: {
88
89
  name,
@@ -91,6 +92,7 @@ function loadSkillFromFile(filePath, source) {
91
92
  baseDir: skillDir,
92
93
  source,
93
94
  disableModelInvocation: frontmatter["disable-model-invocation"] === true,
95
+ ...(provenance ? { provenance } : {}),
94
96
  },
95
97
  diagnostics,
96
98
  };
@@ -276,11 +278,16 @@ export function loadSkills(options = {}) {
276
278
  }
277
279
  }
278
280
  if (includeDefaults) {
279
- // Load in precedence order: bundled < managed < project
281
+ // Load in precedence order: bundled < managed < curated < project.
282
+ // The curated namespace holds agent-derived skills that were promoted to
283
+ // "active" by the closed learning loop or the user. Skills under the
284
+ // sibling "proposed" directory are intentionally NOT scanned here — they
285
+ // are pending human review and only surfaced via the curated-skills API.
280
286
  if (resolvedBundledDir) {
281
287
  addSkills(loadSkillsFromDirInternal(resolvedBundledDir, "bundled", true));
282
288
  }
283
289
  addSkills(loadSkillsFromDirInternal(resolvedManagedDir, "managed", true));
290
+ addSkills(loadSkillsFromDirInternal(getCuratedActiveDir(), "curated", true));
284
291
  addSkills(loadSkillsFromDirInternal(projectSkillsDir, "project", true));
285
292
  }
286
293
  // Determine source for explicit paths
@@ -15,4 +15,21 @@ export declare function getSkillsDir(): string;
15
15
  * Useful for testing or when the directory may have changed.
16
16
  */
17
17
  export declare function clearSkillsDirCache(): void;
18
+ /**
19
+ * Absolute path to the curated **active** skills directory. Skills here are
20
+ * loaded into the runtime alongside bundled and managed skills.
21
+ */
22
+ export declare function getCuratedActiveDir(): string;
23
+ /**
24
+ * Absolute path to the curated **proposed** skills directory. Skills here are
25
+ * NEVER loaded into the runtime — they are staged for human review via the
26
+ * Settings → Learned Skills UI.
27
+ */
28
+ export declare function getProposedSkillsDir(): string;
29
+ /**
30
+ * Promote a proposed skill to active by moving its directory atomically.
31
+ * Returns the destination path. Throws if the source does not exist or the
32
+ * destination already exists.
33
+ */
34
+ export declare function promoteSkill(name: string): string;
18
35
  //# sourceMappingURL=resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAwCA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA6CrC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AA+CA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA6CrC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAgBD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBjD"}
package/dist/resolver.js CHANGED
@@ -1,6 +1,7 @@
1
- import { existsSync, readdirSync } from "node:fs";
1
+ import { existsSync, mkdirSync, readdirSync, renameSync, statSync, } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
+ import { resolveStateDir } from "@elizaos/core";
4
5
  /**
5
6
  * Cached skills directory path
6
7
  */
@@ -88,3 +89,55 @@ export function getSkillsDir() {
88
89
  export function clearSkillsDirCache() {
89
90
  cachedSkillsDir = undefined;
90
91
  }
92
+ /**
93
+ * Default base directory for the curated learning loop. Lives alongside the
94
+ * Milady state dir (`~/.milady/`) and holds two sibling namespaces:
95
+ *
96
+ * curated/active/ — auto-promoted or human-promoted skills (loaded)
97
+ * curated/proposed/ — staged drafts awaiting human review (NOT loaded)
98
+ *
99
+ * Honors `MILADY_STATE_DIR` and `ELIZA_STATE_DIR` (in that order); falls back
100
+ * to `~/.milady`.
101
+ */
102
+ function resolveCuratedBaseDir() {
103
+ return join(resolveStateDir(), "skills", "curated");
104
+ }
105
+ /**
106
+ * Absolute path to the curated **active** skills directory. Skills here are
107
+ * loaded into the runtime alongside bundled and managed skills.
108
+ */
109
+ export function getCuratedActiveDir() {
110
+ return join(resolveCuratedBaseDir(), "active");
111
+ }
112
+ /**
113
+ * Absolute path to the curated **proposed** skills directory. Skills here are
114
+ * NEVER loaded into the runtime — they are staged for human review via the
115
+ * Settings → Learned Skills UI.
116
+ */
117
+ export function getProposedSkillsDir() {
118
+ return join(resolveCuratedBaseDir(), "proposed");
119
+ }
120
+ /**
121
+ * Promote a proposed skill to active by moving its directory atomically.
122
+ * Returns the destination path. Throws if the source does not exist or the
123
+ * destination already exists.
124
+ */
125
+ export function promoteSkill(name) {
126
+ if (!/^[a-z0-9-]+$/.test(name)) {
127
+ throw new Error(`Invalid skill name "${name}" — must be lowercase a-z, 0-9, hyphens only`);
128
+ }
129
+ const proposedDir = join(getProposedSkillsDir(), name);
130
+ if (!existsSync(proposedDir) || !statSync(proposedDir).isDirectory()) {
131
+ throw new Error(`Proposed skill "${name}" not found at ${proposedDir}`);
132
+ }
133
+ const activeRoot = getCuratedActiveDir();
134
+ if (!existsSync(activeRoot)) {
135
+ mkdirSync(activeRoot, { recursive: true });
136
+ }
137
+ const activeDir = join(activeRoot, name);
138
+ if (existsSync(activeDir)) {
139
+ throw new Error(`Active skill "${name}" already exists at ${activeDir}`);
140
+ }
141
+ renameSync(proposedDir, activeDir);
142
+ return activeDir;
143
+ }
package/dist/types.d.ts CHANGED
@@ -1,3 +1,32 @@
1
+ /**
2
+ * Provenance of a skill — distinguishes human-authored from agent-derived
3
+ * skills, and tracks self-improvement signal across the closed learning loop.
4
+ */
5
+ export interface SkillProvenance {
6
+ /** Whether the skill was authored by a human or derived by the agent. */
7
+ source: "human" | "agent-generated" | "agent-refined";
8
+ /** Trajectory that produced or last refined the skill, if any. */
9
+ derivedFromTrajectory?: string;
10
+ /** ISO8601 timestamp when this provenance entry was recorded. */
11
+ createdAt: string;
12
+ /** Number of times the agent has automatically refined this skill. */
13
+ refinedCount: number;
14
+ /** Most recent eval score from the scoring cron, in [0, 1]. */
15
+ lastEvalScore?: number;
16
+ /**
17
+ * Audit trail for native-optimizer-driven skill refinements.
18
+ *
19
+ * Populated by the gradient-mode branch of `skillRefinementEvaluator` —
20
+ * after the LLM-diff auto-budget is exhausted, the evaluator switches to
21
+ * the native `prompt-evolution` optimizer and appends one entry per run.
22
+ */
23
+ optimizationLineage?: Array<{
24
+ optimizer: "instruction-search" | "prompt-evolution" | "bootstrap-fewshot";
25
+ score: number;
26
+ datasetSize: number;
27
+ generatedAt: string;
28
+ }>;
29
+ }
1
30
  /**
2
31
  * Skill frontmatter parsed from SKILL.md YAML header
3
32
  */
@@ -28,6 +57,8 @@ export interface SkillFrontmatter {
28
57
  "command-arg-mode"?: string;
29
58
  /** Whether skill can be invoked by users via commands */
30
59
  "user-invocable"?: boolean;
60
+ /** Provenance metadata — present on agent-derived/curated skills. */
61
+ provenance?: SkillProvenance;
31
62
  /** Additional arbitrary metadata */
32
63
  [key: string]: unknown;
33
64
  }
@@ -46,10 +77,16 @@ export interface Skill {
46
77
  filePath?: string;
47
78
  /** Absolute path to the skill's base directory (optional for inline skills) */
48
79
  baseDir?: string;
49
- /** Source identifier (e.g., "bundled", "workspace", "managed", "inline") */
80
+ /** Source identifier (e.g., "bundled", "workspace", "managed", "inline", "curated") */
50
81
  source?: string;
51
82
  /** If true, skill won't be included in model prompts */
52
83
  disableModelInvocation?: boolean;
84
+ /**
85
+ * Provenance metadata when the skill was derived from a trajectory or
86
+ * user-authored as a "curated" skill. Optional for backward compatibility:
87
+ * existing on-disk skills with no provenance block are treated as `human`.
88
+ */
89
+ provenance?: SkillProvenance;
53
90
  /** Unique slug identifier for the skill */
54
91
  slug?: string;
55
92
  /** Skill version */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/skills",
3
- "version": "2.0.0-alpha.41",
3
+ "version": "2.0.0-alpha.411",
4
4
  "description": "Bundled skills and skill loading utilities for elizaOS agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -16,9 +16,9 @@
16
16
  "scripts": {
17
17
  "clean": "rm -rf dist",
18
18
  "build": "tsc -p tsconfig.build.json",
19
- "dev": "tsc -p tsconfig.build.json --watch --preserveWatchOutput",
20
- "test": "node --test --import tsx test/*.test.ts",
21
- "prepublishOnly": "npm run clean && npm run build",
19
+ "dev": "tsgo -p tsconfig.build.json --watch --preserveWatchOutput",
20
+ "test": "bun test ./test",
21
+ "prepublishOnly": "bun run clean && bun run build",
22
22
  "lint": "bunx @biomejs/biome check --write ./src",
23
23
  "lint:check": "bunx @biomejs/biome check ./src"
24
24
  },
@@ -46,13 +46,14 @@
46
46
  "node": ">=22.0.0"
47
47
  },
48
48
  "dependencies": {
49
+ "@elizaos/core": "2.0.0-alpha.411",
49
50
  "yaml": "^2.8.2"
50
51
  },
51
52
  "devDependencies": {
52
- "tsx": "^4.19.0"
53
+ "tsx": "^4.19.2"
53
54
  },
54
55
  "publishConfig": {
55
56
  "access": "public"
56
57
  },
57
- "gitHead": "b3e37e421bcd49b6bc7a34373edc7b3b3a282b8b"
58
+ "gitHead": "f5dfcba3dd4958305cb17d4bcaea53766c71631a"
58
59
  }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: apple-reminders
3
- description: Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
3
+ description: Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output. Use when the user asks about reminders, todos, tasks, to-do lists, "remind me", scheduling tasks, checking what is due today, completing or deleting reminders, or managing reminder lists on macOS.
4
4
  homepage: https://github.com/steipete/remindctl
5
5
  metadata:
6
6
  {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: blucli
3
- description: BluOS CLI (blu) for discovery, playback, grouping, and volume.
3
+ description: BluOS CLI (blu) for discovery, playback, grouping, and volume control of Bluesound and NAD speakers. Use when the user wants to play music, stream audio, control speakers, adjust volume, group or ungroup Bluesound players, search TuneIn radio, or manage multi-room streaming setups.
4
4
  homepage: https://blucli.sh
5
5
  metadata:
6
6
  {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bluebubbles
3
- description: Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
3
+ description: Handles sending and managing iMessages through BlueBubbles, the recommended iMessage integration. Triggers when the user wants to send a text message, send an iMessage, send a text, text someone, message a contact, react with a tapback, reply to a message thread, send an attachment via iMessage, edit or unsend a sent message, or manage group chat participants. All calls go through the generic message tool with channel="bluebubbles".
4
4
  metadata: { "otto": { "emoji": "🫧", "requires": { "config": ["channels.bluebubbles"] } } }
5
5
  ---
6
6
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: camsnap
3
- description: Capture frames or clips from RTSP/ONVIF cameras.
3
+ description: Capture frames or clips from RTSP/ONVIF cameras. Grabs snapshots, video clips, and motion events from IP cameras, security cameras, and video streams. Use when the user wants to take a snapshot from a camera, record a clip from an RTSP stream, monitor motion on a security camera, discover ONVIF devices on the network, or configure camera access for automated surveillance capture.
4
4
  homepage: https://camsnap.ai
5
5
  metadata:
6
6
  {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: canvas
3
- description: "Display HTML content on connected Otto nodes (Mac app, iOS, Android). Use for games, visualizations, dashboards, and interactive demos."
3
+ description: "Display, present, and render HTML content on connected Otto nodes (Mac app, iOS, Android). Show on device, preview on mobile, push to screen, or navigate to a URL on any connected node. Use for games, visualizations, dashboards, interactive demos, and live-reloading development previews. Supports presenting, hiding, navigating, evaluating JavaScript, and capturing screenshots of canvas content across Mac, iOS, and Android devices."
4
4
  ---
5
5
 
6
6
  # Canvas Skill
@@ -69,7 +69,7 @@ In `~/.otto/otto.json`:
69
69
  "canvasHost": {
70
70
  "enabled": true,
71
71
  "port": 18793,
72
- "root": "/Users/you/agent/canvas",
72
+ "root": "/Users/you/clawd/canvas",
73
73
  "liveReload": true
74
74
  },
75
75
  "gateway": {
@@ -92,10 +92,10 @@ Great for development!
92
92
 
93
93
  ### 1. Create HTML content
94
94
 
95
- Place files in the canvas root directory (default `~/agent/canvas/`):
95
+ Place files in the canvas root directory (default `~/clawd/canvas/`):
96
96
 
97
97
  ```bash
98
- cat > ~/agent/canvas/my-game.html << 'HTML'
98
+ cat > ~/clawd/canvas/my-game.html << 'HTML'
99
99
  <!DOCTYPE html>
100
100
  <html>
101
101
  <head><title>My Game</title></head>
@@ -188,8 +188,8 @@ If live reload isn't working:
188
188
  The canvas host serves from `/__otto__/canvas/` prefix:
189
189
 
190
190
  ```
191
- http://<host>:18793/__otto__/canvas/index.html → ~/agent/canvas/index.html
192
- http://<host>:18793/__otto__/canvas/games/snake.html → ~/agent/canvas/games/snake.html
191
+ http://<host>:18793/__otto__/canvas/index.html → ~/clawd/canvas/index.html
192
+ http://<host>:18793/__otto__/canvas/games/snake.html → ~/clawd/canvas/games/snake.html
193
193
  ```
194
194
 
195
195
  The `/__otto__/canvas/` prefix is defined by `CANVAS_HOST_PATH` constant.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: coding-agent
3
- description: Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
3
+ description: Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control. Use when the agent needs to spawn, monitor, or orchestrate coding agents in a terminal session, delegate programming tasks to a sub-agent, review pull requests with an external CLI tool, or run parallel background coding workflows across git worktrees.
4
4
  metadata:
5
5
  {
6
6
  "otto": { "emoji": "🧩", "requires": { "anyBins": ["claude", "codex", "opencode", "pi"] } },
@@ -231,7 +231,7 @@ git worktree remove /tmp/issue-99
231
231
  5. **--full-auto for building** - auto-approves changes
232
232
  6. **vanilla for reviewing** - no special flags needed
233
233
  7. **Parallel is OK** - run many Codex processes at once for batch work
234
- 8. **NEVER start Codex in ~/agent/** - it'll read your soul docs and get weird ideas about the org chart!
234
+ 8. **NEVER start Codex in ~/clawd/** - it'll read your soul docs and get weird ideas about the org chart!
235
235
  9. **NEVER checkout branches in ~/Projects/otto/** - that's the LIVE Otto instance!
236
236
 
237
237
  ---
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: eliza-app-development
3
+ description: "Use when building or changing an elizaOS-based application in this repository. Covers eliza app architecture, monorepo layout, local versus remote versus cloud routing, where to edit features, and non-negotiable runtime constraints. Eliza is the product name of this particular eliza app checkout."
4
+ ---
5
+
6
+ # eliza app development
7
+
8
+ This repository is an **elizaOS application**: a local-first assistant with CLI, dashboard, Electrobun desktop shell, connectors, and Eliza Cloud integration. **Eliza** is this app’s product and CLI name—not a separate platform from elizaOS.
9
+
10
+ ## Read These References First
11
+
12
+ - `references/repo-map.md` for layout, edit targets, and common commands
13
+ - `references/runtime-and-cloud.md` for runtime flow, onboarding, service routing, skills, and Eliza Cloud behavior
14
+
15
+ ## Editing Heuristics
16
+
17
+ - Prefer `packages/app-core/` for app shell behavior (API, CLI, onboarding, config).
18
+ - Prefer `packages/agent/` for agent providers, services, and runtime glue around elizaOS.
19
+ - Prefer `apps/app/` for UI and Electrobun work.
20
+ - Treat `eliza/cloud/` as the Eliza Cloud product and backend surface.
21
+ - Treat `eliza/` as upstream elizaOS. Edit it only when the bug or feature is genuinely upstream.
22
+
23
+ ## Hard Constraints
24
+
25
+ - Do not remove `NODE_PATH` setup.
26
+ - Do not remove the Bun exports patch.
27
+ - Do not remove Electrobun startup error guards.
28
+ - Keep Node and Bun paths working.
29
+
30
+ ## Repo Workflow
31
+
32
+ ```bash
33
+ bun install
34
+ bun run verify
35
+ bun run test
36
+ ```
37
+
38
+ Narrower commands when useful:
39
+
40
+ ```bash
41
+ bun run eliza ...
42
+ bun run dev
43
+ bun run dev:desktop
44
+ bun run test:e2e
45
+ ```
46
+
47
+ ## Where to Look First
48
+
49
+ - Product and runtime behavior: `packages/app-core/src/`
50
+ - Prompt, provider, and skill plumbing: `packages/agent/src/`
51
+ - Onboarding and routing: `packages/app-core/src/onboarding/` and `packages/app-core/src/runtime/`
52
+ - Shipped default skills: bundled in `@elizaos/skills`, seeded into the state-dir skills folder by `scripts/ensure-skills.mjs`
53
+ - Eliza Cloud backend or monetization: `eliza/cloud/` and the shipped `eliza-cloud` skill
54
+
55
+ ## Cloud Default
56
+
57
+ If the task involves building an app and Eliza Cloud is enabled, linked, or explicitly requested, treat Cloud as the default managed backend before inventing custom auth, billing, analytics, or hosting. Use the `eliza-cloud` skill for app, monetization, and container details.
58
+
59
+ ## Related Skills
60
+
61
+ - `elizaos` — core runtime abstractions and upstream plugin patterns
62
+ - `eliza-cloud` — apps, billing, monetization, auth, containers