{
  "name": "arkgast/baton — 13 skills",
  "slug": "source-skills-e27d8995d9a7c8d3d925d5c9",
  "type": "skills",
  "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 13 skill declarations. Ran 81 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 skill names (listing.json): writing-skills; backlog; debug; implement; init; integrate; parallel; plan; retro; review; spec; verify; workflow"
  ],
  "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/arkgast/baton",
  "documentation_url": "https://github.com/arkgast/baton",
  "commit": "e0d819813633e6e7326797f47a3f49640204feed",
  "tree_sha256": "fa883dc5b0139f0f645f1d1287ef296a4b7305716053671ef900348db3b1d449",
  "file_sha256": {
    ".baton/config.json": "f32ef9e005e58e8e19880eccfd6d105be0c6f1df5d173951cb0e48d845ff0ef8",
    ".claude/skills/writing-skills/SKILL.md": "8b44698d5ab7733ff1b1a5cb9feef98881662e4a58896f5a0242d31a914b90a0",
    ".claude-plugin/marketplace.json": "0b943a4e56e2707feb1f27d324f7866c0996208536b40eb75e6bcb95212544b2",
    ".claude-plugin/plugin.json": "1a8d8173390f9a6d5901edb64df8f697a42c668c86409b6265f46fb8362ebe4d",
    ".github/ISSUE_TEMPLATE/bug.yml": "279e44ea8e62562cf4cefc46443f1244a3fa217a17ef98c772cb7da23237d7cf",
    ".github/ISSUE_TEMPLATE/config.yml": "bde9f22e8fa24da201b222685a716e9410d7e082f7649040c229e122a33f58fe",
    ".github/ISSUE_TEMPLATE/task.yml": "2e019d641c7df9a31360064bc4b99cb34ca33e2aea73d38de1fbc58957a0abb5",
    ".github/PULL_REQUEST_TEMPLATE.md": "7c4fbaa476c3d292d34400399dcc2e929263ca8484e0fbe176e47e7125e739bf",
    ".github/workflows/ci.yml": "1e66081b24ec3aebe0abe267d54e2afd2db98a3283089a44d3837d1bb6f4eda4",
    ".github/workflows/drift.yml": "af1d5e2fd0b18a390cc8d12659285b3539eff621e8b2e474fffd4c722faca519",
    ".gitignore": "6c7d15d2ab1a0b51ebcae7e88b9ad01f0713d0833bc2dbe8f3bcc7a81b66b344",
    "CHANGELOG.md": "f65685e416e78b6d29d259713328dd529c4ecc32c8b9037413138c2cffec8e51",
    "CONTRIBUTING.md": "0c8c1305a30cf49e5df73f3d44be0322b6de7e49ae59b69ce221266f32cf89ba",
    "LICENSE": "60311aa9463c0f92cdec3c1153e34518938c424dc2f2a7e3a3e31f273a0e96ad",
    "Makefile": "648be91133e85ee26c8705be97d28c1dde5892eec8f4f5c2e02a8e91bb8140bc",
    "NOTICE": "d93e489bf2126b329327d59d4021a00ea10eb6d4637053f91357099b867d56c4",
    "README.md": "8c2c15234d089eb474ebbe9dc3826089703bebe1bc56cf4767d6b8008ad3c69d",
    "SECURITY.md": "0da2f13c68994cdc63966e7a2bb29c80195c00773e0efc6b957bae6e493e05cf",
    "bin/baton": "8051686c266f133569218e146e4739b5fccbb15bd8f01bf48fe4e5cfb0fb9c6a",
    "cli/baton.mjs": "9452a6134a28ac9805be49dccc68cdbf748914a440de283c25611e15fd953946",
    "cli/lib/config.mjs": "068958a0706c71f78a084d57734a95db9c58a6c19c562886d0ec61b4ceee2bf1",
    "cli/lib/context.mjs": "f4498c9ce16e006fe08d485e9b85f2f716f988078edec95e69b1f5c7126fdcc2",
    "cli/lib/detect.mjs": "5a4a107a49f5dacab2b859c243d4864df7c17ef19ff4fa8c34473b8881fcd79c",
    "cli/lib/git.mjs": "0615503f978fddb0e55144055e152c556059343ec31af1b02ad2051251a1ca5b",
    "cli/lib/provenance.mjs": "1e293976c37bea4a8282b6b95b2bcc365fcd97b7da3563a58633404fdf09d606",
    "cli/lib/providers/github.mjs": "0b69f25d9c5f31a5d4d5c931f166e3b1e22c475928259453689eca0f7a1dbaf0",
    "cli/lib/tasks.mjs": "e5b1c87ee4a5f8ebb7744bb1fc4eb9e50a49f98521735ec7051d25a5d6ad8913",
    "cli/lib/util.mjs": "bd793495b3f0e978d4973ec851ad335013b6bec02b7f47658310fdb380e529e0",
    "cli/test/features.test.mjs": "7052ae217225930a32cab495089db6c14fbf53ab28f7c14e896ac208fd5e61b5",
    "cli/test/tasks.test.mjs": "efc15902ed0b911b8b339b895c0cc8ceb0329032ed38ff892fa288c147295b6e",
    "hooks/fact-gate.mjs": "d28711769cc93ac6c435ad12fb4d1ef920d9458ad841597a635ff6f867f4f1eb",
    "hooks/hooks.json": "1e5839aaf592ef1689eb795ae3504ccb8529bdd2f0bd6272f6bc90f9e67a2ee7",
    "package.json": "eed225dff60d318003d914fb4b2d3fff2670fa22fbf7e97edd91855ab224af4a",
    "provenance.json": "b1b7e6ab10865687f3e88cea325b2c0bed9359ff942f9e07105e52013c6dff37",
    "reviewers/code-quality.md": "ba38d5e53a11a85cd6623877c64f5ade69c575edd7c2f81ee166822a04cc2ade",
    "reviewers/postgres.md": "b57486723586f71a1c84e242d2fccf9dcb381817496a0f543c99ab485f1b52f1",
    "reviewers/react.md": "87375a6edaea970656bdc6caa9b64194b0bfcd680da3a18ed1e56107852fe653",
    "reviewers/rust.md": "6dbb2c3e4d152de5d950f0bdeaaea065377cc13b921499d221299f4b7294f146",
    "reviewers/security.md": "8fefa126cbf03699f4aedc28a701b625e525971c83fd0efc6f7f2d44871e4422",
    "reviewers/silent-failures.md": "51ab3b5821ac9dc32b2ebebd1e728fd078630fa7fb96f2334889e50445be20d7",
    "reviewers/spec-compliance.md": "10026a9bf151e722d7ff9e53b5ef0f3da9c813702e49915b96c1c6cb2c43d4dd",
    "reviewers/tests.md": "03c50793d4f2c0fa77261399a39329794c2125d89050b7d50ee6848075149b34",
    "reviewers/types.md": "4bcf6e46ee115932c63b10a417aef85c54ede79cd9a702ed5cb6c48ecb75edf5",
    "reviewers/typescript.md": "081d19f35a17ac8cd803453566b8d2245373e87ba876275bd7d5940dee544fea",
    "skills/backlog/SKILL.md": "9c85f6c33c507393dec4279f0e993b4869f5ea9347f8d0731130825798470298",
    "skills/debug/SKILL.md": "c733073b71aa45e2b1f7bffcf9a757432fa3fbf5316f3998d0ed6d7317d20d50",
    "skills/implement/SKILL.md": "a1d85d2e93b7e1248d59829f25cf3224728bd51151907e6469b12ed315528b7c",
    "skills/init/SKILL.md": "2a7288bb1fa8bcbf6e72a98fa16b4859dc21cea475a9211cf5891fab78db854d",
    "skills/integrate/SKILL.md": "2db697d251eb28273711491667fa76e1fd32c44554f4df51ec118c4141c472b5",
    "skills/parallel/SKILL.md": "e2d00962b90b1d2cdbb3333baa3a86c7607d9c3a4947fc4ebba0e63836cec572",
    "skills/plan/SKILL.md": "4f0e91819b32814921adeb482cc8ab8a9e2c3d65896a0cf603472e0ca22c2cce",
    "skills/retro/SKILL.md": "73d5db6b931f02daebdd52d0b3e4d8649b194a064050ea21f04ba401e2e10182",
    "skills/review/SKILL.md": "9ea0a3d299909d8b6a208ae2cd9c7cc859bb7ece46fc3a55f3721cb99cf4cc05",
    "skills/spec/SKILL.md": "ebb98dc10f6a5eb7a73cd46d096bf5df688747f1d80c6a3ccfc2d4bcc031aa01",
    "skills/verify/SKILL.md": "596f7ca7dbcab643dfa458ba507f6ba6631b078b6620c5404bfe845e059bd461",
    "skills/workflow/SKILL.md": "d3fda8df36bf8cdc529cfc6ebe724cf7dd2f38e85c955405ab0c93a6ef550269",
    "stacks/api.md": "243fe7aa7b12274738b27c82936f6f6a5a19e60d56c5ce87c66a68a3649a1eb7",
    "stacks/common.md": "cbf1c05467cca0943651ceb406c0f904275ef6d887582b5b1f12d00ea1263087",
    "stacks/e2e.md": "8cffb94520beb9940aabc6ebbdf041f10ce8511a35a7c3f8ad4916bd0d3d4575",
    "stacks/i18n.md": "601bac844099f28abb4fdaa6d082c88fb5aa031b0450112a7efeb3198174b3f2",
    "stacks/javascript.md": "762df680b874a91df8ccd88c903d3c434cba8f32740ecb92753edffa16456471",
    "stacks/node.md": "c4d20f449fa1d65dd5dff536946f67d4fcdafd61af47732b2a215795d2e23b6c",
    "stacks/openapi.md": "76bf76856b2ed198ee281b920ddd1629b4b69111793a95c3939ed9d539ba2708",
    "stacks/postgres.md": "5681e887d9230c81f23a1e863588245ed19e46037850e09b3b889c45312c9515",
    "stacks/react.md": "153778cf60f910fffdd32b18c4813536ec434e53a5f070d87a74dd24471e1eec",
    "stacks/rust-tokio-postgres.md": "81355c4e30341ad6f65c3d273f38ae9221c8ce730b0dd8190a1f2b0c870b8ced",
    "stacks/rust.md": "31a7f9be734bc51fc012a24e03f58d5c3f113e08b7b129425f2e8f8316486c58",
    "stacks/typescript.md": "f79530038f374687ae76345c353ade29797e9eb495497e29efeda9763e48c0fb",
    "templates/adr.md": "d7c696a2a09fca89a5c123cd14478cfad8ae3cb98655471e596f945cc7c0cde8",
    "templates/config.example.json": "2941f827d2b7de38cd867eafc6da5cae41bc6ed189f94250a7a3735068055bbd",
    "templates/context.md": "04d95cbf4b6cb087c254d80f790a5378da78e7e44af21bb46ba471fa3f74cd3d",
    "templates/implementer-brief.md": "605763fd0f3a09e0673c543f948acaa5ed5590f6b7fd48db29c0ce9225675ab3",
    "templates/plan.md": "840416648212b3f9d596e90e8b672de3eff42c147c97a14bbc88d36cc74c1d50",
    "templates/pr-body.md": "7c4fbaa476c3d292d34400399dcc2e929263ca8484e0fbe176e47e7125e739bf",
    "templates/spec.md": "4a8e31f2caa5976c2cb97625ff1d6dd59d9223b693db797d8885dfe62cfbe1d8",
    "templates/task.md": "7e4bd99d0eb9a2a46ef0e1fb352fbda4f9144af0c970a3beabf084583fede99e"
  },
  "lockfiles": [
    "LOCK.json"
  ],
  "utc_date": "2026-10-23T00:18:26Z",
  "source_date": "2026-10-23",
  "discovered_date": "2026-10-23",
  "retested_date": "2026-10-23",
  "reviewed_date": "2026-10-23",
  "published_date": "2026-10-23",
  "modified_date": "2026-10-23",
  "reviewer": "machine pipeline",
  "harness_version": "toolwitness harness at commit 493f146c2f4d9ec0224a393a9ab56368c1134a72",
  "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 81 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-23T00:18:26Z: pinned source inspection"
  ],
  "application": {
    "name": "arkgast/baton — 13 skills",
    "softwareVersion": "e0d819813633e6e7326797f47a3f49640204feed",
    "applicationCategory": "DeveloperApplication",
    "operatingSystem": "Not exercised"
  },
  "artifacts": {
    "transcript": "Ran 81 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\": \".claude/skills/writing-skills/SKILL.md\",\n        \"name\": \"writing-skills\",\n        \"description\": \"Use when creating or editing a baton skill, reviewer brief, stack guide or template in this repository, or when a skill is being ignored or misapplied by agents.\",\n        \"files\": {\n          \".claude/skills/writing-skills/SKILL.md\": \"8b44698d5ab7733ff1b1a5cb9feef98881662e4a58896f5a0242d31a914b90a0\"\n        }\n      },\n      {\n        \"path\": \"skills/backlog/SKILL.md\",\n        \"name\": \"backlog\",\n        \"description\": \"Use when an approved plan needs to become GitHub issues, or when asked what is next, what is in progress, to create, triage or reprioritize a task in a baton repo.\",\n        \"files\": {\n          \"skills/backlog/SKILL.md\": \"9c85f6c33c507393dec4279f0e993b4869f5ea9347f8d0731130825798470298\"\n        }\n      },\n      {\n        \"path\": \"skills/debug/SKILL.md\",\n        \"name\": \"debug\",\n        \"description\": \"Use when facing a bug, failing test, build failure or unexpected behavior whose cause is not yet known, before proposing any fix.\",\n        \"files\": {\n          \"skills/debug/SKILL.md\": \"c733073b71aa45e2b1f7bffcf9a757432fa3fbf5316f3998d0ed6d7317d20d50\"\n        }\n      },\n      {\n        \"path\": \"skills/implement/SKILL.md\",\n        \"name\": \"implement\",\n        \"description\": \"Use when starting or continuing work on a specific backlog task (given a task number, or inside a task worktree) in a baton repo.\",\n        \"files\": {\n          \"skills/implement/SKILL.md\": \"a1d85d2e93b7e1248d59829f25cf3224728bd51151907e6469b12ed315528b7c\"\n        }\n      },\n      {\n        \"path\": \"skills/init/SKILL.md\",\n        \"name\": \"init\",\n        \"description\": \"Use when the user wants to set up or reconfigure the baton workflow in a repository.\",\n        \"files\": {\n          \"skills/init/SKILL.md\": \"2a7288bb1fa8bcbf6e72a98fa16b4859dc21cea475a9211cf5891fab78db854d\"\n        }\n      },\n      {\n        \"path\": \"skills/integrate/SKILL.md\",\n        \"name\": \"integrate\",\n        \"description\": \"Use when a task in a baton repo has passed verification and review and is ready to become a PR or be merged.\",\n        \"files\": {\n          \"skills/integrate/SKILL.md\": \"2db697d251eb28273711491667fa76e1fd32c44554f4df51ec118c4141c472b5\"\n        }\n      },\n      {\n        \"path\": \"skills/parallel/SKILL.md\",\n        \"name\": \"parallel\",\n        \"description\": \"Use when several ready backlog tasks could be worked at the same time, by subagents in this session or by separate agent sessions or developers, or when asked to \\\"run the backlog\\\", \\\"work on several tasks\\\" or \\\"speed this up\\\".\",\n        \"files\": {\n          \"skills/parallel/SKILL.md\": \"e2d00962b90b1d2cdbb3333baa3a86c7607d9c3a4947fc4ebba0e63836cec572\"\n        }\n      },\n      {\n        \"path\": \"skills/plan/SKILL.md\",\n        \"name\": \"plan\",\n        \"description\": \"Use when an approved spec exists in a baton repo and has no implementation plan yet, or when the user asks to break work into tasks.\",\n        \"files\": {\n          \"skills/plan/SKILL.md\": \"4f0e91819b32814921adeb482cc8ab8a9e2c3d65896a0cf603472e0ca22c2cce\"\n        }\n      },\n      {\n        \"path\": \"skills/retro/SKILL.md\",\n        \"name\": \"retro\",\n        \"description\": \"Use after a task is merged or a PR review round ends in a baton repo, when the user corrects the same thing twice, or when asked \\\"what did we learn\\\", to capture lessons where every contributor and agent will see them.\",\n        \"files\": {\n          \"skills/retro/SKILL.md\": \"73d5db6b931f02daebdd52d0b3e4d8649b194a064050ea21f04ba401e2e10182\"\n        }\n      },\n      {\n        \"path\": \"skills/review/SKILL.md\",\n        \"name\": \"review\",\n        \"description\": \"Use when a task's changes are verified and need review before integration, when asked to review a task or PR in a baton repo, or when review feedback arrives on a PR.\",\n        \"files\": {\n          \"skills/review/SKILL.md\": \"9ea0a3d299909d8b6a208ae2cd9c7cc859bb7ece46fc3a55f3721cb99cf4cc05\"\n        }\n      },\n      {\n        \"path\": \"skills/spec/SKILL.md\",\n        \"name\": \"spec\",\n        \"description\": \"Use before building a new feature, module or behavior change in a baton repo, when an idea or request is still ambiguous, or when the user asks to \\\"design\\\", \\\"spec\\\" or \\\"think through\\\" something.\",\n        \"files\": {\n          \"skills/spec/SKILL.md\": \"ebb98dc10f6a5eb7a73cd46d096bf5df688747f1d80c6a3ccfc2d4bcc031aa01\"\n        }\n      },\n      {\n        \"path\": \"skills/verify/SKILL.md\",\n        \"name\": \"verify\",\n        \"description\": \"Use before claiming any task, fix or change is done, passing, fixed or ready for review, and before committing to a PR.\",\n        \"files\": {\n          \"skills/verify/SKILL.md\": \"596f7ca7dbcab643dfa458ba507f6ba6631b078b6620c5404bfe845e059bd461\"\n        }\n      },\n      {\n        \"path\": \"skills/workflow/SKILL.md\",\n        \"name\": \"workflow\",\n        \"description\": \"Use at the start of any feature, bug fix, refactor or backlog task in a repo that has .baton/config.json, or when unsure which baton skill applies.\",\n        \"files\": {\n          \"skills/workflow/SKILL.md\": \"d3fda8df36bf8cdc529cfc6ebe724cf7dd2f38e85c955405ab0c93a6ef550269\"\n        }\n      }\n    ],\n    \"hooks\": [\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"1e5839aaf592ef1689eb795ae3504ccb8529bdd2f0bd6272f6bc90f9e67a2ee7\",\n        \"event\": \"SessionStart\",\n        \"matcher\": \"startup|clear|compact\",\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"cd \\\"${CLAUDE_PROJECT_DIR:-.}\\\" && node \\\"${CLAUDE_PLUGIN_ROOT}/cli/baton.mjs\\\" context\",\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"1e5839aaf592ef1689eb795ae3504ccb8529bdd2f0bd6272f6bc90f9e67a2ee7\",\n        \"event\": \"PreToolUse\",\n        \"matcher\": \"Edit|Write|MultiEdit\",\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"node \\\"${CLAUDE_PLUGIN_ROOT}/hooks/fact-gate.mjs\\\"\",\n          \"timeout\": 5\n        },\n        \"executed\": false\n      }\n    ],\n    \"executions\": []\n  }\n}"
  },
  "review_input": {
    "identity_artifact": "identity.json",
    "evidence_sha256": {
      "LOCK.json": "ab4ad8426702c20c29f8ac0fb7ddd411bfa2cdf37865ae437c6297abd5b9d48c",
      "commands.json": "e44c5494896f49e5272ab202bcc2aa0f5ac4748ce2554635d2ccd56d0da779d3",
      "complete.json": "91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f",
      "identity.json": "0fcfbbe6cdda317706e5a7bf3a8ecb0c061f68e4de250f219a3db5d14608e111",
      "listing.json": "74a4a514b13bc359d8c2327734a55afc7955ce14d96a895617eb54af4b6c6f5f",
      "selection.json": "89ab5d87bcf528e810a673ae3820eac536de81cb2b88e37850c7ca447ca32128"
    },
    "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 13 skill declarations. Ran 81 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 skill names (listing.json): writing-skills; backlog; debug; implement; init; integrate; parallel; plan; retro; review; spec; verify; workflow",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      }
    ]
  },
  "review": {
    "kind": "machine-checked",
    "date": "2026-10-23",
    "reviewed_sha256": "3e1d759633f385532a7c310933b8320cd3d0ce5dc276930a5f57e51fbf5a474f",
    "gates": "773c72baae5668093065ab8b7f815cfcd8508eda3e4cccbde42de8cd012a6e76",
    "codex": "8f44275cb530ec2eb691d63e2f6975b7fa8fa6b0aece0fdff1024a43bb4a5a4c",
    "grok": "3fb9bb396a11abfe2f99e02d0e7aa6a5db84d79ae8fd29374356f47355c2b1e6",
    "summary": "Deterministic gates passed; every claim rebuilt from evidence with a reviewed template; Grok reported no standing refutation."
  }
}
