skip to content

The redesign pattern

Two-pass clean-slate page redesign: blank existing listed surfaces, write one design brief per surface, then build one real page per committed brief through the shared milestone unit. Use when existing pages should not anchor the replacement design.

redesign — clean-slate page design

design, preceded by a step that blanks the listed surfaces so existing pages cannot anchor the replacement. The user's explicit selection of this pattern is the safety choice; the clean-slate step writes a real marker file, so resume never repeats it.

redesign
[header]
name = "redesign"
version = "1.1"
description = """
Two-pass clean-slate page redesign: blank existing listed surfaces, write one design brief per surface,
then build one real page per committed brief through the shared milestone unit. Use when existing pages
should not anchor the replacement design.
"""
entry = "main"

The top-level rows are the two design passes; the clean slate is a step, not a pass.

redesign
[[header.levels]]
label = "pass"

[[header.parameters]]
name = "pages_source"
kind = "file"
default = "pages.md"
description = "The surface index for the redesign run."

main

The marker file is the whole resume story: present means the surfaces were already blanked, so go straight to the passes.

redesign
[[blocks.main]]
type = "conditional"
condition = { kind = "done-file", path = "docs/page-design/.clean-slate-complete" }
then = "passes"
else = "clean_slate_then_passes"

passes

The two design passes, identical to design.toml: briefs from the surface index, then one real page per committed brief.

redesign
[[blocks.passes]]
type = "sub-pattern"
pattern = "milestone"
parameters = { baseline_relaxed = "true", prompt_prefix = "design/briefs/", review_prompt = "design/briefs/review", plan_source = "{{pages_source}}" }

[[blocks.passes]]
type = "sub-pattern"
pattern = "milestone"
parameters = { baseline_relaxed = "true", prompt_prefix = "design/pages/", review_prompt = "design/pages/review", plan_source = "docs/page-design/briefs" }

clean_slate_then_passes

Blank the listed surfaces, commit that, then run the same two passes. halt: every later pass builds on the blanked tree, and the marker file is a hard contract so a partial clean slate cannot be mistaken for a finished one.

redesign
[[blocks.clean_slate_then_passes]]
type = "agent"
role = "build"
prompt = "design/clean-slate"
inputs = ["{{pages_source}}"]
produces = ["docs/page-design/.clean-slate-complete"]
failure = "halt"
confine = true

[[blocks.clean_slate_then_passes]]
type = "git"
op = "commit"

[[blocks.clean_slate_then_passes]]
type = "sub-pattern"
pattern = "milestone"
parameters = { baseline_relaxed = "true", prompt_prefix = "design/briefs/", review_prompt = "design/briefs/review", plan_source = "{{pages_source}}" }

[[blocks.clean_slate_then_passes]]
type = "sub-pattern"
pattern = "milestone"
parameters = { baseline_relaxed = "true", prompt_prefix = "design/pages/", review_prompt = "design/pages/review", plan_source = "docs/page-design/briefs" }