{"data":{"skill":{"slug":"longbridge-longbridge-technical","name":"longbridge-technical","icon":"📦","repo":"https://github.com/longbridge/skills/tree/main/skills/longbridge-technical","status":"approved","author":"longbridge","authorVersion":"1.0.0","skillstoreRevision":2},"audit":{"id":"7bfa0b24-2574-4063-a3e2-ef21851fe3d6","skill_id":"5b873e12-a94a-4510-acf6-bdfe96bf997c","version":5,"content_hash":"v3:ebdfe608f5de2b66ff37ab4af12af8ac4f5e8006:f500e315d333a3d1ab8c19dde28324da08d21756964936b1c829daccbbcd19c6:4a56b09e85dafc222fbd2d59e4030f3b21174919a4f567123af0f7160b043793:736b696c6c732f6c6f6e676272696467652f6c6f6e676272696467652d746563686e6963616c:bc9ce16a69ef6544306f43240b24a10a","risk_level":"medium","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"Most static matches are Markdown syntax, prose, calculations, or safe device redirection. Confirmed risks include predictable shared temporary files, shell commands with a user-derived symbol, unpinned package installation, and automatic access to sensitive brokerage data.","remediation":[{"issue":"The Elliott Wave workflow uses a predictable file under /tmp.","severity":"medium","suggestion":"Create a private temporary file with mktemp, restrict permissions, pass its path explicitly, and delete it after analysis."},{"issue":"A user-derived market symbol is placed in commands that agents are told to run.","severity":"medium","suggestion":"Validate symbols with a strict market-specific pattern and invoke the CLI with an argument array instead of shell interpolation."},{"issue":"The skill recommends installing unpinned third-party Python packages.","severity":"medium","suggestion":"Pin reviewed package versions, publish expected hashes, and require explicit approval before any installation."},{"issue":"The Turtle workflow can read net assets, positions, and order history before an explicit consent step.","severity":"medium","suggestion":"Ask for separate consent before each sensitive account query and display the active account type before reading data."}],"risk_factor_evidence":[{"factor":"filesystem","evidence":[{"file":"references/elliott-wave.md","line_end":31,"line_start":31},{"file":"references/elliott-wave.md","line_end":55,"line_start":55},{"file":"references/elliott-wave.md","line_end":280,"line_start":280},{"file":"references/turtle-signal.md","line_end":27,"line_start":27},{"file":"references/turtle-signal.md","line_end":31,"line_start":31}]},{"factor":"env_access","evidence":[{"file":"references/elliott-wave.md","line_end":66,"line_start":66},{"file":"references/elliott-wave.md","line_end":78,"line_start":78},{"file":"references/elliott-wave.md","line_end":166,"line_start":166},{"file":"references/elliott-wave.md","line_end":245,"line_start":245}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":36,"line_start":34},{"file":"SKILL.md","line_end":38,"line_start":36},{"file":"SKILL.md","line_end":40,"line_start":38},{"file":"SKILL.md","line_end":40,"line_start":40},{"file":"SKILL.md","line_end":79,"line_start":42},{"file":"SKILL.md","line_end":82,"line_start":79},{"file":"SKILL.md","line_end":89,"line_start":82},{"file":"SKILL.md","line_end":95,"line_start":89},{"file":"SKILL.md","line_end":96,"line_start":95},{"file":"SKILL.md","line_end":96,"line_start":96},{"file":"SKILL.md","line_end":97,"line_start":97},{"file":"SKILL.md","line_end":108,"line_start":98},{"file":"SKILL.md","line_end":109,"line_start":108},{"file":"SKILL.md","line_end":110,"line_start":109},{"file":"SKILL.md","line_end":114,"line_start":110},{"file":"SKILL.md","line_end":121,"line_start":114}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"Temp directory access","locations":[{"file":"references/elliott-wave.md","line_end":31,"line_start":31}],"confidence":0.93,"description":"- Always redirect CLI output to a temp file (e.g. `/tmp/kline_day.json`) — the CLI may","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The workflow directs agents to store market data in a predictable shared /tmp path. Another local process could replace or read that file through a collision or symbolic link."},{"title":"Temp directory access","locations":[{"file":"references/elliott-wave.md","line_end":55,"line_start":55}],"confidence":0.88,"description":"python3 scripts/signal_engine.py --kline /tmp/kline_day.json --symbol SYMBOL","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The command reads the predictable /tmp/kline_day.json path created earlier. Shared temporary paths can expose the analysis to tampered input."},{"title":"Temp directory access","locations":[{"file":"references/elliott-wave.md","line_end":280,"line_start":280}],"confidence":0.88,"description":"python3 scripts/signal_engine.py --kline /tmp/kline_day.json --symbol AAPL.US","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The usage example again consumes a fixed file in the shared temporary directory. It does not establish private creation, ownership checks, or cleanup."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":36,"line_start":34}],"confidence":0.78,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The Bash example runs the Longbridge CLI with a symbol derived from user input. Without strict validation and argument-safe invocation, crafted symbol text could alter the shell command."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":40,"line_start":40}],"confidence":0.83,"description":"- **If `longbridge` CLI is installed** (via `longbridge-market-data` or standalone): run the command","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The instruction tells the agent to run the earlier shell command directly. Its symbol placeholder originates from user input and the root instructions provide no strict validation rule."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":82,"line_start":79}],"confidence":0.9,"description":"Auto-detect fractal (分型), bi (笔), zhongshu (中枢), buy/sell signals (1/2/3 buy). Requires `pip install","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The skill recommends installing the unpinned czsc package from PyPI. Package installation executes third-party setup code and creates a supply-chain exposure."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":89,"line_start":82}],"confidence":0.9,"description":"BOS (Break of Structure), ChoCH, FVG (Fair Value Gap), Order Block detection. Requires `pip install ","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The skill recommends an unpinned smartmoneyconcepts installation. Installing an unresolved package version can execute unreviewed third-party code."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":96,"line_start":96}],"confidence":0.94,"description":"| `ModuleNotFoundError: czsc` | Run `pip install czsc` before using Chan Theory |","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The error guidance explicitly tells users or agents to run an unpinned pip install for czsc. That operation executes code from a mutable third-party package."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":97,"line_start":97}],"confidence":0.94,"description":"| `ModuleNotFoundError: smartmoneyconcepts` | Run `pip install smartmoneyconcepts` before using SMC ","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The error guidance explicitly recommends an unpinned smartmoneyconcepts installation. This introduces third-party package execution without version or hash verification."},{"title":"Undisclosed Automatic Brokerage Data Access","locations":[{"file":"SKILL.md","line_end":14,"line_start":10},{"file":"references/turtle-signal.md","line_end":106,"line_start":101},{"file":"references/turtle-signal.md","line_end":252,"line_start":250},{"file":"references/turtle-signal.md","line_end":289,"line_start":276}],"confidence":0.96,"description":"The metadata claims no login is required, but the Turtle workflow automatically reads net assets, positions, and order history. A prohibition on unauthorized access exists, yet the workflow contains no explicit consent gate.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The cited workflow explicitly prioritizes automatic account queries while the root metadata says no login is required. The only consent language is a prohibition, not an implemented confirmation step."}],"low_findings":[],"dangerous_patterns":[],"files_scanned":10,"total_lines":1735,"audit_model":"codex","audited_at":"2026-07-23T18:24:16.06+00:00","created_at":"2026-07-25T21:22:03.447321+00:00","static_findings":[{"id":"filesystem:references/elliott-wave.md:31:temp-directory-access","file":"references/elliott-wave.md","pattern":"Temp directory access","snippet":"- Always redirect CLI output to a temp file (e.g. `/tmp/kline_day.json`) — the CLI may","category":"filesystem","line_end":31,"severity":"medium","line_start":31},{"id":"filesystem:references/elliott-wave.md:55:temp-directory-access","file":"references/elliott-wave.md","pattern":"Temp directory access","snippet":"python3 scripts/signal_engine.py --kline /tmp/kline_day.json --symbol SYMBOL","category":"filesystem","line_end":55,"severity":"medium","line_start":55},{"id":"filesystem:references/elliott-wave.md:280:temp-directory-access","file":"references/elliott-wave.md","pattern":"Temp directory access","snippet":"python3 scripts/signal_engine.py --kline /tmp/kline_day.json --symbol AAPL.US","category":"filesystem","line_end":280,"severity":"medium","line_start":280},{"id":"env_access:references/elliott-wave.md:66:configuration-library","file":"references/elliott-wave.md","pattern":"Configuration library","snippet":"**If `agreed` is false → output \"结构待确认 / Structure Unconfirmed\", do not force a stage label.**","category":"env_access","line_end":66,"severity":"low","line_start":66},{"id":"env_access:references/elliott-wave.md:78:configuration-library","file":"references/elliott-wave.md","pattern":"Configuration library","snippet":"| `unconfirmed`    | 结构待确认      | 結構待確認      | Structure Unconfirmed |","category":"env_access","line_end":78,"severity":"low","line_start":78},{"id":"env_access:references/elliott-wave.md:166:configuration-library","file":"references/elliott-wave.md","pattern":"Configuration library","snippet":"- Para 3 (if unconfirmed): Explain what would resolve the ambiguity.","category":"env_access","line_end":166,"severity":"low","line_start":166},{"id":"env_access:references/elliott-wave.md:245:configuration-library","file":"references/elliott-wave.md","pattern":"Configuration library","snippet":"- **ASCII wave diagram**: include when `agreed: true`; omit when `unconfirmed`.","category":"env_access","line_end":245,"severity":"low","line_start":245},{"id":"blocker:references/elliott-wave.md:23:system-reconnaissance","file":"references/elliott-wave.md","pattern":"System reconnaissance","snippet":"Not all ticker-like strings are valid on Longbridge — **index codes (e.g. SPX, HSI) are","category":"blocker","line_end":23,"severity":"low","line_start":23},{"id":"blocker:references/elliott-wave.md:24:system-reconnaissance","file":"references/elliott-wave.md","pattern":"System reconnaissance","snippet":"not tradable securities and will return `invalid symbol`.** When you need broad-market","category":"blocker","line_end":24,"severity":"low","line_start":24},{"id":"blocker:references/elliott-wave.md:104:system-reconnaissance","file":"references/elliott-wave.md","pattern":"System reconnaissance","snippet":"already. **Index codes are not valid symbols on Longbridge** — use tracking ETFs instead","category":"blocker","line_end":104,"severity":"low","line_start":104},{"id":"blocker:references/elliott-wave.md:163:system-reconnaissance","file":"references/elliott-wave.md","pattern":"System reconnaissance","snippet":"matches the identified stage. Avoid jargon — translate wave numbers to meaning.","category":"blocker","line_end":163,"severity":"low","line_start":163},{"id":"blocker:references/technical.md:63:system-reconnaissance","file":"references/technical.md","pattern":"System reconnaissance","snippet":"mid = df[\"c\"].rolling(20).mean(); std = df[\"c\"].rolling(20).std()","category":"blocker","line_end":63,"severity":"low","line_start":63},{"id":"blocker:references/technical.md:64:system-reconnaissance","file":"references/technical.md","pattern":"System reconnaissance","snippet":"upper_bb = mid + 2*std; lower_bb = mid - 2*std","category":"blocker","line_end":64,"severity":"low","line_start":64},{"id":"filesystem:references/turtle-signal.md:27:standard-device-file-access","file":"references/turtle-signal.md","pattern":"Standard device file access","snippet":"**⚠️ CRITICAL: Always use `2>/dev/null` not `2>&1`**","category":"filesystem","line_end":27,"severity":"low","line_start":27},{"id":"filesystem:references/turtle-signal.md:31:standard-device-file-access","file":"references/turtle-signal.md","pattern":"Standard device file access","snippet":"longbridge kline SYMBOL --period day --count 60 --format json 2>/dev/null | python3 -c \"...\"","category":"filesystem","line_end":31,"severity":"low","line_start":31},{"id":"blocker:references/turtle-signal.md:8:system-reconnaissance","file":"references/turtle-signal.md","pattern":"System reconnaissance","snippet":"# ✅ CORRECT — handle empty/invalid output before parsing","category":"blocker","line_end":8,"severity":"low","line_start":8},{"id":"blocker:references/turtle-signal.md:597:system-reconnaissance","file":"references/turtle-signal.md","pattern":"System reconnaissance","snippet":"- 模拟账户与真实账户的切换在 Longbridge 平台侧完成(通过不同 client_id 登录),CLI 层面使用当前登录的账户","category":"blocker","line_end":597,"severity":"low","line_start":597},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":36,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":38,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `longbridge kline --help` for period and date-range options.","category":"external_commands","line_end":40,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **If `longbridge` CLI is installed** (via `longbridge-market-data` or standalone): run the command","category":"external_commands","line_end":40,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **If neither is available**: tell the user to install `longbridge-terminal` first, then re-run.","category":"external_commands","line_end":79,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Auto-detect fractal (分型), bi (笔), zhongshu (中枢), buy/sell signals (1/2/3 buy). Requires `pip install","category":"external_commands","line_end":82,"severity":"medium","line_start":79},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"BOS (Break of Structure), ChoCH, FVG (Fair Value Gap), Order Block detection. Requires `pip install ","category":"external_commands","line_end":89,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"All frameworks are analytical — no CLI login required. Data fetching via `longbridge kline` is publi","category":"external_commands","line_end":95,"severity":"medium","line_start":89},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `command not found: longbridge` | Install longbridge-terminal first; use to fetch kline data |","category":"external_commands","line_end":96,"severity":"medium","line_start":95},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `ModuleNotFoundError: czsc` | Run `pip install czsc` before using Chan Theory |","category":"external_commands","line_end":96,"severity":"medium","line_start":96},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `ModuleNotFoundError: smartmoneyconcepts` | Run `pip install smartmoneyconcepts` before using SMC ","category":"external_commands","line_end":97,"severity":"medium","line_start":97},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Insufficient history | Request more periods with `--count` or wider date range |","category":"external_commands","line_end":108,"severity":"medium","line_start":98},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Raw K-line / quote data | `longbridge-market-data` |","category":"external_commands","line_end":109,"severity":"medium","line_start":108},{"id":"external_commands:SKILL.md:109:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Options Greeks / IV | `longbridge-derivatives` |","category":"external_commands","line_end":110,"severity":"medium","line_start":109},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Quantitative strategies | `longbridge-quant` |","category":"external_commands","line_end":114,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":121,"severity":"medium","line_start":114},{"id":"obfuscation:references/turtle-signal.md:1:heuristic-high-file-entropy-6-26-bits-possible-b","file":"references/turtle-signal.md","pattern":"[HEURISTIC] High file entropy (6.26 bits) - possible binary/encrypted content","snippet":"File: references/turtle-signal.md","category":"obfuscation","line_end":1,"severity":"high","line_start":1}],"finding_verdicts":[{"id":"filesystem:references/elliott-wave.md:31:temp-directory-access","reason":"The workflow directs agents to store market data in a predictable shared /tmp path. Another local process could replace or read that file through a collision or symbolic link.","verdict":"confirmed","severity":"medium","confidence":0.93},{"id":"filesystem:references/elliott-wave.md:55:temp-directory-access","reason":"The command reads the predictable /tmp/kline_day.json path created earlier. Shared temporary paths can expose the analysis to tampered input.","verdict":"confirmed","severity":"medium","confidence":0.88},{"id":"filesystem:references/elliott-wave.md:280:temp-directory-access","reason":"The usage example again consumes a fixed file in the shared temporary directory. It does not establish private creation, ownership checks, or cleanup.","verdict":"confirmed","severity":"medium","confidence":0.88},{"id":"env_access:references/elliott-wave.md:66:configuration-library","reason":"This line checks an analysis result named agreed and prints an unconfirmed label. It does not read environment variables or a configuration library.","verdict":"false_positive","confidence":0.99},{"id":"env_access:references/elliott-wave.md:78:configuration-library","reason":"The snippet is a translation table row for an unconfirmed wave state. No environment or configuration access occurs.","verdict":"false_positive","confidence":0.99},{"id":"env_access:references/elliott-wave.md:166:configuration-library","reason":"This is prose describing output when a wave count is unconfirmed. It contains no programmatic environment access.","verdict":"false_positive","confidence":0.99},{"id":"env_access:references/elliott-wave.md:245:configuration-library","reason":"The line conditions an ASCII diagram on an unconfirmed result. It does not use a configuration API or environment value.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/elliott-wave.md:23:system-reconnaissance","reason":"The line documents unsupported market index symbols. It does not inspect the host system.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/elliott-wave.md:24:system-reconnaissance","reason":"The invalid symbol text describes an expected Longbridge API error. It is not a reconnaissance command or host probe.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/elliott-wave.md:104:system-reconnaissance","reason":"This is market symbol guidance that recommends tracking ETFs. It does not enumerate system resources or capabilities.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/elliott-wave.md:163:system-reconnaissance","reason":"The phrase identified stage refers to an Elliott Wave label. It has no system reconnaissance behavior.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/technical.md:63:system-reconnaissance","reason":"This line calculates a rolling mean and standard deviation from a DataFrame. It does not inspect the operating system.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/technical.md:64:system-reconnaissance","reason":"This line derives Bollinger Band values from previously computed statistics. No host or network reconnaissance occurs.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/turtle-signal.md:27:standard-device-file-access","reason":"The line recommends redirecting stderr to /dev/null so warnings do not corrupt piped JSON. It does not read sensitive device data.","verdict":"false_positive","confidence":0.96},{"id":"filesystem:references/turtle-signal.md:31:standard-device-file-access","reason":"The example discards stderr through the standard null device while parsing public market data. This is conventional shell redirection, not arbitrary device access.","verdict":"false_positive","confidence":0.95},{"id":"blocker:references/turtle-signal.md:8:system-reconnaissance","reason":"The snippet is a comment introducing defensive JSON parsing. It does not perform reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/turtle-signal.md:597:system-reconnaissance","reason":"The line explains that the CLI uses the currently authenticated brokerage account. It does not enumerate system information, although the account-context issue is addressed semantically.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The Bash example runs the Longbridge CLI with a symbol derived from user input. Without strict validation and argument-safe invocation, crafted symbol text could alter the shell command.","verdict":"confirmed","severity":"medium","confidence":0.78},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"This line only closes a Markdown code fence. It does not execute Ruby, shell code, or any external command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"The line names a fixed Longbridge help command in inline Markdown. The command only displays documented options and contains no user-controlled argument.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"The instruction tells the agent to run the earlier shell command directly. Its symbol placeholder originates from user input and the root instructions provide no strict validation rule.","verdict":"confirmed","severity":"medium","confidence":0.83},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"This line tells the user that a terminal package is required when no data tool exists. It contains no executable installation command.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","reason":"The skill recommends installing the unpinned czsc package from PyPI. Package installation executes third-party setup code and creates a supply-chain exposure.","verdict":"confirmed","severity":"medium","confidence":0.9},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"The skill recommends an unpinned smartmoneyconcepts installation. Installing an unresolved package version can execute unreviewed third-party code.","verdict":"confirmed","severity":"medium","confidence":0.9},{"id":"external_commands:SKILL.md:89:ruby-shell-backtick-execution","reason":"This is an authentication claim and a reference to the kline subcommand. It does not itself instruct shell execution.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:95:ruby-shell-backtick-execution","reason":"The table row shows an expected command-not-found error and names the required product. It does not provide a shell command to execute.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","reason":"The error guidance explicitly tells users or agents to run an unpinned pip install for czsc. That operation executes code from a mutable third-party package.","verdict":"confirmed","severity":"medium","confidence":0.94},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","reason":"The error guidance explicitly recommends an unpinned smartmoneyconcepts installation. This introduces third-party package execution without version or hash verification.","verdict":"confirmed","severity":"medium","confidence":0.94},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","reason":"The line advises requesting more historical periods and only names a count option. It contains no executable command.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","reason":"The inline text is the identifier of a related marketplace skill. It is not a shell command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:109:ruby-shell-backtick-execution","reason":"The inline text names a related derivatives skill. No command execution is requested.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"The inline text names a related quantitative strategy skill. It is not executable code.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","reason":"This line opens a Markdown code fence for a file tree. It does not invoke Ruby or a shell.","verdict":"false_positive","confidence":0.99},{"id":"obfuscation:references/turtle-signal.md:1:heuristic-high-file-entropy-6-26-bits-possible-b","reason":"The file is readable UTF-8 Markdown containing Chinese and English prose, tables, formulas, and examples. Multilingual text raises entropy without indicating encryption or binary content.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[{"title":"Undisclosed Automatic Brokerage Data Access","severity":"medium","locations":[{"file":"SKILL.md","line_end":14,"line_start":10},{"file":"references/turtle-signal.md","line_end":106,"line_start":101},{"file":"references/turtle-signal.md","line_end":252,"line_start":250},{"file":"references/turtle-signal.md","line_end":289,"line_start":276}],"confidence":0.96,"description":"The metadata claims no login is required, but the Turtle workflow automatically reads net assets, positions, and order history. A prohibition on unauthorized access exists, yet the workflow contains no explicit consent gate.","confidence_reasoning":"The cited workflow explicitly prioritizes automatic account queries while the root metadata says no login is required. The only consent language is a prohibition, not an implemented confirmation step."}],"subject_marketplace_commit_sha":"ebdfe608f5de2b66ff37ab4af12af8ac4f5e8006","subject_content_hash":"f500e315d333a3d1ab8c19dde28324da08d21756964936b1c829daccbbcd19c6","subject_tree_hash":"4a56b09e85dafc222fbd2d59e4030f3b21174919a4f567123af0f7160b043793","subject_plugin_path":"skills/longbridge/longbridge-technical","audit_payload_hash":"bc9ce16a69ef6544306f43240b24a10a","confirmed_risk_level":"medium","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"ebdfe608f5de2b66ff37ab4af12af8ac4f5e8006","contentHash":"f500e315d333a3d1ab8c19dde28324da08d21756964936b1c829daccbbcd19c6","treeHash":"4a56b09e85dafc222fbd2d59e4030f3b21174919a4f567123af0f7160b043793","pluginPath":"skills/longbridge/longbridge-technical","auditPayloadHash":"bc9ce16a69ef6544306f43240b24a10a"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/longbridge-longbridge-technical/audits/5/attestation","status":"superseded"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"medium","confirmedFindingCount":1,"capabilityReviewCount":9,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"superseded","verificationState":"not_verified"},"isLatest":false}}