chris-peterson/shipshape — 2 hooks

Pinned source listing — machine-checked

What declarations and files are present in this pinned source?

Pinned source declarations and file hashes were listed.

Review

Machine-checked ·

Run UTC
Reviewed
Published
Updated

Observations · Limitations · Evidence

What we ran

Git blob acquisition followed by static source inspection.

What we saw

Listed 2 hook declarations. Ran 60 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.

Limits

Scope: acquisition and static inspection. Command results: commands.json.

developer-tools · hooks · Upstream source · Upstream documentation

Pinned source inspection only; no runtime platform was exercised. UTC 2026-10-22T12:15:47Z, tree b446489b5d827a1a7c779e4009aaf8683878a5a1ab708ac698a3532bbf17ec9a.

No browser or computer-use tools. Pin this exact version; the stamp does not follow updates.

Full record
name
chris-peterson/shipshape — 2 hooks
slug
source-hooks-e97d486203fa22384c454aa2
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 2 hook declarations. Ran 60 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): SessionStart; SessionStart"]
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/chris-peterson/shipshape
documentation url
https://github.com/chris-peterson/shipshape
commit
af47e046ec49ad528f5dc4dc1a53eda1801fdf76
tree sha256
b446489b5d827a1a7c779e4009aaf8683878a5a1ab708ac698a3532bbf17ec9a
file sha256
{".claude-plugin/plugin.json":"b6eef6e53a1fffe1e1bf7c7a27094481ca43609e8df75f4ffd07ff2ffe0bb7ac",".github/workflows/deploy-docs.yml":"924d77150946b0ba6b6caa443fa23fe55dd0308c800715560d1ebe6a3a5775f7",".github/workflows/project.yml":"a19fdae4d7311ee2d81a32f4f691dd4f39da444b9bc0084f274fbfc5a5b72917",".github/workflows/release.yml":"f6d88f1cdc50cc1498c0d25c9f6b9968023beb27344c14fc5bf421271e0e513a",".github/workflows/test.yml":"a5f525d0e971e96053cfdcf477fa42a7949a4cb35d3acfdd0adff9404add211a",".gitignore":"f32ee837e2a91cdfb13c03011633edd3037d987e2863102199fb2b9b96337fb2","AGENTS.md":"ca485e7a2b57ca0362b6a6ff0ffb5ba1e60390434665f605face91717cd995b1","CHANGELOG.md":"37bf597fbb90e1f0c06d3369c74773bd27ca0aee8121c88a46352758d96ffa64","CLAUDE.md":"442dae8e1066c181c2e105b7d42a824725169c28f5712e275090444e5cfc485e","LICENSE":"8e909d09374b4e0a15c65a9fef2715fb5f8ca1e625786387ab4aa4f73ae8439e","README.md":"02b8b67b032866b257e63c7a59b2fc8829cabb2191fe10172f7db2f0a824c4c4","SPEC.md":"77f3548de85c76604f2edaab7b18f6695283ded19e7cb323df934d9e49bb03b5","STATUS.md":"e992eb0c87caad0072a37bc1ae32f874d343ee279e7e1920c36d906be595bcd4","docs/README.md":"2b0397a23c2e8b8559e0a041b4f66127d5705a6c078d6167e92bf1b6746efcea","docs/_sidebar.md":"f1c208a5c736662d31f1d974b07d35b5fbbbecb406f072e6cc591c5a60e3322a","docs/favicon.svg":"fff8f01d2df07e765f1e541dc4f0658f7fbe43a42954e0085e130e6dcc2c53d8","hooks/check-claude-code-version.sh":"e690fec2c54f746ce855366505255b0ceaa8e9334241d4a147df132b7a1b1eff","hooks/enforce-autoupdate.sh":"0b7a3b0af12b35751b72bcea4e7ab8d3f6a566c409f364bb77a65cafeacdb541","hooks/hooks.json":"05c0b68bd8c480db93ff3fb4b10ecc79aea69c97cc74fabfd84b64cf1ba12e09","hooks/hooks.yml":"d2205a4d5cd6523548bbac5dd3a696a5912fd98c8acb09de9c76497e0fde262c","justfile":"77e8d3e9ea39a4f829aed0a7e8f8fcd409400cf117c51cd6fda5ff7aa02848f6","plugin.yml":"6dab4262cec70d7bc1e6a3e0cd82836beac2259f89d0bce2f1108fccf496cb1f","scripts/guide-content.sh":"b4289608e3c910bd2f7c6e41bbc5f80abc3af06c062fd297bf75dedf72ed73dc","scripts/harness-guide.sh":"b78a6865c85b025c395526c69b17ddca3f343d22747895635d5a5b7017c35bdf","scripts/maintenance-lock.sh":"0ae80e0815c5698160e72f81d6e2552e4e39171207a0b4f9141e653d147a1352","scripts/offer-guard.sh":"71c676172f042bd4205a6e96b66dff490e68938a955d0d3a527241e1da8e4c89","scripts/offer-phrases.txt":"946d1cf0835628da387940c91499126459d61391563e47b324b7ab275e93d5d8","scripts/platform.sh":"9c2000cd756a3e72d0a2764f0ad5243756a64895704c8287d0aae3a737fe308f","scripts/plugin-cache-in-use.sh":"3fda4a715e3b4c6ed2e12e84af3ffb4aff7de1e6cf7869fde55764ccc157d79d","scripts/plugin-cache-prune.sh":"c651ddfd619af09c0290e3f2cdf9cbe9c4728662a2625cbc1d91b82648d9229f","scripts/plugin-cache-scan.sh":"fff79b3596d067bb487717f8067b74959e77a791dccc5592bc557fd73ca58de7","scripts/plugin-data-dir.sh":"27df4201d896d69f25525cce2976cfa694c090d1719124e32f6299859158a006","scripts/plugin-unmanaged.sh":"99a0bbf231bb3b6100c5f8c98f14e8114b7e6b2c8abce061d0fff3383889216c","scripts/tests/check-claude-code-version.test.sh":"8be9030fd72cde2a6cd47e7aafdea8457957e7d73281eb95cc7237e457cd69a2","scripts/tests/enforce-autoupdate.test.sh":"82842c49ab31aa189e2ce963790fc67f625d057b0354a86c18af38baddd25045","scripts/tests/first-run.test.sh":"b6842398390170818426b7a1024dd191184d228818b421a588e6e156bceb7b63","scripts/tests/harness-guide.test.sh":"db26bcc489eabe07695ba2ccee68f85b705819c509f32fdc62312b553a460331","scripts/tests/live-lease.sh":"e0b49fa23f95e020175c01bbe2ff2630a72425d724080c656c6b38f76e7df73a","scripts/tests/maintenance-lock.test.sh":"75dc5ecfb017b743f62f8bb304f982621176e1ebf31b7989b53930e5d3e2c118","scripts/tests/offer-guard.test.sh":"8d266f040c5af6ba296e21865be851b08d5d2cd4603818a5e3ccbd734a23cf20","scripts/tests/plugin-cache-in-use.test.sh":"7f974900053062300fe402ed13e6a6488a1d0bd129879eef0f106e3a49c88552","scripts/tests/plugin-cache-prune.test.sh":"2db1368eabba866ecb897211441db3ca557373dea322c22a98de44c7bd9a837e","scripts/tests/plugin-cache-scan.test.sh":"4d7ca15b9436640cc5b11cf31fcaa5de078e4b458245a3fe97b2a1f41013b7d4","scripts/tests/plugin-data-dir.test.sh":"19537793952885e4400cf6ba01d3ad2da7542d8472c8de39d3d990af6ee0ad62","scripts/tests/plugin-unmanaged.test.sh":"7049f2dd0aaef6ea40618b5b159904e6b84002a500eebffd8f8f7f510bb0e1a7","scripts/tests/version-scan-targets.test.sh":"ebfa3d8cc16f4b97c2d55d9868aa383a0d75becc8c2aec35e69667d19f79adba","scripts/version-scan-targets.sh":"0bf6b23673f6f9648fb6cdb76286718e6ef4a1d0d85a55d1adaaa1d1d2d0723f","skills/maintain-harness/SKILL.md":"be9ee48fe0eea86a74d56d579820a10c405f84a60d58084529702d9d991851d6","skills/maintain-harness/references/claude-code.md":"444ce99d6cfe46a766e8601cf72a8858393da55df2f562178126d71f5c54cac4","skills/maintain-harness/references/deep-scan-set.md":"60d79b4b521d0a8b23db6a70761645b552807a29e18c5e37d611a048d1a8ba49","skills/maintain-harness/references/default-guide.md":"e78ee3b599dc60a8dca809e9ab107849a5d4d04095d58a31089f7b462dc6ab1f","skills/maintain-harness/references/first-run.md":"b3bdcf02f32b27088f5ea86af73b92781b96a40c840307a9e3ac6cb481820830","skills/maintain-harness/references/guide.md":"64a1a1358873a760d30e0d246ac0a032c57b2fae63873a1acb1d5d5e70b2126f","skills/maintain-harness/references/output-format.md":"4d8d9f8d0a42f039a0c24a1ea7434ec541773ff987a96831e4b79cc1c01e5975","skills/maintain-harness/references/plugins.md":"d5e57001527044d93bc6980badc84bcb21d07bdc6ccc85a2949b066b3fff4406"}
lockfiles
["LOCK.json"]
utc date
2026-10-22T12:15:47Z
source date
2026-10-16
discovered date
2026-10-16
retested date
2026-10-22
reviewed date
2026-10-22
published date
2026-10-22
modified date
2026-10-22
reviewer
Machine-checked
harness version
toolwitness harness at commit 4b91f622fc862623dc2b1347f87cac9fa4b08bf9
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
[]
commands
["Ran 60 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-22T12:15:47Z: pinned source inspection"]
application
{"applicationCategory":"DeveloperApplication","name":"chris-peterson/shipshape — 2 hooks","operatingSystem":"Not exercised","softwareVersion":"af47e046ec49ad528f5dc4dc1a53eda1801fdf76"}
review input
{"claims":[{"field":"summary","id":"acquired","sources":["LOCK.json","listing.json","commands.json"],"text":"Pinned source declarations and file hashes were listed."},{"field":"outcome","id":"listed","sources":["LOCK.json","listing.json","commands.json"],"text":"Listed 2 hook declarations. Ran 60 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection."},{"field":"rule_results.0","id":"tree","sources":["LOCK.json","listing.json","commands.json"],"text":"The retained source tree matches its acquisition manifest."},{"field":"rule_results.1","id":"declared","sources":["LOCK.json","listing.json","commands.json"],"text":"Declared hook names (listing.json): SessionStart; SessionStart"}],"evidence_sha256":{"LOCK.json":"dde21e7efc48228a8d64546ee21db475a7af6369343146969f44977c011f38c1","commands.json":"9f6062414649a8e877e94f85fdb45fa5cbcf4bf1b6b51b803f539d3dc263ebe6","complete.json":"91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f","identity.json":"ae0ff685c091f917304096e976ad00fadf78686d9bc2840ae51ef84c7357eb72","listing.json":"c2803726e674b91a4e1c309040d163781bf525c9b1c283940953963cb2252d79","selection.json":"41766fd4a9c6175d70545cb5ea218f02b12fe89c6528308986313c43799abc62"},"identity_artifact":"identity.json"}
review
{"codex":"e0ddb168bb8bcb309ba44a5f67f1a1dc3eb0137e76c7a9bc65f79dfd29aa2ff6","date":"2026-10-22","gates":"5fc9fa68feb71701be523107c86b5cbe00e94a245bbd6f7dd32eba223465fe40","grok":"8a2050c0246d1ab3c4101d1ef4d8e722b1a83b43d71d7e2d50eec88cbfbf314f","kind":"machine-checked","reviewed_sha256":"6603be52f5809c5e621346ffd902b2d03ed77428b760270d3c22fa2c3ad84025","summary":"Deterministic gates passed; every claim rebuilt from evidence with a reviewed template; Grok reported no standing refutation."}

Downloadable evidence

transcript

Download complete transcript

Ran 60 git commands; each one's exit status and output hash is in commands.json. Scope: acquisition and static inspection.

sinkhole log

Download complete sinkhole log

Not applicable: static source inspection (commands.json).

canary log

Download complete canary log

Not applicable: static source inspection (commands.json).

scanner output

Download complete scanner output

Not applicable: static source inspection (commands.json).

normalized text

Download complete normalized text

{
  "listing": {
    "skills": [
      {
        "path": "skills/maintain-harness/SKILL.md",
        "name": "maintain-harness",
        "description": "Bring your Claude Code harness current: handle a Claude Code version change (what's new, the instructions you wrote for an upgrade, and acknowledging it, which clears shipshape's banner), then reconcile installed plugins against enabledPlugins (update, install/uninstall to match, prune stale caches and orphan data dirs). Use when Claude Code upgraded, when updating, reconciling, or cleaning up plugins, or to see or set the guide of steps that runs after each.",
        "files": {
          "skills/maintain-harness/SKILL.md": "be9ee48fe0eea86a74d56d579820a10c405f84a60d58084529702d9d991851d6",
          "skills/maintain-harness/references/claude-code.md": "444ce99d6cfe46a766e8601cf72a8858393da55df2f562178126d71f5c54cac4",
          "skills/maintain-harness/references/deep-scan-set.md": "60d79b4b521d0a8b23db6a70761645b552807a29e18c5e37d611a048d1a8ba49",
          "skills/maintain-harness/references/default-guide.md": "e78ee3b599dc60a8dca809e9ab107849a5d4d04095d58a31089f7b462dc6ab1f",
          "skills/maintain-harness/references/first-run.md": "b3bdcf02f32b27088f5ea86af73b92781b96a40c840307a9e3ac6cb481820830",
          "skills/maintain-harness/references/guide.md": "64a1a1358873a760d30e0d246ac0a032c57b2fae63873a1acb1d5d5e70b2126f",
          "skills/maintain-harness/references/output-format.md": "4d8d9f8d0a42f039a0c24a1ea7434ec541773ff987a96831e4b79cc1c01e5975",
          "skills/maintain-harness/references/plugins.md": "d5e57001527044d93bc6980badc84bcb21d07bdc6ccc85a2949b066b3fff4406"
        }
      }
    ],
    "hooks": [
      {
        "path": "hooks/hooks.json",
        "sha256": "05c0b68bd8c480db93ff3fb4b10ecc79aea69c97cc74fabfd84b64cf1ba12e09",
        "event": "SessionStart",
        "matcher": "*",
        "declaration": {
          "type": "command",
          "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/

Excerpt shown; complete evidence is in the download.

Download full record JSON

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.

Template placeholders refer to the snapshot metadata above.

Page updated