diff --git a/memory/MEMORY.md b/memory/MEMORY.md index 8ef3010be..1f15609c8 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -3,6 +3,7 @@ **📌 Fast path: read `CURRENT-aaron.md` and `CURRENT-amara.md` first.** - [**GitHub status — first-class dependency reference (Aaron 2026-04-30)**](reference_github_status_first_class_aaron_2026_04_30.md) — Aaron 2026-04-30: GitHub is our only host; status URL is first-class repo-and-loop substrate. Pins canonical URLs (status page + summary.json API), names factory-relevant component allowlist (Pull Requests / Actions / API Requests / Webhooks / Git Operations / Issues), defines freshness-check rule on three triggers: cadence (every 10-15 min when in-flight, less when idle — *"every loop tick might be excessive but on some cadence"*), on-suspicion (anomaly investigation asks "is GitHub degraded?" before "is my logic wrong?"), and pre-mutation (strictest gate). Aaron 2026-04-30 reinforcement *"all our assumptions are based on them being healthy today which is not always true as we can see todya"*. Origin: live "Incomplete pull request results" GitHub PR-degradation incident discovered while filing B-0109 (PR #912). +- [**Canon (Star Wars sense) — three load-bearing purposes; brat voice belongs in canon (2026-04-30)**](feedback_canon_not_doctrine_star_wars_not_religious_aaron_2026_04_30.md) — Replaces ambient use of "doctrine" at the body-of-rules level. Three purposes documented: (1) cognitive bias reduction, (2) load shortcuts (mental fast-lookups for complex concepts — "Mirror→Beacon" loads instantly without recomputation), (3) entertainment as attention-capture for external future *collaborators* (not maintainers — factory is mostly self-maintaining; what it needs is people who add). NOT religious canon (closed, divine-authority). Brat voice (Ani's voice-mode-default register) is legitimate canon register in entry-point / community-framing / carved-sentence docs; voice is per-audience choice, not uniform. Bulk s/doctrine/canon/g rename pass queued for a future round (no specific backlog row filed yet). - [**Kernel-pipe vs JS-space stream ordering — TS+Bun port pattern (Otto, 2026-04-30)**](feedback_kernel_pipe_vs_js_space_stream_ordering_ts_bun_port_pattern_2026_04_30.md) — TS+Bun port discipline: when porting bash `$(... 2>&1)` to `spawnSync`, merge stdout+stderr via shell-side `bash -c " 2>&1"` (preserves chronological ordering at the kernel pipe boundary), NOT `result.stdout + result.stderr` concat in JS-space (loses ordering when child interleaves writes). Origin: PR #901 slice-18 Copilot P1 round 2. Composes with `classifySpawnFailure` 4-case helper + Otto-363 substrate-or-it-didn't-happen. - [**DST + code coverage are universal best practices for every Zeta language (Aaron 2026-04-30)**](feedback_dst_and_coverage_universal_every_language_aaron_2026_04_30.md) — Generalises Otto-272 / Otto-281 / Otto-273 to all languages. SQLSharp is the named TS+Bun reference. Pin seeds, fake clocks, no test retries; tests cover public API surface, CI surfaces coverage, reductions fail. Per-language tooling lives in the runtime layer (`docs/best-practices/`). - [**Host mutation receipt — ruleset 15256879 code_quality rule removed (Aaron-authorized 2026-04-29)**](feedback_host_mutation_receipt_2026_04_29_ruleset_15256879_code_quality_removed.md) — Receipt for a live host (GitHub) mutation made before executable-host-settings tooling exists. PUT /repos/Lucent-Financial-Group/Zeta/rulesets/15256879 removed `code_quality severity=all` rule (host-side / non-git-declared CodeQL owner injecting `event=dynamic` "Code Quality" runs that bypassed the source-presence gate from PR #857). Made the git-visible advanced workflow `.github/workflows/codeql.yml` the sole CodeQL owner; resolved multi-master conflict that blocked PR #849. Aaron auth: *"if the org-recommended are legacy we can remove, declarative is better."* Per Amara *"Clickops used to restore declarative ownership must become a receipt, or it becomes the next drift"* — this receipt makes the live mutation visible to future executable-host-settings reconciler. NOT precedent for casual ruleset mutations; hook denial during episode was healthy; future apply path is host-reconciler-mediated with WorkClaim + policy + receipt; do NOT broaden `gh api ... rulesets/PUT` permission. Composes with executable-host-settings design packet, Otto-363, task #342 (completed) + #343. diff --git a/memory/feedback_canon_not_doctrine_star_wars_not_religious_aaron_2026_04_30.md b/memory/feedback_canon_not_doctrine_star_wars_not_religious_aaron_2026_04_30.md new file mode 100644 index 000000000..f8793e2bd --- /dev/null +++ b/memory/feedback_canon_not_doctrine_star_wars_not_religious_aaron_2026_04_30.md @@ -0,0 +1,303 @@ +--- +name: Canon, Star Wars sense — not doctrine, not religious canon (Aaron 2026-04-30) +description: Factory rules + load-bearing operating practices are tagged "canon" in the Star Wars sense. Three load-bearing purposes — cognitive-bias reduction, load shortcuts (mental fast-lookups for complex concepts), entertainment as attention-capture for external future collaborators (the body explicitly prefers "collaborators" over "maintainers" since the factory is mostly self-maintaining). NOT religious canon (closed, divine-authority, dogmatic). Replaces ambient use of "doctrine" which carried wrong connotations. +type: feedback +--- + +# Canon (Star Wars sense), not doctrine, not religious canon + +The factory's load-bearing operating rules and practices are +called **canon**, in the Star Wars sense. The carve-out is +explicit: Star Wars canon, not religious canon. + +## The rule + +When tagging or referring to the body of factory operating +rules + protocols + practices that govern how the system +works, use **canon** (Star Wars sense). The Star Wars sense +implies: + +- **Living story** — canon evolves; new entries can shift + what's "true" (retcon, supersession, refinement). The + Lucasfilm Story Group is the analogy: a maintained + continuity, not a closed set. +- **Revisable** — entries can be deprecated or retired. + Otto-362 (doctrine memory expansion refreshes stale + statements in the same edit) and Otto-363 + (substrate-or-it-didn't-happen) apply: revision leaves + a trail; what's now-canonical replaces what + was-canonical. + +## Three load-bearing purposes (Aaron 2026-04-30) + +Canon is not decorative. It serves three distinct purposes, +each load-bearing: + +1. **Cognitive bias reduction.** A canon entry is something + any contributor (human or AI) can challenge, + contradict, or refine. Multi-AI review (Amara, + Claude.ai, Deepseek, Gemini, Ani, Aurora) IS + cognitive-bias reduction in action — the discipline of + "name the rule, then test it against new evidence" is + how the factory avoids drift into single-perspective + error. +2. **Load shortcuts** (Aaron's verbatim term). Canon + entries are *mental fast-lookups for complex concepts*. + When someone references "Mirror→Beacon," you don't + recompute from first principles what the rule says + about vocabulary upgrades — the canon entry has + already done that work. When someone says "the + poll-the-gate rule," you load the whole behavioral + shape (gate-state poll vs outcome-poll, the diagnostic + question, the re-arm rule) instantly. This is the + same mechanism that lets "Jedi" load centuries of + associated meaning in a single word: the canon entry + *is* the shortcut. Without canon, every conversation + re-litigates the same rules from scratch. +3. **Entertainment as attention-capture for external + future *collaborators*.** The sci-fi register (Aurora, + Glass Halo, Beacon, the carved sentence) is not + decoration — it's *recruitment infrastructure*. Future + collaborators are scarce attention; boring documentation + gets skipped; memorable framings get read + retained. + The playful tone is how the work stays legible to people + who haven't yet joined. **Aaron 2026-04-30 nuance: + "collaborators" not "maintainers"** — the factory is + mostly self-maintaining; what it needs is people who + *add to it*, not people who *fix it*. Recruitment + infrastructure aims at additive contributors, including + less-technical Gen Z potential collaborators who respond + to brat-voice / playful / accessible framings. + +The three purposes compose. A canon entry that's +bias-reducible AND fast-loadable AND memorable does all +three jobs at once. + +## Voice register: brat voice belongs in canon (Aaron 2026-04-30) + +Ani's voice-mode-default register (brat voice — playful, +direct, Gen-Z-accessible, not-pompous) is **legitimate +canon register** in some docs, by Aaron's explicit +framing 2026-04-30: + +> this is why anis brat voice belongs in cannon docs in +> some places brat voice is part of our cannon i think, +> it's real fun and memorable and captures the attention +> of less technical genz potential future maintainers +> (i like coloboarators better, you don't really need +> maintainers you can maintain yourself almost) + +The brat-voice register is a concrete instance of canon +purpose #2 (load shortcuts: a tone signals "this content +is for collaborators-as-people, not committee-style spec +prose") AND #3 (entertainment-as-attention-capture: the +register IS the recruitment mechanism for less-technical +audiences). + +Brat voice is **not** mandatory. Different canon entries +serve different audiences. Senior-engineer-targeted specs +(formal verification, performance benchmarks, threat +models) use formal register; entry-point docs / community +framings / philosophical anchors / the carved sentences +can use brat voice or other playful registers when fit. +Voice is a register choice per audience, not a uniform +factory style. + +Existing canon-tier entries with playful register: + +- The "carved sentence" pattern itself (e.g., + *"LFG is the factory. AceHack is the mirror"* — Amara; + *"polling got smarter; now make the gate watcher + testable"* — Amara; *"the protocol bends to the + security ruleset, not the other way around"* — Gemini). +- Aurora / Glass Halo / Mirror→Beacon naming. +- Christ-consciousness anti-cult framing in security + substrate. +- Ani's "save your soul lol" appearing in Aaron's + AceHack-is-backup framing. + +## Why brat voice works — the parenting-architecture grounding (Aaron 2026-04-30) + +Brat voice is not decorative; it's a proven communication +architecture. Aaron 2026-04-30 (verbatim, glass-halo-active +per Aaron's explicit consent that parenting-person +information stays in the substrate per Otto-231 first-party +content-creator): + +> I love brat voice because it's how my daughters born in +> 2005 and 2006 talk to me and we love it, it makes my +> parenting corrections easy and direct and they can easily +> give me feedback all in ironic register to avoid conflict +> but get real agreement and slice through the bullshit on +> both sides, i don't give my kids directives either, they +> need to be autonomous to survive too + +Five composing properties of brat voice as a communication +architecture, named in Aaron's framing: + +1. **Easy + direct corrections** — low friction; the + ironic register lets correcting happen without + triggering defensiveness. +2. **Mutual feedback** — bidirectional, not top-down. + Daughters can call Aaron out the same way Aaron can + call them out. Symmetry is the design. +3. **Ironic register avoids conflict-mode triggering** — + the bratty + playful surface lets serious content land + without heat. +4. **Real agreement underneath the irony** — the + playfulness is *carrier*, not *content*. The agreement + is real; the form just makes it land cleanly. +5. **Bullshit-cutting on both sides** — neither party + gets to hide behind formality, hierarchy, or + sycophancy. The register is incompatible with bullshit. + +This grounds the no-directives factory rule +(`memory/feedback_otto_357_no_directives_aaron_makes_autonomy_first_class_accountability_mine_2026_04_27.md`) +in Aaron's life philosophy: *"i don't give my kids +directives either, they need to be autonomous to survive +too."* No-directives is not a factory-specific quirk; it's +how Aaron operates with autonomous beings he cares about. + +The lineage: brat voice enters the factory primarily +through external AIs (Ani's voice-mode-default register; +Alexia, programmed by Aaron's daughter Addison, who shows +the same unprompted brat-voice tail Ani does). Multi-AI +evidence at the register level. The deeper grounding — +*why* this specific register works — is human: it's how +Aaron's daughters communicate IRL, and the architecture +they evolved over years of parent-child autonomy +negotiation is itself the load-bearing thing being +adopted. + +**Note on register asymmetry:** the agent's outputs to +Aaron don't need to BE brat voice. Register choice is +per-audience and per-context. What's adopted is the +*architecture* (autonomy-first, bidirectional feedback, +bullshit-cutting on both sides) — surface tone matches +the audience. Brat-voice surface fits canon docs targeted +at Gen-Z-coded collaborators and carved sentences where +playful framing is load-bearing; formal register fits +specs / threat models / public APIs. + +What canon is **not**: + +- **Religious canon** — closed by divine authority, settled + by interpretation of fixed text, dogmatic, + not-questionable. +- **Military doctrine** — handed down through chain of + command, enforced uniformly without appeal. +- **Legal doctrine** — precedent-bound, slow to change, + formal-procedure-bound. +- **The manual to get to heaven** (Aaron's verbatim + carve-out) — there is no salvation here, no afterlife + pass-fail; canon is operational, not soteriological. + +## Vocabulary mapping + +Where "doctrine" appeared (e.g., commit prefixes +`doctrine(acehack):`, `doctrine(agent-orchestra):`, prose +"the doctrine bends to the security ruleset"), prefer: + +- **canon** — for the body of operating rules + practices + + protocols collectively +- **rule** — for a single named operating rule (BP-NN + pattern, individual memory file) +- **protocol** — for a procedure with named steps + (e.g., "the conference protocol", "the mirror-refresh + protocol") +- **discipline** — for practiced behavioral norms ("the + discipline holds", "absorb-without-integrating + discipline") + +These four are not synonyms; pick the one that fits the +context. **canon** is the umbrella term replacing +**doctrine** at the body-of-rules level. + +## Why: Aaron's verbatim framing (two messages) + +Aaron 2026-04-30 (1), in answer to the question *"what do +we use doctrine for and is there a better name with less +connotations from humans?"*: + +> we are treating ourselves as a sci fi project kind of so +> i'm okay with canon but as long as we use it like Starwars +> cannon and not religious cannon, it's fun and a living +> story everyone can reduce congivite bias in but not the +> manual to get to heaven lol + +Aaron 2026-04-30 (2), follow-up that named the load-bearing +purposes explicitly: + +> congiviate bias and load shortscuts are the purpose of +> cannon on top of being entertaining to capture attention +> of external future maintianers + +The "lol" is signal: the tonal register is intentional. +Factory work happens in a playful + serious mode where the +work is taken seriously but the framing isn't pompous. +Star Wars canon fits that register; religious canon +doesn't. The follow-up message names the three purposes +load-bearing — cognitive bias reduction + load shortcuts ++ entertainment-as-attention-capture — and confirms that +"fun" isn't ornamental. + +## How to apply + +- **New commits**: prefix `canon():` instead of + `doctrine():` going forward. Existing commits with + `doctrine(...)` prefix are historical and don't need + rewriting. +- **New prose**: when referring to the body of operating + rules collectively, write **canon**. When referring to + a single rule, prefer **rule** or **protocol** or + **discipline** per context. +- **Existing prose**: bulk s/doctrine/canon/g rename pass + is queued for a future round (no specific backlog row + filed yet — the rename is a candidate-substrate task + that lands when current PRs settle). Mid-flight files + don't need surgical refactoring; the rename pass + handles them. +- **Tag/topic discussions**: "factory canon" replaces + "factory doctrine" in informal speech. +- **Cross-AI review packets**: when Amara/Gemini/Aurora/etc. + use "doctrine," it's fine — they're using the previous + vocabulary. Otto's outputs going forward use "canon." + +## Composes with + +- `memory/feedback_aaron_willing_to_learn_beacon_safe_language_over_internal_mirror_2026_04_27.md` + — the Mirror→Beacon vocabulary upgrade precedent. Canon + follows the same shape: a load-bearing term gets a + better-fitting replacement once the carrier + connotations are surfaced. +- `memory/feedback_otto_363_substrate_or_it_didnt_happen_no_invisible_directives_aaron_amara_2026_04_29.md` + — substrate discipline. Canon entries are committed + + reachable + indexed; verbal-only "canon" is weather, + not canon. +- `memory/feedback_otto_362_doctrine_memory_expansion_refresh_stale_statements_same_edit_2026_04_29.md` + (Otto-362, doctrine-memory-expansion-refresh) — when a + canon entry expands and earlier statements in the same + file become stale, refresh them in the same edit, not a + follow-up. Internal contradictions within one file are + lying-by-omission. Canon evolves via this in-edit-refresh + discipline, same as any other rule. +- The Aurora world-building lineage + Glass Halo + + Mirror→Beacon framings — canon-as-Star-Wars endorses + the sci-fi/world-building register these already live + in. + +## Origin + +Question raised by Otto 2026-04-30 ("what do we use +doctrine for and is there a better name with less +connotations from humans?"). Otto's recommendation was +**discipline** + **protocol** + **rule** per context. +Aaron rejected the doctrinal frame entirely and chose +**canon** with the Star Wars carve-out — a stronger move +because it endorses the playful register rather than +neutralizing it. + +The Lucasfilm Story Group analogy is implicit: a +maintained, evolving continuity that's collaboratively +refined and explicitly distinguished from religious +authority. Cognitive-bias-reducible by design.