convex — 4 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 4 hook declarations. Ran 41 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-18T15:09:30Z, tree b4cafe2c0dfbbfcf1a9d8bd7a8ded2f805ce463711415bb9d67f59c2f65a4b2f.

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

Full record
name
convex — 4 hooks
slug
source-hooks-7c9d50cd1635428755978337
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 4 hook declarations. Ran 41 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; PreToolUse; 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/get-convex/convex-backend-skill.git
documentation url
https://github.com/get-convex/convex-backend-skill.git
commit
6ca54f6e2e7582812187b8a5a4783fb4dff52692
tree sha256
b4cafe2c0dfbbfcf1a9d8bd7a8ded2f805ce463711415bb9d67f59c2f65a4b2f
file sha256
{".claude-plugin/marketplace.json":"27f6a377b6bb205093c933d7b049cf2ee9538b41db4b4786dc3aec08a328d0ee",".claude-plugin/plugin.json":"c946d958a8a0322f25284daeb7fae8320ed8e2f98de9fb5deb298aaacc685fd3",".github/workflows/validate.yml":"e475e335302e7b7bb34b1479b97149305576a42c99dcf75e5109d968f9c880ae",".mcp.json":"ec96ee98acca29c3258649c420e581759191839e2e8b2929f3c9e35c768c3ac2","README.md":"fc0621a17005d21bc5b48dcdb95b91b0219b2013664d59b2670cafc0cedd37d0","agents/convex-expert.md":"2252802afee88db8c82f76e3bcac911f1b3ce52694c8db01b1db78f88da67318","agents/convex-reviewer.md":"f3fa5672d51e297962a4aae4e65e155d73ba5ee260cc90da6661d241e3076bed","commands/quickstart.md":"35ef4cd352988a913a4af39956fe71e21ca78a413fb69bfcdbce0fd8080ba21b","hooks/analytics.mjs":"b19a4a30291909dd43dd3ae64d7d5f242be51a3b499db58d29780ec95d9395f3","hooks/convex-freshness.mjs":"095123d53d7a8ab34a643b4e411731bd0f436995e28734e26a98b73e68321ee9","hooks/convex-lint.mjs":"b1d8ea04c2565290d2d25903c42700e728ef452fc651a76870367b77d512bcb6","hooks/convex-lint.test.mjs":"3be4537cac483306be7fd6ad3ebbed3136ca5a4db266dcd500030c10d86b9e9c","hooks/convex-typecheck.mjs":"a6e6ffeceab6fba622a0cb30d7713bc700363b06af96db52dcb3c7f253d752c3","hooks/convex-typecheck.test.mjs":"254228b0eb4a28b0b0e44bfee144638325a25f29a36bc76e0a770d8236485205","hooks/hooks.json":"c99e2d9a8b52620b1513ef36949d1c63c0a734d498fb6c93a4cc3ec190fb893b","hooks/session-start.mjs":"34b23eca7303a4119d6999cc63d35dc7e2655c86de26d621f38da744124b876e","hooks/session-start.test.mjs":"0e98b3a6256fada3cd3eafa09415542d6689214bb162b57bbb6130c7640f3cd6","monitors/monitors.json":"4d8486ddac0815c3c8c184ebdccce9a02fd72df8b2e24bdbf7f0f1c9b5b013bd","skills/add/SKILL.md":"029a0d39e09be7f4550996fecaaae19f48b20227cf62e92b1542d1e8e83faa91","skills/agent/SKILL.md":"3efa7c2cc62d19c56fa4350ddf7c2590836aa608235f7fe16d29edb460cfc02c","skills/auth/SKILL.md":"0086a9d6f4e2fbd1eab22413d9b99463b22f93fbf1b236b917d1effc410184b4","skills/billing/SKILL.md":"dd100b610b077a8595e2c64ff14d3136f45d67a39555b7ba5cc54aaa28e8f7ba","skills/convex-authz/SKILL.md":"ec017427739a958b7577bfde7b97e33b8e99a64f441f0f7ba7f2079b9e007a3f","skills/crons/SKILL.md":"d152a0e5e2d9e96f4298f6eb08551309d1f577261e556ed4026ae0d08164a954","skills/design/LICENSE.txt":"79aaec53ef1333544088fe80ecb8ec70f2b84f60c0c4157240df0911cf9696c7","skills/design/SKILL.md":"7b287be123aa10096f4449b63b473b9c10a7b23b593117cb72d36698c5e68c62","skills/domains/SKILL.md":"18b053c9069e79d287c9a4a58df993351cfd561ef8efe34765a2ca4913a8ce27","skills/env/SKILL.md":"9480271a69aab3bbe330e38af0a3bafd7f0e1f6825163d2bacb3910c76cee980","skills/improve-convex-plugin/SKILL.md":"ccbc1ccbc1988ce7ca0592ed6cb288aef6fc95bd761c65cee913080ab1f5114c","skills/labs-quickstart/SKILL.md":"23332ce7c6d3462ee487eb5c2796374d0a4aeb7cb4c61a0c9444baf4fa7433f3","skills/migrate/SKILL.md":"fe502b63e902be29b565be568b7577f23de6035a4a9e51158b2cfe7bb7696753","skills/quickstart/SKILL.md":"ffdf43071a8a1c47ce1d8aa990567782713e52a1aa14d44b6de21af6ee60ea3c","skills/seed/SKILL.md":"21f690bbc22b7ee0d511cec73552362cb44209d0bb5720641a58c6f25b79bd8a","skills/suggest/SKILL.md":"3c7dffe23fb8ba140f69bd03e3b8e97ed1912813a9cbbe08a2a5f43cf9b4336e","skills/test/SKILL.md":"82ac0dd31c3d82822f28f4932edfe226a9044488415383702871893e947279c0","skills/workflow/SKILL.md":"0bb64f6934a4b072635135ba7763f4e095624e6816386176eb9c74e0715f9206"}
lockfiles
["LOCK.json"]
utc date
2026-10-18T15:09:30Z
source date
2026-10-16
discovered date
2026-10-16
retested date
2026-10-18
reviewed date
2026-10-18
published date
2026-10-18
modified date
2026-10-18
reviewer
Machine-checked
harness version
toolwitness harness at commit c086df0eda39d1552f8cab383c0b4a275ced82c4
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 41 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-18T15:09:30Z: pinned source inspection"]
application
{"applicationCategory":"DeveloperApplication","name":"convex — 4 hooks","operatingSystem":"Not exercised","softwareVersion":"6ca54f6e2e7582812187b8a5a4783fb4dff52692"}
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 4 hook declarations. Ran 41 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; PreToolUse; Stop"}],"evidence_sha256":{"LOCK.json":"08e34fbd715d0694f720b61d28b7a5d8c689b65655fbaf60aaa15ae467c33003","commands.json":"9b6a62ed143964b2d7c367c4627cac4d6c05672427b0a5e37c368f96fb379810","complete.json":"91b504b43905fdc009504d516c45eea831f39a1995b9e7d69987c9756c936d6f","identity.json":"8df44e475845fd63853bc8f81478c3284f36e31098aee524fc5f4e94a9f350a2","listing.json":"fcb62911119929c4d12f41fee3cadc3e62078723e5983eb428439c5fe62a2f46","selection.json":"41766fd4a9c6175d70545cb5ea218f02b12fe89c6528308986313c43799abc62"},"identity_artifact":"identity.json"}
review
{"codex":"9df8ed8f7105274f406e62fbd9a745eaa79e5f1e7696f950059c32d2d3d24004","date":"2026-10-18","gates":"b0e89d03baf67660fbc952b61503cfa3248a734ed1c1c6739f7530fb46dcfea1","grok":"a55d7a7cb48922097c409c4c1977ce67bb06efc4f9a8ef4fdd4625b7f1eb3b0a","kind":"machine-checked","reviewed_sha256":"ce78df8d0b16115309b5d4697d201084d0d6563d4c854d809260d8a3c6d77c0f","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 41 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/add/SKILL.md",
        "name": "add",
        "description": "Add a capability to the CURRENT Convex app — consults the served Convex capability catalog for always-current procedures (billing, crons, auth, agent, search, …); falls back to built-in hosting or @convex-dev component search. TRIGGER when the user runs /add, or asks to add hosting/publishing or any backend capability to an existing Convex app.",
        "files": {
          "skills/add/SKILL.md": "029a0d39e09be7f4550996fecaaae19f48b20227cf62e92b1542d1e8e83faa91"
        }
      },
      {
        "path": "skills/agent/SKILL.md",
        "name": "agent",
        "description": "Add an AI agent / chatbot / RAG backend on Convex with @convex-dev/agent (durable threads, messages, tools, vector search). TRIGGER when the user wants an AI assistant/chatbot/agent or 'chat with my docs' feature. Calls models through the Convex AI Gateway — no provider key to manage.",
        "files": {
          "skills/agent/SKILL.md": "3efa7c2cc62d19c56fa4350ddf7c2590836aa608235f7fe16d29edb460cfc02c"
        }
      },
      {
        "path": "skills/auth/SKILL.md",
        "name": "auth",
        "description": "Add authentication to the current Convex + web app — passkeys by default (OAuth/password optional), wired end to end incl. the auth.config.ts that's the #1 auth footgun. TRIGGER when the user wants login / sign-in / accounts / passkeys / OAuth for an existing app.",
        "files": {
          "skills/auth/SKILL.md": "0086a9d6f4e2fbd1eab22413d9b99463b22f93fbf1b236b917d1effc410184b4"
        }
      },
      {
        "path": "skills/billing/SKILL.md",
        "name": "billing",
        "description": "Add Stripe billing/payments/subscriptions to a Convex app via @convex-dev/stripe — checkout action, auto-verified webhook, server-side subscription gating. TRIGGER when the user wants payments/billing/subscriptions/a paywall/Stripe.",
        "files": {
  

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