gate(owner): hook precision — 50 pre-tool blocks from the frozen logs, stratified by rule, labelled true or false; counts per rule published, block text kept private

Open
#1,654 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
documentation

Research direction

Start with the three frozen logs and verify their SHA256 hashes against founding doc §4, then read the sampling procedure and the blocked issue #1645. The payload does not name log paths beyond the current rotating log, so locate the frozen copies and the repository evidence directory before sampling. Done means the owner signs off on 50 stratified labels and sequant publishes per-rule counts and the seed without command text.

Written by the indexing model from the issue text.

Description

graph-2026-11-simplify

Epic: graph-2026-11-simplify Tier: mechanical Execution: owner Blocked by: #1645

  • Blocked by: #1645

Problem

D-5: hand-label 50 of the pre-tool blocks before any hook change. The pre-tool hook (1,701 lines) is in the "in use, unmeasured" bin: it blocks often and no block has ever been labelled true or false. The 538 blocks the 2026-10-27 inventory counted are no longer on disk: ~/.sequant/logs/claude-hook.log rotates and now holds 442 blocks from 2026-11-02 and 11-03. Three logs were frozen on 2026-11-04 (founding doc §4): 662 blocks over 11 rules (corrected 2026-11-07: the plan said 663 over 14; one counted line was prose inside a logged command, not a block record). The sample frame is those copies. Founding doc P-11.

The gate

  • Artifact reviewed: a 50-row sheet in admarble/smpl-sequant at evidence/hook-precision-2026-11/sample.md, one row per block: source log, rule, the redacted command line, the runner's proposed label (true = the hook stopped something that should be stopped; false = it stopped legitimate work; unsure) and a one-line reason.
  • Question the owner answers, per row: is the proposed label right? The owner edits any row they disagree with and signs the sheet.
  • Reject route: a disputed sampling frame reopens this node's sampling step with a new seed recorded; labels never move a hook in this graph (D-5, §3).

Procedure

  1. Verify the three copies against their sha256 in founding doc §4.
  2. Draw 50 blocks with a fixed, recorded seed, stratified by rule across all 662: proportional allocation, at least 2 for any rule with 2 or more blocks and 1 for a singleton, remainder by largest share.
  3. The runner proposes a label for each from the block line and, where it exists, the transcript around it.
  4. The owner confirms or corrects each row.
  5. Publish counts only: docs/evidence/hook-precision-2026-11.md in sequant, one row per rule (blocks in frame, sampled, true, false, unsure) and the seed. No command text.

Acceptance Criteria

  • AC-1: The sheet has 50 rows and the owner's sign-off. Evidence: grep -cE '^\| [0-9]+ \|' ~/Projects/smpl-sequant/evidence/hook-precision-2026-11/sample.md → 50
  • AC-2: The published counts cover every sampled rule and sum to 50. Evidence: awk -F'|' '/^\| [a-z-]+ \|/{s+=$4} END{print s}' docs/evidence/hook-precision-2026-11.md → 50
  • AC-3: The published page carries no command text from the logs. Evidence: grep -cE 'BLOCKED|git push|cat |printenv' docs/evidence/hook-precision-2026-11.md → 0

May touch

admarble/smpl-sequant: evidence/hook-precision-2026-11/ (new). sequant-io/sequant: docs/evidence/hook-precision-2026-11.md (new; lands through a docs PR).

Non-Goals

  • Changing any hook or rule (D-5).
  • Publishing block text (I-6).

Done when

Each rule's sampled precision exists as an owner-confirmed count in sequant's docs.

Dominant language
TypeScript
Stars
1
Forks
1
Avg merge
11h 3m
Merged PRs (30d)
84

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sequant-io/sequant

All issues in sequant-io/sequant

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.