@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.
- package/LICENSE +21 -0
- package/README.md +91 -0
- package/dist/index.js +220545 -0
- package/dist/package.json +4 -0
- package/dist/skills/builtin/briefing/SKILL.md +77 -0
- package/dist/skills/builtin/clawhub/SKILL.md +50 -0
- package/dist/skills/builtin/event-judge/SKILL.md +122 -0
- package/dist/skills/builtin/market-intel/SKILL.md +160 -0
- package/dist/skills/builtin/position-monitor/SKILL.md +84 -0
- package/dist/skills/builtin/pre-trade-advisory/SKILL.md +203 -0
- package/dist/skills/builtin/risk-manager/SKILL.md +124 -0
- package/dist/skills/builtin/skill-creator/SKILL.md +68 -0
- package/dist/skills/builtin/skill-creator/references/guide.md +158 -0
- package/dist/skills/builtin/skill-creator/scripts/init_skill.py +378 -0
- package/dist/skills/builtin/skill-creator/scripts/package_skill.py +154 -0
- package/dist/skills/builtin/skill-creator/scripts/quick_validate.py +213 -0
- package/dist/skills/builtin/skills-sh/SKILL.md +56 -0
- package/dist/skills/builtin/technical-analysis/SKILL.md +242 -0
- package/dist/skills/builtin/trade-executor/SKILL.md +179 -0
- package/dist/templates/SOUL.md +73 -0
- package/dist/web/dist/assets/Chart-DwirCj9o.js +1 -0
- package/dist/web/dist/assets/Config-Csnvaqpn.js +1 -0
- package/dist/web/dist/assets/Cost-BSD_2GYX.js +6 -0
- package/dist/web/dist/assets/Cron-BVKdKUFN.js +16 -0
- package/dist/web/dist/assets/Dashboard-Ccr5J95V.js +21 -0
- package/dist/web/dist/assets/Logs-CUgA7IGb.js +21 -0
- package/dist/web/dist/assets/Memory-C_Q_iNlN.js +12 -0
- package/dist/web/dist/assets/SF-Pro-Display-Bold-CkqE-6tD.otf +0 -0
- package/dist/web/dist/assets/SF-Pro-Display-Medium-DSttQARu.otf +0 -0
- package/dist/web/dist/assets/SF-Pro-Display-Regular-DF_3XEGl.otf +0 -0
- package/dist/web/dist/assets/SF-Pro-Display-Semibold-Dg2-djaL.otf +0 -0
- package/dist/web/dist/assets/Sessions-KDhnYDnX.js +11 -0
- package/dist/web/dist/assets/Skills-BK-V7HFa.js +1 -0
- package/dist/web/dist/assets/Tools-a3aqqugu.js +1 -0
- package/dist/web/dist/assets/abap-BdImnpbu.js +1 -0
- package/dist/web/dist/assets/actionscript-3-CoDkCxhg.js +1 -0
- package/dist/web/dist/assets/activity-DsxRdk-G.js +6 -0
- package/dist/web/dist/assets/ada-bCR0ucgS.js +1 -0
- package/dist/web/dist/assets/andromeeda-C4gqWexZ.js +1 -0
- package/dist/web/dist/assets/angular-html-CU67Zn6k.js +1 -0
- package/dist/web/dist/assets/angular-ts-BwZT4LLn.js +1 -0
- package/dist/web/dist/assets/apache-Pmp26Uib.js +1 -0
- package/dist/web/dist/assets/apex-D8_7TLub.js +1 -0
- package/dist/web/dist/assets/apl-dKokRX4l.js +1 -0
- package/dist/web/dist/assets/applescript-Co6uUVPk.js +1 -0
- package/dist/web/dist/assets/ara-BRHolxvo.js +1 -0
- package/dist/web/dist/assets/asciidoc-Ve4PFQV2.js +1 -0
- package/dist/web/dist/assets/asm-D_Q5rh1f.js +1 -0
- package/dist/web/dist/assets/astro-CbQHKStN.js +1 -0
- package/dist/web/dist/assets/aurora-x-D-2ljcwZ.js +1 -0
- package/dist/web/dist/assets/awk-DMzUqQB5.js +1 -0
- package/dist/web/dist/assets/ayu-dark-DYE7WIF3.js +1 -0
- package/dist/web/dist/assets/ayu-light-BA47KaF1.js +1 -0
- package/dist/web/dist/assets/ayu-mirage-32ctXXKs.js +1 -0
- package/dist/web/dist/assets/ballerina-BFfxhgS-.js +1 -0
- package/dist/web/dist/assets/bat-BkioyH1T.js +1 -0
- package/dist/web/dist/assets/beancount-k_qm7-4y.js +1 -0
- package/dist/web/dist/assets/berry-uYugtg8r.js +1 -0
- package/dist/web/dist/assets/bibtex-CHM0blh-.js +1 -0
- package/dist/web/dist/assets/bicep-Bmn6On1c.js +1 -0
- package/dist/web/dist/assets/bird2-DPOp833l.js +1 -0
- package/dist/web/dist/assets/blade-D4QpJJKB.js +1 -0
- package/dist/web/dist/assets/bsl-BO_Y6i37.js +1 -0
- package/dist/web/dist/assets/c-BIGW1oBm.js +1 -0
- package/dist/web/dist/assets/c3-eo99z4R2.js +1 -0
- package/dist/web/dist/assets/cadence-Bv_4Rxtq.js +1 -0
- package/dist/web/dist/assets/cairo-KRGpt6FW.js +1 -0
- package/dist/web/dist/assets/catppuccin-frappe-DFWUc33u.js +1 -0
- package/dist/web/dist/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
- package/dist/web/dist/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
- package/dist/web/dist/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
- package/dist/web/dist/assets/clarity-D53aC0YG.js +1 -0
- package/dist/web/dist/assets/clock-DCbfDkWu.js +6 -0
- package/dist/web/dist/assets/clojure-P80f7IUj.js +1 -0
- package/dist/web/dist/assets/cmake-D1j8_8rp.js +1 -0
- package/dist/web/dist/assets/cobol-nwyudZeR.js +1 -0
- package/dist/web/dist/assets/codeowners-Bp6g37R7.js +1 -0
- package/dist/web/dist/assets/codeql-DsOJ9woJ.js +1 -0
- package/dist/web/dist/assets/coffee-Ch7k5sss.js +1 -0
- package/dist/web/dist/assets/common-lisp-Cg-RD9OK.js +1 -0
- package/dist/web/dist/assets/coq-DkFqJrB1.js +1 -0
- package/dist/web/dist/assets/cpp-CofmeUqb.js +1 -0
- package/dist/web/dist/assets/crystal-tKQVLTB8.js +1 -0
- package/dist/web/dist/assets/csharp-COcwbKMJ.js +1 -0
- package/dist/web/dist/assets/css-DPfMkruS.js +1 -0
- package/dist/web/dist/assets/csv-fuZLfV_i.js +1 -0
- package/dist/web/dist/assets/cue-D82EKSYY.js +1 -0
- package/dist/web/dist/assets/cypher-COkxafJQ.js +1 -0
- package/dist/web/dist/assets/d-85-TOEBH.js +1 -0
- package/dist/web/dist/assets/dark-plus-C3mMm8J8.js +1 -0
- package/dist/web/dist/assets/dart-CF10PKvl.js +1 -0
- package/dist/web/dist/assets/dax-CEL-wOlO.js +1 -0
- package/dist/web/dist/assets/desktop-BmXAJ9_W.js +1 -0
- package/dist/web/dist/assets/diff-D97Zzqfu.js +1 -0
- package/dist/web/dist/assets/docker-BcOcwvcX.js +1 -0
- package/dist/web/dist/assets/dotenv-Da5cRb03.js +1 -0
- package/dist/web/dist/assets/dracula-BzJJZx-M.js +1 -0
- package/dist/web/dist/assets/dracula-soft-BXkSAIEj.js +1 -0
- package/dist/web/dist/assets/dream-maker-BtqSS_iP.js +1 -0
- package/dist/web/dist/assets/edge-BkV0erSs.js +1 -0
- package/dist/web/dist/assets/elixir-CDX3lj18.js +1 -0
- package/dist/web/dist/assets/elm-DbKCFpqz.js +1 -0
- package/dist/web/dist/assets/emacs-lisp-C9XAeP06.js +1 -0
- package/dist/web/dist/assets/erb-B12qg9BL.js +1 -0
- package/dist/web/dist/assets/erlang-DsQrWhSR.js +1 -0
- package/dist/web/dist/assets/everforest-dark-BgDCqdQA.js +1 -0
- package/dist/web/dist/assets/everforest-light-C8M2exoo.js +1 -0
- package/dist/web/dist/assets/fennel-BYunw83y.js +1 -0
- package/dist/web/dist/assets/fish-BvzEVeQv.js +1 -0
- package/dist/web/dist/assets/fluent-C4IJs8-o.js +1 -0
- package/dist/web/dist/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
- package/dist/web/dist/assets/fortran-free-form-BxgE0vQu.js +1 -0
- package/dist/web/dist/assets/fsharp-CXgrBDvD.js +1 -0
- package/dist/web/dist/assets/gdresource-BOOCDP_w.js +1 -0
- package/dist/web/dist/assets/gdscript-C5YyOfLZ.js +1 -0
- package/dist/web/dist/assets/gdshader-DkwncUOv.js +1 -0
- package/dist/web/dist/assets/genie-D0YGMca9.js +1 -0
- package/dist/web/dist/assets/gherkin-DyxjwDmM.js +1 -0
- package/dist/web/dist/assets/ghost-symbol-xItVvoCA.svg +5 -0
- package/dist/web/dist/assets/git-commit-F4YmCXRG.js +1 -0
- package/dist/web/dist/assets/git-rebase-r7XF79zn.js +1 -0
- package/dist/web/dist/assets/github-dark-DHJKELXO.js +1 -0
- package/dist/web/dist/assets/github-dark-default-Cuk6v7N8.js +1 -0
- package/dist/web/dist/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
- package/dist/web/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
- package/dist/web/dist/assets/github-light-DAi9KRSo.js +1 -0
- package/dist/web/dist/assets/github-light-default-D7oLnXFd.js +1 -0
- package/dist/web/dist/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
- package/dist/web/dist/assets/gleam-BspZqrRM.js +1 -0
- package/dist/web/dist/assets/glimmer-js-Rg0-pVw9.js +1 -0
- package/dist/web/dist/assets/glimmer-ts-U6CK756n.js +1 -0
- package/dist/web/dist/assets/glsl-DplSGwfg.js +1 -0
- package/dist/web/dist/assets/gn-n2N0HUVH.js +1 -0
- package/dist/web/dist/assets/gnuplot-DdkO51Og.js +1 -0
- package/dist/web/dist/assets/go-CxLEBnE3.js +1 -0
- package/dist/web/dist/assets/graphql-ChdNCCLP.js +1 -0
- package/dist/web/dist/assets/groovy-gcz8RCvz.js +1 -0
- package/dist/web/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
- package/dist/web/dist/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
- package/dist/web/dist/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
- package/dist/web/dist/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
- package/dist/web/dist/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
- package/dist/web/dist/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
- package/dist/web/dist/assets/hack-CaT9iCJl.js +1 -0
- package/dist/web/dist/assets/haml-B8DHNrY2.js +1 -0
- package/dist/web/dist/assets/handlebars-BL8al0AC.js +1 -0
- package/dist/web/dist/assets/haskell-Df6bDoY_.js +1 -0
- package/dist/web/dist/assets/haxe-CzTSHFRz.js +1 -0
- package/dist/web/dist/assets/hcl-BWvSN4gD.js +1 -0
- package/dist/web/dist/assets/highlighted-body-OFNGDK62-C8yP3qbm.js +1 -0
- package/dist/web/dist/assets/hjson-D5-asLiD.js +1 -0
- package/dist/web/dist/assets/hlsl-D3lLCCz7.js +1 -0
- package/dist/web/dist/assets/horizon-BUw7H-hv.js +1 -0
- package/dist/web/dist/assets/horizon-bright-Cn-bp-IR.js +1 -0
- package/dist/web/dist/assets/houston-DnULxvSX.js +1 -0
- package/dist/web/dist/assets/html-GMplVEZG.js +1 -0
- package/dist/web/dist/assets/html-derivative-BFtXZ54Q.js +1 -0
- package/dist/web/dist/assets/http-jrhK8wxY.js +1 -0
- package/dist/web/dist/assets/hurl-irOxFIW8.js +1 -0
- package/dist/web/dist/assets/hxml-Bvhsp5Yf.js +1 -0
- package/dist/web/dist/assets/hy-DFXneXwc.js +1 -0
- package/dist/web/dist/assets/hyperliquid-logo-Blr66fIk.svg +9 -0
- package/dist/web/dist/assets/imba-DGztddWO.js +1 -0
- package/dist/web/dist/assets/index-3q7g734D.js +54 -0
- package/dist/web/dist/assets/index-DRvGorcf.css +1 -0
- package/dist/web/dist/assets/ini-BEwlwnbL.js +1 -0
- package/dist/web/dist/assets/java-CylS5w8V.js +1 -0
- package/dist/web/dist/assets/javascript-wDzz0qaB.js +1 -0
- package/dist/web/dist/assets/jinja-4LBKfQ-Z.js +1 -0
- package/dist/web/dist/assets/jison-wvAkD_A8.js +1 -0
- package/dist/web/dist/assets/json-Cp-IABpG.js +1 -0
- package/dist/web/dist/assets/json5-C9tS-k6U.js +1 -0
- package/dist/web/dist/assets/jsonc-Des-eS-w.js +1 -0
- package/dist/web/dist/assets/jsonl-DcaNXYhu.js +1 -0
- package/dist/web/dist/assets/jsonnet-DFQXde-d.js +1 -0
- package/dist/web/dist/assets/jssm-C2t-YnRu.js +1 -0
- package/dist/web/dist/assets/jsx-g9-lgVsj.js +1 -0
- package/dist/web/dist/assets/julia-CxzCAyBv.js +1 -0
- package/dist/web/dist/assets/just-Cw27pwNe.js +1 -0
- package/dist/web/dist/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
- package/dist/web/dist/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
- package/dist/web/dist/assets/kanagawa-wave-DWedfzmr.js +1 -0
- package/dist/web/dist/assets/kdl-DV7GczEv.js +1 -0
- package/dist/web/dist/assets/kotlin-BdnUsdx6.js +1 -0
- package/dist/web/dist/assets/kusto-DZf3V79B.js +1 -0
- package/dist/web/dist/assets/laserwave-DUszq2jm.js +1 -0
- package/dist/web/dist/assets/latex-CWtU0Tv5.js +1 -0
- package/dist/web/dist/assets/lean-BZvkOJ9d.js +1 -0
- package/dist/web/dist/assets/less-B1dDrJ26.js +1 -0
- package/dist/web/dist/assets/light-plus-B7mTdjB0.js +1 -0
- package/dist/web/dist/assets/liquid-DYVedYrR.js +1 -0
- package/dist/web/dist/assets/llvm-DjAJT7YJ.js +1 -0
- package/dist/web/dist/assets/log-2UxHyX5q.js +1 -0
- package/dist/web/dist/assets/logo-BtOb2qkB.js +1 -0
- package/dist/web/dist/assets/lua-BaeVxFsk.js +1 -0
- package/dist/web/dist/assets/luau-C-HG3fhB.js +1 -0
- package/dist/web/dist/assets/make-CHLpvVh8.js +1 -0
- package/dist/web/dist/assets/markdown-Cvjx9yec.js +1 -0
- package/dist/web/dist/assets/marko-CnJfTvn9.js +1 -0
- package/dist/web/dist/assets/material-theme-D5KoaKCx.js +1 -0
- package/dist/web/dist/assets/material-theme-darker-BfHTSMKl.js +1 -0
- package/dist/web/dist/assets/material-theme-lighter-B0m2ddpp.js +1 -0
- package/dist/web/dist/assets/material-theme-ocean-CyktbL80.js +1 -0
- package/dist/web/dist/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
- package/dist/web/dist/assets/matlab-D7o27uSR.js +1 -0
- package/dist/web/dist/assets/mdc-BMNejdWA.js +1 -0
- package/dist/web/dist/assets/mdx-Cmh6b_Ma.js +1 -0
- package/dist/web/dist/assets/mermaid-GHXKKRXX-CbzD1Jp7.js +282 -0
- package/dist/web/dist/assets/mermaid-mWjccvbQ.js +1 -0
- package/dist/web/dist/assets/min-dark-CafNBF8u.js +1 -0
- package/dist/web/dist/assets/min-light-CTRr51gU.js +1 -0
- package/dist/web/dist/assets/mipsasm-CKIfxQSi.js +1 -0
- package/dist/web/dist/assets/mojo-rZm6bMo-.js +1 -0
- package/dist/web/dist/assets/monokai-D4h5O-jR.js +1 -0
- package/dist/web/dist/assets/moonbit-_H4v1dQx.js +1 -0
- package/dist/web/dist/assets/move-IF9eRakj.js +1 -0
- package/dist/web/dist/assets/narrat-DRg8JJMk.js +1 -0
- package/dist/web/dist/assets/nextflow-Zz6hmt5N.js +1 -0
- package/dist/web/dist/assets/nextflow-groovy-BeH2EWoN.js +1 -0
- package/dist/web/dist/assets/nginx-BpAMiNFr.js +1 -0
- package/dist/web/dist/assets/night-owl-C39BiMTA.js +1 -0
- package/dist/web/dist/assets/night-owl-light-CMTm3GFP.js +1 -0
- package/dist/web/dist/assets/nim-CVrawwO9.js +1 -0
- package/dist/web/dist/assets/nix-CwoSXNpI.js +1 -0
- package/dist/web/dist/assets/nord-Ddv68eIx.js +1 -0
- package/dist/web/dist/assets/nushell-Cz2AlsmD.js +1 -0
- package/dist/web/dist/assets/objective-c-DXmwc3jG.js +1 -0
- package/dist/web/dist/assets/objective-cpp-CLxacb5B.js +1 -0
- package/dist/web/dist/assets/ocaml-C0hk2d4L.js +1 -0
- package/dist/web/dist/assets/odin-BBf5iR-q.js +1 -0
- package/dist/web/dist/assets/one-dark-pro-DVMEJ2y_.js +1 -0
- package/dist/web/dist/assets/one-light-C3Wv6jpd.js +1 -0
- package/dist/web/dist/assets/openscad-C4EeE6gA.js +1 -0
- package/dist/web/dist/assets/pascal-D93ZcfNL.js +1 -0
- package/dist/web/dist/assets/perl-C0TMdlhV.js +1 -0
- package/dist/web/dist/assets/php-Dhbhpdrm.js +1 -0
- package/dist/web/dist/assets/pkl-u5AG7uiY.js +1 -0
- package/dist/web/dist/assets/plastic-3e1v2bzS.js +1 -0
- package/dist/web/dist/assets/plsql-ChMvpjG-.js +1 -0
- package/dist/web/dist/assets/po-BTJTHyun.js +1 -0
- package/dist/web/dist/assets/poimandres-CS3Unz2-.js +1 -0
- package/dist/web/dist/assets/polar-C0HS_06l.js +1 -0
- package/dist/web/dist/assets/postcss-CXtECtnM.js +1 -0
- package/dist/web/dist/assets/powerquery-CEu0bR-o.js +1 -0
- package/dist/web/dist/assets/powershell-Dpen1YoG.js +1 -0
- package/dist/web/dist/assets/prisma-Dd19v3D-.js +1 -0
- package/dist/web/dist/assets/prolog-CbFg5uaA.js +1 -0
- package/dist/web/dist/assets/proto-C7zT0LnQ.js +1 -0
- package/dist/web/dist/assets/pug-CGlum2m_.js +1 -0
- package/dist/web/dist/assets/puppet-BMWR74SV.js +1 -0
- package/dist/web/dist/assets/purescript-CklMAg4u.js +1 -0
- package/dist/web/dist/assets/python-B6aJPvgy.js +1 -0
- package/dist/web/dist/assets/qml-3beO22l8.js +1 -0
- package/dist/web/dist/assets/qmldir-C8lEn-DE.js +1 -0
- package/dist/web/dist/assets/qss-IeuSbFQv.js +1 -0
- package/dist/web/dist/assets/r-Dspwwk_N.js +1 -0
- package/dist/web/dist/assets/racket-BqYA7rlc.js +1 -0
- package/dist/web/dist/assets/raku-DXvB9xmW.js +1 -0
- package/dist/web/dist/assets/razor-Uh8Bk_45.js +1 -0
- package/dist/web/dist/assets/red-bN70gL4F.js +1 -0
- package/dist/web/dist/assets/refresh-cw-B9ZNJZIb.js +6 -0
- package/dist/web/dist/assets/reg-C-SQnVFl.js +1 -0
- package/dist/web/dist/assets/regexp-CDVJQ6XC.js +1 -0
- package/dist/web/dist/assets/rel-C3B-1QV4.js +1 -0
- package/dist/web/dist/assets/riscv-BM1_JUlF.js +1 -0
- package/dist/web/dist/assets/ron-D8l8udqQ.js +1 -0
- package/dist/web/dist/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
- package/dist/web/dist/assets/rose-pine-moon-D4_iv3hh.js +1 -0
- package/dist/web/dist/assets/rose-pine-qdsjHGoJ.js +1 -0
- package/dist/web/dist/assets/rosmsg-BJDFO7_C.js +1 -0
- package/dist/web/dist/assets/rst-BrH8l1NY.js +1 -0
- package/dist/web/dist/assets/ruby-Dw2BHqvy.js +1 -0
- package/dist/web/dist/assets/rust-B1yitclQ.js +1 -0
- package/dist/web/dist/assets/sas-cz2c8ADy.js +1 -0
- package/dist/web/dist/assets/sass-Cj5Yp3dK.js +1 -0
- package/dist/web/dist/assets/scala-C151Ov-r.js +1 -0
- package/dist/web/dist/assets/scheme-C98Dy4si.js +1 -0
- package/dist/web/dist/assets/scss-OYdSNvt2.js +1 -0
- package/dist/web/dist/assets/sdbl-DVxCFoDh.js +1 -0
- package/dist/web/dist/assets/shaderlab-Dg9Lc6iA.js +1 -0
- package/dist/web/dist/assets/shellscript-Yzrsuije.js +1 -0
- package/dist/web/dist/assets/shellsession-BADoaaVG.js +1 -0
- package/dist/web/dist/assets/slack-dark-BthQWCQV.js +1 -0
- package/dist/web/dist/assets/slack-ochin-DqwNpetd.js +1 -0
- package/dist/web/dist/assets/smalltalk-BERRCDM3.js +1 -0
- package/dist/web/dist/assets/snazzy-light-Bw305WKR.js +1 -0
- package/dist/web/dist/assets/solarized-dark-DXbdFlpD.js +1 -0
- package/dist/web/dist/assets/solarized-light-L9t79GZl.js +1 -0
- package/dist/web/dist/assets/solidity-rGO070M0.js +1 -0
- package/dist/web/dist/assets/soy-Brmx7dQM.js +1 -0
- package/dist/web/dist/assets/sparql-rVzFXLq3.js +1 -0
- package/dist/web/dist/assets/splunk-BtCnVYZw.js +1 -0
- package/dist/web/dist/assets/sql-BLtJtn59.js +1 -0
- package/dist/web/dist/assets/ssh-config-_ykCGR6B.js +1 -0
- package/dist/web/dist/assets/stata-BH5u7GGu.js +1 -0
- package/dist/web/dist/assets/stylus-BEDo0Tqx.js +1 -0
- package/dist/web/dist/assets/surrealql-Bq5Q-fJD.js +1 -0
- package/dist/web/dist/assets/svelte-C_ipcX3V.js +1 -0
- package/dist/web/dist/assets/swift-D82vCrfD.js +1 -0
- package/dist/web/dist/assets/synthwave-84-CbfX1IO0.js +1 -0
- package/dist/web/dist/assets/system-verilog-CnnmHF94.js +1 -0
- package/dist/web/dist/assets/systemd-4A_iFExJ.js +1 -0
- package/dist/web/dist/assets/talonscript-CkByrt1z.js +1 -0
- package/dist/web/dist/assets/tasl-QIJgUcNo.js +1 -0
- package/dist/web/dist/assets/tcl-dwOrl1Do.js +1 -0
- package/dist/web/dist/assets/templ-P3uqSqPl.js +1 -0
- package/dist/web/dist/assets/terraform-BETggiCN.js +1 -0
- package/dist/web/dist/assets/tex-idrVyKtj.js +1 -0
- package/dist/web/dist/assets/tokyo-night-hegEt444.js +1 -0
- package/dist/web/dist/assets/toml-vGWfd6FD.js +1 -0
- package/dist/web/dist/assets/ts-tags-zn1MmPIZ.js +1 -0
- package/dist/web/dist/assets/tsv-B_m7g4N7.js +1 -0
- package/dist/web/dist/assets/tsx-COt5Ahok.js +1 -0
- package/dist/web/dist/assets/turtle-BsS91CYL.js +1 -0
- package/dist/web/dist/assets/twig-DNn4PbVi.js +1 -0
- package/dist/web/dist/assets/typescript-BPQ3VLAy.js +1 -0
- package/dist/web/dist/assets/typespec-BGHnOYBU.js +1 -0
- package/dist/web/dist/assets/typst-DHCkPAjA.js +1 -0
- package/dist/web/dist/assets/v-BcVCzyr7.js +1 -0
- package/dist/web/dist/assets/vala-CsfeWuGM.js +1 -0
- package/dist/web/dist/assets/vb-D17OF-Vu.js +1 -0
- package/dist/web/dist/assets/vendor-charts-CfOL2F-E.js +6 -0
- package/dist/web/dist/assets/vendor-react-B0mWfPOm.js +60 -0
- package/dist/web/dist/assets/vendor-viem-wp7lz4Hc.js +22 -0
- package/dist/web/dist/assets/verilog-BQ8w6xss.js +1 -0
- package/dist/web/dist/assets/vesper-DU1UobuO.js +1 -0
- package/dist/web/dist/assets/vhdl-CeAyd5Ju.js +1 -0
- package/dist/web/dist/assets/viml-CJc9bBzg.js +1 -0
- package/dist/web/dist/assets/vitesse-black-Bkuqu6BP.js +1 -0
- package/dist/web/dist/assets/vitesse-dark-D0r3Knsf.js +1 -0
- package/dist/web/dist/assets/vitesse-light-CVO1_9PV.js +1 -0
- package/dist/web/dist/assets/vue-DN_0RTcg.js +1 -0
- package/dist/web/dist/assets/vue-html-AaS7Mt5G.js +1 -0
- package/dist/web/dist/assets/vue-vine-CQOfvN7w.js +1 -0
- package/dist/web/dist/assets/vyper-CDx5xZoG.js +1 -0
- package/dist/web/dist/assets/wasm-CG6Dc4jp.js +1 -0
- package/dist/web/dist/assets/wasm-MzD3tlZU.js +1 -0
- package/dist/web/dist/assets/welcome-illustration-B8_SJ7In.svg +319 -0
- package/dist/web/dist/assets/wenyan-BV7otONQ.js +1 -0
- package/dist/web/dist/assets/wgsl-Dx-B1_4e.js +1 -0
- package/dist/web/dist/assets/wikitext-BhOHFoWU.js +1 -0
- package/dist/web/dist/assets/wit-5i3qLPDT.js +1 -0
- package/dist/web/dist/assets/wolfram-lXgVvXCa.js +1 -0
- package/dist/web/dist/assets/xml-sdJ4AIDG.js +1 -0
- package/dist/web/dist/assets/xsl-CtQFsRM5.js +1 -0
- package/dist/web/dist/assets/yaml-Buea-lGh.js +1 -0
- package/dist/web/dist/assets/zenscript-DVFEvuxE.js +1 -0
- package/dist/web/dist/assets/zig-VOosw3JB.js +1 -0
- package/dist/web/dist/favicon.svg +4 -0
- package/dist/web/dist/index.html +18 -0
- 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
|