2naive/claude-telegram-topics — 5 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 5 hook declarations. Ran 68 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-23T03:22:29Z, tree 5b7d7d4be3fab4ff3227df60d1a4fd493b37051041c42bc663586ce99721e6da.

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

Full record
name
2naive/claude-telegram-topics — 5 hooks
slug
source-hooks-edd4fc9eb82da7424cf1e0de
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 5 hook declarations. Ran 68 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; Stop; Stop; StopFailure"]
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/2naive/claude-telegram-topics
documentation url
https://github.com/2naive/claude-telegram-topics
commit
0ebb85035122d3eea5b04efcecaf0473b894fe36
tree sha256
5b7d7d4be3fab4ff3227df60d1a4fd493b37051041c42bc663586ce99721e6da
file sha256
{".claude-plugin/marketplace.json":"ad007c7a4096194ca9c54a258b5d3085c1b3bd1c4cae42283a535f2f8446a4ef",".claude-plugin/plugin.json":"f333d6073fe0990685abe8c5ca61ec2320c7ff030d055842857c4b9eab4c420d",".gitignore":"6ae81277b84bebda9c86404ac7d790825d0a5cb1d9c50067e00379b0a9940699",".mcp.json":"0a3d8c91bb862666877adc201fe4750da0900bdb47348b796947268e3e9c0719","CHANGELOG.md":"e699c8c05b6452b4637e084dc33b58acd9f1f7290e386a9cf09158ac42e81045","LICENSE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","NOTICE":"33aa625b1ab42de8c44d6717d972ff0dadb4844938ead9980b9c953781397f6f","README.md":"a3be18e8c368c148840f88320535726943aa1cf54a746dafb86cebb55f3c3d34","bun.lock":"1310e6de9b424dfd511adc11165873434701af86a4966e770e7a44c004878781","bunfig.toml":"6bae0141f0d453055990aa7a13c22db1166a4b484da79bf6db9a6d7ef0e9ea6f","hooks/activity.ts":"5e0549bbdddc268e8e844139e7d2e5543d2dded6fc9b27dda02e3f903cc237ea","hooks/hooks.json":"8e893b8a7b4731156ccb186b1c8515be67e1de39296619568452d28a4100418c","hooks/mirror.ts":"3298b6072296058375d1e5426d13ada7ddb5422cb3eafe9d24bf4bc389af3a34","hooks/port.ts":"f978eaf3179aef10fd99731909e8e9ebeddf179372b2cd4563aabc589f42fe1d","package.json":"816b6bcb5ebd543aa9ef25b3370c61f3d132a6562e8d5dd9fb671913c0a3fff0","scripts/allowlist.ts":"53e00fc04aed854272343148ce9b338a9a977a6cf63f1886aaed377594259cbe","scripts/preflight.ts":"bafb2e46dcda9b1fdbe945115f7bd011d7e093fe3cdf8a6b3a5dd588cd3cb197","skills/access/SKILL.md":"aee41b3084fd6d79d828ca85283fc2034e4181bab305d74b196ae3b05f4990a0","skills/allowlist/SKILL.md":"9f612a7af072f43dc8e59710326bcd4ebb3204a53cd0890706730dc9fdd94246","skills/configure/SKILL.md":"1b590230a85d0d8d213ef7a928c9d5024b6c8512111961550147a058a29b5dc3","src/access.ts":"8d5d3a733759e894befa9da2abd45b94c827c40fcfc1cc79a0b5cb3b2e1726ea","src/allowlist.ts":"49e03feb889f9a472214ac96f2ba8d42d9333204dd53b3050a62727d97ccc28b","src/client.ts":"c031ee81ca4baab95c265ff3e707c5abb45073672bd7ca776890f5f9a196ccab","src/clientlog.ts":"ec27ec90730c774345aa68694c15e578dda9fcef4430212dd4e5301cc2e46f4b","src/config.ts":"366accff6c8972371b4076ef45fe40f4bfd4d24f5a06b9d088e00e8e0a0ca78d","src/format.ts":"ad29d86822fc90fba8388c11a82ef7ea45f499a36579e28eaf43bdb06c9b37df","src/held.ts":"0a6499525d447156873dc0ce8823751757c2946265385712d8029276606d2ba6","src/inbox.ts":"a226314ef2c3830d12f06b1c66b631669ec06c90e5b278a55dd474bddc695d7a","src/leader.ts":"bfe354da72214b03534f2da8773160d629feb3acf0e41ad345c7528fed62c8d3","src/log.ts":"9936f922bab4498f5735a9ff8b86cdb85bf3ba7406ab178de105d656ac5348b0","src/mirror.ts":"ea9af31eb708323bc82ad8c94c08f341d65e1cfaebc84637b889ef1ac4cfdcae","src/paths.ts":"985141fd301f623bb1371e0b32ebba8d3b5a709daefbe4deda56afda3be7ee58","src/pids.ts":"b2e30858a9e9c2cb79d257a2d46cfa63257116d60adcf734e5d6abed517f18e1","src/project.ts":"dac446a0b680e14452127b7b56e76057b5f2ce095077dc6acb840b7d25cf4338","src/projectkey.ts":"269e675a971501871e59b2f6aad0db976069f0e0738ed006846e2a1bee94ac10","src/ready.ts":"c2e5678f3ebbaa353afbed4be1f6072c5c6f6116c93bbbcfd99d35691fbd3bec","src/routing.ts":"e650eaf7ea9933cf04a033d5031b02a14ae078d53bea5cee97ddd66ce13a8e44","src/sent.ts":"1579e7ac1f0f963b1151528c51a770b7915354b05eb9040cb11fbac028268a55","src/server.ts":"c55d89ac86e81cdb1ca58a5716aab7bc67608af3d85ec9d9e60869c3119f9eec","src/spawn.ts":"5cc619318f89ca5295e515609a9643528ef7fe458aa1f65ad8f4dad5c1e621ad","src/tgretry.ts":"8d48bacdd5f535f1f2397c83616ea3c0f2f5ae225e3874cb457d7208104730f8","src/topics.ts":"81676dd5fadde724ac57d6024cd7d551bee5ec1aa7000e235982446554a1c514","src/transcript.ts":"f5adc195d332bb548e283df3bbfa933ad5280333723ae4a29ccb0a0d47e237fe","test/access.test.ts":"37f09bb7b0a6130a4f2fcd719b529bd62f0af2caaed57a3b9de9d804df05da0b","test/allowlist.test.ts":"64c5d50af93cc958803003876944c5d0e57401e7099c1a4e6cc1aba49f6cea7e","test/config.test.ts":"cb6b02c77d21e1d4e8a49ed40daa2257c5e35490b1bc6bf06bf0a6c1b331e6f6","test/format.test.ts":"4742f6e91a54bc180c34c5c85b5913516d75dc4eb789cf708d5ceffe1d7e0f49","test/held.test.ts":"9142765cf113c8042ee318347eac269b45b47026e7ac2ea9c3d236df65722057","test/hooks.test.ts":"e0681e94b3daab6433d39dbc207ea936df2b6a51bb2d9c5bbac8b0c66d784204","test/inbox.test.ts":"7d5f0a56d3bf9bf2bbb08b08b863f4699327c3c35f74a7aff82e3ee21248cf77","test/mirror.test.ts":"a334d3b21e531b45b4e6e250802a7c6da73056089cc7ce92da17a8d32c08b378","test/paths.test.ts":"fe2251161e68d12609ae053dc2d9a44a1818bdc4b0b01e538b39f8eba27880a7","test/pids.test.ts":"d64a426f00b703822564f38327d73066d5a36de3ff6eb024712b64075e6588b0","test/preload.ts":"c4a07c1fb0a541726e0bc612dd124c7bf397a76ac52589e8f1831316ceeef382","test/projectkey.test.ts":"832cadba1c671ba0a67ef0b7294facd7586cc7fb24c0f18bebd045ef5871ddbf","test/ready.test.ts":"a678933ada8b4f9127552e924e66db77e21a480f2223b8315ef01a8ecbe2e679","test/routing.test.ts":"87cdee1d459259cac1ae505ed8a8766718fadf3d16ca350df2c453269af40a87","test/sent.test.ts":"5e09029001be55a83c16af8bc77e3c3732971e9b3fcb9804094876fca2aa851d","test/spawn.test.ts":"fb936e3e925c1ea763fff0affa024b22a03ac5f49546a718244ac128f93b14ad","test/tgretry.test.ts":"79855fb2e29ab45841bd2e94b525329170bf2f7cd70f563f2dd25a97d45d153e","test/topics.test.ts":"cb805055772540d95f53f847856856549521dfa068cc2d81c7913eddd6281519","test/transcript.test.ts":"072489b328d66bc1804d82f9b23890642cdfa8b421176d52267f18ab65387cdb","tsconfig.json":"a0ddf88b0a56f3ecae8a8bb849c3d619238ca7fc6ebc3aa71176bf269c9d5e58"}
lockfiles
["LOCK.json"]
utc date
2026-10-23T03:22:29Z
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-checked
harness version
toolwitness harness at commit a83c164149f42882acdd8d2c9d37da6195aca107
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 68 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-23T03:22:29Z: pinned source inspection"]
application
{"applicationCategory":"DeveloperApplication","name":"2naive/claude-telegram-topics — 5 hooks","operatingSystem":"Not exercised","softwareVersion":"0ebb85035122d3eea5b04efcecaf0473b894fe36"}
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 5 hook declarations. Ran 68 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; Stop; Stop; StopFailure"}],"evidence_sha256":{"LOCK.json":"1f40c0ab03feab36c245149eb2d71bd55002d34d7bea58492b5409f38503e925","commands.json":"6edbced73e212f90e8048b3006ccb7b8daf5fbd7b2fb3a057766dadcfb20c6d2","complete.json":"91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f","identity.json":"61ffcf2bf38c8299e32597eb1cc430efbd15815c94e86b0997d91bd30ec32ecb","listing.json":"8224d73a8ec0a498f4ab63ce39bffc0a15c005e816dd675520ae365537db6483","selection.json":"95bc815f2c1e74e399f0c4f61578ab4273e73e3ed422ddd88544c62443070656"},"identity_artifact":"identity.json"}
review
{"codex":"118e36b77b9025b49b4a7961643458e9d3f38e6980b5bae9174164545ad59239","date":"2026-10-23","gates":"1d5b25238e38fc3c74ad4d819ee73089f4c3acdf94658d8d6160ec406f5c2e92","grok":"4c77bb09d26738668d3ce0e3e1d15b5a28f652cab6f40d9bba43e453248ec8d8","kind":"machine-checked","reviewed_sha256":"f99c9d2473ec487b8e83393024298e79340cf11985cb1a3ed53a4b88eea35714","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 68 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/access/SKILL.md",
        "name": "access",
        "description": "Manage who may drive telegram-topics sessions — view and edit the user allowlist. Use when the user asks to allow or remove a Telegram user, check who's allowed, or lock the channel down.",
        "files": {
          "skills/access/SKILL.md": "aee41b3084fd6d79d828ca85283fc2034e4181bab305d74b196ae3b05f4990a0"
        }
      },
      {
        "path": "skills/allowlist/SKILL.md",
        "name": "allowlist",
        "description": "Put this plugin on the Claude Code channels allowlist (managed settings) so `--channels` delivers inbound messages — one command, one admin prompt. Use when preflight reports NOT ALLOWLISTED, when Telegram messages never arrive in sessions although the send tools work, or when the user asks to set up the channels allowlist.",
        "files": {
          "skills/allowlist/SKILL.md": "9f612a7af072f43dc8e59710326bcd4ebb3204a53cd0890706730dc9fdd94246"
        }
      },
      {
        "path": "skills/configure/SKILL.md",
        "name": "configure",
        "description": "Set up the telegram-topics channel — save the bot token and forum group id, then run a preflight check. Use when the user pastes a Telegram bot token, asks to configure telegram-topics, asks \"how do I set this up\", or wants to check channel status.",
        "files": {
          "skills/configure/SKILL.md": "1b590230a85d0d8d213ef7a928c9d5024b6c8512111961550147a058a29b5dc3"
        }
      }
    ],
    "hooks": [
      {
        "path": "hooks/hooks.json",
        "sha256": "8e893b8a7b4731156ccb186b1c8515be67e1de39296619568452d28a4100418c",
        "event": "UserPromptSubmit",
        "matcher": null,
        "declaration": {
          "type": "command",
          "command": "bun \"${CLAUDE_PLUGIN_ROOT}/hooks/activity.ts\" start",
          "timeout": 15
        },
        "executed": false
      },
      {
        "path": "hooks/hooks.jso

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