{"data":{"skill":{"slug":"internet-court-altllm-portal-billing","name":"altllm-portal-billing","icon":"📦","repo":"https://github.com/internet-court/internet-court-skill/tree/main/vendored/altlayer/altllm-portal-billing","status":"approved","author":"internet-court","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"59d5306c-414f-4503-af7f-b39c7b6759b0","skill_id":"05fd3cde-8598-471c-bb46-c1d2b9815ee0","version":1,"content_hash":"b2e9eb191e57ce2ded24365449355dd9","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"The hardcoded URL findings are benign documentation for the intended AltLLM Portal API endpoint. The external command findings are false positives from Markdown inline code, but the sibling `../_shared` references are confirmed boundary-crossing filesystem risks. No prompt injection attempt or hidden exfiltration intent was found in the reviewed files.","remediation":[{"issue":"The skill references shared setup files outside its own directory.","severity":"high","suggestion":"Move the required setup guidance into this skill or package it under the skill directory with relative links that do not use `../`."},{"issue":"Network side effects are implied by command examples.","severity":"low","suggestion":"State clearly that billing commands contact platform-api.altllm.ai and use the saved Portal session token."}],"risk_factor_evidence":[{"factor":"network","evidence":[{"file":"references/cli-reference.md","line_end":9,"line_start":9},{"file":"references/cli-reference.md","line_end":20,"line_start":20},{"file":"references/cli-reference.md","line_end":28,"line_start":28},{"file":"references/cli-reference.md","line_end":49,"line_start":49},{"file":"references/cli-reference.md","line_end":58,"line_start":58},{"file":"references/cli-reference.md","line_end":65,"line_start":65},{"file":"references/cli-reference.md","line_end":72,"line_start":72}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":9,"line_start":9},{"file":"SKILL.md","line_end":13,"line_start":13},{"file":"SKILL.md","line_end":14,"line_start":14},{"file":"SKILL.md","line_end":15,"line_start":15},{"file":"SKILL.md","line_end":21,"line_start":21},{"file":"SKILL.md","line_end":22,"line_start":22},{"file":"SKILL.md","line_end":23,"line_start":23},{"file":"SKILL.md","line_end":24,"line_start":24},{"file":"SKILL.md","line_end":25,"line_start":25},{"file":"SKILL.md","line_end":26,"line_start":26},{"file":"SKILL.md","line_end":27,"line_start":27},{"file":"SKILL.md","line_end":33,"line_start":33},{"file":"SKILL.md","line_end":34,"line_start":34},{"file":"SKILL.md","line_end":35,"line_start":35},{"file":"SKILL.md","line_end":36,"line_start":36},{"file":"SKILL.md","line_end":37,"line_start":37},{"file":"SKILL.md","line_end":38,"line_start":38}]},{"factor":"filesystem","evidence":[{"file":"SKILL.md","line_end":14,"line_start":14},{"file":"SKILL.md","line_end":15,"line_start":15}]}],"critical_findings":[],"high_findings":[{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":14,"line_start":14}],"confidence":0.9,"description":"> - `../_shared/preflight.md`","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The skill instructs the agent to read a sibling path outside the skill directory. That can import unscanned instructions into the skill context."},{"title":"Path traversal sequence","locations":[{"file":"SKILL.md","line_end":15,"line_start":15}],"confidence":0.9,"description":"> - `../_shared/session-and-target.md`","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The skill instructs the agent to read another sibling path outside the skill directory. This crosses the marketplace package boundary and should fail closed."}],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":2,"total_lines":125,"audit_model":"codex","audited_at":"2026-07-09T23:49:36.231+00:00","created_at":"2026-07-10T07:43:46.312514+00:00","static_findings":[{"id":"network:references/cli-reference.md:9:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai","category":"network","line_end":9,"severity":"low","line_start":9},{"id":"network:references/cli-reference.md:20:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai \\","category":"network","line_end":20,"severity":"low","line_start":20},{"id":"network:references/cli-reference.md:28:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai \\","category":"network","line_end":28,"severity":"low","line_start":28},{"id":"network:references/cli-reference.md:49:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai","category":"network","line_end":49,"severity":"low","line_start":49},{"id":"network:references/cli-reference.md:58:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai","category":"network","line_end":58,"severity":"low","line_start":58},{"id":"network:references/cli-reference.md:65:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai","category":"network","line_end":65,"severity":"low","line_start":65},{"id":"network:references/cli-reference.md:72:hardcoded-url","file":"references/cli-reference.md","pattern":"Hardcoded URL","snippet":"--base-url https://platform-api.altllm.ai","category":"network","line_end":72,"severity":"low","line_start":72},{"id":"external_commands:SKILL.md:9:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Balance, promo, transaction history, and usage analytics for the local `altllm` CLI.","category":"external_commands","line_end":9,"severity":"medium","line_start":9},{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> Before the first `altllm` command in a fresh checkout, read and follow:","category":"external_commands","line_end":13,"severity":"medium","line_start":13},{"id":"external_commands:SKILL.md:14:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> - `../_shared/preflight.md`","category":"external_commands","line_end":14,"severity":"medium","line_start":14},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> - `../_shared/session-and-target.md`","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `credit` | Current Portal balance, expiry, and allowed models |","category":"external_commands","line_end":21,"severity":"medium","line_start":21},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `redeem-promo` | Redeem a promo code |","category":"external_commands","line_end":22,"severity":"medium","line_start":22},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `transactions` | Billing transaction history with pagination and type filters |","category":"external_commands","line_end":23,"severity":"medium","line_start":23},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `usage-summary` | Current calendar-month summary |","category":"external_commands","line_end":24,"severity":"medium","line_start":24},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `usage-timeline` | Daily usage history |","category":"external_commands","line_end":25,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `usage-by-model` | Usage grouped by model |","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `usage-by-key` | Usage grouped by API key |","category":"external_commands","line_end":27,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `credit` is the current CLI inspection path for plan/model-access metadata returned by Portal, inc","category":"external_commands","line_end":33,"severity":"medium","line_start":33},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `transactions` supports `--page`, `--limit`, and `--type`.","category":"external_commands","line_end":34,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `usage-summary` currently reflects the current calendar month only.","category":"external_commands","line_end":35,"severity":"medium","line_start":35},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `usage-timeline`, `usage-by-model`, and `usage-by-key` default to the current UTC month when no da","category":"external_commands","line_end":36,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Usage commands support either `--month` or a complete explicit date range.","category":"external_commands","line_end":37,"severity":"medium","line_start":37},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `balance` is an alias for `credit`.","category":"external_commands","line_end":38,"severity":"medium","line_start":38},{"id":"filesystem:SKILL.md:14:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"> - `../_shared/preflight.md`","category":"filesystem","line_end":14,"severity":"high","line_start":14},{"id":"filesystem:SKILL.md:15:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"> - `../_shared/session-and-target.md`","category":"filesystem","line_end":15,"severity":"high","line_start":15}],"finding_verdicts":[{"id":"network:references/cli-reference.md:9:hardcoded-url","reason":"The URL is the documented AltLLM Portal API endpoint for the visible balance command. It is not a hidden or unrelated exfiltration host.","verdict":"false_positive","confidence":0.88},{"id":"network:references/cli-reference.md:20:hardcoded-url","reason":"The URL appears in a user-visible promo redemption example for the expected Portal API. The file does not show unauthorized data transfer to another service.","verdict":"false_positive","confidence":0.88},{"id":"network:references/cli-reference.md:28:hardcoded-url","reason":"The URL is part of the documented transactions command for the named AltLLM Portal service. This is expected network configuration, not suspicious indirection.","verdict":"false_positive","confidence":0.88},{"id":"network:references/cli-reference.md:49:hardcoded-url","reason":"The URL is shown in a usage-summary command example for the intended Portal API. There is no evidence of covert network behavior.","verdict":"false_positive","confidence":0.88},{"id":"network:references/cli-reference.md:58:hardcoded-url","reason":"The URL is used in a documented usage-timeline command against the AltLLM Portal API. The context is normal CLI documentation.","verdict":"false_positive","confidence":0.88},{"id":"network:references/cli-reference.md:65:hardcoded-url","reason":"The URL is part of the usage-by-model example for the stated service. No credential exfiltration or unrelated domain is present.","verdict":"false_positive","confidence":0.88},{"id":"network:references/cli-reference.md:72:hardcoded-url","reason":"The URL is part of the usage-by-key example for the expected Portal API. The network destination is visible and aligned with the skill purpose.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:9:ruby-shell-backtick-execution","reason":"This line uses Markdown inline backticks around the CLI name. It is documentation text, not Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","reason":"This line uses Markdown inline backticks to name the CLI before setup instructions. No executable code or command substitution appears here.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:14:ruby-shell-backtick-execution","reason":"The backticks format a relative Markdown file path. The line has a separate filesystem concern, but it is not shell execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"The backticks format a relative Markdown file path. The content does not invoke Ruby, shell command substitution, or a script.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"This is a Markdown table entry naming a CLI subcommand. Inline code formatting does not execute a command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","reason":"This is a Markdown table entry naming a promo command. There is no shell execution primitive in the skill file.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","reason":"This is a Markdown table entry naming a transactions command. The backticks are presentational only.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"This is a Markdown table entry naming a usage-summary command. It does not execute or dynamically construct a command.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"This is a Markdown table entry naming a usage-timeline command. Inline code formatting is not command execution.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"This is a Markdown table entry naming a usage-by-model command. No executable script or shell substitution is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"This is a Markdown table entry naming a usage-by-key command. The finding is caused by Markdown syntax only.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"This line documents command names and returned fields using Markdown inline code. It contains no executable command substitution.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"This line documents transactions flags in Markdown inline code. The content is static documentation, not a shell execution path.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"This line documents the usage-summary command behavior with inline code formatting. It does not execute code.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"This line names several CLI commands using Markdown inline code. The file contains documentation only at this location.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"This line documents supported flags with Markdown inline code. No Ruby or shell backtick execution occurs.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"This line documents a command alias using Markdown inline code. It is not executable code.","verdict":"false_positive","confidence":0.97},{"id":"filesystem:SKILL.md:14:path-traversal-sequence","reason":"The skill instructs the agent to read a sibling path outside the skill directory. That can import unscanned instructions into the skill context.","verdict":"confirmed","severity":"high","confidence":0.9},{"id":"filesystem:SKILL.md:15:path-traversal-sequence","reason":"The skill instructs the agent to read another sibling path outside the skill directory. This crosses the marketplace package boundary and should fail closed.","verdict":"confirmed","severity":"high","confidence":0.9}],"semantic_findings":[],"subject_marketplace_commit_sha":null,"subject_content_hash":null,"subject_tree_hash":null,"subject_plugin_path":null,"audit_payload_hash":null,"confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":null,"contentHash":null,"treeHash":null,"pluginPath":null,"auditPayloadHash":null},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":2,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}