Skip to content

feat(rules): AGCFG-013 hidden text in agent guidance files (schema 39) - #285

Merged
ivanpaghubasan merged 1 commit into
mainfrom
feat/agcfg-guidance-injection-markers
Oct 29, 2026
Merged

ivanpaghubasan merged 1 commit into
mainfrom
feat/agcfg-guidance-injection-markers

Conversation

@ivanpaghubasan

@ivanpaghubasan ivanpaghubasan commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds AGCFG-013 (medium, 0.6, repo scope): a committed agent guidance file contains
zero-width characters, Unicode Tags-block characters (U+E0000..U+E007F) or
bidirectional controls. It runs the AGCFG-009 code-point test, with the same
exemptions, on guidance files AGCFG-009/010 do not read: CLAUDE.md, GEMINI.md,
.cursor/rules//.mdc, .windsurfrules, .windsurf/rules/.md, .devin/rules/*.md,
.github/copilot-instructions.md, .github/instructions/
/*.instructions.md.
Sheet ref: AGCFG-008 remainder (live AGCFG-008 is a different rule).

Changes

  • New predicate repo_guidance_file_has_hidden_text; new component kinds
    gemini_md, cursor_rule, windsurf_rule, copilot_instruction, and
    ScanManifest.GuidanceFiles. CLAUDE.md keeps its existing claude_md kind.
  • Schema 38 → 39 (provisional). Rules 385 → 386.
  • Corpus fixture with a PROVENANCE row (contains real Tags-block bytes spelling
    "placeholder").
  • CHANGELOG, ARCHITECTURE, COVERAGE and CLAUDE.md updated.

Not built

HTML-comment, instruction-phrase and base64 markers: no source supports them, and a
scan of 305 guidance files in 27 public repos found 109 benign HTML comments in 25
files. Claude Code strips block-level HTML comments from CLAUDE.md. .cursorrules is
not read.

Verification

  • go build, go vet, go test ./... pass; check-rules-sync.sh in sync.
  • Corpus before/after: 0 finding changes outside the new fixture; component-only
    changes are in the new fixture. The nine repo_component_present rules are unchanged.
  • The origin/main binary skips AGCFG-013 with META-005.

Related

Rules: trustabl/agent-reliability-rules#209
Rulebook: trustabl/trustabl-rulebook#160
Merge order: engine, rules, rulebook; the rules PR waits for the rulebook PR.

@ivanpaghubasan
ivanpaghubasan merged commit 97eec42 into main Oct 29, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants