Skip to content

feat(pattern-model): outcome-framed patterns + shared layer + web-product reframe#11

Merged
efordee24 merged 1 commit into
mainfrom
feature/pattern-model
Jun 26, 2026
Merged

feat(pattern-model): outcome-framed patterns + shared layer + web-product reframe#11
efordee24 merged 1 commit into
mainfrom
feature/pattern-model

Conversation

@efordee24

Copy link
Copy Markdown
Collaborator

Adopts the outcome-framed pattern model in kuat-agent-rules — implementing the resolved design in docs/migration/kuat-pattern-model.md (§9, Ed) per the execution prompt docs/migration/pattern-model-rollout-prompt.md. First cut: web-product full reframe + placeholder/shared scaffolding for slides & web-marketing. Blocks deferred.

Why

Patterns were UI-named, single-medium-only scenarios with no way to express a concept shared across media (e.g. a case study told in slides vs on a marketing page) without duplication. This adopts GOV.UK-style outcome framing (Ask users for… / Help users to… / Pages) and a concept↔implementation split: shared concepts factored to a top-level layer only when cross-medium, single-medium patterns staying in-medium, and a medium's patterns/ folder only ever holding patterns it implements (no bloat).

What changed

  • Gate — extended skills/scripts/check-reference.mjs structure() to allow the shared layer reference/patterns/ alongside media-types/<medium>/patterns/. (Required first: the check walks the whole tree, so the new folder was illegal until extended.)
  • Shared layerreference/patterns/overview.md (the model, passive) + help-users/describe-a-case-study.md (the worked cross-medium concept — slides implementation linked, web-marketing TBD, no web-product entry).
  • web-product reframe + rename (git mv, history preserved): authentication→sign-in, forms→complete-a-form, dashboards→dashboard, documentation kept. Each leads user goal → context → principles, folds existing layout/design/content/a11y/impl detail under Solution in web-product, then Best Practices + Examples. README reindexed by Ask/Help/Pages.
  • slides + web-marketing — light-touch passive "pattern model (later cut)" notes; slides/patterns/case-studies.md gains an Implements: link to the shared concept.
  • Contribution — new contribute/proposing-a-pattern.md (Medium/Heavy; proposing-a-block deferred), linked from overview, CONTRIBUTING, and proposing-a-reference-change.
  • Consumptioncreate-web-app pattern-loading refs updated to the reframed slugs; renames recorded in reference/MIGRATION-MAP.md.
  • Payloadsplugins/** regenerated via build:plugins.

Reviewer notes

  • Blocks are deliberately deferred — no pattern↔Block registry, no proposing-a-block; docs only mention a Block could link later.
  • plugins/** changes are generated (npm run build:plugins) — review the source under reference/, contribute/, skills/; do not hand-edit payloads.
  • Historical docs/migration/ verification reports + eval outputs still cite the old pattern paths by design — they're point-in-time records; the rename is carried by MIGRATION-MAP, not by rewriting history.

Verification (all green)

  • reference:check --all — passive, 337 links resolve, structure, token drift ✅
  • verify:plugins — both payloads, snapshot 0 broken, 7 contributor skills kept out ✅
  • no-bloat grep — no case-study file under web-product; each medium's patterns/ holds only its own ✅

Full write-up: docs/migration/report-pattern-model.md. Decisions logged in docs/migration/LOG.md.

🤖 Generated with Claude Code

…duct reframe

Adopt the outcome-framed pattern model (Ask users for… / Help users to… / Pages):
shared cross-medium concepts factored to a top-level reference/patterns/ layer,
single-medium patterns staying in-medium, and a medium's patterns/ folder only
ever holding patterns it implements (no bloat). First cut — web-product full
reframe + slides/web-marketing placeholder scaffolding; Blocks deferred.

- Extend check-reference.mjs structure gate to allow reference/patterns/ (shared
  concepts) alongside media-types/<medium>/patterns/
- Add reference/patterns/overview.md (the model, passive) +
  help-users/describe-a-case-study.md (worked cross-medium concept; slides impl
  linked, web-marketing TBD, no web-product entry)
- Reframe + rename web-product patterns via git mv: authentication→sign-in,
  forms→complete-a-form, dashboards→dashboard, documentation kept; lead with
  user goal/context/principles, fold detail under "Solution in web-product";
  README reindexed by Ask/Help/Pages
- Light-touch slides/web-marketing pattern-model notes; wire slides
  case-studies Implements link to the shared concept
- Add contribute/proposing-a-pattern.md (Medium/Heavy; proposing-a-block
  deferred), linked from overview + CONTRIBUTING + proposing-a-reference-change
- Update create-web-app pattern-loading refs; record renames in MIGRATION-MAP
- Regenerate plugin payloads; gates green (reference:check --all, verify:plugins)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@efordee24 efordee24 merged commit 0cac4ab into main Jun 26, 2026
1 check passed
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