{"data":{"skill":{"slug":"quady3dai-quady3d","name":"quady3d","icon":"📦","repo":"https://github.com/quady3dai/quady3d-tools/tree/13888045474eec1a0f6c2fff4a6205da7c12c4b0/skills/quady3d","status":"approved","author":"quady3dai","authorVersion":"0.1.2","skillstoreRevision":1,"license":"MIT"},"licenseCorrection":null,"audit":{"id":"103710fb-efd9-46f5-b527-bf2023b6d32a","skill_id":"dbb62f05-2832-4332-8e95-3fcd236908bc","version":1,"content_hash":"v3:3ce41f287227e078e7c84692ff9e43da7f23c094:0f1f34251fb0f3829c8185bf0f1f7e4160bac5ee1e79db1b283d55291ff756f7:6f9c40c317102d435d8d83ce64b54c6aa8c238f570ca745c9395d70d82b9df7d:736b696c6c732f7175616479336461692f71756164793364:64ddd5d89c5514b25ad9cfe695bc2f9d","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 16 static findings are false positives: Markdown identifiers, secure credential configuration, product links, and scoped workspace checks explain the matches. No evidence found of malicious intent, credential exfiltration, shell execution, or prompt injection in the reviewed files. The external MCP implementation and hosted service were not audited.","remediation":[],"risk_factor_evidence":[{"factor":"env_access","evidence":[{"file":"references/connection.md","line_end":5,"line_start":5},{"file":"SKILL.md","line_end":31,"line_start":31}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":17,"line_start":17},{"file":"SKILL.md","line_end":19,"line_start":19},{"file":"SKILL.md","line_end":20,"line_start":20},{"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":27,"line_start":27},{"file":"SKILL.md","line_end":29,"line_start":29},{"file":"SKILL.md","line_end":31,"line_start":31},{"file":"SKILL.md","line_end":37,"line_start":37}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":6,"line_start":6},{"file":"SKILL.md","line_end":11,"line_start":11}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":6,"total_lines":141,"audit_model":"codex","audited_at":"2026-11-05T20:45:09.057+00:00","created_at":"2026-11-06T03:04:36.004374+00:00","static_findings":[{"id":"blocker:README.md:15:system-reconnaissance","file":"README.md","pattern":"System reconnaissance","snippet":"Only the documented standalone Codex workflow has been verified. Claude remains pending verification","category":"blocker","line_end":15,"severity":"low","line_start":15},{"id":"env_access:references/connection.md:5:generic-api-secret-keys","file":"references/connection.md","pattern":"Generic API/secret keys","snippet":"The server uses Node.js 22 or later. Configure `QUADY3D_API_KEY` in the host's environment or secure","category":"env_access","line_end":5,"severity":"high","line_start":5},{"id":"blocker:references/connection.md:22:system-reconnaissance","file":"references/connection.md","pattern":"System reconnaissance","snippet":"MCP alpha.3 adds `local_workspace` to the account result. It reports canonical allowed roots and whe","category":"blocker","line_end":22,"severity":"low","line_start":22},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Look for the `quady3d_` tools. If unavailable, explain the MCP dependency and use [connection guid","category":"external_commands","line_end":17,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Query `quady3d_list_models` for the relevant operation and `quady3d_get_account` for balance, limi","category":"external_commands","line_end":19,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Use that model's `parameter_schema` for custom settings: its defaults, enums, ranges, input limits","category":"external_commands","line_end":20,"severity":"medium","line_start":20},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Check the account result's `local_workspace.allowed_roots`, `ready_roots` and `ready_for_new_gener","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":"- After a key replacement, check `local_recovery.across_keys`. The same authenticated account and AP","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":"- For text, prepare a clear description of one object. For an image, use `quady3d_upload_file` with ","category":"external_commands","line_end":23,"severity":"medium","line_start":23},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Call `quady3d_quote` with operation, model, inputs and supported parameters. Quotes last five minute","category":"external_commands","line_end":27,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `quady3d_create_job` with that quote ID, the user's authorized `max_credits`, and a new stable `","category":"external_commands","line_end":29,"severity":"medium","line_start":29},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"If submission is unconfirmed, repeat the same action ID, quote ID and limit. Once a job ID is known,","category":"external_commands","line_end":31,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"When the original job succeeds, select an actual returned asset and call `quady3d_download_asset` wi","category":"external_commands","line_end":37,"severity":"medium","line_start":37},{"id":"network:SKILL.md:6:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"homepage: \"https://quady3d.com/integrations/agent-skill\"","category":"network","line_end":6,"severity":"low","line_start":6},{"id":"network:SKILL.md:11:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"Official setup and product information: [Quady3D Agent Skill](https://quady3d.com/integrations/agent","category":"network","line_end":11,"severity":"low","line_start":11},{"id":"env_access:SKILL.md:31:configuration-library","file":"SKILL.md","pattern":"Configuration library","snippet":"If submission is unconfirmed, repeat the same action ID, quote ID and limit. Once a job ID is known,","category":"env_access","line_end":31,"severity":"low","line_start":31}],"finding_verdicts":[{"id":"blocker:README.md:15:system-reconnaissance","reason":"The paragraph describes host verification, authorized spending, and scoped uninstallation. It does not instruct system enumeration or collection of machine information.","verdict":"false_positive","confidence":0.99},{"id":"env_access:references/connection.md:5:generic-api-secret-keys","reason":"QUADY3D_API_KEY is an environment variable name, not an embedded secret. The guidance requires secure host configuration and explicitly excludes credentials from chat.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/connection.md:22:system-reconnaissance","reason":"The workspace status reports configured project roots and readiness for a paid generation. This is a scoped prerequisite check, not broad system reconnaissance.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"Backticks format the quady3d_ tool prefix in Markdown. The instruction requests tool discovery and prohibits invented endpoints or credentials in chat.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"Backticks identify documented model-listing and account-query MCP tools. These read-only capability checks contain no shell command or executable backtick expression.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","reason":"Backticks label parameter_schema and allOf fields in prose. The instructions validate supported generation settings rather than executing external commands.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"Backticks label workspace readiness fields. The paragraph restricts output to configured ready roots and contains no shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","reason":"The backticked local_recovery.across_keys value is an MCP status field. Recovery remains tied to the authenticated account and API with server ownership checks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","reason":"Backticks identify the image-upload MCP tool, not a shell command. Uploads are limited to the user-selected image within an allowed project root.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"Backticks format the quady3d_quote MCP tool name. The paragraph documents quote validity and download-access checks without any shell invocation.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:29:ruby-shell-backtick-execution","reason":"Backticks identify the job-creation tool and request fields. Creation uses the user's authorized credit limit and a stable action identity, not shell execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"Backticks label job-query tools and the wait_seconds argument in Markdown. The paragraph preserves existing task identity and prohibits unauthorized replacement generations.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"Backticks identify the asset-download MCP tool. File delivery stays within the requested project scope and explicitly preserves existing files.","verdict":"false_positive","confidence":0.99},{"id":"network:SKILL.md:6:hardcoded-url","reason":"The URL is homepage metadata for the named product. It is not an execution instruction or a destination for credentials or project data.","verdict":"false_positive","confidence":0.99},{"id":"network:SKILL.md:11:hardcoded-url","reason":"The product setup URL is a documentation hyperlink. No data upload, credential transmission, or automatic network request is specified by this link.","verdict":"false_positive","confidence":0.99},{"id":"env_access:SKILL.md:31:configuration-library","reason":"The line discusses retry identity, job queries, and bounded waiting. It does not import a configuration library or access environment variables.","verdict":"false_positive","confidence":1}],"semantic_findings":[],"subject_marketplace_commit_sha":"3ce41f287227e078e7c84692ff9e43da7f23c094","subject_content_hash":"0f1f34251fb0f3829c8185bf0f1f7e4160bac5ee1e79db1b283d55291ff756f7","subject_tree_hash":"6f9c40c317102d435d8d83ce64b54c6aa8c238f570ca745c9395d70d82b9df7d","subject_plugin_path":"skills/quady3dai/quady3d","audit_payload_hash":"64ddd5d89c5514b25ad9cfe695bc2f9d","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"3ce41f287227e078e7c84692ff9e43da7f23c094","contentHash":"0f1f34251fb0f3829c8185bf0f1f7e4160bac5ee1e79db1b283d55291ff756f7","treeHash":"6f9c40c317102d435d8d83ce64b54c6aa8c238f570ca745c9395d70d82b9df7d","pluginPath":"skills/quady3dai/quady3d","auditPayloadHash":"64ddd5d89c5514b25ad9cfe695bc2f9d"},"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/quady3dai-quady3d/audits/1/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}