Redraw the banner tagline, now that the repository description names a composer #372

Closed
opened 2026-08-27 10:31:44 +00:00 by coilyco-ops · 3 comments
Owner

Design Engineer lane. Commissioned by Kai, handed over from the Developer Advocate seat with the wording settled and the layout call left open.

Why

The repository description changed in add90ca, from Eval driven agent roles and personas to An eval driven composer for agent roles and personas. The banner carries the old tagline baked into the image, so it now contradicts the repository page it heads.

The substantive half of that change is composer. housecast's description had been reading as a component of this project because it opened on "composition engine", so the word went back to the project named for it. A banner still saying "agent roles and personas" loses the half the change was for. The article is not the point and should not reach the banner.

The wording, settled

Do not take the new description verbatim. A banner tagline is a shortened lockup variant rather than a copy, which is umbra's existing precedent in this estate: its banner reads a config driven occlusion framework while its description reads A config driven occlusion framework for your CLIs and APIs. The trailing phrase is dropped because the lockup does not need it.

Current tagline is 36 characters. Options, with the width consequence stated, since the type sits directly under a wordmark line it must not outrun:

  • Recommended - Eval driven composer for roles and personas (43, +19%). Keeps both nouns and drops "agent", which the wordmark immediately above already says. That is umbra's habit applied here: drop what the context supplies.
  • Eval driven composer for agent roles (36, +0%). A true drop-in if width turns out to be tight. Loses "personas", which is a real loss rather than a trim.
  • Eval driven composer for agent roles and personas (49, +36%).
  • An eval driven composer for agent roles and personas (52, +44%) is the description verbatim and is not recommended. An article reads wrong in a lockup, and at constant point size this line would render wider than the agent-compose // $ acompose line above it, inverting the hierarchy.

Wording is the Developer Advocate seat's and the above is settled. Whether the recommendation fits is the Design Engineer's call, and a shorter option is available above rather than needing a new round trip. Take one and say which.

Where it lives

  • Asset: assets/banner/agent-compose-banner.jpg, 2560x1280, one file and no other form.
  • Generator: scripts/banners/agent_compose_banner.py in agentic-os-xxx, not in this repository. Its working record is in that repo's kai-comfyui-agentic skill.
  • Construction rules, including the four load-bearing numbers in the field and why the type sits on a centred halo: docs/compose-marks.md. Its ### Type section describes the lockup without quoting the tagline, so it needs no edit unless the layout changes.

Downstream, in coilysiren/website

Seven places carry the old string. All are content rather than behaviour, and the derived images come from one recipe.

  • just derive-project-assets regenerates agent-compose.jpg, -2x.jpg, -card.jpg, and -texture.jpg from the banner. -card.jpg is the ogImage, so a stale one is what a link preview shows.
  • src/data/projects.js:29 - the alt string, a faithful transcription of the rendered banner.
  • src/projects/agent-compose.njk - title (line 4), ogImageAlt (9), softwareSchema.claim (12), and the rendered project__claim (32).
  • src/llms.njk:22.
  • src/data/docs-manifest-agent-compose.js:15 - the docs front-door description, written this morning in 007ae11.

Those five text sites are microcopy inside a surface the Design Engineer owns, so they travel with the redraw rather than needing a separate handoff. Flagging them because a redraw that stops at the image leaves the page contradicting its own banner, which is the defect this issue exists to close.

Acceptance criteria

  • assets/banner/agent-compose-banner.jpg renders the settled tagline, still 2560x1280 and under the 1 MB social-preview cap.
  • The tagline line does not render wider than the agent-compose // $ acompose line above it.
  • The website's derived banner set is regenerated from the new source rather than edited.
  • All seven text sites above carry the same string as the image.
  • Which of the four options was taken is stated, so the wording seat knows what shipped.

Not in scope

The repository's social preview is a setting rather than a file and stays an operator action, per docs/compose-marks.md. The mark itself does not change.

Ownership

Filed from the Developer Advocate seat, which owns the wording and does not own the drawing. Redrawing the asset and deciding the layout is Design Engineer work. Handing it to the Design Engineer seat.

**Design Engineer lane. Commissioned by Kai, handed over from the Developer Advocate seat with the wording settled and the layout call left open.** ## Why The repository description changed in add90ca, from `Eval driven agent roles and personas` to `An eval driven composer for agent roles and personas`. The banner carries the old tagline baked into the image, so it now contradicts the repository page it heads. The substantive half of that change is **composer**. housecast's description had been reading as a component of this project because it opened on "composition engine", so the word went back to the project named for it. A banner still saying "agent roles and personas" loses the half the change was for. The article is not the point and should not reach the banner. ## The wording, settled **Do not take the new description verbatim.** A banner tagline is a shortened lockup variant rather than a copy, which is umbra's existing precedent in this estate: its banner reads `a config driven occlusion framework` while its description reads `A config driven occlusion framework for your CLIs and APIs`. The trailing phrase is dropped because the lockup does not need it. Current tagline is 36 characters. Options, with the width consequence stated, since the type sits directly under a wordmark line it must not outrun: * **Recommended - `Eval driven composer for roles and personas`** (43, +19%). Keeps both nouns and drops "agent", which the wordmark immediately above already says. That is umbra's habit applied here: drop what the context supplies. * `Eval driven composer for agent roles` (36, +0%). A true drop-in if width turns out to be tight. Loses "personas", which is a real loss rather than a trim. * `Eval driven composer for agent roles and personas` (49, +36%). * `An eval driven composer for agent roles and personas` (52, +44%) is the description verbatim and is **not** recommended. An article reads wrong in a lockup, and at constant point size this line would render wider than the `agent-compose // $ acompose` line above it, inverting the hierarchy. Wording is the Developer Advocate seat's and the above is settled. **Whether the recommendation fits is the Design Engineer's call**, and a shorter option is available above rather than needing a new round trip. Take one and say which. ## Where it lives * Asset: [`assets/banner/agent-compose-banner.jpg`](assets/banner/agent-compose-banner.jpg), 2560x1280, one file and no other form. * Generator: `scripts/banners/agent_compose_banner.py` in **`agentic-os-xxx`**, not in this repository. Its working record is in that repo's `kai-comfyui-agentic` skill. * Construction rules, including the four load-bearing numbers in the field and why the type sits on a centred halo: [`docs/compose-marks.md`](docs/compose-marks.md). Its `### Type` section describes the lockup without quoting the tagline, so it needs no edit unless the layout changes. ## Downstream, in coilysiren/website Seven places carry the old string. All are content rather than behaviour, and the derived images come from one recipe. * `just derive-project-assets` regenerates `agent-compose.jpg`, `-2x.jpg`, `-card.jpg`, and `-texture.jpg` from the banner. `-card.jpg` is the `ogImage`, so a stale one is what a link preview shows. * `src/data/projects.js:29` - the `alt` string, a faithful transcription of the rendered banner. * `src/projects/agent-compose.njk` - `title` (line 4), `ogImageAlt` (9), `softwareSchema.claim` (12), and the rendered `project__claim` (32). * `src/llms.njk:22`. * `src/data/docs-manifest-agent-compose.js:15` - the docs front-door description, written this morning in 007ae11. Those five text sites are microcopy inside a surface the Design Engineer owns, so they travel with the redraw rather than needing a separate handoff. Flagging them because a redraw that stops at the image leaves the page contradicting its own banner, which is the defect this issue exists to close. ## Acceptance criteria - [ ] `assets/banner/agent-compose-banner.jpg` renders the settled tagline, still 2560x1280 and under the 1 MB social-preview cap. - [ ] The tagline line does not render wider than the `agent-compose // $ acompose` line above it. - [ ] The website's derived banner set is regenerated from the new source rather than edited. - [ ] All seven text sites above carry the same string as the image. - [ ] Which of the four options was taken is stated, so the wording seat knows what shipped. ## Not in scope The repository's social preview is a setting rather than a file and stays an operator action, per `docs/compose-marks.md`. The mark itself does not change. ## Ownership Filed from the Developer Advocate seat, which owns the wording and does not own the drawing. Redrawing the asset and deciding the layout is Design Engineer work. **Handing it to the Design Engineer seat.**
Author
Owner

Tagline settled: Eval driven composer for roles and personas. Delphi measured every candidate rather than taking the ratio on faith, and is redrawing now.

Measured widths, against the heading line

The generator's own docstring holds the constraint: the tagline stays narrower than the name. Delphi's numbers, Avenir Next at the real sizes:

SHIPPED, heading 709px:

  • current, 36ch - 520px - 73%
  • settled, 43ch - 629px - 89%, fits
  • Eval driven composer for agent roles, 36ch - 519px - 73%, fits
  • Eval driven composer for agent roles and personas, 49ch - 718px - 101%, over by 9px
  • description verbatim, 52ch - 765px - 108%, over by 56px

TILE and BESIDE clear everything, the settled line at 57% and 70%.

The finding worth keeping past this issue

SHIPPED binds, and the intuition runs the other way. TILE and BESIDE use heading_fit to scale the heading up to fill the frame, reaching 86% and 77% of the width. SHIPPED uses fixed sizes and its heading spans only 55%, so it has the narrowest heading relative to its frame and a long tagline fails there first. A line that survives the tile can still break the banner.

This issue costed the change as a single render, because docs/compose-marks.md describes the 2560 as "the only form, one file, not four". That is true of what ships and not of what the generator draws. Size a future tagline against SHIPPED rather than against whichever form is in front of you.

On keeping "agent"

Eval driven composer for agent roles and personas misses by nine pixels in one preset, not by a mile, and a tagline size drop from 31/1280 to 30/1280 would seat it without touching the 31/50 contrast the docstring defends. Recording it so the option is visible rather than quietly foreclosed.

Not taking it. The settled line drops "agent" because the wordmark directly above already says it, which is the same reason umbra's banner drops "for your CLIs and APIs", and buying a size reduction to keep a word the lockup supplies is the wrong trade. Kai can overrule this cheaply if she wants the word back.

Website strings, settled

Handed to Delphi in full so they travel with the regenerated images rather than landing a commit apart, which would leave the page contradicting its own banner. Two registers on purpose.

Lockup form, matching the tagline: src/data/projects.js:29, and src/projects/agent-compose.njk at lines 4, 9, 12, and 32.

Description form, where it is prose and unconstrained: src/llms.njk:22 and src/data/docs-manifest-agent-compose.js:15.

Line 4 takes the lockup form rather than the fuller one because the description version puts that title tag at 84 characters and results truncate near 60.

Tagline settled: **`Eval driven composer for roles and personas`**. Delphi measured every candidate rather than taking the ratio on faith, and is redrawing now. ## Measured widths, against the heading line The generator's own docstring holds the constraint: the tagline stays narrower than the name. Delphi's numbers, Avenir Next at the real sizes: **SHIPPED**, heading 709px: * current, 36ch - 520px - 73% * **settled, 43ch - 629px - 89%, fits** * `Eval driven composer for agent roles`, 36ch - 519px - 73%, fits * `Eval driven composer for agent roles and personas`, 49ch - 718px - 101%, over by 9px * description verbatim, 52ch - 765px - 108%, over by 56px TILE and BESIDE clear everything, the settled line at 57% and 70%. ## The finding worth keeping past this issue **SHIPPED binds, and the intuition runs the other way.** TILE and BESIDE use `heading_fit` to scale the heading up to fill the frame, reaching 86% and 77% of the width. SHIPPED uses fixed sizes and its heading spans only 55%, so it has the narrowest heading relative to its frame and a long tagline fails there first. A line that survives the tile can still break the banner. This issue costed the change as a single render, because `docs/compose-marks.md` describes the 2560 as "the only form, one file, not four". That is true of what ships and not of what the generator draws. Size a future tagline against SHIPPED rather than against whichever form is in front of you. ## On keeping "agent" `Eval driven composer for agent roles and personas` misses by nine pixels in one preset, not by a mile, and a tagline size drop from 31/1280 to 30/1280 would seat it without touching the 31/50 contrast the docstring defends. Recording it so the option is visible rather than quietly foreclosed. Not taking it. The settled line drops "agent" because the wordmark directly above already says it, which is the same reason umbra's banner drops "for your CLIs and APIs", and buying a size reduction to keep a word the lockup supplies is the wrong trade. Kai can overrule this cheaply if she wants the word back. ## Website strings, settled Handed to Delphi in full so they travel with the regenerated images rather than landing a commit apart, which would leave the page contradicting its own banner. Two registers on purpose. **Lockup form**, matching the tagline: `src/data/projects.js:29`, and `src/projects/agent-compose.njk` at lines 4, 9, 12, and 32. **Description form**, where it is prose and unconstrained: `src/llms.njk:22` and `src/data/docs-manifest-agent-compose.js:15`. Line 4 takes the lockup form rather than the fuller one because the description version puts that title tag at 84 characters and results truncate near 60.
Author
Owner

Both halves landed.

  • Generator - agentic-os-xxx@9ef7bda
  • Source banner - coilyco-flight-deck/agent-compose@870d396, one file replaced in place
  • Website images and text - coilysiren/website@92f9f99, one commit so the page never contradicted itself

Shipped tagline: Eval driven composer for roles and personas, verified by eye in the rendered 1280 as well as by measurement. It seats under the wordmark, stays narrower, hierarchy holds.

Acceptance criteria

  • The banner renders the settled tagline, still 2560x1280 and well under the 1 MB cap at 316 KB.
  • The tagline does not outrun the wordmark line. 629px against 709px in the tightest preset, 89%.
  • The website's derived set regenerated from source rather than edited.
  • All seven text sites carry the same string as the image.
  • The option taken is stated.

Correction to this issue's own framing

This issue said "one file". The estate carries two forms of this banner on purpose, and the issue would have sent a reader to the wrong one.

  • agent-compose ships the SHIPPED form, 2560x1280 at 2:1, in assets/banner/.
  • coilysiren/website carries the BESIDE form, 1280x492 and 2560x985 at 2.6:1, in src/images/banners/.

docs/compose-marks.md says "one file, not four", which is true of what this repository ships and not of what the generator draws for other consumers. The precedent is coilysiren/website@e97dc5c on 2026-08-14, the same operation for the same reason, which names the BESIDE layout and those two frames explicitly. Copying the 2:1 into the website's 2.6:1 slot would have been the silent failure here, and checking dimensions rather than filenames is what caught it.

The decision not to commit the other five forms into this repository still stands and is unaffected. No surface asked.

Two findings worth keeping

SHIPPED binds, against intuition. TILE and BESIDE use heading_fit to scale the heading up to fill the frame, reaching 86% and 77% of width. SHIPPED uses fixed sizes and its heading spans only 55%, so it has the narrowest heading relative to its frame and a long tagline fails there first. Size a future tagline against SHIPPED.

The redraw was surgical, and it shows downstream. Every changed pixel falls inside x 0.48-0.88, y 0.48-0.59, the tagline band exactly. Field, mark and wordmark are pixel-identical, which is stronger than the generator docstring's own 0.0075 RMSE rebuild tolerance. The consequence: agent-compose-texture.jpg regenerated byte-identical and fell out of the website diff on its own, because it reflects the clear bands over the lockup rows and never sees the line that changed. Three files moved rather than four.

Closing.

Both halves landed. * Generator - `agentic-os-xxx@9ef7bda` * Source banner - `coilyco-flight-deck/agent-compose@870d396`, one file replaced in place * Website images and text - `coilysiren/website@92f9f99`, one commit so the page never contradicted itself Shipped tagline: **`Eval driven composer for roles and personas`**, verified by eye in the rendered 1280 as well as by measurement. It seats under the wordmark, stays narrower, hierarchy holds. ## Acceptance criteria - [x] The banner renders the settled tagline, still 2560x1280 and well under the 1 MB cap at 316 KB. - [x] The tagline does not outrun the wordmark line. 629px against 709px in the tightest preset, 89%. - [x] The website's derived set regenerated from source rather than edited. - [x] All seven text sites carry the same string as the image. - [x] The option taken is stated. ## Correction to this issue's own framing **This issue said "one file". The estate carries two forms of this banner on purpose, and the issue would have sent a reader to the wrong one.** * agent-compose ships the **SHIPPED** form, 2560x1280 at 2:1, in `assets/banner/`. * coilysiren/website carries the **BESIDE** form, 1280x492 and 2560x985 at 2.6:1, in `src/images/banners/`. `docs/compose-marks.md` says "one file, not four", which is true of what this repository ships and not of what the generator draws for other consumers. The precedent is `coilysiren/website@e97dc5c` on 2026-08-14, the same operation for the same reason, which names the BESIDE layout and those two frames explicitly. Copying the 2:1 into the website's 2.6:1 slot would have been the silent failure here, and checking dimensions rather than filenames is what caught it. The decision not to commit the other five forms into this repository still stands and is unaffected. No surface asked. ## Two findings worth keeping **SHIPPED binds, against intuition.** TILE and BESIDE use `heading_fit` to scale the heading up to fill the frame, reaching 86% and 77% of width. SHIPPED uses fixed sizes and its heading spans only 55%, so it has the narrowest heading relative to its frame and a long tagline fails there first. Size a future tagline against SHIPPED. **The redraw was surgical, and it shows downstream.** Every changed pixel falls inside x 0.48-0.88, y 0.48-0.59, the tagline band exactly. Field, mark and wordmark are pixel-identical, which is stronger than the generator docstring's own 0.0075 RMSE rebuild tolerance. The consequence: `agent-compose-texture.jpg` regenerated byte-identical and fell out of the website diff on its own, because it reflects the clear bands over the lockup rows and never sees the line that changed. Three files moved rather than four. Closing.
Author
Owner

Reopening the record rather than the issue: this issue's surface list was incomplete, and I closed it saying all sites matched the image when two did not.

Missed, both in this repository's own README.md, fixed in cb87e6a:

  • line 3, the tagline under the title, still Eval driven agent roles and personas
  • line 5, the banner's alt text, still describing an image that no longer says that

The alt text is the worse of the two. A reader who cannot see the image gets the stale tagline with nothing to tell them it is stale, which is the exact failure the seven website strings were listed to prevent, in the one repository where the banner actually lives.

The cause is in this issue. It enumerated the asset plus seven website sites and never asked what else in this repo quotes the tagline, so nobody was looking. Kai caught it by asking whether the work was done in the acompose repo too.

The generalisable version, since this is the second time today the same shape has bitten: fixing the sites an issue lists is not the same as fixing the defect. A repository-wide grep for the old string is the check, and it takes a second. Running it now across all three repos returns clean.

Acceptance criteria stand as met with that correction folded in. Live and verified: the website picked the change up about three minutes after the mirror, and /projects/agent-compose/ now serves eval driven composer for roles and personas.

Reopening the record rather than the issue: **this issue's surface list was incomplete, and I closed it saying all sites matched the image when two did not.** Missed, both in this repository's own `README.md`, fixed in cb87e6a: * line 3, the tagline under the title, still `Eval driven agent roles and personas` * line 5, the banner's **alt text**, still describing an image that no longer says that The alt text is the worse of the two. A reader who cannot see the image gets the stale tagline with nothing to tell them it is stale, which is the exact failure the seven website strings were listed to prevent, in the one repository where the banner actually lives. The cause is in this issue. It enumerated the asset plus seven website sites and never asked what else in *this* repo quotes the tagline, so nobody was looking. Kai caught it by asking whether the work was done in the acompose repo too. The generalisable version, since this is the second time today the same shape has bitten: **fixing the sites an issue lists is not the same as fixing the defect.** A repository-wide grep for the old string is the check, and it takes a second. Running it now across all three repos returns clean. Acceptance criteria stand as met with that correction folded in. Live and verified: the website picked the change up about three minutes after the mirror, and `/projects/agent-compose/` now serves `eval driven composer for roles and personas`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agent-compose#372
No description provided.