feat(ai): evo-web AI component generation pipeline#730
Conversation
… for the determinism layer
…nts to the pipeline, addressed a few gaps
…ipeline-skills
…onsistent pipeline orchestration
…qa-agent invocation
…verification to evo-component
…ion record to evo-qa
…ipeline-skills
…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>
|
|
|
||
| ## What is extracted — field by field | ||
|
|
||
| Verified against the live Avatar pull. Every value below came directly from the MCP, |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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>
PR Preview DeployedWebsite • commit 802c041 |
LuLaValva
left a comment
There was a problem hiding this comment.
Since this is process-only, I'm okay with merging and tweaking/pruning as we work with it!
|
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. |
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.
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 generationevo-create-component-manifestto ground BEM names, token usage, and dependencies in observed codebase reality rather than inferencepipeline-state.jsonper component) with resumability, stall detection, manifest-hash change detection, and micro-QA checkpoints at the static and framework layer boundariesStophook (.claude/settings.json) that blocks Claude from ending a turn while a pipeline step isin-progress, plus a next-step reminder baked into the step-completion bash commandAttrTagslot types and other common generation errors caught during the page-notice demo runPipeline flow
Invoke via
/evo-pipeline <component-name>with optional--scope(full | static | interactive | style) and--auto-approve.Test plan
/evo-pipeline <new-component>end-to-end and verify all 15 steps complete/evo-pipeline <existing-component> --scope styleand verify only SCSS is touchedin-progress, attempt to end turn) and confirm the Stop hook blocks itgenerate-component-scaffold.tsproduces valid TypeScript identifiers for hyphenated display names (e.g.page-notice→PageNotice, notPage Notice)npx tsx scripts/codegen/validate-manifest.ts <component>on an existing manifest and confirm it exits 0🤖 Generated with Claude Code