Metadata
| Status | done |
|---|---|
| Assigned | agent-1373 |
| Agent identity | f51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e |
| Created | 2026-05-01T16:09:45.856813781+00:00 |
| Started | 2026-05-01T16:10:34.384717389+00:00 |
| Completed | 2026-05-01T16:34:21.103119321+00:00 |
| Tags | fix,html,publish,polish, eval-scheduled |
| Eval score | 0.83 |
| └ blocking impact | 0.85 |
| └ completeness | 0.85 |
| └ constraint fidelity | 0.85 |
| └ coordination overhead | 0.87 |
| └ correctness | 0.90 |
| └ downstream usability | 0.82 |
| └ efficiency | 0.80 |
| └ intent fidelity | 0.90 |
| └ style adherence | 0.88 |
Description
Description
A publicly-shared wg html mirror needs context — visitors should know what they're looking at. Currently the rendered page shows only 'Workgraph' + task count + the dependency graph. No project name, no description, no author credit.
User request 2026-05-01: 'publishing should have a place for us to describe the graph and what it's up to. a byline. an abstract even.'
Spec
Sources of metadata (cascade — first hit wins)
- Per-deployment override in html-publish.toml deployment block:
title,byline,abstract_path - Project-level in
.wg/about.md: a markdown file that becomes the page abstract - Project-level in
.wg/config.tomlunder a new[project]section:title,byline - Default if nothing's set: title = directory name, byline = empty, abstract = empty
CLI surface
Add flags to wg html publish add:
--title <STR>— overrides any cascade source--byline <STR>— overrides any cascade source--abstract <PATH>— overrides .wg/about.md location
Also: wg html publish edit already lets the user edit the toml directly, so post-creation customization works without new commands.
Rendering
At the top of the rendered html (above the dependency graph), add:
<header class="project-header">
<h1 class="project-title">{{ title }}</h1>
<p class="project-byline">{{ byline }}</p>
<div class="project-abstract">{{ abstract markdown rendered as HTML }}</div>
</header>
Style:
- Title: large, prominent. Same font stack as existing TUI/html palette.
- Byline: smaller, dim. One line.
- Abstract: rendered markdown (use the same renderer as polish-wg-html's task-description markdown). Collapsible if longer than ~5 lines (so it doesn't dominate the page).
- Theme-aware: dark/light per existing system.
If all three fields are empty: omit the header entirely (don't render a useless empty block — fall back to the current 'Workgraph / N tasks shown' minimal header from wg-html-declutter).
Use cases this enables
- Public mirror with real branding ('Poietic Inc - Active Work', byline 'corporate formation audit + haiku research', abstract describing the team's current focus)
- Internal team mirror (title = team name, byline = quarter/sprint, abstract = links to related repos)
- Educational example (title = 'WG demo for Y Combinator', abstract = walkthrough of what's being built)
Validation
-
Failing test:
wg html publish run public-mirrorrenders header section with title/byline/abstract when configured -
CLI:
wg html publish add foo --rsync ... --title 'My Project' --byline 'a tagline'sets fields in toml - Cascade: per-deployment overrides project-level; project-level overrides default
- If no metadata is set: header is omitted (no empty block)
- Markdown abstract is rendered as HTML (lists, code blocks, links work)
- Theme-aware: dark + light both look correct
- No regression of existing wg-html-* features (declutter, edge highlighting, side panel, theme toggle, --chat, --since, etc.)
- cargo build + cargo test pass
- cargo install --path . was run before claiming done
Coordinate with adjacent tasks
- polish-wg-html (in-flight): provides the markdown rendering infrastructure. Reuse it for the abstract.
- wg-html-declutter (already filed): the redesigned minimal header gets EXTENDED here when project metadata is set
- wg-html-resizable (in-flight): the resizable inspector panel; abstract may also be in a panel — coordinate UX
If polish-wg-html and wg-html-declutter haven't landed, this task adds dependencies on them. If they have landed, build on top.
Depends on
Required by
- (none)
Log
- 2026-05-01T16:09:45.835668500+00:00 Task paused
- 2026-05-01T16:10:07.269900914+00:00 Task published
- 2026-05-01T16:10:31.572882136+00:00 Lightweight assignment: agent=Careful Programmer (f5143935), exec_mode=full, context_scope=task, reason=Careful Programmer is the best fit: this is a correctness-critical implementation task (cascade logic, theme support, markdown rendering, extensive validation), and Careful tradeoff with 0.80 score and 501 completed tasks demonstrates strong performance on similar detailed work.
- 2026-05-01T16:10:34.384721968+00:00 Spawned by coordinator --executor claude --model opus
- 2026-05-01T16:10:45.845752770+00:00 Starting: explore html publish code structure
- 2026-05-01T16:33:28.742308851+00:00 Implementation complete: ProjectMeta cascade + CLI flags + rendering + tests
- 2026-05-01T16:33:36.014533620+00:00 Validated: cargo build clean, cargo test --bin wg passes (3338 tests), 8 new publish unit tests + 1 new smoke scenario all green; wg html / wg html publish run cascade live-tested with title/byline/abstract
- 2026-05-01T16:34:06.611241721+00:00 Committed: 7dc656527 — pushed to remote
- 2026-05-01T16:34:21.103128128+00:00 Task pending eval (agent reported done; awaiting `.evaluate-*` to score)
- 2026-05-01T16:37:44.203784269+00:00 PendingEval → Done (evaluator passed; downstream unblocks)