Skip to content

WritingGate block reason points at a section and a skill that no install ships #2232

Closed as not planned

Description

@gjaworski86

hooks/WritingGate.hook.ts (v1.0.7, current main) BLOCK_REASON tells the model to follow OPERATIONAL_RULES.md § Authored content and to run "the writing-audit skill's DETECT mode". The shipped USER/CONFIG/OPERATIONAL_RULES.md template has no such section, and no writing-audit skill ships. When the gate blocks, the model is sent to targets that don't exist on any install.

Suggested fix: point BLOCK_REASON at a shipped skill (skills/DetectAI, whose Workflows/Detect.md covers the audit step) and either ship the § Authored content section in the template or drop the pointer.

Related: #1304 (same class, fixed in AI_WRITING_PATTERNS.md; WritingGate was missed), #2167.

Activity

  1. mj-deving commented on Sep 27, 2026

    @mj-deving

    This issue covers WritingGate's pointer to OPERATIONAL_RULES.md § Authored content. The same class of defect exists for a second section. Two more hooks cite OPERATIONAL_RULES § Bunker registration as their contract, and no install ships it:

    • LifeOS/install/hooks/DeployRegistrationGate.hook.ts:6,14,94 (:94 is in the block message a user sees)
    • LifeOS/install/hooks/StopGates.hook.ts:62

    The shipped template LifeOS/install/USER/CONFIG/OPERATIONAL_RULES.md has six sections (Tool & environment preferences, Repo conventions, Deployment, Trusted channels, Vendor-specific rules, Model selection), and neither cited section is among them.

    rg -n 'Bunker registration|Authored content' LifeOS/install/hooks
    rg -c 'Bunker registration|Authored content' LifeOS/install/USER/CONFIG/OPERATIONAL_RULES.md || echo 'template: 0 matches'

    On main @ 5e2f2e8 this prints the five hook lines and template: 0 matches. The same fix works for both halves: ship both sections in the template, or point the hooks at a system doc. A doc-integrity check that resolves every OPERATIONAL_RULES § X citation against the template would catch this class of defect.

  2. danielmiessler commented on Oct 3, 2026

    @danielmiessler
    Owner

    Thanks @gjaworski86, and @mj-deving for the second instance. WritingGate was retired in a hook cleanup that removed gates whose only job was asking the model to behave differently, so its dead pointers go with it. DeployRegistrationGate's block message now names the Bunker commands directly instead of citing an OPERATIONAL_RULES section that public installs don't have. Next release carries 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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions