Skip to content

diagnose(hooks): gh-filing allowance fails despite whitelist membership — supersedes #987/#1095/#1199 #1203

@akaszubski

Description

@akaszubski

Summary

The gh-issue-create block in unified_pre_tool.py fires even when documented allowances should permit filing. Consolidates and supersedes #987, #1095, #1199 with verified facts and live two-failure evidence.

Verified Facts (plan-critic round 2, against live code)

Live Evidence (2026-06-11)

  1. /improve --auto-file (improve IS whitelisted): context file with command=improve written in same Bash call as the create — BLOCKED
  2. /plan STEP 6: context with command=create-issue, fresh timestamp — BLOCKED twice (with AND without the literal trigger string in the heredoc body, ruling out heredoc false positive)
  3. Control that WORKED same day: /create-issue and /plan-to-issues loaded via Skill tool, then identical context+create pattern succeeded ([CI-critical] [INCOMPLETE] plan-critic/spec-validator/CIA skipped across drain pipelines — FORBIDDEN lists have no hook backing under .bypass #1195-[CI-warning] /improve --auto-file skill instructs gh issue create but hook blocks it — skill/hook contract mismatch #1199, feat(ci-loop): CIA signal capture — finding store + cross-session collector #1200-docs(runbook): weekly drain sequence — PROPOSE mode + AUTO-flip criteria #1202)

Hypotheses (investigate in order)

(a) Allowance keyed to actual Skill-invocation state — _write_issue_context_for_skill (4510) writes the authoritative context when the Skill tool fires; manually-written context is ignored/insufficient (different path, signature, or session-keyed field)
(b) _is_issue_command_active mtime/TTL ordering rejects same-Bash-call writes
(c) Command-value validation rejects values not matching the invoking skill

Implementation Approach

Diagnose (read lines 2775-2840, 1417-1460, 4510-4560; reproduce each evidence case via subprocess) → fix the legitimate paths (improve promotion CREATE, plan STEP 6, fix-forward filing) → update skill docs (plugins/autonomous-dev/commands/improve.md STEP 5, plugins/autonomous-dev/commands/plan.md STEP 6) to match the actual hook contract → add runtime-context regression tests invoking the REAL hook via subprocess.

Acceptance Criteria

Split from macro-first plan (.claude/plans/macro-first-continuous-improvement.md) per plan-critic round 2 — load-bearing for the promotion CREATE path but decoupled from signal capture. Supersedes #987, #1095, #1199.
Plugin Version: 3.50.0 (c41558b)

Metadata

Metadata

Assignees

No one assigned

    Labels

    auto-improvementContinuous improvement analyst findings

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions