Skip to content

feat(ai): evo-web AI component generation pipeline#730

Open
ArtBlue wants to merge 41 commits into
mainfrom
ai-comp-pipeline-skills
Open

feat(ai): evo-web AI component generation pipeline#730
ArtBlue wants to merge 41 commits into
mainfrom
ai-comp-pipeline-skills

Conversation

@ArtBlue

@ArtBlue ArtBlue commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Establishes the end-to-end AI component generation pipeline for evo-web. This PR adds the skill infrastructure, deterministic codegen scripts, component audit snapshots, and runtime safeguards that allow an AI agent to generate production-ready Skin, Marko 6, and React 19 component layers from a design contract and spec JSON — with human review at Gate 2 before any code is written.

  • 12 AI skills covering every layer of the pipeline: manifest creation, static component (HTML + SCSS), Marko 6, React 19, storybooks (skin, Marko, React), accessibility (2-pass), docs hookup, and final QA
  • 4 deterministic codegen scripts (spec-to-manifest, generate-component-scaffold, update-component-metadata, validate-manifest) that produce byte-identical output from the same manifest, removing AI variance from the structural parts of generation
  • Audit snapshots for all existing evo-marko components, used by evo-create-component-manifest to ground BEM names, token usage, and dependencies in observed codebase reality rather than inference
  • Pipeline state machine (pipeline-state.json per component) with resumability, stall detection, manifest-hash change detection, and micro-QA checkpoints at the static and framework layer boundaries
  • Runtime enforcement via a project-level Stop hook (.claude/settings.json) that blocks Claude from ending a turn while a pipeline step is in-progress, plus a next-step reminder baked into the step-completion bash command
  • CLAUDE.md correctness guards for Marko 6 AttrTag slot types and other common generation errors caught during the page-notice demo run

Pipeline flow

Contract + Spec → manifest.json → Gate 2 (human review) → code generation
                                                         ├─ SCSS + static stories
                                                         ├─ Marko 6 component + stories
                                                         ├─ React 19 component + stories
                                                         ├─ Accessibility docs (2 passes)
                                                         ├─ Docs site hookup
                                                         └─ Build + QA + visual verification

Invoke via /evo-pipeline <component-name> with optional --scope (full | static | interactive | style) and --auto-approve.

Test plan

  • Run /evo-pipeline <new-component> end-to-end and verify all 15 steps complete
  • Run /evo-pipeline <existing-component> --scope style and verify only SCSS is touched
  • Simulate a mid-run stop (mark a step in-progress, attempt to end turn) and confirm the Stop hook blocks it
  • Verify generate-component-scaffold.ts produces valid TypeScript identifiers for hyphenated display names (e.g. page-noticePageNotice, not Page Notice)
  • Run npx tsx scripts/codegen/validate-manifest.ts <component> on an existing manifest and confirm it exits 0

🤖 Generated with Claude Code

ArtBlue added 30 commits May 26, 2026 14:23
ArtBlue and others added 8 commits June 10, 2026 09:45
…ipeline-skills

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…remove

Add a pre-check in the Modify detection step that fires before diff-based
scope rules: if tokenVariants or states gains or loses an entry, the change
maps to a new or removed BEM modifier which requires framework prop enum
updates — not just SCSS. Escalates to full when framework layers are absent,
interactive when they already exist. Updates the example diff block to show
the FULL recommendation with override explanation.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jun 24, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 802c041

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@ArtBlue ArtBlue self-assigned this Jun 24, 2026

## What is extracted — field by field

Verified against the live Avatar pull. Every value below came directly from the MCP,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these values also cross-referenced with the values in the spec? Or is the idea that the Figma values and spec values are kept in sync by some other means and so we have high trust here? Also, aren't these values also in the manifest?

## Role in the pipeline

The Figma MCP is the data source for the `/evo-style-component` skill — the Phase 2
build that generates the CSS visual layer after the behavioral layer (Phase 1) is

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This jumped out at me because I would expect style to happen before behaviour.

Reformats ADR 0005 to match the project template (plain headings, unbolded
Date line) and updates status from Proposed to Accepted. Adds EPHEMERAL.md
to the evo-pipeline skill directory documenting which pipeline-generated files
must not be committed (manifest.json, gap-report.json, pipeline-state.json)
and how to clean them up before opening a PR.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

PR Preview Deployed

Websiteevo-markoevo-reactebayui-coreebayui-core-reactskin

commit 802c041

@LuLaValva LuLaValva left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is process-only, I'm okay with merging and tweaking/pruning as we work with it!

@ArtBlue ArtBlue marked this pull request as ready for review June 26, 2026 18:48
Copilot AI review requested due to automatic review settings June 26, 2026 18:48
@ArtBlue

ArtBlue commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

Unless someone notices something severe, the PR is ready for merge.

P.S. It's tempting to remove the context files, but it's better to incur a minor cost of leaving them in initially and have dependable runs. We can remove the training wheels when we feel confident.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

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.

4 participants