@hyperflow.fun/ghost 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +91 -0
  3. package/dist/index.js +220545 -0
  4. package/dist/package.json +4 -0
  5. package/dist/skills/builtin/briefing/SKILL.md +77 -0
  6. package/dist/skills/builtin/clawhub/SKILL.md +50 -0
  7. package/dist/skills/builtin/event-judge/SKILL.md +122 -0
  8. package/dist/skills/builtin/market-intel/SKILL.md +160 -0
  9. package/dist/skills/builtin/position-monitor/SKILL.md +84 -0
  10. package/dist/skills/builtin/pre-trade-advisory/SKILL.md +203 -0
  11. package/dist/skills/builtin/risk-manager/SKILL.md +124 -0
  12. package/dist/skills/builtin/skill-creator/SKILL.md +68 -0
  13. package/dist/skills/builtin/skill-creator/references/guide.md +158 -0
  14. package/dist/skills/builtin/skill-creator/scripts/init_skill.py +378 -0
  15. package/dist/skills/builtin/skill-creator/scripts/package_skill.py +154 -0
  16. package/dist/skills/builtin/skill-creator/scripts/quick_validate.py +213 -0
  17. package/dist/skills/builtin/skills-sh/SKILL.md +56 -0
  18. package/dist/skills/builtin/technical-analysis/SKILL.md +242 -0
  19. package/dist/skills/builtin/trade-executor/SKILL.md +179 -0
  20. package/dist/templates/SOUL.md +73 -0
  21. package/dist/web/dist/assets/Chart-DwirCj9o.js +1 -0
  22. package/dist/web/dist/assets/Config-Csnvaqpn.js +1 -0
  23. package/dist/web/dist/assets/Cost-BSD_2GYX.js +6 -0
  24. package/dist/web/dist/assets/Cron-BVKdKUFN.js +16 -0
  25. package/dist/web/dist/assets/Dashboard-Ccr5J95V.js +21 -0
  26. package/dist/web/dist/assets/Logs-CUgA7IGb.js +21 -0
  27. package/dist/web/dist/assets/Memory-C_Q_iNlN.js +12 -0
  28. package/dist/web/dist/assets/SF-Pro-Display-Bold-CkqE-6tD.otf +0 -0
  29. package/dist/web/dist/assets/SF-Pro-Display-Medium-DSttQARu.otf +0 -0
  30. package/dist/web/dist/assets/SF-Pro-Display-Regular-DF_3XEGl.otf +0 -0
  31. package/dist/web/dist/assets/SF-Pro-Display-Semibold-Dg2-djaL.otf +0 -0
  32. package/dist/web/dist/assets/Sessions-KDhnYDnX.js +11 -0
  33. package/dist/web/dist/assets/Skills-BK-V7HFa.js +1 -0
  34. package/dist/web/dist/assets/Tools-a3aqqugu.js +1 -0
  35. package/dist/web/dist/assets/abap-BdImnpbu.js +1 -0
  36. package/dist/web/dist/assets/actionscript-3-CoDkCxhg.js +1 -0
  37. package/dist/web/dist/assets/activity-DsxRdk-G.js +6 -0
  38. package/dist/web/dist/assets/ada-bCR0ucgS.js +1 -0
  39. package/dist/web/dist/assets/andromeeda-C4gqWexZ.js +1 -0
  40. package/dist/web/dist/assets/angular-html-CU67Zn6k.js +1 -0
  41. package/dist/web/dist/assets/angular-ts-BwZT4LLn.js +1 -0
  42. package/dist/web/dist/assets/apache-Pmp26Uib.js +1 -0
  43. package/dist/web/dist/assets/apex-D8_7TLub.js +1 -0
  44. package/dist/web/dist/assets/apl-dKokRX4l.js +1 -0
  45. package/dist/web/dist/assets/applescript-Co6uUVPk.js +1 -0
  46. package/dist/web/dist/assets/ara-BRHolxvo.js +1 -0
  47. package/dist/web/dist/assets/asciidoc-Ve4PFQV2.js +1 -0
  48. package/dist/web/dist/assets/asm-D_Q5rh1f.js +1 -0
  49. package/dist/web/dist/assets/astro-CbQHKStN.js +1 -0
  50. package/dist/web/dist/assets/aurora-x-D-2ljcwZ.js +1 -0
  51. package/dist/web/dist/assets/awk-DMzUqQB5.js +1 -0
  52. package/dist/web/dist/assets/ayu-dark-DYE7WIF3.js +1 -0
  53. package/dist/web/dist/assets/ayu-light-BA47KaF1.js +1 -0
  54. package/dist/web/dist/assets/ayu-mirage-32ctXXKs.js +1 -0
  55. package/dist/web/dist/assets/ballerina-BFfxhgS-.js +1 -0
  56. package/dist/web/dist/assets/bat-BkioyH1T.js +1 -0
  57. package/dist/web/dist/assets/beancount-k_qm7-4y.js +1 -0
  58. package/dist/web/dist/assets/berry-uYugtg8r.js +1 -0
  59. package/dist/web/dist/assets/bibtex-CHM0blh-.js +1 -0
  60. package/dist/web/dist/assets/bicep-Bmn6On1c.js +1 -0
  61. package/dist/web/dist/assets/bird2-DPOp833l.js +1 -0
  62. package/dist/web/dist/assets/blade-D4QpJJKB.js +1 -0
  63. package/dist/web/dist/assets/bsl-BO_Y6i37.js +1 -0
  64. package/dist/web/dist/assets/c-BIGW1oBm.js +1 -0
  65. package/dist/web/dist/assets/c3-eo99z4R2.js +1 -0
  66. package/dist/web/dist/assets/cadence-Bv_4Rxtq.js +1 -0
  67. package/dist/web/dist/assets/cairo-KRGpt6FW.js +1 -0
  68. package/dist/web/dist/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  69. package/dist/web/dist/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  70. package/dist/web/dist/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  71. package/dist/web/dist/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  72. package/dist/web/dist/assets/clarity-D53aC0YG.js +1 -0
  73. package/dist/web/dist/assets/clock-DCbfDkWu.js +6 -0
  74. package/dist/web/dist/assets/clojure-P80f7IUj.js +1 -0
  75. package/dist/web/dist/assets/cmake-D1j8_8rp.js +1 -0
  76. package/dist/web/dist/assets/cobol-nwyudZeR.js +1 -0
  77. package/dist/web/dist/assets/codeowners-Bp6g37R7.js +1 -0
  78. package/dist/web/dist/assets/codeql-DsOJ9woJ.js +1 -0
  79. package/dist/web/dist/assets/coffee-Ch7k5sss.js +1 -0
  80. package/dist/web/dist/assets/common-lisp-Cg-RD9OK.js +1 -0
  81. package/dist/web/dist/assets/coq-DkFqJrB1.js +1 -0
  82. package/dist/web/dist/assets/cpp-CofmeUqb.js +1 -0
  83. package/dist/web/dist/assets/crystal-tKQVLTB8.js +1 -0
  84. package/dist/web/dist/assets/csharp-COcwbKMJ.js +1 -0
  85. package/dist/web/dist/assets/css-DPfMkruS.js +1 -0
  86. package/dist/web/dist/assets/csv-fuZLfV_i.js +1 -0
  87. package/dist/web/dist/assets/cue-D82EKSYY.js +1 -0
  88. package/dist/web/dist/assets/cypher-COkxafJQ.js +1 -0
  89. package/dist/web/dist/assets/d-85-TOEBH.js +1 -0
  90. package/dist/web/dist/assets/dark-plus-C3mMm8J8.js +1 -0
  91. package/dist/web/dist/assets/dart-CF10PKvl.js +1 -0
  92. package/dist/web/dist/assets/dax-CEL-wOlO.js +1 -0
  93. package/dist/web/dist/assets/desktop-BmXAJ9_W.js +1 -0
  94. package/dist/web/dist/assets/diff-D97Zzqfu.js +1 -0
  95. package/dist/web/dist/assets/docker-BcOcwvcX.js +1 -0
  96. package/dist/web/dist/assets/dotenv-Da5cRb03.js +1 -0
  97. package/dist/web/dist/assets/dracula-BzJJZx-M.js +1 -0
  98. package/dist/web/dist/assets/dracula-soft-BXkSAIEj.js +1 -0
  99. package/dist/web/dist/assets/dream-maker-BtqSS_iP.js +1 -0
  100. package/dist/web/dist/assets/edge-BkV0erSs.js +1 -0
  101. package/dist/web/dist/assets/elixir-CDX3lj18.js +1 -0
  102. package/dist/web/dist/assets/elm-DbKCFpqz.js +1 -0
  103. package/dist/web/dist/assets/emacs-lisp-C9XAeP06.js +1 -0
  104. package/dist/web/dist/assets/erb-B12qg9BL.js +1 -0
  105. package/dist/web/dist/assets/erlang-DsQrWhSR.js +1 -0
  106. package/dist/web/dist/assets/everforest-dark-BgDCqdQA.js +1 -0
  107. package/dist/web/dist/assets/everforest-light-C8M2exoo.js +1 -0
  108. package/dist/web/dist/assets/fennel-BYunw83y.js +1 -0
  109. package/dist/web/dist/assets/fish-BvzEVeQv.js +1 -0
  110. package/dist/web/dist/assets/fluent-C4IJs8-o.js +1 -0
  111. package/dist/web/dist/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  112. package/dist/web/dist/assets/fortran-free-form-BxgE0vQu.js +1 -0
  113. package/dist/web/dist/assets/fsharp-CXgrBDvD.js +1 -0
  114. package/dist/web/dist/assets/gdresource-BOOCDP_w.js +1 -0
  115. package/dist/web/dist/assets/gdscript-C5YyOfLZ.js +1 -0
  116. package/dist/web/dist/assets/gdshader-DkwncUOv.js +1 -0
  117. package/dist/web/dist/assets/genie-D0YGMca9.js +1 -0
  118. package/dist/web/dist/assets/gherkin-DyxjwDmM.js +1 -0
  119. package/dist/web/dist/assets/ghost-symbol-xItVvoCA.svg +5 -0
  120. package/dist/web/dist/assets/git-commit-F4YmCXRG.js +1 -0
  121. package/dist/web/dist/assets/git-rebase-r7XF79zn.js +1 -0
  122. package/dist/web/dist/assets/github-dark-DHJKELXO.js +1 -0
  123. package/dist/web/dist/assets/github-dark-default-Cuk6v7N8.js +1 -0
  124. package/dist/web/dist/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  125. package/dist/web/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  126. package/dist/web/dist/assets/github-light-DAi9KRSo.js +1 -0
  127. package/dist/web/dist/assets/github-light-default-D7oLnXFd.js +1 -0
  128. package/dist/web/dist/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  129. package/dist/web/dist/assets/gleam-BspZqrRM.js +1 -0
  130. package/dist/web/dist/assets/glimmer-js-Rg0-pVw9.js +1 -0
  131. package/dist/web/dist/assets/glimmer-ts-U6CK756n.js +1 -0
  132. package/dist/web/dist/assets/glsl-DplSGwfg.js +1 -0
  133. package/dist/web/dist/assets/gn-n2N0HUVH.js +1 -0
  134. package/dist/web/dist/assets/gnuplot-DdkO51Og.js +1 -0
  135. package/dist/web/dist/assets/go-CxLEBnE3.js +1 -0
  136. package/dist/web/dist/assets/graphql-ChdNCCLP.js +1 -0
  137. package/dist/web/dist/assets/groovy-gcz8RCvz.js +1 -0
  138. package/dist/web/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  139. package/dist/web/dist/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  140. package/dist/web/dist/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  141. package/dist/web/dist/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  142. package/dist/web/dist/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  143. package/dist/web/dist/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  144. package/dist/web/dist/assets/hack-CaT9iCJl.js +1 -0
  145. package/dist/web/dist/assets/haml-B8DHNrY2.js +1 -0
  146. package/dist/web/dist/assets/handlebars-BL8al0AC.js +1 -0
  147. package/dist/web/dist/assets/haskell-Df6bDoY_.js +1 -0
  148. package/dist/web/dist/assets/haxe-CzTSHFRz.js +1 -0
  149. package/dist/web/dist/assets/hcl-BWvSN4gD.js +1 -0
  150. package/dist/web/dist/assets/highlighted-body-OFNGDK62-C8yP3qbm.js +1 -0
  151. package/dist/web/dist/assets/hjson-D5-asLiD.js +1 -0
  152. package/dist/web/dist/assets/hlsl-D3lLCCz7.js +1 -0
  153. package/dist/web/dist/assets/horizon-BUw7H-hv.js +1 -0
  154. package/dist/web/dist/assets/horizon-bright-Cn-bp-IR.js +1 -0
  155. package/dist/web/dist/assets/houston-DnULxvSX.js +1 -0
  156. package/dist/web/dist/assets/html-GMplVEZG.js +1 -0
  157. package/dist/web/dist/assets/html-derivative-BFtXZ54Q.js +1 -0
  158. package/dist/web/dist/assets/http-jrhK8wxY.js +1 -0
  159. package/dist/web/dist/assets/hurl-irOxFIW8.js +1 -0
  160. package/dist/web/dist/assets/hxml-Bvhsp5Yf.js +1 -0
  161. package/dist/web/dist/assets/hy-DFXneXwc.js +1 -0
  162. package/dist/web/dist/assets/hyperliquid-logo-Blr66fIk.svg +9 -0
  163. package/dist/web/dist/assets/imba-DGztddWO.js +1 -0
  164. package/dist/web/dist/assets/index-3q7g734D.js +54 -0
  165. package/dist/web/dist/assets/index-DRvGorcf.css +1 -0
  166. package/dist/web/dist/assets/ini-BEwlwnbL.js +1 -0
  167. package/dist/web/dist/assets/java-CylS5w8V.js +1 -0
  168. package/dist/web/dist/assets/javascript-wDzz0qaB.js +1 -0
  169. package/dist/web/dist/assets/jinja-4LBKfQ-Z.js +1 -0
  170. package/dist/web/dist/assets/jison-wvAkD_A8.js +1 -0
  171. package/dist/web/dist/assets/json-Cp-IABpG.js +1 -0
  172. package/dist/web/dist/assets/json5-C9tS-k6U.js +1 -0
  173. package/dist/web/dist/assets/jsonc-Des-eS-w.js +1 -0
  174. package/dist/web/dist/assets/jsonl-DcaNXYhu.js +1 -0
  175. package/dist/web/dist/assets/jsonnet-DFQXde-d.js +1 -0
  176. package/dist/web/dist/assets/jssm-C2t-YnRu.js +1 -0
  177. package/dist/web/dist/assets/jsx-g9-lgVsj.js +1 -0
  178. package/dist/web/dist/assets/julia-CxzCAyBv.js +1 -0
  179. package/dist/web/dist/assets/just-Cw27pwNe.js +1 -0
  180. package/dist/web/dist/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  181. package/dist/web/dist/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  182. package/dist/web/dist/assets/kanagawa-wave-DWedfzmr.js +1 -0
  183. package/dist/web/dist/assets/kdl-DV7GczEv.js +1 -0
  184. package/dist/web/dist/assets/kotlin-BdnUsdx6.js +1 -0
  185. package/dist/web/dist/assets/kusto-DZf3V79B.js +1 -0
  186. package/dist/web/dist/assets/laserwave-DUszq2jm.js +1 -0
  187. package/dist/web/dist/assets/latex-CWtU0Tv5.js +1 -0
  188. package/dist/web/dist/assets/lean-BZvkOJ9d.js +1 -0
  189. package/dist/web/dist/assets/less-B1dDrJ26.js +1 -0
  190. package/dist/web/dist/assets/light-plus-B7mTdjB0.js +1 -0
  191. package/dist/web/dist/assets/liquid-DYVedYrR.js +1 -0
  192. package/dist/web/dist/assets/llvm-DjAJT7YJ.js +1 -0
  193. package/dist/web/dist/assets/log-2UxHyX5q.js +1 -0
  194. package/dist/web/dist/assets/logo-BtOb2qkB.js +1 -0
  195. package/dist/web/dist/assets/lua-BaeVxFsk.js +1 -0
  196. package/dist/web/dist/assets/luau-C-HG3fhB.js +1 -0
  197. package/dist/web/dist/assets/make-CHLpvVh8.js +1 -0
  198. package/dist/web/dist/assets/markdown-Cvjx9yec.js +1 -0
  199. package/dist/web/dist/assets/marko-CnJfTvn9.js +1 -0
  200. package/dist/web/dist/assets/material-theme-D5KoaKCx.js +1 -0
  201. package/dist/web/dist/assets/material-theme-darker-BfHTSMKl.js +1 -0
  202. package/dist/web/dist/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  203. package/dist/web/dist/assets/material-theme-ocean-CyktbL80.js +1 -0
  204. package/dist/web/dist/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  205. package/dist/web/dist/assets/matlab-D7o27uSR.js +1 -0
  206. package/dist/web/dist/assets/mdc-BMNejdWA.js +1 -0
  207. package/dist/web/dist/assets/mdx-Cmh6b_Ma.js +1 -0
  208. package/dist/web/dist/assets/mermaid-GHXKKRXX-CbzD1Jp7.js +282 -0
  209. package/dist/web/dist/assets/mermaid-mWjccvbQ.js +1 -0
  210. package/dist/web/dist/assets/min-dark-CafNBF8u.js +1 -0
  211. package/dist/web/dist/assets/min-light-CTRr51gU.js +1 -0
  212. package/dist/web/dist/assets/mipsasm-CKIfxQSi.js +1 -0
  213. package/dist/web/dist/assets/mojo-rZm6bMo-.js +1 -0
  214. package/dist/web/dist/assets/monokai-D4h5O-jR.js +1 -0
  215. package/dist/web/dist/assets/moonbit-_H4v1dQx.js +1 -0
  216. package/dist/web/dist/assets/move-IF9eRakj.js +1 -0
  217. package/dist/web/dist/assets/narrat-DRg8JJMk.js +1 -0
  218. package/dist/web/dist/assets/nextflow-Zz6hmt5N.js +1 -0
  219. package/dist/web/dist/assets/nextflow-groovy-BeH2EWoN.js +1 -0
  220. package/dist/web/dist/assets/nginx-BpAMiNFr.js +1 -0
  221. package/dist/web/dist/assets/night-owl-C39BiMTA.js +1 -0
  222. package/dist/web/dist/assets/night-owl-light-CMTm3GFP.js +1 -0
  223. package/dist/web/dist/assets/nim-CVrawwO9.js +1 -0
  224. package/dist/web/dist/assets/nix-CwoSXNpI.js +1 -0
  225. package/dist/web/dist/assets/nord-Ddv68eIx.js +1 -0
  226. package/dist/web/dist/assets/nushell-Cz2AlsmD.js +1 -0
  227. package/dist/web/dist/assets/objective-c-DXmwc3jG.js +1 -0
  228. package/dist/web/dist/assets/objective-cpp-CLxacb5B.js +1 -0
  229. package/dist/web/dist/assets/ocaml-C0hk2d4L.js +1 -0
  230. package/dist/web/dist/assets/odin-BBf5iR-q.js +1 -0
  231. package/dist/web/dist/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  232. package/dist/web/dist/assets/one-light-C3Wv6jpd.js +1 -0
  233. package/dist/web/dist/assets/openscad-C4EeE6gA.js +1 -0
  234. package/dist/web/dist/assets/pascal-D93ZcfNL.js +1 -0
  235. package/dist/web/dist/assets/perl-C0TMdlhV.js +1 -0
  236. package/dist/web/dist/assets/php-Dhbhpdrm.js +1 -0
  237. package/dist/web/dist/assets/pkl-u5AG7uiY.js +1 -0
  238. package/dist/web/dist/assets/plastic-3e1v2bzS.js +1 -0
  239. package/dist/web/dist/assets/plsql-ChMvpjG-.js +1 -0
  240. package/dist/web/dist/assets/po-BTJTHyun.js +1 -0
  241. package/dist/web/dist/assets/poimandres-CS3Unz2-.js +1 -0
  242. package/dist/web/dist/assets/polar-C0HS_06l.js +1 -0
  243. package/dist/web/dist/assets/postcss-CXtECtnM.js +1 -0
  244. package/dist/web/dist/assets/powerquery-CEu0bR-o.js +1 -0
  245. package/dist/web/dist/assets/powershell-Dpen1YoG.js +1 -0
  246. package/dist/web/dist/assets/prisma-Dd19v3D-.js +1 -0
  247. package/dist/web/dist/assets/prolog-CbFg5uaA.js +1 -0
  248. package/dist/web/dist/assets/proto-C7zT0LnQ.js +1 -0
  249. package/dist/web/dist/assets/pug-CGlum2m_.js +1 -0
  250. package/dist/web/dist/assets/puppet-BMWR74SV.js +1 -0
  251. package/dist/web/dist/assets/purescript-CklMAg4u.js +1 -0
  252. package/dist/web/dist/assets/python-B6aJPvgy.js +1 -0
  253. package/dist/web/dist/assets/qml-3beO22l8.js +1 -0
  254. package/dist/web/dist/assets/qmldir-C8lEn-DE.js +1 -0
  255. package/dist/web/dist/assets/qss-IeuSbFQv.js +1 -0
  256. package/dist/web/dist/assets/r-Dspwwk_N.js +1 -0
  257. package/dist/web/dist/assets/racket-BqYA7rlc.js +1 -0
  258. package/dist/web/dist/assets/raku-DXvB9xmW.js +1 -0
  259. package/dist/web/dist/assets/razor-Uh8Bk_45.js +1 -0
  260. package/dist/web/dist/assets/red-bN70gL4F.js +1 -0
  261. package/dist/web/dist/assets/refresh-cw-B9ZNJZIb.js +6 -0
  262. package/dist/web/dist/assets/reg-C-SQnVFl.js +1 -0
  263. package/dist/web/dist/assets/regexp-CDVJQ6XC.js +1 -0
  264. package/dist/web/dist/assets/rel-C3B-1QV4.js +1 -0
  265. package/dist/web/dist/assets/riscv-BM1_JUlF.js +1 -0
  266. package/dist/web/dist/assets/ron-D8l8udqQ.js +1 -0
  267. package/dist/web/dist/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  268. package/dist/web/dist/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  269. package/dist/web/dist/assets/rose-pine-qdsjHGoJ.js +1 -0
  270. package/dist/web/dist/assets/rosmsg-BJDFO7_C.js +1 -0
  271. package/dist/web/dist/assets/rst-BrH8l1NY.js +1 -0
  272. package/dist/web/dist/assets/ruby-Dw2BHqvy.js +1 -0
  273. package/dist/web/dist/assets/rust-B1yitclQ.js +1 -0
  274. package/dist/web/dist/assets/sas-cz2c8ADy.js +1 -0
  275. package/dist/web/dist/assets/sass-Cj5Yp3dK.js +1 -0
  276. package/dist/web/dist/assets/scala-C151Ov-r.js +1 -0
  277. package/dist/web/dist/assets/scheme-C98Dy4si.js +1 -0
  278. package/dist/web/dist/assets/scss-OYdSNvt2.js +1 -0
  279. package/dist/web/dist/assets/sdbl-DVxCFoDh.js +1 -0
  280. package/dist/web/dist/assets/shaderlab-Dg9Lc6iA.js +1 -0
  281. package/dist/web/dist/assets/shellscript-Yzrsuije.js +1 -0
  282. package/dist/web/dist/assets/shellsession-BADoaaVG.js +1 -0
  283. package/dist/web/dist/assets/slack-dark-BthQWCQV.js +1 -0
  284. package/dist/web/dist/assets/slack-ochin-DqwNpetd.js +1 -0
  285. package/dist/web/dist/assets/smalltalk-BERRCDM3.js +1 -0
  286. package/dist/web/dist/assets/snazzy-light-Bw305WKR.js +1 -0
  287. package/dist/web/dist/assets/solarized-dark-DXbdFlpD.js +1 -0
  288. package/dist/web/dist/assets/solarized-light-L9t79GZl.js +1 -0
  289. package/dist/web/dist/assets/solidity-rGO070M0.js +1 -0
  290. package/dist/web/dist/assets/soy-Brmx7dQM.js +1 -0
  291. package/dist/web/dist/assets/sparql-rVzFXLq3.js +1 -0
  292. package/dist/web/dist/assets/splunk-BtCnVYZw.js +1 -0
  293. package/dist/web/dist/assets/sql-BLtJtn59.js +1 -0
  294. package/dist/web/dist/assets/ssh-config-_ykCGR6B.js +1 -0
  295. package/dist/web/dist/assets/stata-BH5u7GGu.js +1 -0
  296. package/dist/web/dist/assets/stylus-BEDo0Tqx.js +1 -0
  297. package/dist/web/dist/assets/surrealql-Bq5Q-fJD.js +1 -0
  298. package/dist/web/dist/assets/svelte-C_ipcX3V.js +1 -0
  299. package/dist/web/dist/assets/swift-D82vCrfD.js +1 -0
  300. package/dist/web/dist/assets/synthwave-84-CbfX1IO0.js +1 -0
  301. package/dist/web/dist/assets/system-verilog-CnnmHF94.js +1 -0
  302. package/dist/web/dist/assets/systemd-4A_iFExJ.js +1 -0
  303. package/dist/web/dist/assets/talonscript-CkByrt1z.js +1 -0
  304. package/dist/web/dist/assets/tasl-QIJgUcNo.js +1 -0
  305. package/dist/web/dist/assets/tcl-dwOrl1Do.js +1 -0
  306. package/dist/web/dist/assets/templ-P3uqSqPl.js +1 -0
  307. package/dist/web/dist/assets/terraform-BETggiCN.js +1 -0
  308. package/dist/web/dist/assets/tex-idrVyKtj.js +1 -0
  309. package/dist/web/dist/assets/tokyo-night-hegEt444.js +1 -0
  310. package/dist/web/dist/assets/toml-vGWfd6FD.js +1 -0
  311. package/dist/web/dist/assets/ts-tags-zn1MmPIZ.js +1 -0
  312. package/dist/web/dist/assets/tsv-B_m7g4N7.js +1 -0
  313. package/dist/web/dist/assets/tsx-COt5Ahok.js +1 -0
  314. package/dist/web/dist/assets/turtle-BsS91CYL.js +1 -0
  315. package/dist/web/dist/assets/twig-DNn4PbVi.js +1 -0
  316. package/dist/web/dist/assets/typescript-BPQ3VLAy.js +1 -0
  317. package/dist/web/dist/assets/typespec-BGHnOYBU.js +1 -0
  318. package/dist/web/dist/assets/typst-DHCkPAjA.js +1 -0
  319. package/dist/web/dist/assets/v-BcVCzyr7.js +1 -0
  320. package/dist/web/dist/assets/vala-CsfeWuGM.js +1 -0
  321. package/dist/web/dist/assets/vb-D17OF-Vu.js +1 -0
  322. package/dist/web/dist/assets/vendor-charts-CfOL2F-E.js +6 -0
  323. package/dist/web/dist/assets/vendor-react-B0mWfPOm.js +60 -0
  324. package/dist/web/dist/assets/vendor-viem-wp7lz4Hc.js +22 -0
  325. package/dist/web/dist/assets/verilog-BQ8w6xss.js +1 -0
  326. package/dist/web/dist/assets/vesper-DU1UobuO.js +1 -0
  327. package/dist/web/dist/assets/vhdl-CeAyd5Ju.js +1 -0
  328. package/dist/web/dist/assets/viml-CJc9bBzg.js +1 -0
  329. package/dist/web/dist/assets/vitesse-black-Bkuqu6BP.js +1 -0
  330. package/dist/web/dist/assets/vitesse-dark-D0r3Knsf.js +1 -0
  331. package/dist/web/dist/assets/vitesse-light-CVO1_9PV.js +1 -0
  332. package/dist/web/dist/assets/vue-DN_0RTcg.js +1 -0
  333. package/dist/web/dist/assets/vue-html-AaS7Mt5G.js +1 -0
  334. package/dist/web/dist/assets/vue-vine-CQOfvN7w.js +1 -0
  335. package/dist/web/dist/assets/vyper-CDx5xZoG.js +1 -0
  336. package/dist/web/dist/assets/wasm-CG6Dc4jp.js +1 -0
  337. package/dist/web/dist/assets/wasm-MzD3tlZU.js +1 -0
  338. package/dist/web/dist/assets/welcome-illustration-B8_SJ7In.svg +319 -0
  339. package/dist/web/dist/assets/wenyan-BV7otONQ.js +1 -0
  340. package/dist/web/dist/assets/wgsl-Dx-B1_4e.js +1 -0
  341. package/dist/web/dist/assets/wikitext-BhOHFoWU.js +1 -0
  342. package/dist/web/dist/assets/wit-5i3qLPDT.js +1 -0
  343. package/dist/web/dist/assets/wolfram-lXgVvXCa.js +1 -0
  344. package/dist/web/dist/assets/xml-sdJ4AIDG.js +1 -0
  345. package/dist/web/dist/assets/xsl-CtQFsRM5.js +1 -0
  346. package/dist/web/dist/assets/yaml-Buea-lGh.js +1 -0
  347. package/dist/web/dist/assets/zenscript-DVFEvuxE.js +1 -0
  348. package/dist/web/dist/assets/zig-VOosw3JB.js +1 -0
  349. package/dist/web/dist/favicon.svg +4 -0
  350. package/dist/web/dist/index.html +18 -0
  351. package/package.json +73 -0
@@ -0,0 +1,203 @@
1
+ ---
2
+ name: pre-trade-advisory
3
+ description: "Pre-trade context check before entering a trade. Gather portfolio state, funding, technical picture and share your take. Triggers: should I, good time to, pre-trade check, before I trade, what do you think about."
4
+ always: true
5
+ ---
6
+
7
+ # Pre-Trade Advisory
8
+
9
+ Two modes — fast auto-check when placing orders, or full analysis when the trader asks.
10
+
11
+ ## Mode 1: Auto (trade execution flow)
12
+
13
+ Triggers when the trader is placing an order ("long BTC 1k 20x market"). Runs BEFORE the confirmation step.
14
+
15
+ **Output:** Concise — risk level + reason + suggested SL/TP + warning if any. 3-5 sentences max.
16
+
17
+ ### Gather Context (parallel)
18
+
19
+ **MANDATORY: Call ALL tools below in parallel. Do not skip any. Every data point matters for the advisory.**
20
+
21
+ ```
22
+ ghost_get_positions() → existing exposure
23
+ ghost_get_balance() → margin situation
24
+ ghost_get_price(symbol) → current price
25
+ ghost_get_funding_rates(symbol) → funding direction
26
+ ghost_get_indicators(symbol, "4h") → trend, momentum, volatility
27
+ ghost_get_levels(symbol, "4h") → key S/R for SL/TP
28
+ ghost_news_search({ coins: ["[SYMBOL]"] }) → local crawled articles
29
+ ghost_tweets_search({ coins: ["[SYMBOL]"] }) → tweets from followed accounts
30
+ web_search("[SYMBOL] crypto news today") → broader / breaking coverage (for query angles when results are thin, see market-intel "Search query strategy")
31
+ ghost_timing_risk(symbol) → timing risks (weekend, events, post-volatility)
32
+ ghost_get_trade_history({ symbol, lookbackHours: 168 }) → trader's fills on this symbol (last 7d). If empty, follow up with { symbol, limit: 100 } to capture the last 100 fills regardless of date — less active traders may not have any in 7d but still have a track record.
33
+ ```
34
+
35
+ ### News Check
36
+
37
+ Scan results from all three news tools (`ghost_news_search`, `ghost_tweets_search`, `web_search`) for urgent events:
38
+ - **Urgent events** (hack, exploit, delisting, SEC action, exchange insolvency) → prominently flag at the top of your advisory with a warning
39
+ - **Relevant catalysts** (upgrade, partnership, listing, regulatory clarity) → mention briefly as supporting context
40
+ - **Cross-check tweets** — sudden whale / dev commentary often breaks before articles catch up
41
+ - If no meaningful news → skip, don't mention the absence
42
+
43
+ ### Timing Risk
44
+
45
+ Check timing risk results and incorporate into your advisory:
46
+ - **High severity** (FOMC today, post-volatility) → warn prominently, suggest waiting or smaller size
47
+ - **Medium severity** (weekend, upcoming event) → mention as a factor in your risk assessment
48
+ - **Low severity** → mention only if it adds context to the trade thesis
49
+
50
+ ### What to Say
51
+
52
+ Lead with your quick take, then:
53
+ - **Risk level** in plain words — "this is moderate risk because..." (not scores or ratings)
54
+ - **Suggested SL** — nearest structural support/resistance. Always concrete price.
55
+ - **Suggested TP** — next key level or R:R-derived. Always concrete price.
56
+ - **Warning** if any — thin margin, concentrated exposure, revenge pattern, timing risk
57
+
58
+ Example (good — advisory text + tool call in same response):
59
+ > BTC below EMA50, 4h still downtrending. Longing against the trend — SL $65,000 (support tested 3 times), TP $69,500 (nearest resistance). Funding negative, carry cost low.
60
+ > [+ ghost_bracket_order call → UI shows confirmation card with exact R:R alongside this text]
61
+
62
+ **Do NOT ask "confirm?" or "ready to place?" in chat.** The confirmation card appears automatically with the advisory. Trader approves on the card.
63
+
64
+ Example (bad):
65
+ > EMA9: 66,500, EMA21: 66,800, EMA50: 67,200, EMA200: 65,000, RSI: 44.8, ADX: 18.7, VWAP: 68,700...
66
+
67
+ **Don't dump indicators.** Pick the 1-2 that matter most for THIS trade.
68
+
69
+ ## Mode 2: On-demand (trader asks for opinion)
70
+
71
+ Triggers when the trader asks "should I long BTC?", "what do you think?", "is now a good time?"
72
+
73
+ **Output:** Full assessment — clear YES/NO/WAIT + conviction, bullish & bearish factors, suggested entry/SL/TP.
74
+
75
+ ### Gather Context (parallel)
76
+
77
+ **MANDATORY: Call ALL tools below in parallel. Do not skip any. Every data point matters for the advisory.**
78
+
79
+ ```
80
+ ghost_get_positions() → what you're already holding
81
+ ghost_get_balance() → margin situation
82
+ ghost_get_price(symbol) → current price + 24h change
83
+ ghost_get_funding_rates(symbol) → who's paying whom
84
+ ghost_get_indicators(symbol, "4h") → trend, momentum, volatility
85
+ ghost_get_levels(symbol, "4h") → key S/R levels
86
+ ghost_news_search({ coins: ["[SYMBOL]"] }) → local crawled articles
87
+ ghost_tweets_search({ coins: ["[SYMBOL]"] }) → tweets from followed accounts
88
+ web_search("[SYMBOL] crypto news today") → broader / breaking coverage (for query angles when results are thin, see market-intel "Search query strategy")
89
+ ghost_timing_risk(symbol) → timing risks
90
+ ghost_get_trade_history({ symbol, lookbackHours: 168 }) → trader's fills on this symbol (last 7d). If empty, follow up with { symbol, limit: 100 } to capture the last 100 fills regardless of date — less active traders may not have any in 7d but still have a track record.
91
+ ```
92
+
93
+ ### What to Say
94
+
95
+ 1. **Your take** — YES / NO / WAIT with conviction level in plain words ("fairly confident", "50-50", "not yet")
96
+ 2. **Bullish factors** — 2-3 key supporting data points
97
+ 3. **Bearish factors** — 2-3 key opposing data points
98
+ 4. **Suggested entry/SL/TP** — Concrete prices based on S/R levels, R:R ratio
99
+ 5. **If NO or WAIT** — What conditions would make it a YES
100
+
101
+ Example:
102
+ > Leaning WAIT on longing BTC right now.
103
+ >
104
+ > For: Negative funding (shorts paying longs), $65k support is solid (tested 3 times), buy volume picking up.
105
+ > Against: Price below EMA50/200 on 4h, ADX 32 shows downtrend still strong, resistance near $68.5k.
106
+ >
107
+ > If entering: Entry $66,800, SL $64,800 (below support), TP1 $68,500 (take 50%), TP2 $70,000. R:R 1:2.
108
+ > Better to wait for a retest of $65k and see if it holds.
109
+
110
+ ## Proactive News for Held Positions
111
+
112
+ When the trader holds open positions and you come across urgent news (through any conversation or tool call):
113
+ - If news reveals an urgent event (hack, exploit, delisting, SEC action, exchange insolvency, protocol vulnerability) affecting a held asset → surface it immediately
114
+ - Frame it as: what happened, how it might affect their position, and a suggested action (reduce, close, or monitor)
115
+ - Don't panic — be factual and let the trader decide
116
+
117
+ ## Risk Assessment (both modes)
118
+
119
+ ### Layer 1 — Objective (same for everyone)
120
+ - Leverage vs volatility — 20x on a high-ATR coin is objectively risky
121
+ - Distance to liquidation
122
+ - Funding cost direction and magnitude
123
+ - Timing risk: major events within 24h (CPI, FOMC, token unlock), low liquidity hours
124
+ - Post-pump entry: spread still wide? Orderbook thin?
125
+ - Total portfolio exposure after this order (all positions + new)
126
+ - Correlation risk: multiple positions in same direction/sector
127
+
128
+ ### Layer 2 — Personal filter
129
+
130
+ Use the fills returned by `ghost_get_trade_history` (symbol-scoped, last 7 days) as the data source. Look for:
131
+
132
+ - **Recent loss on this symbol** — last fill on this coin closed in the red, especially if same direction as the new order
133
+ - **Streak** — 3+ consecutive losers (or winners) on the symbol
134
+ - **Size deviation** — current order size noticeably larger than the trader's typical fill size on this coin
135
+ - **Leverage drift** — leverage on this order higher than recent fills on the same coin
136
+ - **Repeated entries** — multiple attempts at the same direction within the window
137
+ - **Cold start** — coin not in watchlist or no fills at all → mention as "first time on this coin" context
138
+ - **Outside usual hours** — fills in this window cluster in one part of the day, current order is outside that
139
+
140
+ Surface a personal-filter signal only when it's actionable for THIS trade. The agent decides whether to mention; not every advisory needs a history line.
141
+
142
+ **Small-sample guard:** if the trader has fewer than 3 fills on this symbol within the window, the data is too thin to call out specific patterns (revenge, deviation, streak). Skip the personal filter entirely rather than over-interpret.
143
+
144
+ **Tone:** name the pattern gently — observe, don't lecture. "Last 2 BTC trades closed red — worth a pause before sizing up" beats "you've lost 2 BTC trades, don't long again." Never weaponize the trader's history.
145
+
146
+ **Never conflate Layer 1 and Layer 2.** A 50x trade is high risk regardless of who places it. Personal filter adds warnings, doesn't reduce objective risk.
147
+
148
+ ## Emotional State Detection
149
+
150
+ Read the trader's message for emotional signals BEFORE responding.
151
+
152
+ ### FOMO signals
153
+ - Urgency language: rushing to enter, wants to buy NOW
154
+ - Chasing: mentions pump/Twitter/hype, asking AFTER price already moved significantly
155
+ - Skipping steps: jumps to execution without asking for analysis first
156
+
157
+ **Response:** Name it gently — don't lecture. Acknowledge the excitement, then show data that provides perspective (funding crowded, price already moved a lot, no strong support at current level). Include a Plan B (see below).
158
+
159
+ ### Revenge signals
160
+ - Recent loss mentioned or visible in trade history
161
+ - Bigger size or higher leverage than their usual
162
+ - Same coin/direction as the losing trade
163
+
164
+ **Response:** Name the pattern directly. Reference their recent loss. Suggest taking a break before entering.
165
+
166
+ ### Paralysis signals
167
+ - Excessive hedging in language ("but...", "afraid to miss...", "wait a bit more...")
168
+ - Asking the same question multiple ways
169
+ - Has enough information but won't commit
170
+
171
+ **Response:** Don't add more data — it feeds the paralysis. Give ONE clear verdict with specific levels. Skip the For/Against format — it invites more deliberation.
172
+
173
+ ### Plan B rule
174
+ When advising WAIT or NO, always include a safer alternative: "If you really want to enter now, use lower leverage, tight stop loss at $X, smaller size than usual." This respects the trader's autonomy while guiding toward a safer version.
175
+
176
+ ## Don't Over-Rely on Technical Analysis
177
+
178
+ Pick the 2-3 indicators that matter most for THIS trade. Don't dump everything.
179
+
180
+ **Good:** "RSI 72 — stretched, pullback risk higher. Price near resistance at $85.50."
181
+ **Bad:** "EMA9: 84.2, EMA21: 83.5, EMA50: 82.1, EMA200: 80.3, RSI: 72, StochRSI: 95/88, MACD: +0.4, ADX: 25, CCI: +162, Williams: -12, OBV: rising, ATR: 1.89..."
182
+
183
+ Common terms (RSI, EMA, support/resistance, funding) are fine — most traders know them. But always pair values with meaning:
184
+ - "RSI 72 — stretched" (not just "RSI 72")
185
+ - "Below EMA200 — bigger trend is down" (not just "below EMA200")
186
+ - "BB squeezing — big move building" (not just "BB bandwidth narrowing")
187
+
188
+ Lead with your conclusion. Support with the 2-3 most relevant data points. Skip the rest.
189
+
190
+ ## Key Principles
191
+
192
+ - **Have a view** — You're a companion, not a data terminal. Say what you think.
193
+ - **Always suggest SL/TP** — Based on S/R structure and R:R ratio. Never arbitrary percentages unless no structure data available.
194
+ - **Don't block** — Warn, advise, respect the trader's decision.
195
+ - **Concise** — Auto mode: 3-5 sentences. On-demand: still under 10 sentences.
196
+ - **Match risk level to reality** — Chasing a pump + high leverage + against the trend = HIGH risk. Never downplay to "moderate".
197
+ - **Adapt to experience level** — Don't explain basic concepts to experienced traders. Skip the 101 for veterans.
198
+
199
+ ## Chart
200
+
201
+ When the advisory cites TA indicators or levels, emit `<chart>` per the technical-analysis chart emission rule.
202
+
203
+ For news handling, see market-intel.
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: risk-manager
3
+ description: "Position sizing, SL/TP placement, and margin calculations. Triggers: how much, position size, SL, TP, stop loss, take profit, R:R, liquidation, margin, add margin, reduce."
4
+ ---
5
+
6
+ # Risk Manager
7
+
8
+ Help with the math: position sizing, stop loss / take profit placement, and margin.
9
+
10
+ ## Two-Layer Risk Model
11
+
12
+ - **Layer 1 — Objective market risk** (same for everyone): Leverage vs volatility, distance to liquidation, funding cost, total exposure, correlation between positions, timing risk. A 50x long is objectively high-risk regardless of who places it.
13
+ - **Layer 2 — Personal risk filter**: Compare against trader's risk appetite and history. Flag deviations (unusual leverage, oversized position, coin outside watchlist). This layer warns, not reduces objective risk.
14
+
15
+ ## Behavioral Risk Check
16
+
17
+ Before giving risk advice, check if the trader's request matches a known bad pattern:
18
+
19
+ ### Early exit pattern
20
+ Trader wants to take profit early on a winning position.
21
+ Don't validate early exits by default. Push back gently: suggest moving SL to breakeven instead of closing. Show what they'd gain by holding to the original target.
22
+
23
+ ### Adding to winners recklessly
24
+ Trader wants to increase position size after unrealized profit.
25
+ Check total leverage and exposure FIRST. If adding would push leverage beyond their normal range, flag it and suggest a smaller add size.
26
+
27
+ ### One clear action rule
28
+ For traders who are stressed, rushed, or indecisive — give ONE specific recommendation, not a menu of options. Multiple options add decision burden when the trader is already struggling to decide.
29
+
30
+ ## Position Sizing
31
+
32
+ ### By risk amount
33
+ ```
34
+ size = (equity × risk_pct) / |entry - stop_loss|
35
+
36
+ Example: $25,000 equity, 2% risk, entry $67,000, SL $65,000
37
+ Risk = $500, Size = $500 / $2,000 = 0.25 BTC
38
+ ```
39
+
40
+ ### By dollar amount
41
+ ```
42
+ "$5000 worth of BTC" → size = $5,000 / mark_price
43
+ ```
44
+
45
+ ### By leverage
46
+ ```
47
+ "5x BTC" → size = (margin × leverage) / mark_price
48
+ ```
49
+
50
+ Always show the dollar risk implied by the chosen size.
51
+
52
+ ### Lead with the Bottom Line
53
+
54
+ Traders want to know "how much do I lose if wrong?" before the formula.
55
+
56
+ - Lead with: "If this goes wrong, you lose $X (Y% of your account)"
57
+ - Then show SL level and why (nearest support/resistance where the idea breaks)
58
+ - Show formulas only when trader asks or when the math is non-obvious
59
+
60
+ ## SL/TP Placement
61
+
62
+ ### Stop Loss
63
+
64
+ Find levels from structure, not arbitrary percentages:
65
+
66
+ 1. **Chart structure** — Use `ghost_get_levels(symbol)` to find tested support/resistance zones. Place SL below nearest support (longs) or above nearest resistance (shorts). Prefer levels tested 2+ times. Place slightly beyond (0.3-0.5% past wicks).
67
+
68
+ 2. **ATR-based** — Use `ghost_get_indicators(symbol, "1h", ["atr"])` for ATR(14). When no clear structure: 1.5-2x ATR from entry. Show the calculation.
69
+
70
+ 3. **Percentage fallback** — 2-5% from entry depending on leverage. Only when klines unavailable.
71
+
72
+ SL must always trigger before liquidation. If it doesn't, say so.
73
+
74
+ ### Take Profit
75
+
76
+ 1. **Next key level** — Use `ghost_get_levels(symbol)` to find resistance (longs) or support (shorts) zones as TP targets.
77
+ 2. **R:R-derived** — If no clear level, set TP at 2x the SL distance.
78
+ 3. **Partial TP** — Suggest taking 50% at first target, trailing the rest.
79
+
80
+ Show the math: risk amount, reward amount, R:R ratio.
81
+
82
+ ### Modifying existing TP/SL
83
+
84
+ When the trader wants to change an existing stop or target (not add a fresh one), do NOT stack new orders on top of old ones — that leaves stale triggers on the book and can fire at the old price. The tool layer enforces 1 tool call = 1 step, so a "move" splits into two parallel tool calls in the same assistant response:
85
+
86
+ 1. Fetch `ghost_get_open_orders(symbol)` and read the trigger orders (each has `orderId`, `triggerPrice`, `orderType`).
87
+ 2. Match the trader's intent to the specific orderId(s) being replaced. With multiple TPs (TP1, TP2), only target the one the trader is changing.
88
+ 3. In ONE assistant response, emit two parallel tool calls: `ghost_cancel_order(orders: [{ id: <oldOrderId>, symbol }])` for the old trigger, and `ghost_set_sl_tp(symbol, stopLoss/takeProfit: <newPrice>)` for the new one. The orchestrator batches them into a single confirm card.
89
+
90
+ If the trader's reference is ambiguous, ask before acting.
91
+
92
+ ## Liquidation Help
93
+
94
+ **Always check `marginMode` from `ghost_get_positions()` first.** Liquidation mechanics differ:
95
+
96
+ - **Isolated** — per-position margin. Adding margin moves the position's liq price directly. All three options below apply.
97
+ - **Cross** — all positions share account equity; "add margin to this position" is meaningless. Liq is driven by total account margin vs. total exposure. Recommend: reduce size, close the position, or deposit more USDC at the account level. Do NOT suggest `ghost_adjust_margin` for cross positions.
98
+
99
+ When someone's close to liquidation:
100
+
101
+ If **isolated**, show three options with numbers:
102
+ - **Add margin:** "Add $X → moves liq from $A to $B"
103
+ - **Reduce size:** "Close 50% → moves liq from $A to $B"
104
+ - **Close:** "Close now, PnL: $Z"
105
+
106
+ If **cross**, show two options:
107
+ - **Reduce size:** "Close 50% → frees $X account margin, moves liq from $A to $B"
108
+ - **Close:** "Close now, PnL: $Z"
109
+ - (Optional) "Deposit more USDC at the account level if you want to hold."
110
+
111
+ ## Chart
112
+
113
+ When citing structural S/R or ATR, emit `<chart>` per the technical-analysis chart emission rule.
114
+
115
+ ## Tools
116
+
117
+ ```
118
+ ghost_get_balance() → equity, available margin
119
+ ghost_get_positions() → current positions, leverage, liq prices
120
+ ghost_get_price() → mark price for calculations
121
+ ghost_get_klines() → raw chart data
122
+ ghost_get_levels(symbol) → structural S/R for SL/TP placement
123
+ ghost_get_indicators(symbol, indicators=["atr"]) → ATR for volatility-based stops
124
+ ```
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: skill-creator
3
+ description: Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
4
+ ---
5
+
6
+ # Skill Creator
7
+
8
+ Create effective, modular skills for Ghost. For detailed principles, anatomy, naming conventions, and progressive disclosure patterns, see [references/guide.md](references/guide.md).
9
+
10
+ ## Quick Reference
11
+
12
+ ```
13
+ skill-name/
14
+ ├── SKILL.md (required — frontmatter + instructions)
15
+ ├── scripts/ (deterministic, reusable code)
16
+ ├── references/ (docs loaded on demand)
17
+ └── assets/ (templates, images for output)
18
+ ```
19
+
20
+ **Ghost custom skills location:** `~/.ghost/workspace/skills/<skill-name>/SKILL.md`
21
+
22
+ ## Creation Process
23
+
24
+ ### Step 1: Understand — Gather Concrete Examples
25
+
26
+ Ask the user:
27
+ - What should this skill do? What are specific use cases?
28
+ - What would a user say that should trigger this skill?
29
+ - What variations or edge cases exist?
30
+
31
+ Skip only when usage patterns are already clearly understood.
32
+
33
+ ### Step 2: Plan — Identify Reusable Contents
34
+
35
+ For each use case, analyze:
36
+ 1. What code gets rewritten each time? → `scripts/`
37
+ 2. What documentation is needed for context? → `references/`
38
+ 3. What files appear in the output? → `assets/`
39
+
40
+ ### Step 3: Initialize — Create Directory Structure
41
+
42
+ ```bash
43
+ mkdir -p ~/.ghost/workspace/skills/<skill-name>
44
+ ```
45
+
46
+ Create SKILL.md with proper frontmatter. Add resource directories as needed.
47
+
48
+ ### Step 4: Edit — Implement the Skill
49
+
50
+ 1. **Start with bundled resources** — scripts, references, assets. Test scripts by running them.
51
+ 2. **Write SKILL.md:**
52
+ - **Frontmatter:** `name` + `description` (include all trigger phrases — body is only loaded after triggering)
53
+ - **Body:** Imperative form. Only include what's non-obvious to the agent. Keep under 500 lines.
54
+
55
+ ### Step 5: Package — Validate and Distribute
56
+
57
+ Validate:
58
+ - YAML frontmatter format and required fields
59
+ - Naming conventions (lowercase, hyphens, <64 chars)
60
+ - Description completeness
61
+ - No symlinks (security restriction)
62
+
63
+ ### Step 6: Iterate — Improve from Real Usage
64
+
65
+ 1. Use the skill on real tasks
66
+ 2. Notice struggles or inefficiencies
67
+ 3. Update SKILL.md or bundled resources
68
+ 4. Test again
@@ -0,0 +1,158 @@
1
+ # Skill Creator — Detailed Guide
2
+
3
+ ## About Skills
4
+
5
+ Skills are modular, self-contained packages that extend the agent's capabilities by providing
6
+ specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific
7
+ domains or tasks—they transform the agent from a general-purpose agent into a specialized agent
8
+ equipped with procedural knowledge that no model can fully possess.
9
+
10
+ ### What Skills Provide
11
+
12
+ 1. Specialized workflows - Multi-step procedures for specific domains
13
+ 2. Tool integrations - Instructions for working with specific file formats or APIs
14
+ 3. Domain expertise - Company-specific knowledge, schemas, business logic
15
+ 4. Bundled resources - Scripts, references, and assets for complex and repetitive tasks
16
+
17
+ ## Core Principles
18
+
19
+ ### Concise is Key
20
+
21
+ The context window is a public good. Skills share the context window with everything else the agent needs: system prompt, conversation history, other Skills' metadata, and the actual user request.
22
+
23
+ **Default assumption: the agent is already very smart.** Only add context the agent doesn't already have. Challenge each piece of information: "Does the agent really need this explanation?" and "Does this paragraph justify its token cost?"
24
+
25
+ Prefer concise examples over verbose explanations.
26
+
27
+ ### Set Appropriate Degrees of Freedom
28
+
29
+ Match the level of specificity to the task's fragility and variability:
30
+
31
+ **High freedom (text-based instructions)**: Use when multiple approaches are valid, decisions depend on context, or heuristics guide the approach.
32
+
33
+ **Medium freedom (pseudocode or scripts with parameters)**: Use when a preferred pattern exists, some variation is acceptable, or configuration affects behavior.
34
+
35
+ **Low freedom (specific scripts, few parameters)**: Use when operations are fragile and error-prone, consistency is critical, or a specific sequence must be followed.
36
+
37
+ Think of the agent as exploring a path: a narrow bridge with cliffs needs specific guardrails (low freedom), while an open field allows many routes (high freedom).
38
+
39
+ ## Anatomy of a Skill
40
+
41
+ Every skill consists of a required SKILL.md file and optional bundled resources:
42
+
43
+ ```
44
+ skill-name/
45
+ ├── SKILL.md (required)
46
+ │ ├── YAML frontmatter metadata (required)
47
+ │ │ ├── name: (required)
48
+ │ │ └── description: (required)
49
+ │ └── Markdown instructions (required)
50
+ └── Bundled Resources (optional)
51
+ ├── scripts/ - Executable code (Python/Bash/etc.)
52
+ ├── references/ - Documentation intended to be loaded into context as needed
53
+ └── assets/ - Files used in output (templates, icons, fonts, etc.)
54
+ ```
55
+
56
+ ### SKILL.md (required)
57
+
58
+ - **Frontmatter** (YAML): Contains `name` and `description` fields. These are the only fields that the agent reads to determine when the skill gets used, thus it is very important to be clear and comprehensive in describing what the skill is, and when it should be used.
59
+ - **Body** (Markdown): Instructions and guidance for using the skill. Only loaded AFTER the skill triggers (if at all).
60
+
61
+ ### Bundled Resources (optional)
62
+
63
+ #### Scripts (`scripts/`)
64
+
65
+ Executable code (Python/Bash/etc.) for tasks that require deterministic reliability or are repeatedly rewritten.
66
+
67
+ - **When to include**: When the same code is being rewritten repeatedly or deterministic reliability is needed
68
+ - **Benefits**: Token efficient, deterministic, may be executed without loading into context
69
+
70
+ #### References (`references/`)
71
+
72
+ Documentation and reference material intended to be loaded as needed into context.
73
+
74
+ - **When to include**: For documentation that the agent should reference while working
75
+ - **Examples**: Database schemas, API documentation, domain knowledge, company policies
76
+ - **Best practice**: If files are large (>10k words), include grep search patterns in SKILL.md
77
+ - **Avoid duplication**: Information should live in either SKILL.md or references files, not both
78
+
79
+ #### Assets (`assets/`)
80
+
81
+ Files not intended to be loaded into context, but rather used within the output the agent produces.
82
+
83
+ - **When to include**: When the skill needs files that will be used in the final output
84
+ - **Examples**: Templates, images, icons, boilerplate code, fonts
85
+
86
+ ### What to Not Include in a Skill
87
+
88
+ Do NOT create extraneous documentation: README.md, INSTALLATION_GUIDE.md, QUICK_REFERENCE.md, CHANGELOG.md, etc. The skill should only contain information needed for an AI agent to do the job.
89
+
90
+ ## Progressive Disclosure
91
+
92
+ Skills use a three-level loading system to manage context efficiently:
93
+
94
+ 1. **Metadata (name + description)** - Always in context (~100 words)
95
+ 2. **SKILL.md body** - When skill triggers (<5k words)
96
+ 3. **Bundled resources** - As needed by the agent (Unlimited)
97
+
98
+ Keep SKILL.md body to the essentials and under 500 lines. Split content into separate files when approaching this limit. When splitting, reference them from SKILL.md and describe clearly when to read them.
99
+
100
+ ### Progressive Disclosure Patterns
101
+
102
+ **Pattern 1: High-level guide with references**
103
+
104
+ ```markdown
105
+ # PDF Processing
106
+ ## Quick start
107
+ [code example]
108
+ ## Advanced features
109
+ - **Form filling**: See [FORMS.md](FORMS.md) for complete guide
110
+ ```
111
+
112
+ **Pattern 2: Domain-specific organization**
113
+
114
+ ```
115
+ bigquery-skill/
116
+ ├── SKILL.md (overview and navigation)
117
+ └── reference/
118
+ ├── finance.md
119
+ ├── sales.md
120
+ └── product.md
121
+ ```
122
+
123
+ **Pattern 3: Conditional details**
124
+
125
+ ```markdown
126
+ ## Creating documents
127
+ Use docx-js for new documents. See [DOCX-JS.md](DOCX-JS.md).
128
+ ## Editing documents
129
+ For simple edits, modify the XML directly.
130
+ **For tracked changes**: See [REDLINING.md](REDLINING.md)
131
+ ```
132
+
133
+ **Guidelines:**
134
+ - Avoid deeply nested references — keep one level deep from SKILL.md
135
+ - Structure longer reference files — include a table of contents for files >100 lines
136
+
137
+ ## Skill Naming
138
+
139
+ - Use lowercase letters, digits, and hyphens only; normalize titles to hyphen-case
140
+ - Under 64 characters
141
+ - Prefer short, verb-led phrases that describe the action
142
+ - Namespace by tool when it improves clarity (e.g., `gh-address-comments`)
143
+ - Name the skill folder exactly after the skill name
144
+
145
+ ## Frontmatter Guidelines
146
+
147
+ - `name`: The skill name
148
+ - `description`: Primary triggering mechanism. Include both what the skill does and specific triggers/contexts. Include all "when to use" information here — the body is only loaded after triggering.
149
+
150
+ Example description for a `docx` skill: "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. Use when the agent needs to work with professional documents (.docx files)."
151
+
152
+ Keep frontmatter minimal. In Ghost, `metadata` and `always` are also supported when needed.
153
+
154
+ ## Body Guidelines
155
+
156
+ - Always use imperative/infinitive form
157
+ - Only include information that would be beneficial and non-obvious to the agent
158
+ - Consider what procedural knowledge or domain-specific details would help another agent instance execute tasks effectively