Skip to content

refactor(hooks): consolidate hooks.json description into ssot.json gate registry #1222

Closed

Description

@tvna

Facts

Requested outcome

Shrink hooks/hooks.json's top-level description field to a short pointer
directing readers to .gitapex/ssot.json's gates[] registry as the single
source of truth for gate rationale, and register the one currently-missing
gate entry (hooks/check-merge-pull-request-block.sh, issue #637) so no
rationale is lost in the consolidation.

Acceptance Criteria Map

Draft, not pre-verified -- planning-a-branch-from-an-issue's own Step 4
independently re-checks each row against this issue's own stated facts
before implementation, rather than trusting it merely for being
well-formed.

Criterion Interpretation Planned ops Proof method Residual risk
hooks/hooks.json's description field must stop duplicating per-gate rationale already tracked in .gitapex/ssot.json Replace the current prose blob with a short pointer sentence naming .gitapex/ssot.json's gates[] registry and its trigger field as the place to find each gate's own rationale Edit hooks/hooks.json's top-level description field only; no command, matcher, or timeout value touched Confirm no existing gate/test asserts on this field's content (already verified this session); confirm gitapex_detect_changed_gate_scripts.py still flags the diff as gate-wiring-relevant (unchanged, path-based behavior) None identified -- pure documentation consolidation, no runtime behavior change
Every hook script hooks/hooks.json wires must have a corresponding .gitapex/ssot.json gate entry, so the registry stays complete Add a new gates[] entry for hooks/check-merge-pull-request-block.sh, mirroring the existing pr-duplicate-issue entry's field shape/order, with rule text extracted from that script's own header comment rather than restated from memory Add one entry to .gitapex/ssot.json's gates[] array; no existing entry modified tests/test_gitapex_scan_ssot_schema.py (schema validity, id uniqueness, script-path existence, cluster resolution) passing on the new entry The diff's own shape (touching both .gitapex/ssot.json and hooks/hooks.json) triggers a mandatory deterministic-gate-quality skill-audit disclosure on the implementing PR -- accepted, not a defect

Constraints

  • No change to any hook's actual runtime behavior -- documentation/registry
    consolidation only.
  • Every issue number currently named in hooks.json's own description must
    either already resolve inside .gitapex/ssot.json or be added by this
    same change -- nothing may simply disappear.

Non-goals

Dedup

Dedup: search_issues query "consolidate hooks.json description into
ssot.json gate registry, remove duplicated rationale", 3 results reviewed
-- none duplicate this issue (detail below).

Next Move

Draft ready to create as-is; no open question blocks filing it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions