Skip to content

Record the deployment-profiles epic (core #69) - #4

Merged
mbreissi merged 1 commit into
mainfrom
record/deployment-profiles
Jul 24, 2026
Merged

Record the deployment-profiles epic (core #69)#4
mbreissi merged 1 commit into
mainfrom
record/deployment-profiles

Conversation

@mbreissi

Copy link
Copy Markdown
Contributor

Design-record update: one shared Dallas topology + per-platform profiles renders to HOST, Greengrass, and Kubernetes. Records the six-stage epic in PLAN.md. Shipped in edgecommons/edgecommons#69; design in that repo's DESIGN-deployment-profiles.md (D-CLI-24/-25).

🤖 Generated with Claude Code

https://claude.ai/code/session_01LsX7cWVGLszurNYMVwMJGo

The north-star cut: one shared Dallas topology + per-platform profiles renders
to HOST, Greengrass, and Kubernetes. Six verified stages (model/merge,
unification, CLI threading, GG-complete, the k8s renderer, bct adoption).
Subsumes deck ch.13 slice-4 Kubernetes (REVIEW #11) and REVIEW #6's config
adoption loop into one model. Shipped in edgecommons/edgecommons#69.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsX7cWVGLszurNYMVwMJGo
@mbreissi
mbreissi merged commit 3941585 into main Jul 24, 2026
1 check passed
@mbreissi
mbreissi deleted the record/deployment-profiles branch July 24, 2026 00:40
mbreissi added a commit that referenced this pull request Jul 24, 2026
The mock was written to double as an argument that it complied with the agreed
decisions, so the compliance case ended up rendered inside the UI: register
citations (S-4, S-7, REVIEW #4, decision 3A), advocacy prose ("the honesty layer
that keeps the Studio from becoming a second, hidden configuration system", "it
never holds a parallel approval store"), and roadmap markers ("not this pass",
"next pass", "the write-path cut"). Wrong audience, and duplicated what
REVIEW-UI §7 and the README already say.

It also defeated the mock's purpose. Text density is one of the main things a
high-fidelity mock exists to let you judge; rationale paragraphs above every
table overstate the real copy budget and obscure layout, density and hierarchy.
Roadmap markers and internal references in a user-facing surface are ruled out
anyway.

The screens now state what the system does, in the product's voice. Rationale
moved behind a "Design notes" toggle in the context bar, off by default and
styled as obvious non-product chrome (dashed copper, "design note" label).
Undesigned areas still say so — a reviewer needs that — but as chrome, without
product voice or register citations.

Verified by rendering every screen state headlessly: 264 states across both
hierarchies × every scope/node/global selection × every tab × both toggle
states — 0 rationale leaks with notes off, 132 regions annotated with notes on,
no throws. The one surviving register string with notes off is the evidence
bundle's own `pass (S-1..S-9)` value, which is the literal field the kernel's
evidence.json records, shown as recorded.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsX7cWVGLszurNYMVwMJGo
mbreissi added a commit that referenced this pull request Jul 24, 2026
The mock was written to double as an argument that it complied with the agreed
decisions, so the compliance case ended up rendered inside the UI: register
citations (S-4, S-7, REVIEW #4, decision 3A), advocacy prose ("the honesty layer
that keeps the Studio from becoming a second, hidden configuration system", "it
never holds a parallel approval store"), and roadmap markers ("not this pass",
"next pass", "the write-path cut"). Wrong audience, and duplicated what
REVIEW-UI §7 and the README already say.

It also defeated the mock's purpose. Text density is one of the main things a
high-fidelity mock exists to let you judge; rationale paragraphs above every
table overstate the real copy budget and obscure layout, density and hierarchy.
Roadmap markers and internal references in a user-facing surface are ruled out
anyway.

The screens now state what the system does, in the product's voice. Rationale
moved behind a "Design notes" toggle in the context bar, off by default and
styled as obvious non-product chrome (dashed copper, "design note" label).
Undesigned areas still say so — a reviewer needs that — but as chrome, without
product voice or register citations.

Verified by rendering every screen state headlessly: 264 states across both
hierarchies × every scope/node/global selection × every tab × both toggle
states — 0 rationale leaks with notes off, 132 regions annotated with notes on,
no throws. The one surviving register string with notes off is the evidence
bundle's own `pass (S-1..S-9)` value, which is the literal field the kernel's
evidence.json records, shown as recorded.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsX7cWVGLszurNYMVwMJGo
mbreissi added a commit that referenced this pull request Jul 24, 2026
… (1A) (#6)

* Replace the mock with a high-fidelity one realising the context spine (1A)

The shipped read-only UI was built to a different information architecture than
the agreed one: a profile dropdown plus four flat sibling tabs, with no context
spine, no fleet tree, no breadcrumb, no level-scoped tabs and no global/scoped
distinction. The previous low-fidelity mock already carried the rail, tree,
contextbar and six workspace tabs, so the built UI is further from the agreed
design than the mock it was meant to realise. Recorded in REVIEW-UI §7.

This replaces mock-app/ with a high-fidelity, clickable design artifact:

- Realises decision 1A: persistent left rail whose fleet tree is the selection
  spine; Releases/Operations/Registry/Settings as the only global areas; a
  breadcrumb that is always visible; tabs that appear by level.
- Both streams everywhere as a pair, never fused (REVIEW #2).
- Evidence provenance always on screen, with the degraded state designed rather
  than promised (REVIEW #13).
- Approvals in their agreed home — rendered from CODEOWNERS on the Releases
  gate, not a top-level tab (REVIEW #10) — correcting where Access shipped.
- The declared-write honesty layer: every editing surface states which file it
  writes, at which scope, and its blast radius.

Fidelity is guaranteed structurally: styles/product.css is generated from the
shipped UI bundle, so the mock and the product share one Carbon build and one
brand-token mapping and cannot visually diverge.

Closes U2b by construction: the mock is data-driven and ships two deliberately
different hierarchies — enterprise/site/line/device and region/plant/cell/device
— rendered by the same code, every badge/breadcrumb/chain derived from the
fixture's own hierarchy.levels. No level name appears in the logic, matching the
kernel where only the terminal `device` is special. The second fixture also
carries the degraded paths (no CODEOWNERS, no evidence source, unresolved
digests) so those are designed, not left to chance.

Scope is the shell plus the screens the kernel can already serve (Overview,
Config, Render, Releases gate); Components/Topology/History and the remaining
global areas render as explicit "not designed yet" states, never invented
content.

Verified in a browser across both hierarchies; console clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsX7cWVGLszurNYMVwMJGo

* Move design rationale out of the mock's product surface

The mock was written to double as an argument that it complied with the agreed
decisions, so the compliance case ended up rendered inside the UI: register
citations (S-4, S-7, REVIEW #4, decision 3A), advocacy prose ("the honesty layer
that keeps the Studio from becoming a second, hidden configuration system", "it
never holds a parallel approval store"), and roadmap markers ("not this pass",
"next pass", "the write-path cut"). Wrong audience, and duplicated what
REVIEW-UI §7 and the README already say.

It also defeated the mock's purpose. Text density is one of the main things a
high-fidelity mock exists to let you judge; rationale paragraphs above every
table overstate the real copy budget and obscure layout, density and hierarchy.
Roadmap markers and internal references in a user-facing surface are ruled out
anyway.

The screens now state what the system does, in the product's voice. Rationale
moved behind a "Design notes" toggle in the context bar, off by default and
styled as obvious non-product chrome (dashed copper, "design note" label).
Undesigned areas still say so — a reviewer needs that — but as chrome, without
product voice or register citations.

Verified by rendering every screen state headlessly: 264 states across both
hierarchies × every scope/node/global selection × every tab × both toggle
states — 0 rationale leaks with notes off, 132 regions annotated with notes on,
no throws. The one surviving register string with notes off is the evidence
bundle's own `pass (S-1..S-9)` value, which is the literal field the kernel's
evidence.json records, shown as recorded.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsX7cWVGLszurNYMVwMJGo

* Show state, not rules, on the read-only Config screen

Two panels survived the first pass because they were neither citations nor
advocacy — but they still explained design rules instead of showing state, on a
screen with no editor on it:

- "What an edit here would write" described a capability that isn't present.
  The declared-write panel belongs attached to an actual editor, at commit time.
- "Set from placement — hierarchy and identity cannot be authored in a layer"
  stated a rule. In the product that surfaces as a validation error when someone
  tries it, not as permanent furniture.

Replaced with the equivalent facts:

- "Layer at this scope" — the file authored at the selection, what it applies to,
  and its restart impact. Properties of the thing on screen.
- "Derived" — the actual computed hierarchy.levels and identity values merged
  into every component here. More useful to an author than the rule was, since
  it shows what is stamped rather than what is forbidden.

Both rationales moved behind the Design notes toggle. The verification guard now
also catches this subtler class ("would write", "cannot be authored", "is never",
"are stamped"): 264 screen states, 0 leaks with notes off, 132 annotated with
notes on.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsX7cWVGLszurNYMVwMJGo

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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