{"data":{"skill":{"slug":"astrale-os-astrale-domain","name":"astrale-domain","icon":"📦","repo":"https://github.com/astrale-os/cli/tree/db2fc39650aa2fbd37e8439804d5e627ac83bcb0/skills/astrale-domain","status":"approved","author":"astrale-os","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"69096a2e-e640-449d-bae4-20e31f391e07","skill_id":"e27996e2-c6a3-474f-b0c0-d95a030c920f","version":1,"content_hash":"v3:e406bf64b5db6e514879399e87b346fa7ff7c2fb:aa4a1c62cab478608f3fac3886f9da021690a3462c583bfa9c008b51ee7943b3:74cd7bbf2081a339bfc8c6633c2b0909f906a21d8d90a847ea4627a23218bd28:736b696c6c732f61737472616c652d6f732f61737472616c652d646f6d61696e:e6a148d519ca76085d694178e89d1bd8","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 61 static findings are false positives in their documented context, including Markdown backticks, public discovery paths, and authorized deployment examples. Secret references configure deployment environments, and identity guidance explicitly prohibits private-key disclosure and unauthorized registration. No evidence found of prompt injection, credential exfiltration, or malicious intent in the reviewed files.","remediation":[],"risk_factor_evidence":[{"factor":"filesystem","evidence":[{"file":"references/debugging.md","line_end":39,"line_start":39},{"file":"references/development.md","line_end":152,"line_start":152}]},{"factor":"network","evidence":[{"file":"references/integrations.md","line_end":31,"line_start":31}]},{"factor":"external_commands","evidence":[{"file":"references/release.md","line_end":42,"line_start":42},{"file":"references/release.md","line_end":43,"line_start":43},{"file":"SKILL.md","line_end":14,"line_start":14},{"file":"SKILL.md","line_end":15,"line_start":15},{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":18,"line_start":18},{"file":"SKILL.md","line_end":19,"line_start":19},{"file":"SKILL.md","line_end":28,"line_start":28},{"file":"SKILL.md","line_end":30,"line_start":30},{"file":"SKILL.md","line_end":31,"line_start":31},{"file":"SKILL.md","line_end":32,"line_start":32},{"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":38,"line_start":38},{"file":"SKILL.md","line_end":41,"line_start":41},{"file":"SKILL.md","line_end":42,"line_start":42},{"file":"SKILL.md","line_end":43,"line_start":43},{"file":"SKILL.md","line_end":44,"line_start":44},{"file":"SKILL.md","line_end":45,"line_start":45},{"file":"SKILL.md","line_end":47,"line_start":47},{"file":"SKILL.md","line_end":55,"line_start":55},{"file":"SKILL.md","line_end":58,"line_start":58},{"file":"SKILL.md","line_end":59,"line_start":59},{"file":"SKILL.md","line_end":60,"line_start":60},{"file":"SKILL.md","line_end":61,"line_start":61},{"file":"SKILL.md","line_end":62,"line_start":62},{"file":"SKILL.md","line_end":65,"line_start":65},{"file":"SKILL.md","line_end":66,"line_start":66},{"file":"SKILL.md","line_end":68,"line_start":68},{"file":"SKILL.md","line_end":73,"line_start":73},{"file":"SKILL.md","line_end":79,"line_start":79},{"file":"SKILL.md","line_end":81,"line_start":81}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":15,"total_lines":1978,"audit_model":"codex","audited_at":"2026-10-10T14:09:54.043+00:00","created_at":"2026-10-11T03:30:37.750289+00:00","static_findings":[{"id":"filesystem:references/debugging.md:39:hidden-file-access","file":"references/debugging.md","pattern":"Hidden file access","snippet":"(`/.well-known/astrale/release.json`) binds semantic origin, issuer/subject, and concrete endpoints;","category":"filesystem","line_end":39,"severity":"medium","line_start":39},{"id":"blocker:references/debugging.md:40:system-reconnaissance","file":"references/debugging.md","pattern":"System reconnaissance","snippet":"hostnames alone.","category":"blocker","line_end":40,"severity":"low","line_start":40},{"id":"filesystem:references/development.md:152:hidden-file-access","file":"references/development.md","pattern":"Hidden file access","snippet":"deployment serves (`/.well-known/astrale/release.json`), the installed Schema revision, and","category":"filesystem","line_end":152,"severity":"medium","line_start":152},{"id":"sensitive:references/development.md:94:environment-file-access","file":"references/development.md","pattern":"Environment file access","snippet":"deployment: astrale({ secrets: '.env.dev' }),","category":"sensitive","line_end":94,"severity":"high","line_start":94},{"id":"sensitive:references/development.md:97:environment-file-access","file":"references/development.md","pattern":"Environment file access","snippet":"deployment: astrale({ organization: '<Identity id>', secrets: '.env.prod' }),","category":"sensitive","line_end":97,"severity":"high","line_start":97},{"id":"blocker:references/development.md:161:system-reconnaissance","file":"references/development.md","pattern":"System reconnaissance","snippet":"- When publishing a package, check emitted declarations and an isolated packed consumer. Avoid leake","category":"blocker","line_end":161,"severity":"low","line_start":161},{"id":"network:references/integrations.md:31:fetch-api-call","file":"references/integrations.md","pattern":"Fetch API call","snippet":"const response = await fetch(buildUrl(configuration, input))","category":"network","line_end":31,"severity":"low","line_start":31},{"id":"blocker:references/migration.md:48:system-reconnaissance","file":"references/migration.md","pattern":"System reconnaissance","snippet":"operation id (`--operation <uuid>`) and names each version exactly as it resolved; do not start a fr","category":"blocker","line_end":48,"severity":"low","line_start":48},{"id":"blocker:references/migration.md:101:system-reconnaissance","file":"references/migration.md","pattern":"System reconnaissance","snippet":"8. retain exact failures and avoid destructive cleanup until evidence is complete.","category":"blocker","line_end":101,"severity":"low","line_start":101},{"id":"blocker:references/performance.md:44:system-reconnaissance","file":"references/performance.md","pattern":"System reconnaissance","snippet":"## Avoid hidden N-plus-one work","category":"blocker","line_end":44,"severity":"low","line_start":44},{"id":"blocker:references/policies.md:165:system-reconnaissance","file":"references/policies.md","pattern":"System reconnaissance","snippet":"Policy denial despite valid principal `can_use`. Keep Root/owner alternatives out of a test claiming","category":"blocker","line_end":165,"severity":"low","line_start":165},{"id":"blocker:references/policies.md:166:system-reconnaissance","file":"references/policies.md","pattern":"System reconnaissance","snippet":"For denials, prove reachable handlers, steps, Providers, and graph effects did not run; earlier Runt","category":"blocker","line_end":166,"severity":"low","line_start":166},{"id":"external_commands:references/release.md:42:shell-command-substitution","file":"references/release.md","pattern":"Shell command substitution","snippet":"URL_A=$(pnpm --dir agencies exec astrale-domain deploy staging --json | jq -r .url)","category":"external_commands","line_end":42,"severity":"medium","line_start":42},{"id":"external_commands:references/release.md:43:shell-command-substitution","file":"references/release.md","pattern":"Shell command substitution","snippet":"URL_B=$(pnpm --dir employees exec astrale-domain deploy staging --json | jq -r .url)","category":"external_commands","line_end":43,"severity":"medium","line_start":43},{"id":"sensitive:references/release.md:191:environment-file-access","file":"references/release.md","pattern":"Environment file access","snippet":"'.env.staging' })`), and no instance provides secrets to a Domain it installs.","category":"sensitive","line_end":191,"severity":"high","line_start":191},{"id":"sensitive:references/runtime.md:118:certificate-key-files","file":"references/runtime.md","pattern":"Certificate/key files","snippet":"status: node.props[domain.classes.Issue.properties.status.key] as StateOf<typeof lifecycle>,","category":"sensitive","line_end":118,"severity":"high","line_start":118},{"id":"blocker:references/runtime.md:41:system-reconnaissance","file":"references/runtime.md","pattern":"System reconnaissance","snippet":"parallel path/id APIs.","category":"blocker","line_end":41,"severity":"low","line_start":41},{"id":"blocker:references/runtime.md:48:system-reconnaissance","file":"references/runtime.md","pattern":"System reconnaissance","snippet":"`listAuthorizedServices`. `listServicesByOwner` is valid for an explicit business filter, not implic","category":"blocker","line_end":48,"severity":"low","line_start":48},{"id":"blocker:references/runtime.md:180:system-reconnaissance","file":"references/runtime.md","pattern":"System reconnaissance","snippet":"remain defects, not invalid input or successful error-shaped output.","category":"blocker","line_end":180,"severity":"low","line_start":180},{"id":"sensitive:references/users.md:95:crypto-seed-private-key-mention","file":"references/users.md","pattern":"Crypto seed/private key mention","snippet":"or an administrator's credential cannot replace it. Never pass private keys into a Function.","category":"sensitive","line_end":95,"severity":"high","line_start":95},{"id":"blocker:references/users.md:92:system-reconnaissance","file":"references/users.md","pattern":"System reconnaissance","snippet":"| Direct Register | Submit valid self or external user proof for the existing node under authorized ","category":"blocker","line_end":92,"severity":"low","line_start":92},{"id":"blocker:references/users.md:94:system-reconnaissance","file":"references/users.md","pattern":"System reconnaissance","snippet":"- Register needs real user proof valid for the target Kernel. Email, a freely supplied `(iss, sub)`,","category":"blocker","line_end":94,"severity":"low","line_start":94},{"id":"blocker:references/users.md:140:system-reconnaissance","file":"references/users.md","pattern":"System reconnaissance","snippet":"user=@employee-id email=alice@example.com -i staging --as operator","category":"blocker","line_end":140,"severity":"low","line_start":140},{"id":"blocker:references/users.md:142:system-reconnaissance","file":"references/users.md","pattern":"System reconnaissance","snippet":"member=@employee-id group=@team-id -i staging --as operator","category":"blocker","line_end":142,"severity":"low","line_start":142},{"id":"blocker:references/users.md:158:system-reconnaissance","file":"references/users.md","pattern":"System reconnaissance","snippet":"astrale instance invitation status @invitation-id --json","category":"blocker","line_end":158,"severity":"low","line_start":158},{"id":"blocker:references/users.md:161:system-reconnaissance","file":"references/users.md","pattern":"System reconnaissance","snippet":"member=@user-id group=@administrators-id -i staging --as operator","category":"blocker","line_end":161,"severity":"low","line_start":161},{"id":"blocker:references/users.md:170:system-reconnaissance","file":"references/users.md","pattern":"System reconnaissance","snippet":"astrale identity register alice --node @employee-id -i staging --as operator","category":"blocker","line_end":170,"severity":"low","line_start":170},{"id":"blocker:references/views.md:93:system-reconnaissance","file":"references/views.md","pattern":"System reconnaissance","snippet":"close: (id: NodeId) => action.run({ id }, {}),","category":"blocker","line_end":93,"severity":"low","line_start":93},{"id":"external_commands:SKILL.md:14:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`@astrale-os/sdk/*` subpath. Do not import `@astrale-os/kernel-core` or","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":"`@astrale-os/kernel-dsl` directly, and do not replace them with a flat SDK root barrel.","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Keep authorization in Schema-owned Policy and callable `auth` mode; handlers execute only admitted","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Choose each existential Policy Node extent deliberately: `node()` for topology-owned matching,","category":"external_commands","line_end":18,"severity":"medium","line_start":18},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`node(Class)` for a polymorphic Class family, or `node.exact(Class)` for exact identity.","category":"external_commands","line_end":19,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Scaffold, test, or configure TypeScript and Environments for a domain: read `references/developmen","category":"external_commands","line_end":28,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"owns a development instance: read `references/release.md`.","category":"external_commands","line_end":30,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Author schema, vocabulary, properties, Class/Edge choices, or review a schema: read `references/sc","category":"external_commands","line_end":31,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Implement handlers, callable bindings, kernel calls, graph reads/writes, or cross-domain calls: re","category":"external_commands","line_end":32,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Wrap an external API, define an Integration/Provider, receive webhooks, or design side-effect/retr","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":"- Decide whether to reuse/import a native Astrale domain instead of modeling a capability yourself: ","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":"- Model sign-in users, invite/register existing people, assign Shell groups, or make someone an inst","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":"- Secure a Domain, Function, View, client call, public endpoint, identity, delegation, authenticatio","category":"external_commands","line_end":36,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`references/views.md` and apply `astrale-frontend-design` for product-interface layout,","category":"external_commands","line_end":38,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`references/migration.md`.","category":"external_commands","line_end":41,"severity":"medium","line_start":41},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Optimize graph access, reduce round trips, choose indexes/queries, or review call patterns for lat","category":"external_commands","line_end":42,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Author or update demo data — the Datasets under `tests/` the Studio draws and proves policies on:","category":"external_commands","line_end":43,"severity":"medium","line_start":43},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"read `references/datasets.md`.","category":"external_commands","line_end":44,"severity":"medium","line_start":44},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Write tests, fixtures, demo flows, or smoke-test scenarios: read `references/testing.md`.","category":"external_commands","line_end":45,"severity":"medium","line_start":45},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"read `references/debugging.md`.","category":"external_commands","line_end":47,"severity":"medium","line_start":47},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`references/development.md`; read `references/domains.md` only when deciding whether to reuse a","category":"external_commands","line_end":55,"severity":"medium","line_start":55},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **Schema:** Before authoring the schema, read `references/schema.md`; for sign-in users and group","category":"external_commands","line_end":58,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"also read `references/users.md` before inventing identity or onboarding vocabulary.","category":"external_commands","line_end":59,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. **Callables:** Before implementing callables, read `references/runtime.md` and","category":"external_commands","line_end":60,"severity":"medium","line_start":60},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`references/policies.md`. If an external system is involved, also read `references/integrations.md`.","category":"external_commands","line_end":61,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:62:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"4. **Views:** When the Domain owns a browser surface, read `references/views.md` before designing or","category":"external_commands","line_end":62,"severity":"medium","line_start":62},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"5. **Demo data:** For a Domain with a meaningful sample graph, author a small Dataset under `tests/`","category":"external_commands","line_end":65,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"referenced from `astrale.config.ts`. Read `references/datasets.md` first; do not invent graph data","category":"external_commands","line_end":66,"severity":"medium","line_start":66},{"id":"external_commands:SKILL.md:68:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"6. **Completion:** Read `references/testing.md`; exercise the delivered public callables with","category":"external_commands","line_end":68,"severity":"medium","line_start":68},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Read `references/migration.md`, `references/performance.md`, and `references/debugging.md` only when","category":"external_commands","line_end":73,"severity":"medium","line_start":73},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. For live behavior, use `references/debugging.md` and prove the deployed/installed/runtime path be","category":"external_commands","line_end":79,"severity":"medium","line_start":79},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"change. Read `references/datasets.md`; examples complement tests rather than exhaust every case.","category":"external_commands","line_end":81,"severity":"medium","line_start":81},{"id":"blocker:SKILL.md:80:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"3. When a Schema change affects existing Datasets, keep them valid and representative in the same","category":"blocker","line_end":80,"severity":"low","line_start":80}],"finding_verdicts":[{"id":"filesystem:references/debugging.md:39:hidden-file-access","reason":"The path identifies public release discovery metadata, not a local hidden file. The surrounding guidance requires verified issuer and endpoint comparisons.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/debugging.md:40:system-reconnaissance","reason":"The hostname mention warns against comparing hostnames alone during authentication diagnosis. It does not enumerate systems or collect host information.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:references/development.md:152:hidden-file-access","reason":"The well-known URL is served release metadata used to verify deployment state. No local hidden-file inspection is requested.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/development.md:94:environment-file-access","reason":"The development secrets path configures the deployment adapter for its intended environment. Nearby instructions prohibit copying secrets into source and explain project-local path resolution.","verdict":"false_positive","confidence":0.97},{"id":"sensitive:references/development.md:97:environment-file-access","reason":"The production secrets path is explicit deployment configuration under an organization identity. There is no instruction to disclose values or send them elsewhere.","verdict":"false_positive","confidence":0.97},{"id":"blocker:references/development.md:161:system-reconnaissance","reason":"This instruction checks package declarations and an isolated consumer for leaked internal imports. It is packaging verification, not system reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"network:references/integrations.md:31:fetch-api-call","reason":"The fetch belongs to an explicitly requested weather Provider example. The surrounding guidance requires admitted configuration and response validation; no credential-exfiltration payload is shown.","verdict":"false_positive","confidence":0.9},{"id":"blocker:references/migration.md:48:system-reconnaissance","reason":"The operation ID is reused for an outcome-unknown installation retry. This preserves retry identity rather than discovering host or process information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/migration.md:101:system-reconnaissance","reason":"The text requires retaining migration failures and avoiding premature destructive cleanup. It contains no reconnaissance command.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance.md:44:system-reconnaissance","reason":"This is a heading about avoiding N-plus-one graph access. It neither inspects the operating system nor requests environmental discovery.","verdict":"false_positive","confidence":1},{"id":"blocker:references/policies.md:165:system-reconnaissance","reason":"The text tests Policy denial without Root or owner shortcuts. It strengthens authorization evidence and performs no system reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/policies.md:166:system-reconnaissance","reason":"The instruction verifies that denied calls produce no handler, Provider, or graph effects. This is authorization testing, not system enumeration.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/release.md:42:shell-command-substitution","reason":"The substitution captures a staging deployment URL from fixed CLI arguments and jq output. The subsequent install quotes the URL; no dynamic command evaluation appears.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:references/release.md:43:shell-command-substitution","reason":"The substitution captures the second staged Domain deployment URL for an atomic grouped install. Arguments are fixed, and the result is not evaluated as shell code.","verdict":"false_positive","confidence":0.96},{"id":"sensitive:references/release.md:191:environment-file-access","reason":"This prose identifies publisher-owned deployment secrets, not unauthorized environment-file harvesting. The section requires private files or secret-manager input and forbids secret values in argv.","verdict":"false_positive","confidence":0.98},{"id":"sensitive:references/runtime.md:118:certificate-key-files","reason":"The expression uses a Schema property key to read Issue status from query results. It references no certificate, cryptographic key, or key file.","verdict":"false_positive","confidence":1},{"id":"blocker:references/runtime.md:41:system-reconnaissance","reason":"The text discourages maintaining duplicate path and record-ID APIs. It concerns business references, not host identity discovery.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/runtime.md:48:system-reconnaissance","reason":"The service-list names illustrate business query naming and distinguish filters from authorization. They are not operating-system service enumeration.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/runtime.md:180:system-reconnaissance","reason":"The sentence requires unexpected exceptions to remain defects rather than false success results. It contains no system inspection.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/users.md:95:crypto-seed-private-key-mention","reason":"The guidance explicitly says never to pass private keys into a Function. It also rejects administrator credentials as substitutes for user identity proof.","verdict":"false_positive","confidence":1},{"id":"blocker:references/users.md:92:system-reconnaissance","reason":"The table describes authorized registration of an existing user node using valid proof. It is identity lifecycle documentation, not system reconnaissance.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/users.md:94:system-reconnaissance","reason":"The instruction requires real user proof and rejects freely supplied identity coordinates. It strengthens registration security without collecting system data.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/users.md:140:system-reconnaissance","reason":"This is an invitation example on staging under an already authorized operator. The email is example user input, not a data collection destination.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/users.md:142:system-reconnaissance","reason":"The command assigns a known employee to a known team on staging. The guide explicitly documents the required group authority and Policy checks.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/users.md:158:system-reconnaissance","reason":"The command reads a specific invitation's status before an explicitly privileged group assignment. It does not enumerate host or operating-system information.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/users.md:161:system-reconnaissance","reason":"The staging admin assignment is explicitly restricted to an existing administrator after invitation completion. It is documented privileged administration, not covert escalation.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/users.md:170:system-reconnaissance","reason":"The command registers a local test identity onto an existing Employee node under an authorized operator. The guide prohibits public registration wrappers and unauthorized substitutes.","verdict":"false_positive","confidence":0.98},{"id":"blocker:references/views.md:93:system-reconnaissance","reason":"This React callback invokes the Schema-bound Issue.close action with a record ID. It contains no system reconnaissance.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:14:ruby-shell-backtick-execution","reason":"Backticks format SDK import paths in Markdown prose. They are not Ruby or shell execution syntax in an executable context.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"The backticks mark a prohibited direct Kernel package import. This is Markdown documentation, not a shell command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"The backticks format the callable auth identifier. The surrounding prose requires Schema-owned authorization and executes no command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","reason":"The backticks format the Policy node selector in Markdown. No shell or Ruby execution is present.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"The backticks delimit Policy selector API examples. These are documentation identifiers, not executable shell substitutions.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"The backticks mark a local development reference to read for scaffolding work. Markdown path formatting does not execute a command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"The text routes release-related tasks to a local Markdown reference. The backticks are inline code formatting.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"The backticks format the Schema documentation path. This is reference routing, not command execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The line requests reading a local runtime reference for handler work. Its Markdown backticks do not run shell code.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"The integration reference path is formatted as inline Markdown code. No executable backtick expression appears.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The backticks identify a local reference for native Domain reuse decisions. The line contains no shell invocation.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"The line routes requested identity and group work to its reference. Backticks format the filename rather than execute code.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"The Policy reference path is inline Markdown formatting. The instruction requests security documentation, not command execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"Backticks mark the Views reference and a companion design skill name. They are prose references, not Ruby or shell expressions.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","reason":"This line names a local migration reference in Markdown. Reading documentation is not backtick command execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"The backticks format the performance reference path. The line only routes optimization tasks to documentation.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"The tests directory is shown as inline Markdown code. This directory description contains no executable command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","reason":"The instruction names a local Dataset reference. Its backticks are Markdown formatting, not process execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","reason":"The testing documentation filename is enclosed in Markdown backticks. No Ruby or shell context is present.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"This is a local debugging reference to read for live diagnosis. The backticks are not executed.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","reason":"The development and Domain reference filenames are inline Markdown code. They route foundation work without launching processes.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"The Schema phase points to local authoring documentation. Backticks format its path and do not execute a command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The users reference is requested before identity modeling. This is a Markdown file reference, not shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","reason":"The runtime filename identifies documentation for the callable phase. The backticks are inline formatting only.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"The Policy and integration filenames are Markdown references. Reading them for the current task does not execute backtick commands.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:62:ruby-shell-backtick-execution","reason":"The Views phase routes browser work to a local reference. Its filename is formatted, not executed.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The tests directory marks where requested sample Datasets belong. Markdown backticks around a directory are not command execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","reason":"The configuration filename and Dataset reference are inline Markdown code. The text describes authoring boundaries and executes no process.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:68:ruby-shell-backtick-execution","reason":"The testing reference is named before verification work. Its Markdown formatting does not invoke a shell.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","reason":"The line lists local lifecycle references and limits when they should be read. Backticks format filenames rather than run commands.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","reason":"The debugging reference supports verifying deployed behavior. The backticks around its filename are Markdown formatting.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:81:ruby-shell-backtick-execution","reason":"The Dataset reference accompanies guidance to keep examples consistent with Schema changes. Its backticks do not execute shell code.","verdict":"false_positive","confidence":1},{"id":"blocker:SKILL.md:80:system-reconnaissance","reason":"The instruction requires existing Datasets to remain valid after a Schema change. It is data maintenance guidance, not system reconnaissance.","verdict":"false_positive","confidence":1}],"semantic_findings":[],"subject_marketplace_commit_sha":"e406bf64b5db6e514879399e87b346fa7ff7c2fb","subject_content_hash":"aa4a1c62cab478608f3fac3886f9da021690a3462c583bfa9c008b51ee7943b3","subject_tree_hash":"74cd7bbf2081a339bfc8c6633c2b0909f906a21d8d90a847ea4627a23218bd28","subject_plugin_path":"skills/astrale-os/astrale-domain","audit_payload_hash":"e6a148d519ca76085d694178e89d1bd8","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"e406bf64b5db6e514879399e87b346fa7ff7c2fb","contentHash":"aa4a1c62cab478608f3fac3886f9da021690a3462c583bfa9c008b51ee7943b3","treeHash":"74cd7bbf2081a339bfc8c6633c2b0909f906a21d8d90a847ea4627a23218bd28","pluginPath":"skills/astrale-os/astrale-domain","auditPayloadHash":"e6a148d519ca76085d694178e89d1bd8"},"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/astrale-os-astrale-domain/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}}