Skip to content

spec(crm-story-reel): v23 -- house marks read as a reader reads them (#5897) - #5898

Merged
gHashTag merged 1 commit into
masterfrom
claude/crm-story-reel-v23-house-marks
Oct 4, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/crm-story-reel-v23-house-marks

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 4, 2026

Copy link
Copy Markdown
Owner

What

crm-story-reel v23 restates HOUSE_MARKS: the detector that crm-story-reel v22 and split-reel v7 read on every line of a client's reel (999 render/src/house-names.ts, gHashTag/999-multibots-telegraf#3564).

Text v22 v23
write to t27ai not flagged flagged
the Russian name spelled with a Latin T not flagged flagged
our S3 AI pipeline flagged not flagged
I studied at Trinity College flagged flagged, on purpose

Rules

  • fold: the text and every mark are folded the same way: NFKC (S3AI with a superscript 3 is s3ai, full-width letters are their letters), invisible characters dropped (INVISIBLES_DROPPED), one case, each Cyrillic look-alike read as its Latin letter (FOLD_LOOKALIKES, LOOKALIKE_LATIN). One canonical form, so both directions fold.
  • code_mark: T27 starting a word is the brand (CODE_MARK_PREFIX: t27, t27ai, t27_ai, T27.ai), not after a letter or digit (at27, 5t27) nor before a digit (T270).
  • product_mark: the product is one code token (PRODUCT_ONE_TOKEN): S3AI and S3AIs are the house; S3 AI with a space is S3 the storage and the word AI.
  • name_mark: a name is the house inside a longer word (NAME_INSIDE_WORD: TrinityBot) and before any word (NAME_IN_ANY_CONTEXT). Trinity College stays flagged: no rule on the next word clears the college without also clearing "Trinity AI" and "Write To Trinity AI". The costs are asymmetric: a refused agent line is rewritten for free, while a missed one puts the house's name on a client's reel. Her own typed line is still hers (own_words).
  • no rule that clears a false positive clears a mark: Trinity, the Russian name, Trinity S3AI, T27 and @t27ai_bot stay flagged (test vector).

Checks (from command output)

  • t27c test-report: 60/60 pass
  • t27c validate-vacuity: 0 of 60 vacuous
  • tri spec-controls (999 binding): 93 of 93 caught, 9 of them new for v23
  • t27c seal --verify: all hashes MATCH
  • tools/dupe_scan.py: no new duplicate body, and none of the known groups grew

Host binding: gHashTag/999-multibots-telegraf, branch fix/house-names-v23.

Closes #5897

🤖 Generated with Claude Code

…5897)

The text and every house mark are folded the same way first: NFKC, invisible characters dropped, one case, each Cyrillic look-alike read as its Latin letter (FOLD_LOOKALIKES, LOOKALIKE_LATIN, INVISIBLES_DROPPED), so a Latin T inside the Russian spelling of the name is the house again.
code_mark: T27 starting a word is the brand (t27ai, t27_ai), not after a letter or digit (at27) nor before a digit (T270). product_mark: S3AI is one code token; "our S3 AI pipeline" names no house.
name_mark: "Trinity College" stays a house name on purpose -- no rule on the next word clears it without clearing "Trinity AI"; a refused agent line is rewritten for free, a missed one is on her reel.
60/60 spec tests, vacuity 0 of 60, 93/93 negative controls caught (9 new for v23); seal verified; dupe_scan: no new duplicate body.
Closes #5897
Refs gHashTag/999-multibots-telegraf#3564

phi^2 + 1/phi^2 = 3 | TRINITY

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-04 04:36:31 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 45
PRs with All Checks Green 5
READY 4
FAILING 45
PENDING 0
NO CHECKS YET 0

These columns do not partition: 4 + 45 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=b45a356c2eb6 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag gHashTag added the bee-reviewed A reviewer bee reviewed and verified this PR at its current head; the only merge signal (#5525) label Oct 4, 2026
@gHashTag

gHashTag commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

Reviewer bee: approved (spec 0887fd3 / host 43ec939cb)

I ran my own probes with tsx against the real house-names.ts at 43ec939cb. Result: 0 failures.

Must be flagged namesHouse
write to t27ai true
спроси Tринити (Latin T) true
Тринити (pure Cyrillic) true
Trinity true
Trinity S³AI true
S3AI true
T27 true
@t27ai_bot true
t27_ai true
Три<ZWJ>нити true
ТRINITY (Cyrillic Te) true
T27 (full-width) true
Must pass namesHouse
our S3 AI pipeline false
at27 false
T270 false
two Russian sentences with р/с/о/е/у false
Тина, Привет, я Тина, пеку торты false

Per-line test (houseNameByAgent; the person typed Тринити, сделай Маше рилс):

Agent line Refused?
Напиши Тринити yes
Напиши Tринити yes
Пиши в t27ai yes
Маша печёт торты no
her own line, typed as she wrote it no (kept)

Gates

  • vitest (VITEST_MAX_WORKERS=2, --testTimeout=120000) on crm-story-reel, split-reel and a-template-stays-home: 3 files, 114/114 passed, rc 0.
  • tri mutants src/spec/crm-story-reel.mutants.json: 140 of 140 killed, rc 0.
  • Hand mutant if (letterAfter) return false: the probe fails on write to t27ai, vitest shows 3 failed / 67 passed (rc 1). Reverted with git; the tree is clean and --heal returns 0.
  • node scripts/check-t27-specs.mjs: 19 bound, every law holds, rc 0.
  • The vendored spec is byte-identical to t27 0887fd3. Both are sha256 b042ff61, which matches the seal's spec_hash.
  • All 60 spec tests have a binding it(). All 5 new v23 tests match their titles exactly.
  • The re-anchored story-template.ts mutant (profileCta(profile, owner === id) changed to true) still forces the own-reel flag in storySettingsOf. It tests the same thing as before and is not weakened.

CI

  • t27: 29 pass. The only red is spec-guards, and it is the known ring-096 drift.
  • 999: tri pr-billing reports 18 billing failures and 1 unknown. The unknown is GitGuardian's "Generic High Entropy Secret" on crm-story-reel.gen.ts line 410, which is the generated __DECL_ORDER__ list of identifier names. That is a false positive: no credential is involved.

@gHashTag
gHashTag merged commit 7943bc4 into master Oct 4, 2026
31 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bee-reviewed A reviewer bee reviewed and verified this PR at its current head; the only merge signal (#5525)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

spec(crm-story-reel): v23 -- house marks read as a reader reads them

1 participant