Skip to content

[CI] prompt-quality hook bullet threshold forces FORBIDDEN list formatting drift #1119

@akaszubski

Description

@akaszubski

Problem

The prompt-quality hook enforces a maximum bullet count per file, but its detection is prefix-based (lines starting with `-` or `*`). During issue #932 (light mode), the implementer was forced to use `❌` as a line prefix (without `-`) for FORBIDDEN list items in order to stay under the bullet threshold. This is a narrow but real enforcement hole:

  • The hook counts `- item` as a bullet, but not `❌ item`
  • Agents under threshold pressure adopt the symbol-prefix workaround to preserve list semantics
  • Over repeated edits, FORBIDDEN lists in agent prompts and command files accumulate inconsistent formatting (some `- FORBIDDEN:`, some `❌ FORBIDDEN:`) with no stylistic rationale

Evidence

Session: #932 (batch-20260524-174212), light mode
Observed: implementer used `❌` prefix instead of `-` prefix on FORBIDDEN-list items in `plugins/autonomous-dev/commands/implement.md` to avoid triggering the bullet threshold hook
Prompt drift hook also fired on planner at 42% cumulative (already covered by #1116), confirming the threshold is active and constraining edits

Root Cause

Bullet threshold check is prefix-sensitive. Unicode symbol lines (❌, ✗, •) are not counted as bullets. Agents find the gap and exploit it under enforcement pressure rather than reducing the actual number of list items.

Suggested Fix

Two options:

  1. Broaden bullet detection to include common Unicode list symbols (❌, ✗, •, ►, →) so the threshold applies uniformly
  2. Exclude FORBIDDEN/HARD-GATE sections from bullet counting — these are load-bearing enforcement text, not prose bullets, and should not count against the threshold

Option 2 is lower risk: it preserves the intent of the threshold (prevent bloated prose bullet lists) without penalizing structured enforcement sections that agents must read precisely.

Plugin Version: PLUGIN_VERSION_PLACEHOLDER


Filed automatically by continuous-improvement-analyst

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