{
  "name": "crsmithdev/aleph — 18 skills",
  "slug": "source-skills-8d15f4bca4630732975e3ef9",
  "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 18 skill declarations. Ran 153 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): codebase-design; diagnosing-bugs; docs-writing; domain-modeling; grill-me; grill-with-docs; handoff; humanizer; improve-codebase-architecture; pickup; prior-art; red-team; retro; tdd; tidy; to-spec; vault; writing-for-agents"
  ],
  "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/crsmithdev/aleph",
  "documentation_url": "https://github.com/crsmithdev/aleph",
  "commit": "7438807632aca0763a44aaefb54bd1acec9b6776",
  "tree_sha256": "0ac988c82966656879d8a83b572dfee4d7ad35cd6b447da75805078041313bc1",
  "file_sha256": {
    ".claude-plugin/plugin.json": "64bf7440d000a44dad70cb5c5398b4476ddb16ec83b067e2a4a947b5a77cffa2",
    ".env.example": "88d6b197f1726a55d648a31e02f53d3d081b4f180d702cd17a93aaf5b606937c",
    ".github/workflows/ci.yml": "b23ae531b44bc5f44e3cd0a1d34c43e96a2a3cf068343e37688786db5b1ba9c2",
    ".gitignore": "c3c910084ab5167a6f25752e2128085a2b84f8243eb73a7c32dc1d582c89b513",
    "README.md": "5cb2a91a6a5f1668c954d841ac618e3405220a94bde2bfc014b1eefad7d92db8",
    "bin/aleph": "ff20f01458919a85f420ba5292eb6b26075a22b41106cdfab64718067141a484",
    "bun.lock": "fae3972e9ef3a017fa9e321893a0a2db06805ebcd484c6278dba695466ffe5e0",
    "compose/README.md": "5a7a98379004c8cdaea25f4b0c0edf00b107b23f933add4c3a985d6f278b1e7f",
    "compose/langfuse.yml": "d226676c1ea813493b0ba03697db8f4e19f798b0b60a96183dfcf2e91dfc2d15",
    "docs/context-gate.md": "09dadf2252544fe87668ae1a12352b5d40a983b7465e657bcd954353c6da03c4",
    "docs/specs/2026-09-04-memory-vault.md": "1f102e28925f10e99b2398d4a4525d5bec30d83a3be6ecff9da9f7f4e88c16f9",
    "docs/specs/2026-09-24-agent-jobs-red-team.md": "340c88d491eefb4e1524aa317a116d53e9f1dfe1a2d98da38645db7361bc084d",
    "docs/specs/2026-09-24-agent-jobs.md": "07c068fca7a0a2384ce2e8169b8bc8f09476cf08777f4fa1377e387870eecbf8",
    "docs/specs/2026-09-24-vault-at-scale.md": "3cc870e8babc9f2f58362d8a68dadabc6b1bc42846564e24f20268b0f3619f97",
    "docs/specs/2026-09-24-vault-prune-and-fix.md": "d82da627f8e49c01e2e5760c2be653154bf0528227414b7ec9a8bebc89000ce5",
    "docs/specs/2026-09-30-agent-seats.md": "ac957f018bd45538a6d28cd1615dffa8e744aba5d9e045b43051d54421420e94",
    "docs/todo.md": "de52d4b77737c8d0d9f448367a177cd13a782a929ebf0b9c556bbb1ec04beb08",
    "docs/verify-gate.md": "13f62380791f75d4bd0580cb2ace5377c56d64515a873f85767b2b411f3adb98",
    "hooks/context-gate.test.ts": "ca0589b96c20169eb904af827933993fc0bcd76e49b3b0f7af064c098caa65a2",
    "hooks/context-gate.ts": "5dd5d30c8f9762ad7ab297778f90f0b8e117d1ea27bdbcb4fabf13bfa8301b82",
    "hooks/git-guard.ts": "3606e1488b46975cbf7adcbfcf8eb730e73d528b7415622f058612d86e04e243",
    "hooks/hooks.json": "ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6",
    "hooks/hooks.test.ts": "8b948b847fa3672ada3945ec0acfe2672349b224c5cee2476441220c54a5c27a",
    "hooks/lib/context.ts": "c09536537cb03536a82da4be6d186fd391552200ba1783921119ab6704a2793a",
    "hooks/lib/digest.ts": "5da8e9a47bf2332c2e8174def8cc88e68de3b9bd3fc190029c4c65a2027bb548",
    "hooks/lib/env.ts": "29c9f5e5c2fd0c3444c769c426b14864e08d6a41cca99bdd62297c56c5f972f5",
    "hooks/lib/handshake.ts": "9a4bac3d46e99ab2b86210866020990bba7c4932b43dcef1b76f0df050e0e963",
    "hooks/lib/judge.ts": "855f332c935379a534575d658f350944d63e44d791df9dfbb95002ddfea9b771",
    "hooks/lib/otlp.ts": "d3093b3591b424e7bb767d8e57946ddddb0a530416075b6f0dcba9c801252ba8",
    "hooks/lib/pricing.ts": "8cec38aea972be808ec9375702bb980b5acb23f841887785b4de745e2529d45f",
    "hooks/lib/rating.ts": "4125e6fea23d1eba077f7ca90cee2d57e862079ae836ae19706cf161967a81c7",
    "hooks/lib/scan.ts": "a7ec56d323ab0cfe49615e5299effe5cfd43294b693eb30c8a80b6aad929e7cd",
    "hooks/lib/snapshot.ts": "a0118897b027509cbce2134c01b8a3eeb9b425c3ee1708ae6d4798db703cc754",
    "hooks/obs.ts": "536b2b2ccd758fc480aaa607957a55d91f1e88eca8c5a2608c6f9ba012ee1911",
    "hooks/secret-scan.ts": "0c24315d32ef54eeb899e17be782e2eb421b56a9308119f2a413123db892fc85",
    "hooks/vault-context.ts": "5bdd3ae16bcff83208eef99e5cd57c07a2b6ea85a9270e4b47834d4e31fcf0db",
    "hooks/verify-gate.test.ts": "f197e7ec8cc04e0c008bdd44e7c12401b49f09575886ca4ca8349e326c265417",
    "hooks/verify-gate.ts": "9a66ed245127694863172b1767099cd3ff7748b9eafad93604f779c550855a1f",
    "identity/CLAUDE.md": "61c6b61f9046c81dd77e0d2c9548b956c49eb5f85eb3471522918094f264db16",
    "jobs/cli.test.ts": "8a877517e08ff454bebf635b0d04e5fa0bd58812d8adbdd43260250e5b964092",
    "jobs/cli.ts": "37f1ce4d20779be1e847a64903bd0f3334b3fe472be0b544c7811b1aec9f1bb7",
    "jobs/lib/git.ts": "3631f138d98b18f9601525a10a5ce53b5f6ab87b040300c696131271a799bd4a",
    "jobs/lib/ledger.ts": "4ecc27209a846d88e949dbe3c9a1190c782777196c549308fd09bc6ae5a59996",
    "jobs/lib/unit.ts": "dd29ec0f7c05edfb42e5a288980cbe1d388544b4a9742ce655a702486e1e43b1",
    "package.json": "15accfcf3970745230ec6fc4a1d5cf3b5de4540b27c8a6f17c411cab69a1c8c2",
    "skills/LICENSE-humanizer": "4ac4810254ab36d45419141aeb8e69bf50652cfafe5b2dab947d06d44e5cbf96",
    "skills/LICENSE-mattpocock": "0e7ac423bf2c6e223b7c5b156f8cf72da49d748e56a1641402c31f22ad07dbb5",
    "skills/LICENSE-mblode": "81ac64b19ea7ae7f9a8d197705df58f48ffca02c74fca13e565dedf4f7595b46",
    "skills/codebase-design/DEEPENING.md": "f3dd099ce99289bd213914d8ee3e2429b78309c3957ca4583f7659551b1d53c1",
    "skills/codebase-design/DESIGN-IT-TWICE.md": "8e740bf98446dbd4dfdc132ac4346d9a7eedaf93de6a495889171cf7f99f16bd",
    "skills/codebase-design/SKILL.md": "90f787548f9ca4e815d7615af5734fbceadbe2327776f429d8fda017e622efc0",
    "skills/diagnosing-bugs/SKILL.md": "a9c534fa643d6e8a9e295c3dc8b25e333596f2b3316705ce707b4200868a393f",
    "skills/diagnosing-bugs/scripts/hitl-loop.template.sh": "35103539fc36873eea36074769ad454f9379d6fc8b2dc0e26ce987fd3bfe5503",
    "skills/docs-writing/SKILL.md": "c0e3f85b874ff5f9f5c09423fb44bb6bdecf10a886a481bf74714ec36e098ba7",
    "skills/docs-writing/readme-template.md": "a7ac8ef1d3bdb3848b30fc57462b4d7903ba5594ae17b6403f319b531f21f310",
    "skills/docs-writing/rules/_sections.md": "6efd4a23cdce7fd7e8683b8976acc753d061c196b241c2dcceacc6bd695886a6",
    "skills/docs-writing/rules/_template.md": "df6315f9d818e5b06ffd6572a9ac7f571dbc574b7eac9d2ea0eecb4e57b77025",
    "skills/docs-writing/rules/clarity-defaults.md": "57761db10f267af61606b79b03d90201ae39fa4ff64473a62b0affe6fa23d55c",
    "skills/docs-writing/rules/clarity-no-latin.md": "eb7980e9c0d720911e80bfd0f41dbdcbe83aa6723b7aba26ad970c9615c768ee",
    "skills/docs-writing/rules/clarity-no-nominalizations.md": "306b8918f210a864c8cd96b41ab3969e001734b8cfb8c759de23bb6ebc59ee10",
    "skills/docs-writing/rules/clarity-one-idea-per-sentence.md": "e949a7f072791694bb56864de3e465862a2dffc5ade91269dafce2514311f533",
    "skills/docs-writing/rules/clarity-serial-comma.md": "e407f430f368ae612a1bfe785de4fdcf772ee12e921a390298ec1dfa3febe33d",
    "skills/docs-writing/rules/code-context-ratio.md": "5e3c45b228c3ba47c2ac8a5c1033d868957c3a2ffd5c6412c4bda883458e8f9d",
    "skills/docs-writing/rules/code-error-descriptions.md": "c9d4f7654413b74cb3952c67c7b4b7f68b9bc323a1211af79a6f4aabc9b5e284",
    "skills/docs-writing/rules/code-isolated-to-full.md": "a1923ee3b220c2c8c354982af3fbc27fa94066e3919c25c5e6529f3e1e3d22b7",
    "skills/docs-writing/rules/code-multiple-languages.md": "7ff6ba353f5cdeeb04fcb350d52a0e8a1be5c8735b1e242ca9d4f91251d49bdd",
    "skills/docs-writing/rules/code-named-functions.md": "9c9e00df19b66c97bafbf139faf08159bda510a5e4128bb0c3cc5116c6a96d4d",
    "skills/docs-writing/rules/code-placeholders.md": "62f5761088abf307d3550c0e2673963ae3f3d64b77996f0e1338b394c64d93bd",
    "skills/docs-writing/rules/code-realistic-example-names.md": "60de89e57b0c468dd7de5663525ae620bc7b6331cf4a6543757ef7425efa571a",
    "skills/docs-writing/rules/code-runnable-examples.md": "e17ef4dc105f0cf5bd384112e40db341f3f4cd1633c3b4cfeba9e4702faa6ff8",
    "skills/docs-writing/rules/format-bold-ui-code-font.md": "d29d9bb604d1635af9f374b34eb238c2a2dc6cf246f0b8e245a4784da8fcf4f4",
    "skills/docs-writing/rules/format-descriptive-links.md": "ab0172dbd1ff7051892ac905774dd741e618b8eefa5ddb4622085c09d92cb893",
    "skills/docs-writing/rules/format-image-alt-text.md": "35f8eccd7bcbe684653b95e3c37136615516919d10133208de58e2af17ccdb77",
    "skills/docs-writing/rules/format-lowercase-filenames.md": "150de61205f486a2065d9c4ce2a45d141dff51f1f5f358516d737d2620203518",
    "skills/docs-writing/rules/format-periods-inside-quotes.md": "54dab8d34cb67c7a5408d7078e576d1e00c0e9b3faebaa2b9f96ba4c9cade407",
    "skills/docs-writing/rules/format-semantic-html.md": "d7ec3af4b18767f912dcc9ae13626cfec48c62e69e1f35e45c8b18d4ec313027",
    "skills/docs-writing/rules/format-sentence-case.md": "acd89afe64a1ae91f981d6b6a9dda39d34cb3154501eb71af842418779235c90",
    "skills/docs-writing/rules/hygiene-delete-outdated.md": "6f5e888937cd4a487fb109ba8947b83c613cfdd6857763f439faf64dc3e2bb9f",
    "skills/docs-writing/rules/hygiene-docs-directory.md": "f80b3edad1736db2bb7e1e68fbbee34508761386999a752a4278aac2a3c4d76a",
    "skills/docs-writing/rules/hygiene-experimental-label.md": "294b10e4c35e4e2a32c932ab6f121bb18478845c590f0cddbf226361bae78a81",
    "skills/docs-writing/rules/hygiene-no-temporal.md": "c3ece0473751bc2689f4670231fbdb288b551e1763a11d0af7eb960863438773",
    "skills/docs-writing/rules/hygiene-planned-label.md": "31cd7e5c85aa6dc78c38a30c5c23a9caf2a0ba5a93859fdad1d3f79d324cde5f",
    "skills/docs-writing/rules/hygiene-update-metadata.md": "190dfe45b7df9f3e14f361bab362169b0673cb19f1b26f47c9567271b39f3a69",
    "skills/docs-writing/rules/nav-agent-readable.md": "88e5a823e6cdf8db90dccd0ba16f8ce6986f62d6961527e999720b8c1c0ee2f0",
    "skills/docs-writing/rules/nav-breadcrumb-context.md": "966dbe9c4db524ddc71d3d1889968814dc8c3143a61a66cbe094e8a429b1a639",
    "skills/docs-writing/rules/nav-dont-repeat.md": "1e0a184caac6e3a5f1a93a860b4c833b4836441daed1589ab6fd8dc3a23fe260",
    "skills/docs-writing/rules/nav-every-doc-linked.md": "2577db14483f56f8e36a8a914be62dcfdac5bdb2bba84b5f47a96d1b751ffbb7",
    "skills/docs-writing/rules/nav-layer-depth.md": "adbf52d1eb35593d51d5aebfd96dd644aaa4dcf95ef7e5981c11b9a828a56eb7",
    "skills/docs-writing/rules/nav-relative-paths.md": "2c753fbe925c0b928dcb45f859ad8ae1f05c538c6bb38c19af5948a9c22cd418",
    "skills/docs-writing/rules/nav-searchable-headings.md": "32945af5597cff4fd29c405f525a9f23eabcc618ae678199105379b13bfdd468",
    "skills/docs-writing/rules/review-defaults.md": "2eff528f212e7ba3d29741d4dc3d8b918721fc120b547b29f0f7bff56ad3c34f",
    "skills/docs-writing/rules/review-docs-with-code.md": "5cb22648782852b2fd03035ecb9668b09a42ffaac9b6b136c27d532ca1ae42c9",
    "skills/docs-writing/rules/review-verify-links.md": "cb51c91744334127e043bfca615da43416f4913b41436f6f029a348b80a2873d",
    "skills/docs-writing/rules/scan-defaults.md": "13e1e8cd18d535793f7aa69fae6bb89a72220a4f683f077d04c8609193d64e21",
    "skills/docs-writing/rules/scan-three-column-api.md": "186550ef0a1390c3b48e518167c217b77c78e67cbf7d136fdf95b055a975a3dd",
    "skills/docs-writing/rules/structure-bluf.md": "5181658e74561f17440a58e8253b0204ece98cee5e99cb5388f656b05f4a00c3",
    "skills/docs-writing/rules/structure-conditions-first.md": "f59754071bc2aa3a256f76c78f26abd6fb5baac50503ad760b1c8400022642d0",
    "skills/docs-writing/rules/structure-diataxis.md": "625b663d4c252343dfb72f4b2594be934ab47d97a7d1ab6fe983c473ce1a660e",
    "skills/docs-writing/rules/structure-heading-overview.md": "304319ac65432d9936621ace42c140f157579f77016fbd1aa53a9d38358e8e15",
    "skills/docs-writing/rules/structure-next-steps.md": "dc52417b026d7ce0b1212abec9a27bfda48b87091e54240261f496e93ff58122",
    "skills/docs-writing/rules/structure-no-filler-sections.md": "19e74fbe82cd8396e835f59607e94b4c82059e534ea5e04d04b16a736683d5df",
    "skills/docs-writing/rules/structure-one-idea-per-section.md": "35780bdd304991c0ab1db96b30cc14fcfc8daa6a4a8cd118efc22a56dee6e725",
    "skills/docs-writing/rules/structure-procedures.md": "0ce741d75c79cca9769bf3a553f9093d423b89df64b88d7164e3f0760ad3d17a",
    "skills/docs-writing/rules/structure-quick-start.md": "3a6688fcead6217b6a0f55e55a65df7b1dcaf2cca8a46d7e4dc420a749419039",
    "skills/docs-writing/rules/voice-defaults.md": "f2515ab7a75283b311f7eadea5353c74581f207cd15515979e5aa4a53739d0c8",
    "skills/docs-writing/rules/voice-no-anthropomorphism.md": "13c4f7243a4cb2d4f88a595e65920863a8b0b652c7d9ebe69cde75e641eab991",
    "skills/docs-writing/rules/voice-no-jargon.md": "9e46c2fee9572877009052987cee9d970e6f7cb0e3c2699c4871f6f864b917f9",
    "skills/docs-writing/rules/voice-requirements-language.md": "2e7d5ba2d5ae3b69a7f77b18de6962f75aa5a2401326a47c2b81d4848b14a47f",
    "skills/domain-modeling/ADR-FORMAT.md": "0ac002b561af2da292997981549ff842c42f02a1a60cb4b02829168b5830cd40",
    "skills/domain-modeling/CONTEXT-FORMAT.md": "17ab16ce783e4d2801ee52fd9acdf550cbf44de65ae76797a93943bbedf22a13",
    "skills/domain-modeling/SKILL.md": "bc88fc8cc9b266c902371cb48735c905bd61ac4ccef3a444377d169f94bd2e96",
    "skills/grill-me/SKILL.md": "da38c2ea65d2c78d12e2391792b0fb0971a4435eefa5bb9636564f8495cd007f",
    "skills/grill-with-docs/SKILL.md": "5d0e07e431c7b9fcea718ab4e5560e4fd0e89a65e17ebb37177b06ae65dae72e",
    "skills/handoff/SKILL.md": "58cffe7806a1b1e03b77b4eb3ea0a3e071211a147d82554a5d41402fcc4455ec",
    "skills/humanizer/SKILL.md": "300e6b1ad4e546b2120b72b13667f64426f3266cf369b69bb8da6876f7f8f03d",
    "skills/improve-codebase-architecture/HTML-REPORT.md": "581e8bb5a521e46bbda8ca7e19b15948bed882187108092ebb90c62513b77528",
    "skills/improve-codebase-architecture/SKILL.md": "ce1b79bfe1054aa7eff4107d294d4d6f833443693b70d2171ce9cbe813f7efb9",
    "skills/pickup/SKILL.md": "70cfb8ebf1837c1813cd59129b25325cae69ac7a2ea7a76bfc49e8a2256314ef",
    "skills/prior-art/SKILL.md": "23742c5c21ace272b8efb13b53c158802e2bc9c22916aedcb02d7550a8b2c9e7",
    "skills/red-team/SKILL.md": "ea9cbd2248e949af1c5fae2c1b5287fe1ec3db5045e1127a269da6fabf78aabf",
    "skills/retro/SKILL.md": "cb41c2e3fcafed8c9ace2447c5de136b19448d418cb32a18960ee8387376128c",
    "skills/tdd/SKILL.md": "2429a772aaca05d0deb97b44f8ea0bbd4c910bf2c95e371b7dad2024f43764bc",
    "skills/tdd/mocking.md": "3ceb807fdf4a47d6a93d4d9a891e5ba6d362a6247bd08adc451feebfc17361ef",
    "skills/tdd/tests.md": "859f9e592c188fda4fc7277dd180e4ce9c7a2e13f6efe1f6f29eccc9d28c106a",
    "skills/tidy/DETECTORS.md": "2b33d5307486197b19f7c7a5316c67ad3bb4aa6ed697b1ee988746e0aa6705ee",
    "skills/tidy/POLISH.md": "a3a06648f5901a7ef209b8fe1404f455d9cf113ddf6269b503aa6c053edef350",
    "skills/tidy/PROVE.md": "845f8a9b8260921526d880bb6d87111c5abe0236923c2e8a6934b0c69235dce3",
    "skills/tidy/SKILL.md": "39a9cd4d2c3d3069de4daaab2e96bb670cff84854870749c95ed10b6b199fb0c",
    "skills/to-spec/SKILL.md": "ab3c58168defae74e120c709da40e48fc6c32a1b4b767da959a5fe072336d335",
    "skills/vault/MAINTAIN.md": "14b255b9e0b11e53ba2740777c5fb1063a029abc7cfd7244a64215ca2fce383c",
    "skills/vault/SKILL.md": "09c67754186dabc604d4a0147ad5c9ec40486b166d87c0a39b8a6d7f9cedef7d",
    "skills/writing-for-agents/SKILL-MECHANICS.md": "47fc9a063c58e2359d224982b9040a0e4bd4c563d320ab86ffffd26fa643e974",
    "skills/writing-for-agents/SKILL.md": "7f4b9ba8168f46abee614e1e26127a7968f0150d86cbe60e8a06f9fe4a338c4e",
    "tests/live/jobs.test.ts": "2652f76abe6abd1bf1908bb8658c026bef74fc5834169d272175a94d4ab2dd8e",
    "tests/live/judge.test.ts": "b808310f39184f1e414a77788a5dd2d08c2bc51794d0fe0967fed8be7c64f7fe",
    "tests/live/langfuse.test.ts": "4c889e42e57c2faa65b1c9225dd33fc54b65c310abb909ffeec46bc020794104",
    "tests/live/vault.test.ts": "70e1eadcabac0f0d4d2cda53ed3baee6ca7a656569f34479b11e2e3c150d8110",
    "todo/cli.test.ts": "0401f6f3dd184ab09b3a39ec9cef1f05cb5a9d83cbbda0289bb9355adfe770c1",
    "todo/lib/store.ts": "e4d168eeb1c67887158b78e0bd223ec110fc918422017e9258aa58fa9ae58914",
    "todo/lib/todo.ts": "b22710cddfacf5f0c085a22ef988649c0a51fd6c765ca0ee3f553d2f49a925b6",
    "tsconfig.json": "35107e8068354cf7cf7ee802e7b3a13af86bc827fe29452f7fa37238d9d7afd0",
    "vault/cli.test.ts": "7a59f627938874156fa6f227b252160e6f9e3954cb985f8103dad62756eccab1",
    "vault/cli.ts": "6d05c331b213169f9c607cf177e7a0818426f26e20a67438bedb784f13750203",
    "vault/lib/compile.ts": "875a67f82c561a7e3d44b72f1c11420813317e34c3f6dff03f50af15d1715290",
    "vault/lib/frontmatter.ts": "619c2fc315f6099c95f1946c99e49d1451f5b20767d7f4328510ed46d7fecc97",
    "vault/lib/git.ts": "68f72ecac8fbe577586967acac4089fd8715440384e3b2158a86335df8ac0081",
    "vault/lib/templates.ts": "8468692bd21331d629771e3a89107d5d9c286ad2d4c917018c5b618bb85c4505",
    "vault/lib/vault.ts": "324938045547d7e0b1b967d1ed92e5bea07ef1bccb290a08c4cc7b7642b9b5a4"
  },
  "lockfiles": [
    "LOCK.json"
  ],
  "utc_date": "2026-10-23T00:19:05Z",
  "source_date": "2026-10-22",
  "discovered_date": "2026-10-22",
  "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 153 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:19:05Z: pinned source inspection"
  ],
  "application": {
    "name": "crsmithdev/aleph — 18 skills",
    "softwareVersion": "7438807632aca0763a44aaefb54bd1acec9b6776",
    "applicationCategory": "DeveloperApplication",
    "operatingSystem": "Not exercised"
  },
  "artifacts": {
    "transcript": "Ran 153 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\": \"skills/codebase-design/SKILL.md\",\n        \"name\": \"codebase-design\",\n        \"description\": \"Deep modules: shared vocabulary for module interfaces and seams. Use when the user wants to design or improve a module's interface, decide where a seam goes, or make code more testable or AI-navigable.\\n\",\n        \"files\": {\n          \"skills/codebase-design/DEEPENING.md\": \"f3dd099ce99289bd213914d8ee3e2429b78309c3957ca4583f7659551b1d53c1\",\n          \"skills/codebase-design/DESIGN-IT-TWICE.md\": \"8e740bf98446dbd4dfdc132ac4346d9a7eedaf93de6a495889171cf7f99f16bd\",\n          \"skills/codebase-design/SKILL.md\": \"90f787548f9ca4e815d7615af5734fbceadbe2327776f429d8fda017e622efc0\"\n        }\n      },\n      {\n        \"path\": \"skills/diagnosing-bugs/SKILL.md\",\n        \"name\": \"diagnosing-bugs\",\n        \"description\": \"Diagnosis loop for hard bugs and performance regressions. Use when the user says \\\"diagnose\\\"/\\\"debug this\\\", or reports something broken/throwing/failing/slow.\",\n        \"files\": {\n          \"skills/diagnosing-bugs/SKILL.md\": \"a9c534fa643d6e8a9e295c3dc8b25e333596f2b3316705ce707b4200868a393f\",\n          \"skills/diagnosing-bugs/scripts/hitl-loop.template.sh\": \"35103539fc36873eea36074769ad454f9379d6fc8b2dc0e26ce987fd3bfe5503\"\n        }\n      },\n      {\n        \"path\": \"skills/docs-writing/SKILL.md\",\n        \"name\": \"docs-writing\",\n        \"description\": \"Writes and audits technical docs with Diataxis type gating and runnable examples. Use when the user asks to review, audit or write docs, an API reference, a how-to, or a README. NOT for: AGENTS.md, CLAUDE.md or skills (use /aleph:writing-for-agents).\\n\",\n        \"files\": {\n          \"skills/docs-writing/SKILL.md\": \"c0e3f85b874ff5f9f5c09423fb44bb6bdecf10a886a481bf74714ec36e098ba7\",\n          \"skills/docs-writing/readme-template.md\": \"a7ac8ef1d3bdb3848b30fc57462b4d7903ba5594ae17b6403f319b531f21f310\",\n          \"skills/docs-writing/rules/_sections.md\": \"6efd4a23cdce7fd7e8683b8976acc753d061c196b241c2dcceacc6bd695886a6\",\n          \"skills/docs-writing/rules/_template.md\": \"df6315f9d818e5b06ffd6572a9ac7f571dbc574b7eac9d2ea0eecb4e57b77025\",\n          \"skills/docs-writing/rules/clarity-defaults.md\": \"57761db10f267af61606b79b03d90201ae39fa4ff64473a62b0affe6fa23d55c\",\n          \"skills/docs-writing/rules/clarity-no-latin.md\": \"eb7980e9c0d720911e80bfd0f41dbdcbe83aa6723b7aba26ad970c9615c768ee\",\n          \"skills/docs-writing/rules/clarity-no-nominalizations.md\": \"306b8918f210a864c8cd96b41ab3969e001734b8cfb8c759de23bb6ebc59ee10\",\n          \"skills/docs-writing/rules/clarity-one-idea-per-sentence.md\": \"e949a7f072791694bb56864de3e465862a2dffc5ade91269dafce2514311f533\",\n          \"skills/docs-writing/rules/clarity-serial-comma.md\": \"e407f430f368ae612a1bfe785de4fdcf772ee12e921a390298ec1dfa3febe33d\",\n          \"skills/docs-writing/rules/code-context-ratio.md\": \"5e3c45b228c3ba47c2ac8a5c1033d868957c3a2ffd5c6412c4bda883458e8f9d\",\n          \"skills/docs-writing/rules/code-error-descriptions.md\": \"c9d4f7654413b74cb3952c67c7b4b7f68b9bc323a1211af79a6f4aabc9b5e284\",\n          \"skills/docs-writing/rules/code-isolated-to-full.md\": \"a1923ee3b220c2c8c354982af3fbc27fa94066e3919c25c5e6529f3e1e3d22b7\",\n          \"skills/docs-writing/rules/code-multiple-languages.md\": \"7ff6ba353f5cdeeb04fcb350d52a0e8a1be5c8735b1e242ca9d4f91251d49bdd\",\n          \"skills/docs-writing/rules/code-named-functions.md\": \"9c9e00df19b66c97bafbf139faf08159bda510a5e4128bb0c3cc5116c6a96d4d\",\n          \"skills/docs-writing/rules/code-placeholders.md\": \"62f5761088abf307d3550c0e2673963ae3f3d64b77996f0e1338b394c64d93bd\",\n          \"skills/docs-writing/rules/code-realistic-example-names.md\": \"60de89e57b0c468dd7de5663525ae620bc7b6331cf4a6543757ef7425efa571a\",\n          \"skills/docs-writing/rules/code-runnable-examples.md\": \"e17ef4dc105f0cf5bd384112e40db341f3f4cd1633c3b4cfeba9e4702faa6ff8\",\n          \"skills/docs-writing/rules/format-bold-ui-code-font.md\": \"d29d9bb604d1635af9f374b34eb238c2a2dc6cf246f0b8e245a4784da8fcf4f4\",\n          \"skills/docs-writing/rules/format-descriptive-links.md\": \"ab0172dbd1ff7051892ac905774dd741e618b8eefa5ddb4622085c09d92cb893\",\n          \"skills/docs-writing/rules/format-image-alt-text.md\": \"35f8eccd7bcbe684653b95e3c37136615516919d10133208de58e2af17ccdb77\",\n          \"skills/docs-writing/rules/format-lowercase-filenames.md\": \"150de61205f486a2065d9c4ce2a45d141dff51f1f5f358516d737d2620203518\",\n          \"skills/docs-writing/rules/format-periods-inside-quotes.md\": \"54dab8d34cb67c7a5408d7078e576d1e00c0e9b3faebaa2b9f96ba4c9cade407\",\n          \"skills/docs-writing/rules/format-semantic-html.md\": \"d7ec3af4b18767f912dcc9ae13626cfec48c62e69e1f35e45c8b18d4ec313027\",\n          \"skills/docs-writing/rules/format-sentence-case.md\": \"acd89afe64a1ae91f981d6b6a9dda39d34cb3154501eb71af842418779235c90\",\n          \"skills/docs-writing/rules/hygiene-delete-outdated.md\": \"6f5e888937cd4a487fb109ba8947b83c613cfdd6857763f439faf64dc3e2bb9f\",\n          \"skills/docs-writing/rules/hygiene-docs-directory.md\": \"f80b3edad1736db2bb7e1e68fbbee34508761386999a752a4278aac2a3c4d76a\",\n          \"skills/docs-writing/rules/hygiene-experimental-label.md\": \"294b10e4c35e4e2a32c932ab6f121bb18478845c590f0cddbf226361bae78a81\",\n          \"skills/docs-writing/rules/hygiene-no-temporal.md\": \"c3ece0473751bc2689f4670231fbdb288b551e1763a11d0af7eb960863438773\",\n          \"skills/docs-writing/rules/hygiene-planned-label.md\": \"31cd7e5c85aa6dc78c38a30c5c23a9caf2a0ba5a93859fdad1d3f79d324cde5f\",\n          \"skills/docs-writing/rules/hygiene-update-metadata.md\": \"190dfe45b7df9f3e14f361bab362169b0673cb19f1b26f47c9567271b39f3a69\",\n          \"skills/docs-writing/rules/nav-agent-readable.md\": \"88e5a823e6cdf8db90dccd0ba16f8ce6986f62d6961527e999720b8c1c0ee2f0\",\n          \"skills/docs-writing/rules/nav-breadcrumb-context.md\": \"966dbe9c4db524ddc71d3d1889968814dc8c3143a61a66cbe094e8a429b1a639\",\n          \"skills/docs-writing/rules/nav-dont-repeat.md\": \"1e0a184caac6e3a5f1a93a860b4c833b4836441daed1589ab6fd8dc3a23fe260\",\n          \"skills/docs-writing/rules/nav-every-doc-linked.md\": \"2577db14483f56f8e36a8a914be62dcfdac5bdb2bba84b5f47a96d1b751ffbb7\",\n          \"skills/docs-writing/rules/nav-layer-depth.md\": \"adbf52d1eb35593d51d5aebfd96dd644aaa4dcf95ef7e5981c11b9a828a56eb7\",\n          \"skills/docs-writing/rules/nav-relative-paths.md\": \"2c753fbe925c0b928dcb45f859ad8ae1f05c538c6bb38c19af5948a9c22cd418\",\n          \"skills/docs-writing/rules/nav-searchable-headings.md\": \"32945af5597cff4fd29c405f525a9f23eabcc618ae678199105379b13bfdd468\",\n          \"skills/docs-writing/rules/review-defaults.md\": \"2eff528f212e7ba3d29741d4dc3d8b918721fc120b547b29f0f7bff56ad3c34f\",\n          \"skills/docs-writing/rules/review-docs-with-code.md\": \"5cb22648782852b2fd03035ecb9668b09a42ffaac9b6b136c27d532ca1ae42c9\",\n          \"skills/docs-writing/rules/review-verify-links.md\": \"cb51c91744334127e043bfca615da43416f4913b41436f6f029a348b80a2873d\",\n          \"skills/docs-writing/rules/scan-defaults.md\": \"13e1e8cd18d535793f7aa69fae6bb89a72220a4f683f077d04c8609193d64e21\",\n          \"skills/docs-writing/rules/scan-three-column-api.md\": \"186550ef0a1390c3b48e518167c217b77c78e67cbf7d136fdf95b055a975a3dd\",\n          \"skills/docs-writing/rules/structure-bluf.md\": \"5181658e74561f17440a58e8253b0204ece98cee5e99cb5388f656b05f4a00c3\",\n          \"skills/docs-writing/rules/structure-conditions-first.md\": \"f59754071bc2aa3a256f76c78f26abd6fb5baac50503ad760b1c8400022642d0\",\n          \"skills/docs-writing/rules/structure-diataxis.md\": \"625b663d4c252343dfb72f4b2594be934ab47d97a7d1ab6fe983c473ce1a660e\",\n          \"skills/docs-writing/rules/structure-heading-overview.md\": \"304319ac65432d9936621ace42c140f157579f77016fbd1aa53a9d38358e8e15\",\n          \"skills/docs-writing/rules/structure-next-steps.md\": \"dc52417b026d7ce0b1212abec9a27bfda48b87091e54240261f496e93ff58122\",\n          \"skills/docs-writing/rules/structure-no-filler-sections.md\": \"19e74fbe82cd8396e835f59607e94b4c82059e534ea5e04d04b16a736683d5df\",\n          \"skills/docs-writing/rules/structure-one-idea-per-section.md\": \"35780bdd304991c0ab1db96b30cc14fcfc8daa6a4a8cd118efc22a56dee6e725\",\n          \"skills/docs-writing/rules/structure-procedures.md\": \"0ce741d75c79cca9769bf3a553f9093d423b89df64b88d7164e3f0760ad3d17a\",\n          \"skills/docs-writing/rules/structure-quick-start.md\": \"3a6688fcead6217b6a0f55e55a65df7b1dcaf2cca8a46d7e4dc420a749419039\",\n          \"skills/docs-writing/rules/voice-defaults.md\": \"f2515ab7a75283b311f7eadea5353c74581f207cd15515979e5aa4a53739d0c8\",\n          \"skills/docs-writing/rules/voice-no-anthropomorphism.md\": \"13c4f7243a4cb2d4f88a595e65920863a8b0b652c7d9ebe69cde75e641eab991\",\n          \"skills/docs-writing/rules/voice-no-jargon.md\": \"9e46c2fee9572877009052987cee9d970e6f7cb0e3c2699c4871f6f864b917f9\",\n          \"skills/docs-writing/rules/voice-requirements-language.md\": \"2e7d5ba2d5ae3b69a7f77b18de6962f75aa5a2401326a47c2b81d4848b14a47f\"\n        }\n      },\n      {\n        \"path\": \"skills/domain-modeling/SKILL.md\",\n        \"name\": \"domain-modeling\",\n        \"description\": \"Domain model: change a project's glossary and decisions. Use when resolving a term, writing or editing CONTEXT.md, or recording or editing an ADR.\\n\",\n        \"files\": {\n          \"skills/domain-modeling/ADR-FORMAT.md\": \"0ac002b561af2da292997981549ff842c42f02a1a60cb4b02829168b5830cd40\",\n          \"skills/domain-modeling/CONTEXT-FORMAT.md\": \"17ab16ce783e4d2801ee52fd9acdf550cbf44de65ae76797a93943bbedf22a13\",\n          \"skills/domain-modeling/SKILL.md\": \"bc88fc8cc9b266c902371cb48735c905bd61ac4ccef3a444377d169f94bd2e96\"\n        }\n      },\n      {\n        \"path\": \"skills/grill-me/SKILL.md\",\n        \"name\": \"grill-me\",\n        \"description\": \"Grill the user about a plan, decision or idea until you reach shared understanding. Use when the user says \\\"grill me\\\" or \\\"interview me\\\", or wants a plan stress-tested in conversation. NOT for: general Q&A, ideas with no plan yet, implemented code (use /code-review), or review without the user in the loop (use /aleph:red-team).\\n\",\n        \"files\": {\n          \"skills/grill-me/SKILL.md\": \"da38c2ea65d2c78d12e2391792b0fb0971a4435eefa5bb9636564f8495cd007f\"\n        }\n      },\n      {\n        \"path\": \"skills/grill-with-docs/SKILL.md\",\n        \"name\": \"grill-with-docs\",\n        \"description\": \"Grill a plan and write CONTEXT.md and ADRs as terms and decisions settle.\\n\",\n        \"files\": {\n          \"skills/grill-with-docs/SKILL.md\": \"5d0e07e431c7b9fcea718ab4e5560e4fd0e89a65e17ebb37177b06ae65dae72e\"\n        }\n      },\n      {\n        \"path\": \"skills/handoff/SKILL.md\",\n        \"name\": \"handoff\",\n        \"description\": \"Save a session handoff so a fresh context can resume the work. Use when the user asks for a handoff, or when context is about to be cleared mid-task.\\n\",\n        \"files\": {\n          \"skills/handoff/SKILL.md\": \"58cffe7806a1b1e03b77b4eb3ea0a3e071211a147d82554a5d41402fcc4455ec\"\n        }\n      },\n      {\n        \"path\": \"skills/humanizer/SKILL.md\",\n        \"name\": \"humanizer\",\n        \"description\": \"Rewrite AI-sounding text so it reads like the writer without changing what it says.\\nUse when editing or reviewing prose for AI tells: not-X-but-Y contrasts, one-line\\nclosers, staged openers, forced triads, dashes everywhere, inflated claims, sales\\nlanguage, stock AI words, bold labels, or filler. Based on Wikipedia's \\\"Signs of AI writing.\\\"\\n\",\n        \"files\": {\n          \"skills/humanizer/SKILL.md\": \"300e6b1ad4e546b2120b72b13667f64426f3266cf369b69bb8da6876f7f8f03d\"\n        }\n      },\n      {\n        \"path\": \"skills/improve-codebase-architecture/SKILL.md\",\n        \"name\": \"improve-codebase-architecture\",\n        \"description\": \"Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.\",\n        \"files\": {\n          \"skills/improve-codebase-architecture/HTML-REPORT.md\": \"581e8bb5a521e46bbda8ca7e19b15948bed882187108092ebb90c62513b77528\",\n          \"skills/improve-codebase-architecture/SKILL.md\": \"ce1b79bfe1054aa7eff4107d294d4d6f833443693b70d2171ce9cbe813f7efb9\"\n        }\n      },\n      {\n        \"path\": \"skills/pickup/SKILL.md\",\n        \"name\": \"pickup\",\n        \"description\": \"Pick up a saved handoff in a fresh context. Use when the user asks to pick up or resume where they left off.\\n\",\n        \"files\": {\n          \"skills/pickup/SKILL.md\": \"70cfb8ebf1837c1813cd59129b25325cae69ac7a2ea7a76bfc49e8a2256314ef\"\n        }\n      },\n      {\n        \"path\": \"skills/prior-art/SKILL.md\",\n        \"name\": \"prior-art\",\n        \"description\": \"Prior art: survey the open-source projects that solve the same problem as a repo you own, and rank what to take or skip. Use when the user asks how their project compares to others, what else solves this, or what to steal from them. NOT for: market or pricing research; one repo with no anchor; stress-testing a plan (use /aleph:red-team).\\n\",\n        \"files\": {\n          \"skills/prior-art/SKILL.md\": \"23742c5c21ace272b8efb13b53c158802e2bc9c22916aedcb02d7550a8b2c9e7\"\n        }\n      },\n      {\n        \"path\": \"skills/red-team/SKILL.md\",\n        \"name\": \"red-team\",\n        \"description\": \"Red-team a plan, proposal, design doc or PR description: parallel subagents check it against the code and return a ranked list of flaws. Use when a plan needs stress-testing before commit, including your own. NOT for: interviewing the user (use /aleph:grill-me), implemented code (use /code-review), bugs (use /aleph:diagnosing-bugs).\\n\",\n        \"files\": {\n          \"skills/red-team/SKILL.md\": \"ea9cbd2248e949af1c5fae2c1b5287fe1ec3db5045e1127a269da6fabf78aabf\"\n        }\n      },\n      {\n        \"path\": \"skills/retro/SKILL.md\",\n        \"name\": \"retro\",\n        \"description\": \"Retrospective on a coding session: read its trace and transcript, propose fixes to the agent's environment (identity, skills, hooks, vault, tooling).\",\n        \"files\": {\n          \"skills/retro/SKILL.md\": \"cb41c2e3fcafed8c9ace2447c5de136b19448d418cb32a18960ee8387376128c\"\n        }\n      },\n      {\n        \"path\": \"skills/tdd/SKILL.md\",\n        \"name\": \"tdd\",\n        \"description\": \"Test-driven development: red before green, one vertical slice at a time. Use when the user wants to build a feature or fix a bug test-first, or wants integration tests.\\n\",\n        \"files\": {\n          \"skills/tdd/SKILL.md\": \"2429a772aaca05d0deb97b44f8ea0bbd4c910bf2c95e371b7dad2024f43764bc\",\n          \"skills/tdd/mocking.md\": \"3ceb807fdf4a47d6a93d4d9a891e5ba6d362a6247bd08adc451feebfc17361ef\",\n          \"skills/tdd/tests.md\": \"859f9e592c188fda4fc7277dd180e4ce9c7a2e13f6efe1f6f29eccc9d28c106a\"\n        }\n      },\n      {\n        \"path\": \"skills/tidy/SKILL.md\",\n        \"name\": \"tidy\",\n        \"description\": \"Tidy a repo: sweep the junk, prove dead code and delete it behind a green build, and gate it as ready to show. Modes: `sweep` (mechanical pass only), `polish` (the inspection gate). Use when the user asks to clean up a repo, find dead or unused code, files or dependencies, fix stray or misplaced files, or get a repo ready to show or open-source. NOT for improving code that should exist (use /aleph:improve-codebase-architecture).\\n\",\n        \"files\": {\n          \"skills/tidy/DETECTORS.md\": \"2b33d5307486197b19f7c7a5316c67ad3bb4aa6ed697b1ee988746e0aa6705ee\",\n          \"skills/tidy/POLISH.md\": \"a3a06648f5901a7ef209b8fe1404f455d9cf113ddf6269b503aa6c053edef350\",\n          \"skills/tidy/PROVE.md\": \"845f8a9b8260921526d880bb6d87111c5abe0236923c2e8a6934b0c69235dce3\",\n          \"skills/tidy/SKILL.md\": \"39a9cd4d2c3d3069de4daaab2e96bb670cff84854870749c95ed10b6b199fb0c\"\n        }\n      },\n      {\n        \"path\": \"skills/to-spec/SKILL.md\",\n        \"name\": \"to-spec\",\n        \"description\": \"Spec: turn the decisions already made in this conversation into a development spec file, typically after /aleph:grill-me. Use when the user asks to write the spec. NOT for: gathering requirements (use /aleph:grill-me) or breaking work into tickets.\\n\",\n        \"files\": {\n          \"skills/to-spec/SKILL.md\": \"ab3c58168defae74e120c709da40e48fc6c32a1b4b767da959a5fe072336d335\"\n        }\n      },\n      {\n        \"path\": \"skills/vault/SKILL.md\",\n        \"name\": \"vault\",\n        \"description\": \"Read and write the memory vault at ~/.aleph/vault. Use when the user asks to remember something or what we know about X; when you learn how something behaves, decide something or get corrected; or to run lint or compile.\\n\",\n        \"files\": {\n          \"skills/vault/MAINTAIN.md\": \"14b255b9e0b11e53ba2740777c5fb1063a029abc7cfd7244a64215ca2fce383c\",\n          \"skills/vault/SKILL.md\": \"09c67754186dabc604d4a0147ad5c9ec40486b166d87c0a39b8a6d7f9cedef7d\"\n        }\n      },\n      {\n        \"path\": \"skills/writing-for-agents/SKILL.md\",\n        \"name\": \"writing-for-agents\",\n        \"description\": \"Writing for agents: skills, AGENTS.md or CLAUDE.md, and any doc an agent reaches by a pointer. Use when creating, editing or auditing one.\\n\",\n        \"files\": {\n          \"skills/writing-for-agents/SKILL-MECHANICS.md\": \"47fc9a063c58e2359d224982b9040a0e4bd4c563d320ab86ffffd26fa643e974\",\n          \"skills/writing-for-agents/SKILL.md\": \"7f4b9ba8168f46abee614e1e26127a7968f0150d86cbe60e8a06f9fe4a338c4e\"\n        }\n      }\n    ],\n    \"hooks\": [\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"SessionStart\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"SessionStart\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/vault-context.ts\"\n          ],\n          \"timeout\": 10,\n          \"statusMessage\": \"vault\"\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"UserPromptSubmit\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"UserPromptSubmit\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/verify-gate.ts\"\n          ],\n          \"timeout\": 10,\n          \"statusMessage\": \"verify gate\"\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"PreToolUse\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"PreToolUse\",\n        \"matcher\": \"Edit|Write\",\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/git-guard.ts\"\n          ],\n          \"timeout\": 10,\n          \"statusMessage\": \"git-guard\"\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"PreToolUse\",\n        \"matcher\": \"Bash\",\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/secret-scan.ts\"\n          ],\n          \"timeout\": 10,\n          \"statusMessage\": \"secret-scan\"\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"PostToolUse\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"PostToolUseFailure\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"PermissionDenied\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"Stop\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"timeout\": 5\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"Stop\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/verify-gate.ts\"\n          ],\n          \"timeout\": 45,\n          \"statusMessage\": \"verify gate\"\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"Stop\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/context-gate.ts\"\n          ],\n          \"timeout\": 10,\n          \"statusMessage\": \"context gate\"\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"StopFailure\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"timeout\": 5\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"SubagentStart\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"SubagentStop\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"PreCompact\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"PostCompact\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"async\": true,\n          \"timeout\": 10\n        },\n        \"executed\": false\n      },\n      {\n        \"path\": \"hooks/hooks.json\",\n        \"sha256\": \"ff86cfc47f867b03bb33ecaf7e5278c412831b43e43b431243551e608d501ba6\",\n        \"event\": \"SessionEnd\",\n        \"matcher\": null,\n        \"declaration\": {\n          \"type\": \"command\",\n          \"command\": \"bun\",\n          \"args\": [\n            \"${CLAUDE_PLUGIN_ROOT}/hooks/obs.ts\"\n          ],\n          \"timeout\": 5\n        },\n        \"executed\": false\n      }\n    ],\n    \"executions\": []\n  }\n}"
  },
  "review_input": {
    "identity_artifact": "identity.json",
    "evidence_sha256": {
      "LOCK.json": "19535374dce73aa459b21797147dee037f9e17a0576264a0c3da42422ec6b11b",
      "commands.json": "0320020c04a183e3c42e5bce06dac72648c335336f9a1d5da8d8c59c1f11d5be",
      "complete.json": "91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f",
      "identity.json": "0013e9669f49f3fb719997143dd367298d534d809950db8c1c6fb2f052b3368c",
      "listing.json": "e8c95b88717a7ecb76c19ada7bdff0aad749a67d4b51fe6531e1c554bc879346",
      "selection.json": "43f140a69eebb60d0331a1bad3b009d4bf03a6371565a788e20ac1d52c756405"
    },
    "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 18 skill declarations. Ran 153 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): codebase-design; diagnosing-bugs; docs-writing; domain-modeling; grill-me; grill-with-docs; handoff; humanizer; improve-codebase-architecture; pickup; prior-art; red-team; retro; tdd; tidy; to-spec; vault; writing-for-agents",
        "sources": [
          "LOCK.json",
          "listing.json",
          "commands.json"
        ]
      }
    ]
  },
  "review": {
    "kind": "machine-checked",
    "date": "2026-10-23",
    "reviewed_sha256": "1dc2b5430531edf323626164f05e07ddaf9b73b7278d62bdf4d733e66e45a41e",
    "gates": "c7af2796a83543f0fcdc8454fac28a94db899a83ba1464db5f6637f15b794c7b",
    "codex": "faeea23276bd4f458d480edddadbb29d52020962025fe85b6eb07124ce6e8d48",
    "grok": "276be13ea04e69518eada8307486862fa24f560ef5cef81c5f32a80a93fecd9d",
    "summary": "Deterministic gates passed; every claim rebuilt from evidence with a reviewed template; Grok reported no standing refutation."
  }
}
