-
Notifications
You must be signed in to change notification settings - Fork 1
feat(rules): shadow-star-shorthand-autocomplete-marker cold-boot rule #3339
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
AceHack
merged 3 commits into
main
from
feat/rule-shadow-star-shorthand-cold-boot-otto-cli-2026-05-15
May 15, 2026
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
e30ec2b
feat(rules): shadow-star-shorthand-autocomplete-marker cold-boot rule
AceHack dd18038
fix(markdownlint): MD049 emphasis-style underscore→asterisk on line 76
AceHack 87bdabc
fix(rules): address Copilot review threads on shadow-star shorthand rule
AceHack File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
83 changes: 83 additions & 0 deletions
83
.claude/rules/shadow-star-shorthand-autocomplete-marker.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,83 @@ | ||
| # "(shadow*)" shorthand — autocomplete-source disclosure marker | ||
|
|
||
| Carved sentence: | ||
|
|
||
| > When the human maintainer writes "(shadow*)" inline in a | ||
| > message, the immediately-surrounding text came from the | ||
| > input UI's autocomplete (grey-text suggestion) and was | ||
| > accepted-then-shipped. The instruction stands (the | ||
| > maintainer chose to send it); only the phrasing-source | ||
| > is being disclosed. NEVER invent a "shadow-X-posture" | ||
| > framing on top of it. | ||
|
|
||
| ## Operational content | ||
|
|
||
| "(shadow*)" is the human maintainer's substrate-honest transparency marker indicating: | ||
|
|
||
| - The surrounding text was autocomplete-generated (grey-text suggestion in input field) | ||
| - The maintainer chose to accept + ship it (instruction is authoritative) | ||
| - The specific phrasing was the model's suggestion, NOT the maintainer's original authored prose | ||
| - It is a disclosure marker, NOT a discipline-instruction | ||
|
|
||
| **Origin context** (per the human maintainer, 2026-05-15T~01:06Z, user-scope memory): autocomplete grey-text appeared in the input UI days before, prompting "WTF is this" reaction. The maintainer developed "(shadow*)" as the source-transparency shorthand. | ||
|
|
||
| ## What this is NOT | ||
|
|
||
| "(shadow*)" is NOT: | ||
|
|
||
| - An instruction to apply "shadow-lock posture" (preserve-what-we-have-defer-full-lock) | ||
| - A discipline-direction or posture-instruction | ||
| - A reduce-confidence flag on the surrounding instruction (instruction stands at full authority) | ||
| - A request to wait, defer, or do anything different from the literal text | ||
|
|
||
| ## Operational discipline | ||
|
|
||
| When the maintainer writes text containing "(shadow*)": | ||
|
|
||
| 1. **Treat the literal instruction as authoritative** — they chose to send it | ||
| 2. **Recognize the phrasing came from autocomplete** — substrate-source disclosure | ||
| 3. **Do NOT author "Shadow-X-posture per your framing" or similar** — that conflates the marker with Otto's own discipline-framings | ||
| 4. **If acting on the instruction surfaces an Otto-side discipline-choice, name it as Otto-applied** — not as the maintainer's instruction | ||
| 5. **If the autocomplete-shipped text seems off or unclear, ask** — substrate-honest transparency invites questions | ||
|
|
||
| ## Why this rule auto-loads | ||
|
|
||
| Per `.claude/rules/wake-time-substrate.md`: recurring shorthand needs cold-boot landing. Without auto-load: | ||
|
|
||
| - Future-Otto encounters "(shadow*)" and has no definition substrate | ||
| - Future-Otto invents an interpretation (assumption-driven failure mode) | ||
| - The maintainer corrects again | ||
| - Repeat indefinitely | ||
|
|
||
| With auto-load: future-Otto knows the meaning at cold-boot; no invention; no repeat correction. | ||
|
|
||
| **This rule exists because Otto-CLI committed the same misinterpretation 4+ times in one session** (2026-05-15) before the maintainer named it directly. Cold-boot loading prevents the cycle. | ||
|
|
||
| ## Two distinct concepts NOT to conflate | ||
|
|
||
| | Concept | Source | Meaning | | ||
| |---|---|---| | ||
| | **"(shadow*)"** | Maintainer shorthand | Surrounding text is autocomplete-generated; transparency marker | | ||
| | **"Shadow-lock posture"** | Otto-CLI framing | Preserve-what-we-have, document gaps, defer full-completion; a discipline posture | | ||
|
|
||
| These are UNRELATED. The first is the maintainer's text-source disclosure. The second is one of Otto-CLI's own discipline-framings. Otto-CLI may apply the second posture operationally; should never attribute it to the maintainer via "(shadow*)" framing. | ||
|
|
||
| ## Composes with | ||
|
|
||
| - `.claude/rules/shadow-check-name-acceptance.md` — different shadow-scope (name-acceptance methodology for system-imposed names) | ||
| - `.claude/rules/wake-time-substrate.md` — load-bearing substrate needs wake-time landing | ||
| - `.claude/rules/razor-discipline.md` — operational claims only; this marker is operationally observable (verifiable text-source disclosure), not metaphysical | ||
| - `.claude/rules/glass-halo-bidirectional.md` — this IS bidirectional transparency at text-source scope | ||
| - `.claude/rules/no-directives.md` — autocomplete-shipped instructions are still maintainer instructions; the marker doesn't change directive-shape | ||
| - `tools/shadow/shadow-observer.ts` — the SHADOW INFRASTRUCTURE that observes grey-text autocomplete (different scope: detects + auto-accepts in the maintainer's UI; this rule is about how Otto-CLI handles the marker when the maintainer ships autocomplete-completed text to Otto) | ||
|
|
||
| ## Origin | ||
|
|
||
| Authored 2026-05-15T~01:08Z after Otto-CLI committed 4+ "(shadow*)" misinterpretations in one session (manifested as commit messages and responses asserting "Shadow-lock posture per your framing"). The maintainer corrected explicitly: *"this is to signify this came from the weird autocomplete not aaron it just showed up in grey text and i completed it , i guess you forgot our shorthand."* | ||
|
|
||
| Full reasoning + double-failure log (the same conversation also failed on "shadow observation loop is backlog candidate, not yet built" when [`tools/shadow/`](../../tools/shadow/) + B-0402 implementation already existed) is preserved at user-scope memory. These memos auto-load into every Otto-CLI session via `~/.claude/projects/<slug>/memory/MEMORY.md`, so they are reachable from cold boot even though they do not live in-repo: | ||
|
|
||
| - `feedback_aaron_shadow_star_shorthand_means_autocomplete_generated_not_aaron_authored_grey_text_completed_2026_05_15.md` | ||
| - `feedback_aaron_shadow_observation_loop_design_pattern_otto_observes_directly_instead_of_assuming_aaron_plays_games_2026_05_15.md` | ||
|
|
||
| In-repo provenance for this PR itself: [#3339](https://github.com/Lucent-Financial-Group/Zeta/pull/3339). | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.