feat: manifest-driven sync updates + asset generation steps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Mårten Angner 2026-04-03 04:49:44 +02:00
parent 78ec65f0ec
commit 97ebdb4c84
8 changed files with 496 additions and 39 deletions

425
infographic-wds.html Normal file
View File

@ -0,0 +1,425 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
width: 1080px;
height: 1350px;
font-family: 'Inter', sans-serif;
background: #ffffff;
color: #2e2e2e;
overflow: hidden;
}
.header {
background: linear-gradient(135deg, #0a2a4a 0%, #124e86 100%);
padding: 48px 60px 40px;
color: white;
}
.header-top {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24px;
}
.logo {
font-size: 22px;
font-weight: 300;
letter-spacing: 0.15em;
text-transform: uppercase;
opacity: 0.9;
}
.badge {
font-size: 13px;
font-weight: 500;
background: rgba(255,255,255,0.15);
padding: 6px 16px;
border-radius: 20px;
letter-spacing: 0.05em;
}
.header h1 {
font-size: 38px;
font-weight: 700;
line-height: 1.15;
margin-bottom: 12px;
}
.header p {
font-size: 18px;
font-weight: 300;
opacity: 0.85;
line-height: 1.5;
max-width: 700px;
}
.phases {
padding: 36px 60px 20px;
}
.phase {
display: flex;
align-items: flex-start;
gap: 20px;
margin-bottom: 6px;
position: relative;
}
.phase-number {
width: 44px;
height: 44px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
font-weight: 700;
color: white;
flex-shrink: 0;
position: relative;
z-index: 2;
}
.phase-connector {
position: absolute;
left: 81px;
top: 44px;
width: 2px;
height: 42px;
background: #e0e0e0;
z-index: 1;
}
.phase:last-child .phase-connector { display: none; }
.phase-content {
flex: 1;
padding-top: 2px;
}
.phase-title {
font-size: 17px;
font-weight: 600;
margin-bottom: 2px;
display: flex;
align-items: center;
gap: 10px;
}
.phase-agent {
font-size: 12px;
font-weight: 500;
padding: 2px 10px;
border-radius: 10px;
color: white;
}
.phase-desc {
font-size: 14px;
font-weight: 300;
color: #666;
line-height: 1.4;
}
/* Phase colors */
.phase-setup .phase-number { background: #888; }
.phase-brief .phase-number { background: #4a7fb5; }
.phase-brief .phase-agent { background: #4a7fb5; }
.phase-trigger .phase-number { background: #2d6da3; }
.phase-trigger .phase-agent { background: #2d6da3; }
.phase-scenario .phase-number { background: #c77dba; }
.phase-scenario .phase-agent { background: #c77dba; }
.phase-ux .phase-number { background: #a855a0; }
.phase-ux .phase-agent { background: #a855a0; }
.phase-dev .phase-number { background: #e8863a; }
.phase-dev .phase-agent { background: #e8863a; }
.phase-asset .phase-number { background: #d4a843; }
.phase-asset .phase-agent { background: #d4a843; }
.phase-ds .phase-number { background: #5cb85c; }
.phase-ds .phase-agent { background: #5cb85c; }
.phase-evo .phase-number { background: #78ac2e; }
.phase-evo .phase-agent { background: #78ac2e; }
.divider {
margin: 28px 60px;
border: none;
border-top: 1px solid #e8e8e8;
}
.bottom-section {
padding: 0 60px;
display: flex;
gap: 40px;
}
.bottom-left {
flex: 1;
}
.bottom-left h3 {
font-size: 17px;
font-weight: 600;
margin-bottom: 14px;
color: #124e86;
}
.agent-row {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 10px;
}
.agent-icon {
width: 36px;
height: 36px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
color: white;
flex-shrink: 0;
}
.agent-info {
flex: 1;
}
.agent-name {
font-size: 15px;
font-weight: 600;
}
.agent-role {
font-size: 12px;
color: #888;
font-weight: 300;
}
.bottom-right {
flex: 1;
}
.bottom-right h3 {
font-size: 17px;
font-weight: 600;
margin-bottom: 14px;
color: #124e86;
}
.feature-item {
display: flex;
align-items: flex-start;
gap: 10px;
margin-bottom: 10px;
}
.feature-check {
color: #78ac2e;
font-size: 16px;
font-weight: 700;
flex-shrink: 0;
margin-top: 1px;
}
.feature-text {
font-size: 14px;
font-weight: 400;
line-height: 1.4;
}
.footer {
margin-top: auto;
padding: 28px 60px;
background: #f8f8f8;
display: flex;
justify-content: space-between;
align-items: center;
position: absolute;
bottom: 0;
left: 0;
right: 0;
}
.footer-left {
font-size: 14px;
font-weight: 300;
color: #888;
}
.footer-url {
font-size: 16px;
font-weight: 600;
color: #124e86;
}
</style>
</head>
<body>
<div class="header">
<div class="header-top">
<div class="logo">Whiteport Design Studio</div>
<div class="badge">Open Source Framework</div>
</div>
<h1>From Strategy to Product<br>in 8 AI-Powered Phases</h1>
<p>A complete design-to-development methodology where AI agents handle strategy, UX, development, and design systems — guided by human decisions.</p>
</div>
<div class="phases">
<div class="phase phase-setup">
<div class="phase-number">0</div>
<div class="phase-content">
<div class="phase-title">Project Setup</div>
<div class="phase-desc">Determine project type, complexity, and tech stack</div>
</div>
<div class="phase-connector"></div>
</div>
<div class="phase phase-brief">
<div class="phase-number">1</div>
<div class="phase-content">
<div class="phase-title">Project Brief <span class="phase-agent">Saga</span></div>
<div class="phase-desc">Establish project context — the foundation for all design work</div>
</div>
<div class="phase-connector"></div>
</div>
<div class="phase phase-trigger">
<div class="phase-number">2</div>
<div class="phase-content">
<div class="phase-title">Trigger Mapping <span class="phase-agent">Saga</span></div>
<div class="phase-desc">Map business goals to user psychology — driving forces, barriers, triggers</div>
</div>
<div class="phase-connector"></div>
</div>
<div class="phase phase-scenario">
<div class="phase-number">3</div>
<div class="phase-content">
<div class="phase-title">UX Scenarios <span class="phase-agent">Freya</span></div>
<div class="phase-desc">Create scenario outlines from the Trigger Map — every screen grounded in user needs</div>
</div>
<div class="phase-connector"></div>
</div>
<div class="phase phase-ux">
<div class="phase-number">4</div>
<div class="phase-content">
<div class="phase-title">UX Design <span class="phase-agent">Freya</span></div>
<div class="phase-desc">Transform scenarios into detailed page specifications — layout, components, interactions</div>
</div>
<div class="phase-connector"></div>
</div>
<div class="phase phase-dev">
<div class="phase-number">5</div>
<div class="phase-content">
<div class="phase-title">Agentic Development</div>
<div class="phase-desc">AI-assisted build, test, and ship — from specification to working product</div>
</div>
<div class="phase-connector"></div>
</div>
<div class="phase phase-asset">
<div class="phase-number">6</div>
<div class="phase-content">
<div class="phase-title">Asset Generation</div>
<div class="phase-desc">AI-powered creative production — images, icons, videos, content, Figma integration</div>
</div>
<div class="phase-connector"></div>
</div>
<div class="phase phase-ds">
<div class="phase-number">7</div>
<div class="phase-content">
<div class="phase-title">Design System</div>
<div class="phase-desc">Create, import, and maintain tokens, components, and patterns</div>
</div>
<div class="phase-connector"></div>
</div>
<div class="phase phase-evo">
<div class="phase-number">8</div>
<div class="phase-content">
<div class="phase-title">Product Evolution</div>
<div class="phase-desc">Brownfield improvements — the full pipeline in miniature for existing products</div>
</div>
</div>
</div>
<hr class="divider">
<div class="bottom-section">
<div class="bottom-left">
<h3>AI Agents</h3>
<div class="agent-row">
<div class="agent-icon" style="background: #2d6da3;">📚</div>
<div class="agent-info">
<div class="agent-name">Saga</div>
<div class="agent-role">Strategic Analyst — Phases 12</div>
</div>
</div>
<div class="agent-row">
<div class="agent-icon" style="background: #a855a0;"></div>
<div class="agent-info">
<div class="agent-name">Freya</div>
<div class="agent-role">UX Designer — Phases 34</div>
</div>
</div>
<div class="agent-row">
<div class="agent-icon" style="background: #e8863a;">🔮</div>
<div class="agent-info">
<div class="agent-name">Mimir</div>
<div class="agent-role">Development — Phase 5</div>
</div>
</div>
<div class="agent-row">
<div class="agent-icon" style="background: #5cb85c;">🍎</div>
<div class="agent-info">
<div class="agent-name">Idunn</div>
<div class="agent-role">Validation & Quality</div>
</div>
</div>
</div>
<div class="bottom-right">
<h3>Why WDS?</h3>
<div class="feature-item">
<div class="feature-check"></div>
<div class="feature-text"><strong>Strategy-first</strong> — Trigger Map grounds every decision in real user psychology</div>
</div>
<div class="feature-item">
<div class="feature-check"></div>
<div class="feature-text"><strong>Human-guided AI</strong> — Agents propose, humans decide. Full control, 10x speed</div>
</div>
<div class="feature-item">
<div class="feature-check"></div>
<div class="feature-text"><strong>Shared brain</strong> — Design Space keeps all knowledge searchable and connected</div>
</div>
<div class="feature-item">
<div class="feature-check"></div>
<div class="feature-text"><strong>Full pipeline</strong> — Strategy to design system, not just one piece</div>
</div>
<div class="feature-item">
<div class="feature-check"></div>
<div class="feature-text"><strong>Open source</strong> — MIT licensed, vendor independent, any AI model</div>
</div>
</div>
</div>
<div class="footer">
<div class="footer-left">Whiteport Design Studio — Open Source AI Design Framework</div>
<div class="footer-url">whiteport.com/wds</div>
</div>
</body>
</html>

View File

@ -1,6 +1,6 @@
{
"$schema": "./sync-manifest.schema.json",
"version": "1.0.0",
"version": "1.0.1",
"description": "Controls which agent instructions are synced to Design Space",
"updated": "2026-03-24",
@ -15,196 +15,228 @@
"agent": "saga",
"type": "persona",
"file": "src/agents/saga-analyst.agent.yaml",
"channel": "stable"
"channel": "stable",
"changelog": "Saga persona definition — strategic analyst, discovery partner"
},
{
"agent": "freya",
"type": "persona",
"file": "src/agents/freya-ux.agent.yaml",
"channel": "stable"
"channel": "stable",
"changelog": "Freya persona definition — UX designer, experience shaper"
},
{
"agent": "saga",
"type": "activation",
"file": "src/skills/saga.activation.md",
"channel": "stable"
"channel": "stable",
"changelog": "Full activation sequence with multi-project branching and status reporting"
},
{
"agent": "freya",
"type": "activation",
"file": "src/skills/freya.activation.md",
"channel": "stable"
"channel": "stable",
"changelog": "Full activation sequence with phase routing and prerequisites check"
},
{
"agent": "saga",
"type": "skill",
"file": "src/skills/saga/SKILL.md",
"channel": "stable"
"channel": "stable",
"changelog": "Saga capabilities: Product Brief (9 steps), Trigger Mapping, Alignment Signoff"
},
{
"agent": "freya",
"type": "skill",
"file": "src/skills/freya/SKILL.md",
"channel": "stable"
"channel": "stable",
"changelog": "Freya capabilities: UX Scenarios, Design Loop (9 steps), Asset Generation, Design System"
},
{
"agent": "*",
"type": "skill",
"file": "src/skills/design-space/SKILL.md",
"channel": "stable"
"channel": "stable",
"changelog": "Design Space integration: search, capture, messaging, work orders, agent presence"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/discovery-conversation.md",
"channel": "stable"
"channel": "stable",
"changelog": "Conversational techniques for Phase 1 discovery — one question at a time"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/trigger-mapping.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 2 methodology: user psychology, driving forces, barrier mapping, archetypes"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/dream-up-approach.md",
"channel": "stable"
"channel": "stable",
"changelog": "Dialog/Suggest/Dream mode selection framework for artifact generation"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/strategic-documentation.md",
"channel": "stable"
"channel": "stable",
"changelog": "How to structure briefs, maintain quality, and format strategic artifacts"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/conversational-followups.md",
"channel": "stable"
"channel": "stable",
"changelog": "Follow-up techniques, deep-dive patterns, and probing strategies"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/seo-strategy-guide.md",
"channel": "stable"
"channel": "stable",
"changelog": "SEO keyword strategy and search intent mapping for product positioning"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/content-structure-principles.md",
"channel": "stable"
"channel": "stable",
"changelog": "Information architecture principles for content organization"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/inspiration-analysis.md",
"channel": "stable"
"channel": "stable",
"changelog": "Competitive analysis and visual direction methodology"
},
{
"agent": "saga",
"type": "reference",
"file": "src/skills/saga/references/working-with-existing-materials.md",
"channel": "stable"
"channel": "stable",
"changelog": "How to analyze client-provided PRDs, briefs, and existing documentation"
},
{
"agent": "freya",
"type": "reference",
"file": "src/skills/freya/references/strategic-design.md",
"channel": "stable"
"channel": "stable",
"changelog": "Design decision framework tied to business goals and trigger map"
},
{
"agent": "freya",
"type": "reference",
"file": "src/skills/freya/references/specification-quality.md",
"channel": "stable"
"channel": "stable",
"changelog": "How to write complete, unambiguous page specifications"
},
{
"agent": "freya",
"type": "reference",
"file": "src/skills/freya/references/agentic-development.md",
"channel": "stable"
"channel": "stable",
"changelog": "Handoff to development agents — spec format, expectations, feedback loops"
},
{
"agent": "freya",
"type": "reference",
"file": "src/skills/freya/references/content-creation.md",
"channel": "stable"
"channel": "stable",
"changelog": "Content strategy within design work — copy, tone, structure"
},
{
"agent": "freya",
"type": "reference",
"file": "src/skills/freya/references/design-system.md",
"channel": "stable"
"channel": "stable",
"changelog": "Design token extraction and component library building"
},
{
"agent": "freya",
"type": "reference",
"file": "src/skills/freya/references/meta-content-guide.md",
"channel": "stable"
"channel": "stable",
"changelog": "Metadata, SEO tags, and information architecture for pages"
},
{
"agent": "saga",
"type": "workflow",
"file": "src/workflows/0-alignment-signoff/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 0: Stakeholder alignment before strategic work begins"
},
{
"agent": "*",
"type": "workflow",
"file": "src/workflows/0-project-setup/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 0: Project initialization and configuration"
},
{
"agent": "saga",
"type": "workflow",
"file": "src/workflows/1-project-brief/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 1: Strategic discovery — product brief with 9-step conversation"
},
{
"agent": "saga",
"type": "workflow",
"file": "src/workflows/2-trigger-mapping/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 2: User psychology mapping — personas, triggers, barriers, driving forces"
},
{
"agent": "freya",
"type": "workflow",
"file": "src/workflows/3-scenarios/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 3: UX scenarios from trigger map using Dialog/Suggest/Dream modes"
},
{
"agent": "freya",
"type": "workflow",
"file": "src/workflows/4-ux-design/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 4: Design Loop — 9 steps from discussion to token extraction"
},
{
"agent": "mimir",
"type": "workflow",
"file": "src/workflows/5-agentic-development/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 5: Development handoff and agentic implementation"
},
{
"agent": "freya",
"type": "workflow",
"file": "src/workflows/6-asset-generation/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 6: Visual and text asset creation"
},
{
"agent": "freya",
"type": "workflow",
"file": "src/workflows/7-design-system/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 7: Component library and design tokens (optional)"
},
{
"agent": "idunn",
"type": "workflow",
"file": "src/workflows/8-product-evolution/workflow.md",
"channel": "stable"
"channel": "stable",
"changelog": "Phase 8: Post-launch iteration, monitoring, and continuous improvement"
}
]
}

View File

@ -68,7 +68,7 @@ For each group: generate first icon, get approval, use as reference for rest of
### 3. Select Service
Present options: [G] Generate via MCP (best for custom icons), [E] Export prompts (for external generation), [L] Library match (search open-source icon libraries).
Present options: [G] Generate via Nano Banana (`mcp__nanobanana__generate_image` — supports 4K, style references via `input_image_path_1/2/3`, model tiers flash/nb2/pro, negative prompts), [E] Export prompts (for external generation), [L] Library match (search open-source icon libraries).
### 4. Optimize SVG Output

View File

@ -60,7 +60,7 @@ Per batch: start with hero/anchor, present for approval, chain approved result f
### 3. Select Service
[G] Generate via MCP, [E] Export prompts (save to `{output_folder}/E-Assets/images/prompts/`), [U] Upload existing (user provides, skip generation).
[G] Generate via Nano Banana (`mcp__nanobanana__generate_image` — supports 4K, style references via `input_image_path_1/2/3`, model tiers flash/nb2/pro, negative prompts), [E] Export prompts (save to `{output_folder}/E-Assets/images/prompts/`), [U] Upload existing (user provides, skip generation).
### 4. Handle Variations

View File

@ -60,7 +60,7 @@ Attach wireframe as structural reference when available. Note: "Follow layout st
### 3. Select Service
[G] Generate via MCP or [E] Export prompts.
[G] Generate via Nano Banana (`mcp__nanobanana__generate_image` — supports 4K, style references via `input_image_path_1/2/3`, model tiers flash/nb2/pro, negative prompts) or [E] Export prompts.
### 4. Generate Sequentially

View File

@ -64,7 +64,7 @@ Grid style: generate all states of one variant in a single prompt. Individual st
### 4. Select Service
[G] Generate via MCP or [E] Export prompts.
[G] Generate via Nano Banana (`mcp__nanobanana__generate_image` — supports 4K, style references via `input_image_path_1/2/3`, model tiers flash/nb2/pro, negative prompts) or [E] Export prompts.
### 5. Track Progress

View File

@ -63,7 +63,7 @@ Include: duration, subject, movement, mood, style keywords, color palette, dimen
### 3. Select Service
For AI video: [G] Generate via MCP, [E] Export prompts. For CSS/SVG: [C] Generate code, [S] Spec document.
For AI video: [G] Generate via Nano Banana (`mcp__nanobanana__generate_image` — supports 4K, style references via `input_image_path_1/2/3`, model tiers flash/nb2/pro, negative prompts), [E] Export prompts. For CSS/SVG: [C] Generate code, [S] Spec document.
### 4. Generate and Preview

View File

@ -60,7 +60,7 @@ Insert page-specific content zones, navigation state, and unique layout requirem
### 3. Select Service
[G] Generate via MCP or [E] Export prompts for external tool.
[G] Generate via Nano Banana (`mcp__nanobanana__generate_image` — supports 4K, style references via `input_image_path_1/2/3`, model tiers flash/nb2/pro, negative prompts) or [E] Export prompts for external tool.
### 4. Execute Generation