Skip to content

fix(dreaming): read the case signal the way the writer meant it (v0.281.1) - #500

Merged
vikasprogrammer merged 1 commit into
mainfrom
feat/topic-caps
Jul 31, 2026
Merged

fix(dreaming): read the case signal the way the writer meant it (v0.281.1)#500
vikasprogrammer merged 1 commit into
mainfrom
feat/topic-caps

Conversation

@vikasprogrammer

Copy link
Copy Markdown
Owner

Follow-up to #492, found by actually running a reflect pass on two live tenants instead of trusting the synthetic fixture.

v0.280.0 replaced the unwinnable topic stop-list with an allow-test on shape — a topic must be written as a name. Correct idea, but case alone isn't enough. The guidance line (which rides in every agent's system prompt) came back:

instapods:  the fleet frequently works on: claude.md, drafts, support, sweep, automated
instawp:    the fleet frequently works on: handed, really, read-only, server, freescout

Every leaked word came from a construction where the capital wasn't a choice:

Construction Real example from the corpus Fix
Shouted header AUTOMATED INCREMENTAL SUPPORT SWEEP — runs every 2h… (one prompt, ×10) an acronym must be short and isolated — a real one (SSL, FPM) sits among lowercase words
Title Case line headings skipped — case separates nothing within them
Emoji-prefixed template ✅ Really done: / ⛔ Handed back: (the OS's own poke-back cards) anything with no letters before it is a sentence start
Enumerated label Phase 1, Tier 2 a capital followed by a number is a heading
Also written lowercase Publish/publish, Phase/phase a real name is consistently capitalized; evidence counted per distinct line so one repeated template can't outweigh every real name
Filename claude.md, placeholder yyyy-mm-dd.md qualify on the base name, not the extension (the dot rule was for hostnames/versions)

Plus the OS's own tool vocabulary as stop-words (publish/recall/remember/notify, joining the existing report/update) — plumbing that describes how an agent worked.

Measured on the live corpora

Read-only snapshots, both tenants, driving the real dream():

instapods (258 episodes)
  before: claude.md, drafts, support, sweep, automated
  after:  composio, dataforseo, monday, library, instapods.com

instawp (760 episodes)
  before: handed, really, read-only, server, freescout
  after:  read-only, freescout, wait, bunny, shield

Residual, stated honestly: instawp still surfaces read-only and wait — both are emphasis words in automation prompts (Read-only. Then report., run it in the FOREGROUND and WAIT) that are genuinely almost always capitalized in that corpus, so no case rule can catch them. 3 of 5 real (was 1 of 5). The line is advisory prose, not a gate; I'd rather leave two soft words than start re-growing a blocklist.

137/137 governance + 18/18 tier-A policy, typecheck, web build.

🤖 Generated with Claude Code

…81.1)

v0.280.0 swapped the unwinnable topic stop-list for an allow-test on shape. Running a
real pass on instapods + instawp showed case alone isn't enough: the line, which rides in
EVERY agent's system prompt, came back "claude.md, drafts, support, sweep, automated".

Every leaked word came from a construction where the capital wasn't a choice:
- Shouted headers — one prompt repeated 10× opened `AUTOMATED INCREMENTAL SUPPORT SWEEP`.
  An acronym must now be short AND isolated (a real one sits among lowercase words).
- Title Case lines — skipped; case separates nothing within them.
- Emoji-prefixed OS templates (`✅ Really done:`) — an emoji now counts as a sentence start,
  so "really"/"handed" stop reading as names.
- Enumerated labels — `Phase 1`, `Tier 2`.
- Words the corpus ALSO writes lowercase: a real name is consistently capitalized
  (Composio, DataForSEO); evidence counted per distinct line so one repeated template
  can't outweigh every real name.
- Filenames qualify on the base name, not `.md` — the dot rule was admitting `claude.md`
  and the placeholder `yyyy-mm-dd.md`.

Plus the OS's own tool vocabulary as stop-words (publish/recall/remember/notify), which
describes how an agent worked, not what it worked on.

Measured on both live corpora (read-only snapshots, 258 and 760 episodes):
  instapods  before: claude.md, drafts, support, sweep, automated
             after:  composio, dataforseo, monday, library, instapods.com
  instawp    before: handed, really, read-only, server, freescout
             after:  read-only, freescout, wait, bunny, shield

137/137 governance + 18/18 tier-A policy, typecheck, web build.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vikasprogrammer
vikasprogrammer merged commit 7ccdab6 into main Jul 31, 2026
1 check 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.

1 participant