chrisryugj/fable-ish — 6 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 6 hook declarations. Ran 30 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:50Z, tree c6c96154096bf1cef8921669d4311248173884a475e6e942978f4c6f650f25c5.

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

Full record
name
chrisryugj/fable-ish — 6 hooks
slug
source-hooks-a1ee288f7c7808661bb3fd47
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 6 hook declarations. Ran 30 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): UserPromptSubmit; PreToolUse; PermissionRequest; PostToolUse; PostToolUseFailure; Stop"]
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/chrisryugj/fable-ish
documentation url
https://github.com/chrisryugj/fable-ish
commit
b03a5fa479a3843df2ec07b4c1b665253474c346
tree sha256
c6c96154096bf1cef8921669d4311248173884a475e6e942978f4c6f650f25c5
file sha256
{".claude-plugin/marketplace.json":"065b745bd5fe600472e467a05830ef2494dd3e0effac979e8e1db52c66a9ff40",".claude-plugin/plugin.json":"2d6cb8b0ddebb4fb290dedeea179f275ef469b602670adefc20284f5b8ae0c09",".gitignore":"57d30df34ee55576b381f6e2fe06e2a405e306791ff72518bbd88afd665e377f","CHANGELOG.md":"2b42c745fb0430315d3332c56f8d5674205a4ef56b81ae42406b569db92d6a11","LICENSE":"d39c6aab0562dca40c4ce25bed9269e00faa818dbd645e96c2f20b4027c89f40","LICENSE-APACHE-2.0":"0c21bba57c408f1db622eec3c8d23966a2be08723f0e9070fe5494ed840fd72d","NOTICE":"9ae889867a3469bfa75bdeb3dbf3e8c93234f9499204db02f96587e1ca2964b4","README-EN.md":"65ae81b1f69d210abd94c040662eb95ad56fd716b4162d091cac626cf86ddf54","README.md":"2059930f568663beefc95abe23e2cca8688e45adbab243c7d2711abc9e75ae0a","examples/claude-permissions.example.json":"525f17222fd9416176ca184db9f82e8caf1ba2ab33d67bfef7a123ed8be5e1f6","hooks/hooks.json":"c3a9dbfb039239e4d087a4af652399ee2aae49af0d8fbf83878ee2c5b07cb787","hooks/permission_request.py":"89ca777c914c5fcaacdac39e25199fd053bfabda4d47d81ab1325d75ab0386c7","hooks/post_tool_use.py":"d438e2d5246d582c31739c68dea54511a62353fff437367a793e6226c075ee83","hooks/pre_tool_use.py":"1cd95622f39cf619be293789786d4bad42d1fab357653fc124cd7ac4264f9aa2","hooks/stop_gate.py":"65ea38a2dd1afcc969088cb26259ed35b46ad3c5d12fa50634830da4069dfd4d","hooks/user_prompt_submit.py":"f5b59029f4127bb23a41aa5a3a7cb20acf667d07ac4bcf396cbee8e0d3bda5f1","scripts/classify_task.py":"a7541145add91982db26ef53480f165be29468f825f125aab2dc9d1cc73a3aec","scripts/ledger.py":"20e04c0093589eb90fc4f727d5be74edb33ec17a85501bcb9c8fe7a824d0e890","scripts/parse_tool_result.py":"e8ee8fcb4b7b81cd9bdf7860b1e2b21f6fd81f0cb476fa285972df847060c01a","scripts/verify_state.py":"e7c2d904f9ee9f075bceeb7a6074949d53e43ea31e9f925d4d299fefb96fe23f","skills/fable-ish/SKILL.md":"e3d9743e3b63ce0e9ab038f7d509da9b06ff89c2b4f6b5d0839d8743d3cde0ba","skills/fable-ish/references/final-report.md":"c2081429dd9c7e1fdeccf13068236ca7d165f06918094601cfbfd7022e244e4a","skills/fable-ish/references/verification.md":"f65bd7ce9563efb926024df86ccbe984965b9b29891727fe9dffc4b6a7d3178b","skills/fable-ish/references/workflow.md":"d4e741cf4ee4cd8a7664ae30f2bac2dc594967886215a5b4f382c88c98a7ea51","tests/test_hooks.py":"ccff405306eed6d94132c1759c7f1fb12c32327f1d8538f3e98fa4d79f310ccf"}
lockfiles
["LOCK.json"]
utc date
2026-10-22T12:15:50Z
source date
2026-10-18
discovered date
2026-10-18
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 30 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:50Z: pinned source inspection"]
application
{"applicationCategory":"DeveloperApplication","name":"chrisryugj/fable-ish — 6 hooks","operatingSystem":"Not exercised","softwareVersion":"b03a5fa479a3843df2ec07b4c1b665253474c346"}
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 6 hook declarations. Ran 30 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): UserPromptSubmit; PreToolUse; PermissionRequest; PostToolUse; PostToolUseFailure; Stop"}],"evidence_sha256":{"LOCK.json":"7fb4fdd7f10be1dfa97cf0901cf5126da0ce879fda48c8101ff17f5d762865af","commands.json":"b97f7aece873385a6d609bca27b1e8c3164f501e2e0b679fb0c9d09b19d8ff47","complete.json":"91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f","identity.json":"93c7f177cf2720a8e2a76717d3c0338791649b7ea8d7522e8af43ee8d1446958","listing.json":"a11bd67c18280822c61f60bdfa4c07943b73653ee9a2bb19fa0451afdc643660","selection.json":"ccf828bfb228c7004d3f7277b8472bde4aebcf8265dc58fe96c05b4d28ca0b91"},"identity_artifact":"identity.json"}
review
{"codex":"64a4f01121900ad5491e00226fa2a763a5c7fa29d41c2d9114d35b3521f83159","date":"2026-10-22","gates":"d68b0893b84eadd24f0fcb4b283ba66ac6a984cdcdd5e11b530dc0403085eeea","grok":"1ab114567f56b810568aef465cddb0a77d60a4c761254734683ca21d29d7b2b7","kind":"machine-checked","reviewed_sha256":"abc673b58e71c80a89d335e8e0b311b24531e99893097aec2c0a869a7a995af3","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 30 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/fable-ish/SKILL.md",
        "name": "fable-ish",
        "description": "Apply fable-ish verification discipline to Claude Code coding tasks with risk-proportional workflow, review, and final reporting. Use for fable-ish requests, common typo fablish, complex implementation, debugging, refactoring, deployment preparation, or work where completion needs observable evidence. Do not use for simple explanations or quick low-risk answers unless explicitly requested.",
        "files": {
          "skills/fable-ish/SKILL.md": "e3d9743e3b63ce0e9ab038f7d509da9b06ff89c2b4f6b5d0839d8743d3cde0ba",
          "skills/fable-ish/references/final-report.md": "c2081429dd9c7e1fdeccf13068236ca7d165f06918094601cfbfd7022e244e4a",
          "skills/fable-ish/references/verification.md": "f65bd7ce9563efb926024df86ccbe984965b9b29891727fe9dffc4b6a7d3178b",
          "skills/fable-ish/references/workflow.md": "d4e741cf4ee4cd8a7664ae30f2bac2dc594967886215a5b4f382c88c98a7ea51"
        }
      }
    ],
    "hooks": [
      {
        "path": "hooks/hooks.json",
        "sha256": "c3a9dbfb039239e4d087a4af652399ee2aae49af0d8fbf83878ee2c5b07cb787",
        "event": "UserPromptSubmit",
        "matcher": null,
        "declaration": {
          "type": "command",
          "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/user_prompt_submit.py\"",
          "timeout": 10,
          "statusMessage": "Classifying fable-ish task"
        },
        "executed": false
      },
      {
        "path": "hooks/hooks.json",
        "sha256": "c3a9dbfb039239e4d087a4af652399ee2aae49af0d8fbf83878ee2c5b07cb787",
        "event": "PreToolUse",
        "matcher": "^(Bash|PowerShell|Edit|Write|MultiEdit|NotebookEdit)$",
        "declaration": {
          "type": "command",
          "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/pre_tool_use.py\"",
          "timeout": 10,
          "statusMessage": "Checking fable-ish guardrails"
        },
     

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