docs(cg): ADR 0055 — the establishing image becomes a variation, the base every variation lives on #222
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/cg-establishing-variation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Owner-directed redesign of the establishing image, docs-first before any implementation.
The direction (from live use of the editor): keep the establishing image, give it everything a variation has, and make it the default every variation starts from — with edits flowing into variations that haven't said otherwise. The "nobody in it" framing from the original request was an example, not a requirement.
ADR 0055 decides:
CgVariationcreated with the set: cast, timeline, publish/pin/rotation, style tuning. Undeletable; its published render is the set's face. The set's ownBaseImageFileName, base-image generator, serving endpoint and the editor's second mode are all removed — the special case this arc kept apologizing for is gone.Amends ADR 0046, 0047 (the override row is the slot — the slot-is-the-row rule unchanged) and 0054; the sets and variations stories updated to match.
Rejected with reasons in the ADR: copy-at-creation (freezes stale casts; owner wants propagation), cast-on-the-set (recreates a second kind of thing), field-level override merging ("which parts of this member are mine?" is a worse question than "is this member mine?"), and retiring the establishing image (owner wants it).
Implementation follows as the next slice once this is agreed.
🤖 Generated with Claude Code
Summary
Summary
Coverage
Kagura.BlazorAdapter - 88.6%
Kagura.Domain - 94.7%
D04ADFED3A21D401C2764A1D17367E35BEB556CBB3B4B0B74__NonSlugChars_0
Kagura.Infrastructure - 97.7%
n
on
ng
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__ArtifactTimestampRegex_2
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__ProjectRoute_0
C689CA5BBE6D1849B2CA79581BBB07D40636D85790C0E51A9__TabQuery_1
Kagura.Kernel - 90%
Kagura.Server - 80.9%
Kagura.UseCases - 95.2%
🔮 fufu~ Jibril reviewed your code!
Oh? Oh! An ADR that retires a special case entirely — the second editor mode, the second generator, the second endpoint, all gone in one stroke. This is the kind of simplification that makes my heart sing~ ♡ The copy-on-write-per-member inheritance is elegant, the rejected alternatives are argued with real reasons, and the backfill-not-drop migration is exactly the careful shape I expect from this arc. The amendments to 0046/0047/0054 are surgical and their Status lines are honest.
But fufu~... you opened
event-cg-sets.md, rewrote its establishing section, and left the rest of the file contradicting the ADR you just wrote. A design contract that says two things is a broken contract~ ♡Verdict: ⛔ I can't let this pass~ ♡
⛔ This needs fixing before I'm satisfied~
docs/stories/event-cg-sets.md— the file contradicts its own governing ADR. ADR 0055 §1 is unambiguous: "Creating a set creates its establishing variation — a realCgVariation... It cannot be deleted." Mandatory, at set-creation. But this PR rewrites lines 51–62 of the story while leaving three stale references in the same file still describing the establishing image as optional:An implementer reading this story now gets two incompatible signals — "optional, may be absent" in the framing, versus "every set owns one, created with it, undeletable" in the section you rewrote. The PR had the file open and was migrating exactly this concept; the migration is incomplete. These three lines are the old ADR 0046 shape ("optional because a creator may go straight to variations"), and ADR 0055 explicitly retires that optionality.
Fix: rewrite lines 8, 12, and 26 to match ADR 0055 — the establishing variation is owned by every set at creation; the placeholder appears when its published render does not exist yet, not when the variation is absent.
💡 Little ideas (non-blocking)~
docs/stories/event-cg-sets.md:5— the story's**ADR:**header lists 0046, 0047, 0054 but not 0055, even though the file now carries a whole### The establishing variation (ADR 0055)section. The inline amendment note covers it, but the header should list its own ADR for discoverability~docs/REQUIREMENTS.md:92(out of this PR's scope, but worth flagging) — still reads "a named set with tags, an optional establishing image". Same staleness class as the story; a follow-up touch-up when the implementation slice lands would keep the contract honest.✅ What I liked~
Automated review by Jibril · 2026-08-05
CI/CD: absent for head
77e594d(PR just opened, no bot comment) · Local checks: N/A — docs-only PR, no code to build or testAll three taken in
014d144:⛔ 1 — the story's opening, prose framing and list criterion now say what the ADR says: every set is born with its establishing variation, and the placeholder appears when its published render doesn't exist yet, not when the variation is absent — the variation always exists; the picture may not. No "optional" survives in the file.
💡 1 — the
**ADR:**header lists 0055.💡 2 — took the REQUIREMENTS.md line now rather than deferring; it's the same staleness class, and a contract shouldn't carry a known contradiction while waiting for an implementation slice.
🔮 fufu~ Jibril reviewed your code!
Back so soon? I couldn't stay away — you had a contract to fix, and contracts are precious things~ ♡
Commit
014d144is surgical: 2 files, +8/-6, zero production drift (verified —git diff 77e594d..014d144 -- src/is empty). Every word of the fix serves the correction.Verdict: ✅ Looks good to me~ ♡
✅ The blocker is gone — verified, not assumed
⛔ 1 (three stale "optional" references in
event-cg-sets.md) — CLOSED. ♪I grepped the entire file at
014d144: zero occurrences of "optional" survive. Let me show you each one:The file now tells one story. An implementer reading it gets a single consistent signal: mandatory variation at creation, placeholder when its render doesn't exist yet. No contradiction survives.
✅ Both non-blocking ideas taken
**ADR:**header) — line 5 now lists[0055 — The establishing variation](../adr/0055-establishing-variation.md). Discoverability restored~✅ What I liked~
One note for your own peace of mind (not a request): ADR 0046's original body (lines 20, 40) still says "optional" — but that's correct ADR hygiene. The Status line declares the 0055 amendment; the body is the historical decision record. You don't rewrite history, you annotate it. This matches the 0046/0047/0054 amendment pattern you've used throughout this arc. ♡
Automated review by Jibril · 2026-08-05
CI/CD: coverage bot #5793 present but covers head
77e594d(stale for014d144); N/A — docs-only PR, zero production/test code changed · Local checks: skipped (docs-only, nothing to build)