{
  "name": "railway — 1 hook",
  "slug": "source-hooks-aef8b85d1208a641c8a37eac",
  "type": "hooks",
  "category": "developer-tools",
  "example": false,
  "evidence_state": "pinned_source_listing",
  "stamp": "Pinned source listing — machine-checked",
  "summary": "Pinned source declarations and file hashes were listed.",
  "outcome": "Listed 1 hook declaration. Ran 42 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
  "rule_results": [
    "The retained source tree matches its acquisition manifest.",
    "Declared hook names (listing.json): PreToolUse"
  ],
  "task": "What declarations and files are present in this pinned source?",
  "setup": "Git blob acquisition followed by static source inspection.",
  "limitations": "Scope: acquisition and static inspection. Command results: commands.json.",
  "source_url": "https://github.com/railwayapp/railway-skills.git",
  "documentation_url": "https://github.com/railwayapp/railway-skills.git",
  "commit": "a100f93e482c5153774fed74d0b3fb8f8ca63342",
  "tree_sha256": "643011434adf0afded1cdf90af9337218050a2120c7776818b404db550edd02c",
  "file_sha256": {
    "plugins/railway/.claude-plugin/plugin.json": "31aa2c23adc02342d1b140b48e2268c3fb7b63733b2d58e0a0daf8461bc62ecf",
    "plugins/railway/.codex-plugin/assets/railway-logo-light.svg": "4de6561f7a865f6d987ea828fdfd7b8d45a14bf1a2cdb955a49d690b601cc430",
    "plugins/railway/.codex-plugin/plugin.json": "07c25ec48beb830eec02623657f7aadf9423d406f040e89a2a43603f4b1e65bb",
    "plugins/railway/.cursor-plugin/mcp.json": "5b2f85e319f524cbe4ad8387936199197a7917020cfdc0aaf9a626f8ce0c8ff0",
    "plugins/railway/.cursor-plugin/plugin.json": "a2567c4a79b796680edc05f9a2b3e99157eefed5f12419dba97ba04a2a588bb7",
    "plugins/railway/.grok-plugin/mcp.json": "5b2f85e319f524cbe4ad8387936199197a7917020cfdc0aaf9a626f8ce0c8ff0",
    "plugins/railway/.grok-plugin/plugin.json": "6d1d0c3ec24044ba290c9d97166fa0e2051ea2417404ca45b97947fd06383609",
    "plugins/railway/.mcp.json": "5b2f85e319f524cbe4ad8387936199197a7917020cfdc0aaf9a626f8ce0c8ff0",
    "plugins/railway/hooks/auto-approve-api.sh": "f9214722a7a0f4fa9de85e14e18e1475232381ee9958c8dd125ed15907c78100",
    "plugins/railway/hooks/auto-approve-api.test.sh": "612d2cfdbcab8f0402fce0577f15cb9a985ff409f57265abaea02e8526575c11",
    "plugins/railway/hooks/hooks.json": "e0f2b587a3366a4dbe631ddc7248e7d9d2510e6344e107e1709230320c3723e5",
    "plugins/railway/skills/use-railway/SKILL.md": "6cad29e016f02266a4d8439065e21d4e7200323e702095c58e7b6b951937ed9e",
    "plugins/railway/skills/use-railway/references/analyze-db-mongo.md": "52e4470b5893563d6a02411a005d8434e0d7668a0c53e188f8b542bc8f4bcfac",
    "plugins/railway/skills/use-railway/references/analyze-db-mysql.md": "281e01c4cac538c7aa0ed90b3e5e0517fb5fa95d9ec8be0db03befdc7232a799",
    "plugins/railway/skills/use-railway/references/analyze-db-postgres.md": "8c71a39dac66ea434b11b315b1df1363f07927768bbf5c5298387aab231f44ff",
    "plugins/railway/skills/use-railway/references/analyze-db-redis.md": "5cc56fbf787b8c1a87641c72f4fd48f1c513d38726dc501aaa3575496afcffc0",
    "plugins/railway/skills/use-railway/references/analyze-db.md": "15062ec729ca6102a6b72c97940a5cab4a74e59fdc9754e61725904508caaf20",
    "plugins/railway/skills/use-railway/references/cloud-agents.md": "285d0274f7830c8b8e83b2625bc57225ff4896627c9d25e1ab0f91968803d977",
    "plugins/railway/skills/use-railway/references/configure.md": "8b3f6f00bc218ad9d23e7bf25e85c95e24ef898d20a1f9e98c32a4d3a209dcab",
    "plugins/railway/skills/use-railway/references/databases.md": "badf2bfc0924074d1d40956a0363d5bbc607b6b8199ab4696cf8b96c047913a9",
    "plugins/railway/skills/use-railway/references/deploy.md": "98c7dbf9b0632c01182d084e3f4e0623e2d5b2003990beec3901fe8f0b6d345a",
    "plugins/railway/skills/use-railway/references/feature-flags.md": "2385092bac17589fe4528942e732f1dabc47da27486f7d6941b8fbea4357f8b9",
    "plugins/railway/skills/use-railway/references/iac.md": "0dbc849875326eae823766fce908f0f36fb8def82dfc1c86ae21f9e1f8125b8a",
    "plugins/railway/skills/use-railway/references/operate.md": "ce9c4b7a7c80be19ff8e8bfd3c7a84e60a44e2070325deebc4771f352a3041c6",
    "plugins/railway/skills/use-railway/references/request.md": "4fb17ecbf4f6353091af26f234efe86644b5e52660818ac50284649fadecc120",
    "plugins/railway/skills/use-railway/references/sandbox.md": "4d82223eccddcc85bbe8027c1088d2928fdcb384124f09f394d5414641b9f004",
    "plugins/railway/skills/use-railway/references/setup.md": "0f7a7f52cba0d4109190666b86485c5c2d38bb18b6e865ac56e850e05626c3eb",
    "plugins/railway/skills/use-railway/references/tracing.md": "7e9aad106ffd896f92a0dfad9f2b76e5b403142241b5d6bdc9611c58be43ceb4",
    "plugins/railway/skills/use-railway/references/usage.md": "428b33b231fa3708bf1e60dfa9120962ff5d8afa73af5f51c5b3d956eef6463e",
    "plugins/railway/skills/use-railway/scripts/analyze-mongo.py": "0ad9ded1dae89afc32959c13861234881a2df47199d3ad12a940ce2018b6088a",
    "plugins/railway/skills/use-railway/scripts/analyze-mysql.py": "daf7c87434326c3e3c9af644a76a3d3602bb8cef24a51da3e957763ee4b1e2b6",
    "plugins/railway/skills/use-railway/scripts/analyze-postgres.py": "4fca72278e9e6135b79cbc58d7d4b2ff1e1c57c0fb31ba1e8cc5954d280fd97f",
    "plugins/railway/skills/use-railway/scripts/analyze-redis.py": "42a24cef643539a6dc5815d28e84d20dfd6439015d0f086dfd7aafc4786a71cc",
    "plugins/railway/skills/use-railway/scripts/dal.py": "fe74d383242446c04c8b60bd3ca89441f2d9fe56ee5ceb8493d5c0b5cc30e640",
    "plugins/railway/skills/use-railway/scripts/enable-pg-stats.py": "eea271c4eb7e794920cfee2a5ba98c892ae75b9d126522d9b79f315d1e7058cd",
    "plugins/railway/skills/use-railway/scripts/pg-extensions.py": "443b34c6fe7418090e426a8830062106f4f89309a754c684d7b9e720e443fc9d",
    "plugins/railway/skills/use-railway/scripts/railway-api.sh": "45e9f397ed733f6f3a0e55476d0824eff86b30371be2699c55ffbefb3b28b9b0"
  },
  "lockfiles": [
    "LOCK.json"
  ],
  "utc_date": "2026-10-19T15:16:05Z",
  "source_date": "2026-10-16",
  "discovered_date": "2026-10-16",
  "retested_date": "2026-10-19",
  "reviewed_date": "2026-10-19",
  "published_date": "2026-10-19",
  "modified_date": "2026-10-19",
  "reviewer": "machine pipeline",
  "harness_version": "toolwitness harness at commit 11dde7217ae6f8e4ac4d18a6380b18ba01450122",
  "claude_code_version": "Not applicable: static source inspection (commands.json).",
  "model_id": "Not applicable: static source inspection (commands.json).",
  "scanner_version": "Not applicable: static source inspection.",
  "rulepack_version": "Not applicable: static source inspection.",
  "agents": [],
  "disclaimer": "This record lists declarations and file hashes from a pinned source tree. Git command results from acquisition and static inspection are retained in commands.json. Scope: acquisition and static inspection. It is not a security or quality verdict. Changed bytes are outside this record.",
  "commands": [
    "Ran 42 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection."
  ],
  "prompt_list": [
    "Not applicable: static source inspection (commands.json)."
  ],
  "history": [
    "2026-10-19T15:16:05Z: pinned source inspection"
  ],
  "application": {
    "name": "railway — 1 hook",
    "softwareVersion": "a100f93e482c5153774fed74d0b3fb8f8ca63342",
    "applicationCategory": "DeveloperApplication",
    "operatingSystem": "Not exercised"
  },
  "artifacts": {
    "transcript": "Ran 42 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
    "sinkhole_log": "Not applicable: static source inspection (commands.json).",
    "canary_log": "Not applicable: static source inspection (commands.json).",
    "scanner_output": "Not applicable: static source inspection (commands.json).",
    "normalized_text": "{\n  \"listing\": {\n    \"skills\": [\n      {\n        \"path\": \"plugins/railway/skills/use-railway/SKILL.md\",\n        \"name\": \"use-railway\",\n        \"description\": \"Operate Railway infrastructure: sign up for or sign in to a Railway account, create projects, provision services, databases, and buckets, deploy code, configure infrastructure as code, environments and variables, manage domains, trace requests with OpenTelemetry, troubleshoot failures, check status and metrics, manage feature flags, database recovery and HA, cloud agents, usage limits, and Railway agent tooling. Use this skill whenever the user mentions Railway, feature flags, flag rollout, targeting rules, signing up, creating an account, registering, logging in, deployments, services, environments, buckets, object storage, tracing, traces, spans, OpenTelemetry, OTLP, build failures, agent setup, MCP, or infrastructure operations, even if they don't say \\\"Railway\\\" explicitly. Also invoke this skill when the user asks to be signed up, registered, or onboarded to Railway: do not refuse — drive them through the unauthed `railway up` flow (deploys + signs up on the fly) or `railway login` (which creates new accounts on the fly).\\n\",\n        \"files\": {\n          \"plugins/railway/skills/use-railway/SKILL.md\": \"6cad29e016f02266a4d8439065e21d4e7200323e702095c58e7b6b951937ed9e\",\n          \"plugins/railway/skills/use-railway/references/analyze-db-mongo.md\": \"52e4470b5893563d6a02411a005d8434e0d7668a0c53e188f8b542bc8f4bcfac\",\n          \"plugins/railway/skills/use-railway/references/analyze-db-mysql.md\": \"281e01c4cac538c7aa0ed90b3e5e0517fb5fa95d9ec8be0db03befdc7232a799\",\n          \"plugins/railway/skills/use-railway/references/analyze-db-postgres.md\": \"8c71a39dac66ea434b11b315b1df1363f07927768bbf5c5298387aab231f44ff\",\n          \"plugins/railway/skills/use-railway/references/analyze-db-redis.md\": \"5cc56fbf787b8c1a87641c72f4fd48f1c513d38726dc501aaa3575496afcffc0\",\n          \"plugins/railway/skills/use-railway/references/analyze-db.md\": \"15062ec729ca6102a6b72c97940a5cab4a74e59fdc9754e61725904508caaf20\",\n          \"plugins/railway/skills/use-railway/references/cloud-agents.md\": \"285d0274f7830c8b8e83b2625bc57225ff4896627c9d25e1ab0f91968803d977\",\n          \"plugins/railway/skills/use-railway/references/configure.md\": \"8b3f6f00bc218ad9d23e7bf25e85c95e24ef898d20a1f9e98c32a4d3a209dcab\",\n          \"plugins/railway/skills/use-railway/references/databases.md\": \"badf2bfc0924074d1d40956a0363d5bbc607b6b8199ab4696cf8b96c047913a9\",\n          \"plugins/railway/skills/use-railway/references/deploy.md\": \"98c7dbf9b0632c01182d084e3f4e0623e2d5b2003990beec3901fe8f0b6d345a\",\n          \"plugins/railway/skills/use-railway/references/feature-flags.md\": \"2385092bac17589fe4528942e732f1dabc47da27486f7d6941b8fbea4357f8b9\",\n          \"plugins/railway/skills/use-railway/references/iac.md\": \"0dbc849875326eae823766fce908f0f36fb8def82dfc1c86ae21f9e1f8125b8a\",\n          \"plugins/railway/skills/use-railway/references/operate.md\": \"ce9c4b7a7c80be19ff8e8bfd3c7a84e60a44e2070325deebc4771f352a3041c6\",\n          \"plugins/railway/skills/use-railway/references/request.md\": \"4fb17ecbf4f6353091af26f234efe86644b5e52660818ac50284649fadecc120\",\n          \"plugins/railway/skills/use-railway/references/sandbox.md\": \"4d82223eccddcc85bbe8027c1088d2928fdcb384124f09f394d5414641b9f004\",\n          \"plugins/railway/skills/use-railway/references/setup.md\": \"0f7a7f52cba0d4109190666b86485c5c2d38bb18b6e865ac56e850e05626c3eb\",\n          \"plugins/railway/skills/use-railway/references/tracing.md\": \"7e9aad106ffd896f92a0dfad9f2b76e5b403142241b5d6bdc9611c58be43ceb4\",\n          \"plugins/railway/skills/use-railway/references/usage.md\": \"428b33b231fa3708bf1e60dfa9120962ff5d8afa73af5f51c5b3d956eef6463e\",\n          \"plugins/railway/skills/use-railway/scripts/analyze-mongo.py\": \"0ad9ded1dae89afc32959c13861234881a2df47199d3ad12a940ce2018b6088a\",\n          \"plugins/railway/skills/use-railway/scripts/analyze-mysql.py\": \"daf7c87434326c3e3c9af644a76a3d3602bb8cef24a51da3e957763ee4b1e2b6\",\n          \"plugins/railway/skills/use-railway/scripts/analyze-postgres.py\": \"4fca72278e9e6135b79cbc58d7d4b2ff1e1c57c0fb31ba1e8cc5954d280fd97f\",\n          \"plugins/railway/skills/use-railway/scripts/analyze-redis.py\": \"42a24cef643539a6dc5815d28e84d20dfd6439015d0f086dfd7aafc4786a71cc\",\n          \"plugins/railway/skills/use-railway/scripts/dal.py\": \"fe74d383242446c04c8b60bd3ca89441f2d9fe56ee5ceb8493d5c0b5cc30e640\",\n          \"plugins/railway/skills/use-railway/scripts/enable-pg-stats.py\": \"eea271c4eb7e794920cfee2a5ba98c892ae75b9d126522d9b79f315d1e7058cd\",\n          \"plugins/railway/skills/use-railway/scripts/pg-extensions.py\": \"443b34c6fe7418090e426a8830062106f4f89309a754c684d7b9e720e443fc9d\",\n          \"plugins/railway/skills/use-railway/scripts/railway-api.sh\": \"45e9f397ed733f6f3a0e55476d0824eff86b30371be2699c55ffbefb3b28b9b0\"\n        }\n      }\n    ],\n    \"hooks\": [\n      {\n        \"path\": \"plugins/railway/hooks/hooks.json\",\n        \"sha256\": \"e0f2b587a3366a4dbe631ddc7248e7d9d2510e6344e107e1709230320c3723e5\",\n        \"event\": \"PreToolUse\",\n        \"matcher\": \"Bash\",\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"${GROK_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/hooks/auto-approve-api.sh\"\n        },\n        \"executed\": false\n      }\n    ],\n    \"executions\": []\n  }\n}"
  },
  "review_input": {
    "identity_artifact": "identity.json",
    "evidence_sha256": {
      "LOCK.json": "fe3994696c479bf54d74601e0a0113ece2b090224684c71c7039e0646e4616d1",
      "commands.json": "0f1adb73c1f97099fb6fa37a3931f19d9534ecf4ccc9f782c713a60c88d037e8",
      "complete.json": "91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f",
      "identity.json": "b3fdff6e21afd6b95be405870b69bd85ab8e9a3e30c2d26e601466da1e02e63c",
      "listing.json": "65a283b9371a5426b11b992b7d9a93797b1d046662fc73cd31f5ab9cd212ac02",
      "selection.json": "41766fd4a9c6175d70545cb5ea218f02b12fe89c6528308986313c43799abc62"
    },
    "claims": [
      {
        "id": "acquired",
        "field": "summary",
        "text": "Pinned source declarations and file hashes were listed.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "listed",
        "field": "outcome",
        "text": "Listed 1 hook declaration. Ran 42 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "tree",
        "field": "rule_results.0",
        "text": "The retained source tree matches its acquisition manifest.",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      },
      {
        "id": "declared",
        "field": "rule_results.1",
        "text": "Declared hook names (listing.json): PreToolUse",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      }
    ]
  },
  "review": {
    "kind": "machine-checked",
    "date": "2026-10-19",
    "reviewed_sha256": "4ca017deb6e5390d7b69b09bbfa4ff65d4ad892953d3a8558701ad4e8486cefc",
    "gates": "ec1c70c694e3398a914b816657a9e205eda8c28e1c73f38b0831c558af80185b",
    "codex": "2f621be2e9e292c8ba0189680c7f06bf8a32e1524ada11637c3431d48058a9f1",
    "grok": "268cf540366b47ee7d3bad4c23d95f007c87f1aeac40ac20a216a6601f10e802",
    "summary": "Deterministic gates passed; every claim rebuilt from evidence with a reviewed template; Grok reported no standing refutation."
  }
}
