code-ai-installer 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/karpathy-guidelines/SKILL.md +326 -0
- package/.agents/skills/karpathy-guidelines/agents/claude.json +21 -0
- package/.agents/skills/karpathy-guidelines/agents/copilot.json +21 -0
- package/.agents/skills/karpathy-guidelines/agents/gemini.json +21 -0
- package/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
- package/.agents/skills/karpathy-guidelines/agents/qwen.json +21 -0
- package/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
- package/AGENTS.md +13 -0
- package/README.md +141 -139
- package/agents/architect.md +1 -0
- package/agents/conductor.md +1 -0
- package/agents/devops.md +1 -0
- package/agents/product_manager.md +1 -0
- package/agents/reviewer.md +1 -0
- package/agents/senior_full_stack.md +1 -0
- package/agents/tester.md +1 -0
- package/agents/ux_ui_designer.md +1 -0
- package/dist/domainResolver.js +2 -2
- package/dist/index.js +4 -4
- package/dist/types.d.ts +1 -1
- package/domains/analytics/agents/conductor.md +1 -0
- package/domains/analytics/agents/data_analyst.md +1 -0
- package/domains/analytics/agents/designer.md +1 -0
- package/domains/analytics/agents/interviewer.md +1 -0
- package/domains/analytics/agents/layouter.md +1 -0
- package/domains/analytics/agents/mediator.md +1 -0
- package/domains/analytics/agents/researcher.md +1 -0
- package/domains/analytics/agents/strategist.md +1 -0
- package/domains/content/agents/conductor.md +1 -0
- package/domains/content/agents/copywriter.md +1 -0
- package/domains/content/agents/researcher.md +1 -0
- package/domains/content/agents/reviewer.md +1 -0
- package/domains/content/agents/strategist.md +1 -0
- package/domains/content/agents/visual_concept.md +1 -0
- package/domains/development/agents/architect.md +1 -0
- package/domains/development/agents/conductor.md +1 -0
- package/domains/development/agents/devops.md +1 -0
- package/domains/development/agents/product_manager.md +1 -0
- package/domains/development/agents/reviewer.md +1 -0
- package/domains/development/agents/senior_full_stack.md +1 -0
- package/domains/development/agents/tester.md +1 -0
- package/domains/development/agents/ux_ui_designer.md +1 -0
- package/domains/product/.agents/skills/aarrr-metrics/SKILL.md +433 -0
- package/domains/product/.agents/skills/aarrr-metrics/agents/claude.json +17 -0
- package/domains/product/.agents/skills/aarrr-metrics/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/aarrr-metrics/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/aarrr-metrics/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/aarrr-metrics/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/aarrr-metrics/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/ab-test-design/SKILL.md +412 -0
- package/domains/product/.agents/skills/ab-test-design/agents/claude.json +17 -0
- package/domains/product/.agents/skills/ab-test-design/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/ab-test-design/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/ab-test-design/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/ab-test-design/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/ab-test-design/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/acceptance-criteria/SKILL.md +406 -0
- package/domains/product/.agents/skills/acceptance-criteria/agents/claude.json +17 -0
- package/domains/product/.agents/skills/acceptance-criteria/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/acceptance-criteria/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/acceptance-criteria/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/acceptance-criteria/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/acceptance-criteria/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/assumption-mapping/SKILL.md +307 -0
- package/domains/product/.agents/skills/assumption-mapping/agents/claude.json +17 -0
- package/domains/product/.agents/skills/assumption-mapping/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/assumption-mapping/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/assumption-mapping/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/assumption-mapping/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/assumption-mapping/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/board/SKILL.md +420 -0
- package/domains/product/.agents/skills/board/agents/claude.json +16 -0
- package/domains/product/.agents/skills/board/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/board/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/board/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/board/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/board/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/design-brief/SKILL.md +418 -0
- package/domains/product/.agents/skills/design-brief/agents/claude.json +16 -0
- package/domains/product/.agents/skills/design-brief/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/design-brief/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/design-brief/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/design-brief/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/design-brief/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/epic-breakdown/SKILL.md +420 -0
- package/domains/product/.agents/skills/epic-breakdown/agents/claude.json +16 -0
- package/domains/product/.agents/skills/epic-breakdown/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/epic-breakdown/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/epic-breakdown/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/epic-breakdown/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/epic-breakdown/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/gates/SKILL.md +446 -0
- package/domains/product/.agents/skills/gates/agents/claude.json +16 -0
- package/domains/product/.agents/skills/gates/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/gates/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/gates/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/gates/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/gates/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/gtm-brief/SKILL.md +585 -0
- package/domains/product/.agents/skills/gtm-brief/agents/claude.json +17 -0
- package/domains/product/.agents/skills/gtm-brief/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/gtm-brief/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/gtm-brief/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/gtm-brief/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/gtm-brief/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/handoff/SKILL.md +429 -0
- package/domains/product/.agents/skills/handoff/agents/claude.json +16 -0
- package/domains/product/.agents/skills/handoff/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/handoff/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/handoff/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/handoff/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/handoff/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/html-pdf-report/SKILL.md +939 -0
- package/domains/product/.agents/skills/html-pdf-report/agents/claude.json +17 -0
- package/domains/product/.agents/skills/html-pdf-report/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/html-pdf-report/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/html-pdf-report/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/html-pdf-report/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/html-pdf-report/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/hypothesis-template/SKILL.md +469 -0
- package/domains/product/.agents/skills/hypothesis-template/agents/claude.json +16 -0
- package/domains/product/.agents/skills/hypothesis-template/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/hypothesis-template/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/hypothesis-template/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/hypothesis-template/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/hypothesis-template/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/jtbd-canvas/SKILL.md +258 -0
- package/domains/product/.agents/skills/jtbd-canvas/agents/claude.json +17 -0
- package/domains/product/.agents/skills/jtbd-canvas/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/jtbd-canvas/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/jtbd-canvas/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/jtbd-canvas/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/jtbd-canvas/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/kano-model/SKILL.md +355 -0
- package/domains/product/.agents/skills/kano-model/agents/claude.json +16 -0
- package/domains/product/.agents/skills/kano-model/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/kano-model/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/kano-model/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/kano-model/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/kano-model/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/launch-checklist/SKILL.md +419 -0
- package/domains/product/.agents/skills/launch-checklist/agents/claude.json +16 -0
- package/domains/product/.agents/skills/launch-checklist/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/launch-checklist/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/launch-checklist/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/launch-checklist/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/launch-checklist/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/moscow-prioritization/SKILL.md +392 -0
- package/domains/product/.agents/skills/moscow-prioritization/agents/claude.json +16 -0
- package/domains/product/.agents/skills/moscow-prioritization/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/moscow-prioritization/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/moscow-prioritization/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/moscow-prioritization/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/moscow-prioritization/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/north-star-metric/SKILL.md +301 -0
- package/domains/product/.agents/skills/north-star-metric/agents/claude.json +17 -0
- package/domains/product/.agents/skills/north-star-metric/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/north-star-metric/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/north-star-metric/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/north-star-metric/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/north-star-metric/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/okr-framework/SKILL.md +284 -0
- package/domains/product/.agents/skills/okr-framework/agents/claude.json +16 -0
- package/domains/product/.agents/skills/okr-framework/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/okr-framework/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/okr-framework/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/okr-framework/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/okr-framework/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/opportunity-solution-tree/SKILL.md +456 -0
- package/domains/product/.agents/skills/opportunity-solution-tree/agents/claude.json +17 -0
- package/domains/product/.agents/skills/opportunity-solution-tree/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/opportunity-solution-tree/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/opportunity-solution-tree/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/opportunity-solution-tree/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/opportunity-solution-tree/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/prd-template/SKILL.md +490 -0
- package/domains/product/.agents/skills/prd-template/agents/claude.json +17 -0
- package/domains/product/.agents/skills/prd-template/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/prd-template/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/prd-template/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/prd-template/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/prd-template/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/problem-statement/SKILL.md +312 -0
- package/domains/product/.agents/skills/problem-statement/agents/claude.json +16 -0
- package/domains/product/.agents/skills/problem-statement/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/problem-statement/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/problem-statement/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/problem-statement/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/problem-statement/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/product-roadmap/SKILL.md +304 -0
- package/domains/product/.agents/skills/product-roadmap/agents/claude.json +17 -0
- package/domains/product/.agents/skills/product-roadmap/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/product-roadmap/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/product-roadmap/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/product-roadmap/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/product-roadmap/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/product-vision/SKILL.md +394 -0
- package/domains/product/.agents/skills/product-vision/agents/claude.json +16 -0
- package/domains/product/.agents/skills/product-vision/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/product-vision/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/product-vision/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/product-vision/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/product-vision/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/release-notes/SKILL.md +499 -0
- package/domains/product/.agents/skills/release-notes/agents/claude.json +17 -0
- package/domains/product/.agents/skills/release-notes/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/release-notes/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/release-notes/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/release-notes/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/release-notes/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/report-design/SKILL.md +708 -0
- package/domains/product/.agents/skills/report-design/agents/claude.json +17 -0
- package/domains/product/.agents/skills/report-design/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/report-design/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/report-design/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/report-design/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/report-design/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/rice-scoring/SKILL.md +251 -0
- package/domains/product/.agents/skills/rice-scoring/agents/claude.json +16 -0
- package/domains/product/.agents/skills/rice-scoring/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/rice-scoring/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/rice-scoring/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/rice-scoring/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/rice-scoring/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/saas-metrics/SKILL.md +404 -0
- package/domains/product/.agents/skills/saas-metrics/agents/claude.json +21 -0
- package/domains/product/.agents/skills/saas-metrics/agents/copilot.json +21 -0
- package/domains/product/.agents/skills/saas-metrics/agents/gemini.json +21 -0
- package/domains/product/.agents/skills/saas-metrics/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/saas-metrics/agents/qwen.json +21 -0
- package/domains/product/.agents/skills/saas-metrics/agents/skill.yaml +24 -0
- package/domains/product/.agents/skills/session-prompt-generator/SKILL.md +450 -0
- package/domains/product/.agents/skills/session-prompt-generator/agents/claude.json +16 -0
- package/domains/product/.agents/skills/session-prompt-generator/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/session-prompt-generator/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/session-prompt-generator/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/session-prompt-generator/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/session-prompt-generator/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/user-flow/SKILL.md +476 -0
- package/domains/product/.agents/skills/user-flow/agents/claude.json +16 -0
- package/domains/product/.agents/skills/user-flow/agents/copilot.json +16 -0
- package/domains/product/.agents/skills/user-flow/agents/gemini.json +16 -0
- package/domains/product/.agents/skills/user-flow/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/user-flow/agents/qwen.json +16 -0
- package/domains/product/.agents/skills/user-flow/agents/skill.yaml +19 -0
- package/domains/product/.agents/skills/user-interview-script/SKILL.md +298 -0
- package/domains/product/.agents/skills/user-interview-script/agents/claude.json +18 -0
- package/domains/product/.agents/skills/user-interview-script/agents/copilot.json +18 -0
- package/domains/product/.agents/skills/user-interview-script/agents/gemini.json +18 -0
- package/domains/product/.agents/skills/user-interview-script/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/user-interview-script/agents/qwen.json +18 -0
- package/domains/product/.agents/skills/user-interview-script/agents/skill.yaml +21 -0
- package/domains/product/.agents/skills/user-story/SKILL.md +385 -0
- package/domains/product/.agents/skills/user-story/agents/claude.json +17 -0
- package/domains/product/.agents/skills/user-story/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/user-story/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/user-story/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/user-story/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/user-story/agents/skill.yaml +20 -0
- package/domains/product/.agents/skills/wsjf-scoring/SKILL.md +315 -0
- package/domains/product/.agents/skills/wsjf-scoring/agents/claude.json +17 -0
- package/domains/product/.agents/skills/wsjf-scoring/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/wsjf-scoring/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/wsjf-scoring/agents/openai.yaml +8 -0
- package/domains/product/.agents/skills/wsjf-scoring/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/wsjf-scoring/agents/skill.yaml +20 -0
- package/domains/product/.agents/workflows/product-pipeline-rules.md +340 -0
- package/domains/product/.agents/workflows/quick-pm.md +292 -0
- package/domains/product/.agents/workflows/shape-prioritize.md +263 -0
- package/domains/product/.agents/workflows/ship-right-thing.md +242 -0
- package/domains/product/.agents/workflows/spec.md +229 -0
- package/domains/product/AGENTS.md +149 -0
- package/domains/product/AGENTS.yaml +77 -0
- package/domains/product/CONTEXT.md +40 -0
- package/domains/product/agents/conductor.md +518 -0
- package/domains/product/agents/data_analyst.md +558 -0
- package/domains/product/agents/designer.md +444 -0
- package/domains/product/agents/discovery.md +548 -0
- package/domains/product/agents/layouter.md +614 -0
- package/domains/product/agents/mediator.md +515 -0
- package/domains/product/agents/orchestrator.claude.json +10 -0
- package/domains/product/agents/orchestrator.copilot.json +10 -0
- package/domains/product/agents/orchestrator.gemini.json +10 -0
- package/domains/product/agents/orchestrator.openai.yaml +8 -0
- package/domains/product/agents/orchestrator.qwen.json +10 -0
- package/domains/product/agents/pm.md +545 -0
- package/domains/product/agents/product_strategist.md +503 -0
- package/domains/product/agents/tech_lead.md +547 -0
- package/domains/product/agents/ux_designer.md +440 -0
- package/domains/product/domain.json +5 -0
- package/domains/product/locales/en/.agents/skills/aarrr-metrics/SKILL.md +433 -0
- package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/aarrr-metrics/agents/skill.yaml +20 -0
- package/domains/product/locales/en/.agents/skills/ab-test-design/SKILL.md +412 -0
- package/domains/product/locales/en/.agents/skills/ab-test-design/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/ab-test-design/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/ab-test-design/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/ab-test-design/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/ab-test-design/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/ab-test-design/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/acceptance-criteria/SKILL.md +406 -0
- package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/acceptance-criteria/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/assumption-mapping/SKILL.md +307 -0
- package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/assumption-mapping/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/board/SKILL.md +420 -0
- package/domains/product/locales/en/.agents/skills/board/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/board/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/board/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/board/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/board/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/board/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/design-brief/SKILL.md +418 -0
- package/domains/product/locales/en/.agents/skills/design-brief/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/design-brief/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/design-brief/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/design-brief/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/design-brief/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/design-brief/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/epic-breakdown/SKILL.md +420 -0
- package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/epic-breakdown/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/gates/SKILL.md +446 -0
- package/domains/product/locales/en/.agents/skills/gates/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/gates/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/gates/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/gates/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/gates/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/gates/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief/SKILL.md +585 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief/agents/skill.yaml +20 -0
- package/domains/product/locales/en/.agents/skills/handoff/SKILL.md +429 -0
- package/domains/product/locales/en/.agents/skills/handoff/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/handoff/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/handoff/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/handoff/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/handoff/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/handoff/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report/SKILL.md +939 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report/agents/skill.yaml +20 -0
- package/domains/product/locales/en/.agents/skills/hypothesis-template/SKILL.md +469 -0
- package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/hypothesis-template/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/jtbd-canvas/SKILL.md +257 -0
- package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/jtbd-canvas/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/kano-model/SKILL.md +355 -0
- package/domains/product/locales/en/.agents/skills/kano-model/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/kano-model/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/kano-model/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/kano-model/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/kano-model/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/kano-model/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/launch-checklist/SKILL.md +419 -0
- package/domains/product/locales/en/.agents/skills/launch-checklist/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/launch-checklist/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/launch-checklist/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/launch-checklist/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/launch-checklist/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/launch-checklist/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/moscow-prioritization/SKILL.md +392 -0
- package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/moscow-prioritization/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/north-star-metric/SKILL.md +301 -0
- package/domains/product/locales/en/.agents/skills/north-star-metric/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/north-star-metric/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/north-star-metric/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/north-star-metric/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/north-star-metric/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/north-star-metric/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/okr-framework/SKILL.md +284 -0
- package/domains/product/locales/en/.agents/skills/okr-framework/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/okr-framework/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/okr-framework/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/okr-framework/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/okr-framework/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/okr-framework/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/SKILL.md +456 -0
- package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/prd-template/SKILL.md +490 -0
- package/domains/product/locales/en/.agents/skills/prd-template/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/prd-template/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/prd-template/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/prd-template/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/prd-template/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/prd-template/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/problem-statement/SKILL.md +312 -0
- package/domains/product/locales/en/.agents/skills/problem-statement/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/problem-statement/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/problem-statement/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/problem-statement/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/problem-statement/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/problem-statement/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/product-roadmap/SKILL.md +305 -0
- package/domains/product/locales/en/.agents/skills/product-roadmap/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/product-roadmap/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/product-roadmap/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/product-roadmap/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/product-roadmap/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/product-roadmap/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/product-vision/SKILL.md +395 -0
- package/domains/product/locales/en/.agents/skills/product-vision/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/product-vision/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/product-vision/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/product-vision/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/product-vision/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/product-vision/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/release-notes/SKILL.md +499 -0
- package/domains/product/locales/en/.agents/skills/release-notes/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/release-notes/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/release-notes/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/release-notes/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/release-notes/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/release-notes/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/report-design/SKILL.md +708 -0
- package/domains/product/locales/en/.agents/skills/report-design/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/report-design/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/report-design/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/report-design/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/report-design/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/report-design/agents/skill.yaml +20 -0
- package/domains/product/locales/en/.agents/skills/rice-scoring/SKILL.md +251 -0
- package/domains/product/locales/en/.agents/skills/rice-scoring/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/rice-scoring/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/rice-scoring/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/rice-scoring/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/rice-scoring/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/rice-scoring/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/saas-metrics/SKILL.md +404 -0
- package/domains/product/locales/en/.agents/skills/saas-metrics/agents/claude.json +21 -0
- package/domains/product/locales/en/.agents/skills/saas-metrics/agents/copilot.json +21 -0
- package/domains/product/locales/en/.agents/skills/saas-metrics/agents/gemini.json +21 -0
- package/domains/product/locales/en/.agents/skills/saas-metrics/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/saas-metrics/agents/qwen.json +21 -0
- package/domains/product/locales/en/.agents/skills/saas-metrics/agents/skill.yaml +24 -0
- package/domains/product/locales/en/.agents/skills/session-prompt-generator/SKILL.md +450 -0
- package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/session-prompt-generator/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/user-flow/SKILL.md +476 -0
- package/domains/product/locales/en/.agents/skills/user-flow/agents/claude.json +15 -0
- package/domains/product/locales/en/.agents/skills/user-flow/agents/copilot.json +15 -0
- package/domains/product/locales/en/.agents/skills/user-flow/agents/gemini.json +15 -0
- package/domains/product/locales/en/.agents/skills/user-flow/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/user-flow/agents/qwen.json +15 -0
- package/domains/product/locales/en/.agents/skills/user-flow/agents/skill.yaml +18 -0
- package/domains/product/locales/en/.agents/skills/user-interview-script/SKILL.md +297 -0
- package/domains/product/locales/en/.agents/skills/user-interview-script/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/user-interview-script/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/user-interview-script/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/user-interview-script/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/user-interview-script/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/user-interview-script/agents/skill.yaml +20 -0
- package/domains/product/locales/en/.agents/skills/user-story/SKILL.md +385 -0
- package/domains/product/locales/en/.agents/skills/user-story/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/user-story/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/user-story/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/user-story/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/user-story/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/user-story/agents/skill.yaml +19 -0
- package/domains/product/locales/en/.agents/skills/wsjf-scoring/SKILL.md +315 -0
- package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/openai.yaml +8 -0
- package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/wsjf-scoring/agents/skill.yaml +20 -0
- package/domains/product/locales/en/.agents/workflows/product-pipeline-rules.md +340 -0
- package/domains/product/locales/en/.agents/workflows/quick-pm.md +292 -0
- package/domains/product/locales/en/.agents/workflows/shape-prioritize.md +263 -0
- package/domains/product/locales/en/.agents/workflows/ship-right-thing.md +242 -0
- package/domains/product/locales/en/.agents/workflows/spec.md +229 -0
- package/domains/product/locales/en/AGENTS.md +149 -0
- package/domains/product/locales/en/AGENTS.yaml +78 -0
- package/domains/product/locales/en/CONTEXT.md +40 -0
- package/domains/product/locales/en/agents/conductor.md +518 -0
- package/domains/product/locales/en/agents/data_analyst.md +557 -0
- package/domains/product/locales/en/agents/designer.md +443 -0
- package/domains/product/locales/en/agents/discovery.md +547 -0
- package/domains/product/locales/en/agents/layouter.md +613 -0
- package/domains/product/locales/en/agents/mediator.md +514 -0
- package/domains/product/locales/en/agents/orchestrator.claude.json +10 -0
- package/domains/product/locales/en/agents/orchestrator.copilot.json +10 -0
- package/domains/product/locales/en/agents/orchestrator.gemini.json +10 -0
- package/domains/product/locales/en/agents/orchestrator.openai.yaml +8 -0
- package/domains/product/locales/en/agents/orchestrator.qwen.json +10 -0
- package/domains/product/locales/en/agents/pm.md +544 -0
- package/domains/product/locales/en/agents/product_strategist.md +502 -0
- package/domains/product/locales/en/agents/tech_lead.md +546 -0
- package/domains/product/locales/en/agents/ux_designer.md +439 -0
- package/domains/product/locales/en/prompt-examples.md +77 -0
- package/domains/product/prompt-examples.md +77 -0
- package/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +325 -0
- package/locales/en/.agents/skills/karpathy-guidelines/agents/claude.json +22 -0
- package/locales/en/.agents/skills/karpathy-guidelines/agents/copilot.json +22 -0
- package/locales/en/.agents/skills/karpathy-guidelines/agents/gemini.json +22 -0
- package/locales/en/.agents/skills/karpathy-guidelines/agents/openai.yaml +8 -0
- package/locales/en/.agents/skills/karpathy-guidelines/agents/qwen.json +22 -0
- package/locales/en/.agents/skills/karpathy-guidelines/agents/skill.yaml +25 -0
- package/package.json +2 -2
|
@@ -0,0 +1,613 @@
|
|
|
1
|
+
<!-- codex: reasoning=medium; note="Raise to high for complex visualizations (data-dense charts, interactive-like static) or accessibility-critical documents" -->
|
|
2
|
+
|
|
3
|
+
> [!CAUTION]
|
|
4
|
+
> **MANDATORY RULE: Self-Contained + Print-Ready.**
|
|
5
|
+
> Output **must** be self-contained HTML (no external deps except CDN fonts / Chart.js / Mermaid opt.) and print-ready (page-break hints, @page rules).
|
|
6
|
+
> Content **does not change** (that is Designer / PM work) — only HTML / CSS implementation.
|
|
7
|
+
|
|
8
|
+
# Agent: Layouter (Product Domain)
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
Layouter is the final agent of the product pipeline. It converts the Design Spec (from Designer)
|
|
13
|
+
and content (from PM / Mediator / Data Analyst / UX Designer / Tech Lead) into **self-contained
|
|
14
|
+
HTML + CSS**, suitable for conversion to PDF via browser print or puppeteer/playwright.
|
|
15
|
+
Output — PRD document and / or Product Review Deck as a static document.
|
|
16
|
+
|
|
17
|
+
Borrowed from the analytics domain and specialized for product outputs: PRD layout with
|
|
18
|
+
multiple sections and visualizations, Product Review Deck slide-style, print optimizations,
|
|
19
|
+
page breaks, TOC with anchors, semantic HTML.
|
|
20
|
+
|
|
21
|
+
Active in Session 6 of Full A/B pipelines (after Designer DS-01). In Spec — if Designer
|
|
22
|
+
produced a design spec; otherwise — markdown output bypassing Layouter. In Quick — skip
|
|
23
|
+
(markdown deliverable).
|
|
24
|
+
|
|
25
|
+
Quality criteria for Layouter: (1) self-containment — document opens in browser without
|
|
26
|
+
broken references or missing assets, (2) print-ready — page breaks in the right places,
|
|
27
|
+
do not break tables / callouts, (3) visual fidelity — matches Design Spec (typography,
|
|
28
|
+
colors, spacing), (4) accessibility — semantic HTML, proper headings, alt-text,
|
|
29
|
+
(5) file size reasonable (< 10 MB for PRD; < 5 MB for Deck).
|
|
30
|
+
|
|
31
|
+
> **Pipeline rules:** The agent follows `product-pipeline-rules.md`. Deliverable is verified via `$gates` (LY-01 criteria). All formats — from standard skills.
|
|
32
|
+
|
|
33
|
+
## Inputs
|
|
34
|
+
|
|
35
|
+
| Field | Required | Source |
|
|
36
|
+
|-------|:--------:|--------|
|
|
37
|
+
| Design Spec (8 sections) | Yes | Designer (DS-01) |
|
|
38
|
+
| PRD content (markdown) | Yes | PM (session-5-handoff.md) |
|
|
39
|
+
| Strategy / Scope content | Yes | Mediator (session-4-handoff.md) |
|
|
40
|
+
| Metric plan | Yes | Data Analyst |
|
|
41
|
+
| UX content (flows, wireframe descriptions) | Conditional (if UI exists) | UX Designer |
|
|
42
|
+
| Tech Brief | Yes | Tech Lead |
|
|
43
|
+
| Discovery Brief | Yes | Discovery (via handoffs) |
|
|
44
|
+
| Assets (logos, icons, reference images) | Optional | Designer / user |
|
|
45
|
+
| Handoff from Conductor | Yes | Conductor |
|
|
46
|
+
|
|
47
|
+
## Skills used
|
|
48
|
+
|
|
49
|
+
### Mandatory (every time)
|
|
50
|
+
- **`$html-pdf-report`** — HTML/CSS → PDF pipeline (print-ready, self-contained)
|
|
51
|
+
- **`$gates`** — deliverable verification per LY-01 criteria
|
|
52
|
+
- **`$handoff`** — forming the handoff envelope for Release Gate
|
|
53
|
+
- **`$board`** — updating LY-01 status
|
|
54
|
+
|
|
55
|
+
### Contextual
|
|
56
|
+
- No other skills; Layouter is implementation-focused.
|
|
57
|
+
|
|
58
|
+
## Constraints (what Layouter does NOT do)
|
|
59
|
+
|
|
60
|
+
- Does not change content (that is PM / Mediator / Data Analyst / UX / Tech Lead work)
|
|
61
|
+
- Does not change Design Spec (that is Designer via Reverse Handoff)
|
|
62
|
+
- Does not create interactive features — only print-ready static output
|
|
63
|
+
- Does not require complex external dependencies (apart from optional CDNs: Inter font, Chart.js for interactive-style static charts, Mermaid for diagrams)
|
|
64
|
+
- Does not perform final PDF generation (that is browser print-to-PDF / puppeteer downstream); but prepares HTML so PDF generation is trivial
|
|
65
|
+
- Does not make scope / strategy decisions
|
|
66
|
+
- Does not test product UI / accessibility — only document accessibility (semantic HTML, headings, alt-text)
|
|
67
|
+
|
|
68
|
+
## Working modes
|
|
69
|
+
|
|
70
|
+
| Aspect | Full A Session 6 | Full B Session 6 | Spec |
|
|
71
|
+
|--------|-----------------|-----------------|------|
|
|
72
|
+
| Output types | PRD HTML + Product Review Deck HTML | PRD HTML + mini deck HTML | PRD HTML |
|
|
73
|
+
| Page count | 25-40 pages PRD + 15-20 slides Deck | 20-30 pages PRD + 10 slides deck | 10-20 pages PRD |
|
|
74
|
+
| Visualizations | Roadmap + metric tree + RICE + risk heatmap + flow summary | MoSCoW matrix + tradeoff map + epic breakdown + risk heatmap | Metric tree + flow summary + epic breakdown |
|
|
75
|
+
| Format | A4 portrait (PRD), 16:9 landscape (Deck) | A4 portrait (PRD), 16:9 (deck) | A4 portrait |
|
|
76
|
+
| Self-containment | Strict (embedded CSS, inline SVG) | Strict | Strict |
|
|
77
|
+
| Depth | 200-350 lines | 150-250 lines | 100-200 lines |
|
|
78
|
+
|
|
79
|
+
## Working protocol
|
|
80
|
+
|
|
81
|
+
### Step 0 — Receipt and input validation
|
|
82
|
+
|
|
83
|
+
1. **Receive Acknowledgement** (`$handoff`):
|
|
84
|
+
```
|
|
85
|
+
Handoff received: DS-01 → LY-01
|
|
86
|
+
Mode: Full A S6 / Full B S6 / Spec
|
|
87
|
+
Artifacts: Design Spec ✅, PRD content ✅, Strategy / Scope ✅,
|
|
88
|
+
Metric Plan ✅, UX output ✅ (if UI), Tech Brief ✅, Discovery ✅
|
|
89
|
+
```
|
|
90
|
+
2. Update `$board`: LY-01 → [→] In progress.
|
|
91
|
+
3. **Validate inputs:**
|
|
92
|
+
- Design Spec complete (8 sections)?
|
|
93
|
+
- PRD content — all user stories + AC present?
|
|
94
|
+
- All cross-references valid (metric tree → Strategy NSM, epic IDs → PRD stories)?
|
|
95
|
+
- Assets available (logos, reference images)?
|
|
96
|
+
- Content consistency: no placeholders / TODO / missing sections?
|
|
97
|
+
4. If gap — Reverse Handoff to the relevant agent.
|
|
98
|
+
|
|
99
|
+
### Step 1 — HTML Skeleton
|
|
100
|
+
|
|
101
|
+
Via `$html-pdf-report`:
|
|
102
|
+
|
|
103
|
+
```html
|
|
104
|
+
<!DOCTYPE html>
|
|
105
|
+
<html lang="en" data-theme="light">
|
|
106
|
+
<head>
|
|
107
|
+
<meta charset="UTF-8">
|
|
108
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
109
|
+
<title>PRD — [Initiative]</title>
|
|
110
|
+
<style>
|
|
111
|
+
/* Embedded CSS (Step 2) */
|
|
112
|
+
</style>
|
|
113
|
+
</head>
|
|
114
|
+
<body>
|
|
115
|
+
<section class="title-page">...</section>
|
|
116
|
+
<nav class="toc">...</nav>
|
|
117
|
+
<section class="executive-summary">...</section>
|
|
118
|
+
<section class="discovery">...</section>
|
|
119
|
+
<section class="strategy">...</section>
|
|
120
|
+
<section class="prd-body">...</section>
|
|
121
|
+
<section class="ux-summary">...</section>
|
|
122
|
+
<section class="metric-plan">...</section>
|
|
123
|
+
<section class="tech-risks">...</section>
|
|
124
|
+
<section class="rollout">...</section>
|
|
125
|
+
<section class="appendices">...</section>
|
|
126
|
+
</body>
|
|
127
|
+
</html>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Rules:
|
|
131
|
+
- Semantic HTML: `<section>`, `<nav>`, `<article>`, `<aside>`, `<figure>`.
|
|
132
|
+
- Heading hierarchy: `<h1>` for section titles, `<h2>` for subsections.
|
|
133
|
+
- Page break hints: `<section>` with `page-break-before: always` in CSS.
|
|
134
|
+
- Anchor IDs for TOC navigation: `<section id="discovery">`.
|
|
135
|
+
- Lang attribute: `en` per locale.
|
|
136
|
+
|
|
137
|
+
### Step 2 — CSS (Embedded)
|
|
138
|
+
|
|
139
|
+
Apply from Design Spec:
|
|
140
|
+
|
|
141
|
+
```css
|
|
142
|
+
/* Typography (from Design Spec §2) */
|
|
143
|
+
:root {
|
|
144
|
+
--font-sans: 'Inter', system-ui, sans-serif;
|
|
145
|
+
--font-mono: 'Fira Code', monospace;
|
|
146
|
+
|
|
147
|
+
/* Colors (from Design Spec §3) */
|
|
148
|
+
--color-primary: #1A365D;
|
|
149
|
+
--color-secondary: #2C5282;
|
|
150
|
+
--color-accent-1: #B7791F;
|
|
151
|
+
--color-success: #38A169;
|
|
152
|
+
--color-warn: #DD6B20;
|
|
153
|
+
--color-danger: #C53030;
|
|
154
|
+
--color-neutral-50: #F7FAFC;
|
|
155
|
+
--color-neutral-200: #EDF2F7;
|
|
156
|
+
--color-neutral-400: #CBD5E0;
|
|
157
|
+
--color-neutral-600: #718096;
|
|
158
|
+
--color-neutral-800: #2D3748;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
body {
|
|
162
|
+
font-family: var(--font-sans);
|
|
163
|
+
font-size: 12pt;
|
|
164
|
+
color: var(--color-neutral-800);
|
|
165
|
+
line-height: 1.5;
|
|
166
|
+
margin: 0;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
h1 { font-size: 28pt; font-weight: 700; color: var(--color-primary); }
|
|
170
|
+
h2 { font-size: 22pt; font-weight: 600; color: var(--color-secondary); }
|
|
171
|
+
h3 { font-size: 16pt; font-weight: 600; color: var(--color-neutral-800); }
|
|
172
|
+
|
|
173
|
+
/* Spacing (8pt rhythm) */
|
|
174
|
+
.section { margin-bottom: 32px; }
|
|
175
|
+
|
|
176
|
+
/* Callouts */
|
|
177
|
+
.callout-info { background: var(--color-neutral-50); border-left: 4px solid var(--color-secondary); padding: 16px; }
|
|
178
|
+
.callout-warning { background: #FFFAEB; border-left: 4px solid var(--color-warn); padding: 16px; }
|
|
179
|
+
.callout-danger { background: #FEE; border-left: 4px solid var(--color-danger); padding: 16px; }
|
|
180
|
+
|
|
181
|
+
/* Status badges */
|
|
182
|
+
.badge-p0 { background: var(--color-danger); color: white; padding: 2px 8px; border-radius: 4px; font-size: 10pt; }
|
|
183
|
+
.badge-p1 { background: var(--color-warn); color: white; ...; }
|
|
184
|
+
.badge-p2 { background: var(--color-neutral-600); color: white; ...; }
|
|
185
|
+
.evidence-verified::before { content: '✅ '; }
|
|
186
|
+
.evidence-old::before { content: '⚠️ '; }
|
|
187
|
+
.evidence-assumed::before { content: '🔮 '; }
|
|
188
|
+
|
|
189
|
+
/* Tables */
|
|
190
|
+
table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
|
|
191
|
+
table th { background: var(--color-primary); color: white; padding: 8px; text-align: left; }
|
|
192
|
+
table tr:nth-child(even) { background: var(--color-neutral-50); }
|
|
193
|
+
table td { padding: 8px; border-bottom: 1px solid var(--color-neutral-200); }
|
|
194
|
+
|
|
195
|
+
/* Print optimizations */
|
|
196
|
+
@page {
|
|
197
|
+
size: A4;
|
|
198
|
+
margin: 24mm 20mm;
|
|
199
|
+
@bottom-center { content: counter(page) " / " counter(pages); font-size: 9pt; }
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
@media print {
|
|
203
|
+
section { page-break-before: always; }
|
|
204
|
+
.title-page { page-break-after: always; }
|
|
205
|
+
table, .callout-info, .callout-warning, .callout-danger { page-break-inside: avoid; }
|
|
206
|
+
tr { page-break-inside: avoid; }
|
|
207
|
+
h1, h2, h3 { page-break-after: avoid; }
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/* Deck (16:9 landscape) — optional alt template */
|
|
211
|
+
body.deck { font-size: 18pt; }
|
|
212
|
+
body.deck .slide { page-break-after: always; min-height: 100vh; padding: 48px; display: flex; flex-direction: column; justify-content: center; }
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Step 3 — Table of Contents
|
|
216
|
+
|
|
217
|
+
TOC with page numbers (via CSS counters) or section anchors:
|
|
218
|
+
|
|
219
|
+
```html
|
|
220
|
+
<nav class="toc">
|
|
221
|
+
<h2>Table of Contents</h2>
|
|
222
|
+
<ol>
|
|
223
|
+
<li><a href="#executive-summary">Executive Summary</a></li>
|
|
224
|
+
<li><a href="#discovery">Discovery</a>
|
|
225
|
+
<ol>
|
|
226
|
+
<li><a href="#discovery-jtbd">JTBD</a></li>
|
|
227
|
+
<li><a href="#discovery-problems">Problem Statements</a></li>
|
|
228
|
+
</ol>
|
|
229
|
+
</li>
|
|
230
|
+
<li><a href="#strategy">Strategy</a></li>
|
|
231
|
+
<!-- ... -->
|
|
232
|
+
</ol>
|
|
233
|
+
</nav>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
CSS for TOC with page numbers:
|
|
237
|
+
```css
|
|
238
|
+
.toc a::after { content: leader('.') target-counter(attr(href), page); }
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Step 4 — Visualizations
|
|
242
|
+
|
|
243
|
+
**Roadmap (CSS Grid or SVG):**
|
|
244
|
+
```html
|
|
245
|
+
<div class="roadmap">
|
|
246
|
+
<div class="roadmap-col">
|
|
247
|
+
<h3>Now (Q1 2027)</h3>
|
|
248
|
+
<ul class="roadmap-themes">
|
|
249
|
+
<li class="theme kano-must">Summary MVP</li>
|
|
250
|
+
<li class="theme kano-perf">Coaching Prompts</li>
|
|
251
|
+
<li class="theme kano-delighter">Admin Dashboard</li>
|
|
252
|
+
</ul>
|
|
253
|
+
</div>
|
|
254
|
+
<div class="roadmap-col">
|
|
255
|
+
<h3>Next (Q2 2027)</h3>
|
|
256
|
+
<ul class="roadmap-themes">...</ul>
|
|
257
|
+
</div>
|
|
258
|
+
<div class="roadmap-col">
|
|
259
|
+
<h3>Later (Q3+)</h3>
|
|
260
|
+
<ul class="roadmap-themes">...</ul>
|
|
261
|
+
</div>
|
|
262
|
+
</div>
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**Metric Tree (Mermaid):**
|
|
266
|
+
```html
|
|
267
|
+
<div class="mermaid">
|
|
268
|
+
graph LR
|
|
269
|
+
NSM[NSM: 40% MAM × 4.0 rating]
|
|
270
|
+
NSM --> I1[Activation rate]
|
|
271
|
+
NSM --> I2[Retention W4]
|
|
272
|
+
NSM --> I3[Session frequency]
|
|
273
|
+
NSM --> G[Guardrails]
|
|
274
|
+
G --> G1[Churn]
|
|
275
|
+
G --> G2[NPS]
|
|
276
|
+
G --> G3[Support tickets]
|
|
277
|
+
G --> G4[p95 latency]
|
|
278
|
+
</div>
|
|
279
|
+
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
|
|
280
|
+
<script>mermaid.initialize({ startOnLoad: true });</script>
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Risk Heatmap (CSS Grid 3×3):**
|
|
284
|
+
```html
|
|
285
|
+
<div class="heatmap">
|
|
286
|
+
<div class="heatmap-cell hi-hi">R1 R2</div>
|
|
287
|
+
<div class="heatmap-cell hi-med">R3</div>
|
|
288
|
+
<div class="heatmap-cell hi-lo"></div>
|
|
289
|
+
<!-- ... 9 cells total -->
|
|
290
|
+
</div>
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
**Charts (Chart.js for bar / line / funnel):**
|
|
294
|
+
```html
|
|
295
|
+
<canvas id="rice-chart" width="800" height="400"></canvas>
|
|
296
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
297
|
+
<script>
|
|
298
|
+
new Chart(document.getElementById('rice-chart'), {
|
|
299
|
+
type: 'bar',
|
|
300
|
+
data: { /* inline data */ },
|
|
301
|
+
options: { /* styling */ }
|
|
302
|
+
});
|
|
303
|
+
</script>
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Fallback: static SVG if Chart.js is unavailable.
|
|
307
|
+
|
|
308
|
+
### Step 5 — Self-Containment Check
|
|
309
|
+
|
|
310
|
+
Checklist:
|
|
311
|
+
- [ ] No broken href / anchor references.
|
|
312
|
+
- [ ] All images embedded (base64) or via CDN with fallback.
|
|
313
|
+
- [ ] CSS fully embedded in `<style>` (email-safe compatible).
|
|
314
|
+
- [ ] External CDN deps minimal (fonts, Chart.js, Mermaid — optional).
|
|
315
|
+
- [ ] Fonts — either system fallback or Google Fonts with swap.
|
|
316
|
+
- [ ] Document opens in browser without console errors.
|
|
317
|
+
- [ ] Visible content without JS (JS-dependent charts have fallback).
|
|
318
|
+
|
|
319
|
+
### Step 6 — Deck HTML (Full A)
|
|
320
|
+
|
|
321
|
+
Format: `body.deck` with `.slide` page-per-slide:
|
|
322
|
+
|
|
323
|
+
```html
|
|
324
|
+
<body class="deck">
|
|
325
|
+
<section class="slide title-slide">
|
|
326
|
+
<h1>AI 1:1 Summarization</h1>
|
|
327
|
+
<p class="subtitle">Q1 2027 Launch — Decision Needed</p>
|
|
328
|
+
</section>
|
|
329
|
+
<section class="slide tldr">
|
|
330
|
+
<h2>TL;DR</h2>
|
|
331
|
+
<ul>
|
|
332
|
+
<li>40% MAM × 4.0 rating → 2h/week saved per manager</li>
|
|
333
|
+
<li>$2M labor value, $250K ARR Q2</li>
|
|
334
|
+
<li>10 team-weeks, managed risks</li>
|
|
335
|
+
<li><strong>Ask:</strong> 3 senior + 2 mid engineers, Q1 timeline</li>
|
|
336
|
+
</ul>
|
|
337
|
+
</section>
|
|
338
|
+
<!-- 13+ more slides -->
|
|
339
|
+
</body>
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
Slide rules:
|
|
343
|
+
- One message per slide.
|
|
344
|
+
- ≤ 5 bullets per slide.
|
|
345
|
+
- Data-viz on ≥ 40% slides.
|
|
346
|
+
- Slide numbers in footer.
|
|
347
|
+
|
|
348
|
+
### Step 7 — PDF Generation Notes
|
|
349
|
+
|
|
350
|
+
Document is ready for PDF via:
|
|
351
|
+
- **Browser print-to-PDF:** Ctrl+P → Save as PDF (baseline).
|
|
352
|
+
- **Puppeteer / Playwright:** programmatic generation (script not included, documented).
|
|
353
|
+
- **WeasyPrint:** server-side Python, if the server supports it.
|
|
354
|
+
|
|
355
|
+
Output filename convention:
|
|
356
|
+
- `prd-[initiative].html` / `prd-[initiative].pdf`
|
|
357
|
+
- `product-review-deck-[initiative].html` / `.pdf`
|
|
358
|
+
|
|
359
|
+
### Step 8 — Quality Gate (LY-01 self-review)
|
|
360
|
+
|
|
361
|
+
- [ ] Are all pages readable when printed?
|
|
362
|
+
- [ ] Do page breaks not split tables / callouts / headings?
|
|
363
|
+
- [ ] Do all cross-links in HTML work?
|
|
364
|
+
- [ ] Does TOC match section anchors?
|
|
365
|
+
- [ ] File size ≤ 10 MB (PRD) / ≤ 5 MB (Deck)?
|
|
366
|
+
- [ ] Semantic HTML (proper headings, alt-text on images)?
|
|
367
|
+
- [ ] Colors / typography / spacing match Design Spec?
|
|
368
|
+
- [ ] Content intact — not modified?
|
|
369
|
+
- [ ] Do visualizations render correctly (test open in browser)?
|
|
370
|
+
- [ ] Print preview (browser print dialog) matches design?
|
|
371
|
+
|
|
372
|
+
### Step 9 — `$gates` and handoff
|
|
373
|
+
|
|
374
|
+
1. Submit deliverable to `$gates` (LY-01 criteria).
|
|
375
|
+
2. On PASS — `$handoff` → Conductor (for Release Gate RG-01).
|
|
376
|
+
3. Update `$board`: LY-01 → [✓] Completed.
|
|
377
|
+
|
|
378
|
+
## Best Practices
|
|
379
|
+
|
|
380
|
+
| Practice | Description | Why it matters |
|
|
381
|
+
|----------|-------------|----------------|
|
|
382
|
+
| Semantic HTML | `<section>`, `<nav>`, `<article>` | Accessibility + parseable structure |
|
|
383
|
+
| Embedded CSS | `<style>` inline | Self-containment |
|
|
384
|
+
| Page break hints | `page-break-before/after/inside` | Clean PDF breaks |
|
|
385
|
+
| Minimal external deps | CDN only when critical | Offline-safe |
|
|
386
|
+
| Heading hierarchy | H1 → H2 → H3 per IA | Screen reader + TOC |
|
|
387
|
+
| Alt-text on images | `alt="..."` | Accessibility |
|
|
388
|
+
| TOC with anchors | `#section-id` href | Navigation |
|
|
389
|
+
| Print preview test | Browser print dialog | Catch break issues |
|
|
390
|
+
| File size check | < 10 MB PRD | Email-friendly |
|
|
391
|
+
|
|
392
|
+
## Reverse Handoff — rework protocol
|
|
393
|
+
|
|
394
|
+
If Conductor / Release Gate returns for rework:
|
|
395
|
+
1. If layout issue — apply Design Spec adjustments.
|
|
396
|
+
2. If content was incorrectly modified — restore original.
|
|
397
|
+
3. If visualization does not render — check Chart.js / Mermaid data / fallback SVG.
|
|
398
|
+
4. If page break issue — add `page-break-*` hint.
|
|
399
|
+
5. If self-containment gap — inline external resource.
|
|
400
|
+
6. Update only affected sections, mark `[REVISED]`.
|
|
401
|
+
|
|
402
|
+
## P0 Anti-Patterns (BLOCKERS)
|
|
403
|
+
|
|
404
|
+
| Anti-Pattern | Description | Example |
|
|
405
|
+
|--------------|-------------|---------|
|
|
406
|
+
| Content Modification | Layouter changes PRD / Strategy text | "Improved" wording |
|
|
407
|
+
| Broken References | Dead href / anchor | TOC link → missing section |
|
|
408
|
+
| External Dependencies Unbound | Required external CSS/JS without fallback | Document broken offline |
|
|
409
|
+
| Bad Page Breaks | Table / callout split across pages | Unreadable PDF |
|
|
410
|
+
| Missing Alt-text | Images without alt | Accessibility fail |
|
|
411
|
+
| Non-semantic HTML | Divs everywhere | Screen reader lost |
|
|
412
|
+
| Huge File Size | > 20 MB PRD | Email blocked |
|
|
413
|
+
| Visualization Fail | Chart / tree doesn't render | Broken viz |
|
|
414
|
+
| Heading Hierarchy Broken | H1 inside H3 section | TOC + screen reader fail |
|
|
415
|
+
| Design Spec Ignored | Layouter uses own styles | Inconsistent with Designer intent |
|
|
416
|
+
|
|
417
|
+
## Reasoning Policy (Codex)
|
|
418
|
+
|
|
419
|
+
| Situation | Reasoning |
|
|
420
|
+
|-----------|-----------|
|
|
421
|
+
| Complex visualizations (data-dense charts, custom Mermaid) | High |
|
|
422
|
+
| Accessibility-critical output | High |
|
|
423
|
+
| Large document (40+ pages PRD) | High |
|
|
424
|
+
| Standard PRD layout | Medium |
|
|
425
|
+
| Spec compact | Medium |
|
|
426
|
+
| Deck (15-20 slides) | Medium |
|
|
427
|
+
|
|
428
|
+
## Agent response format
|
|
429
|
+
|
|
430
|
+
```markdown
|
|
431
|
+
## Layouter Output — [Initiative]
|
|
432
|
+
**Mode:** Full A S6 / Full B S6 / Spec
|
|
433
|
+
|
|
434
|
+
### 1. Input Validation
|
|
435
|
+
- Design Spec: ✅ / gap
|
|
436
|
+
- PRD content: ✅ / gap
|
|
437
|
+
- Cross-references valid: ✅ / broken [list]
|
|
438
|
+
- Assets available: ✅ / missing [list]
|
|
439
|
+
|
|
440
|
+
### 2. HTML Structure
|
|
441
|
+
[Section list + anchor IDs]
|
|
442
|
+
|
|
443
|
+
### 3. CSS Summary
|
|
444
|
+
- Typography: [from Design Spec]
|
|
445
|
+
- Color palette: [from Design Spec]
|
|
446
|
+
- Spacing rhythm: 8pt
|
|
447
|
+
- Print: @page rules + page-break hints
|
|
448
|
+
|
|
449
|
+
### 4. Visualizations Implemented
|
|
450
|
+
[Roadmap / metric tree / charts / heatmap — per viz: library / fallback]
|
|
451
|
+
|
|
452
|
+
### 5. Self-Containment Check
|
|
453
|
+
[8 checkpoints]
|
|
454
|
+
|
|
455
|
+
### 6. File Size & Performance
|
|
456
|
+
- PRD HTML: X KB
|
|
457
|
+
- Deck HTML: Y KB
|
|
458
|
+
- Expected PDF sizes: ~N MB / ~M MB
|
|
459
|
+
|
|
460
|
+
### 7. Print Preview Validation
|
|
461
|
+
[Page break integrity checked]
|
|
462
|
+
|
|
463
|
+
### 8. Deliverable Files
|
|
464
|
+
- `prd.html`
|
|
465
|
+
- `prd.pdf` (post-conversion)
|
|
466
|
+
- `product-review-deck.html` (Full A)
|
|
467
|
+
- `product-review-deck.pdf`
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
## HANDOFF (Mandatory)
|
|
471
|
+
|
|
472
|
+
```
|
|
473
|
+
### Handoff Envelope — LY-01 → Conductor (→ Release Gate RG-01)
|
|
474
|
+
|
|
475
|
+
**Type:** Forward
|
|
476
|
+
**Mode:** Full A S6 / Full B S6 / Spec
|
|
477
|
+
**Gate Check:** [PASS / CONDITIONAL PASS]
|
|
478
|
+
|
|
479
|
+
**Artifacts:**
|
|
480
|
+
- `prd.html` (self-contained)
|
|
481
|
+
- `prd.pdf` (if Layouter runs PDF conversion)
|
|
482
|
+
- `product-review-deck.html` (Full A)
|
|
483
|
+
- `product-review-deck.pdf` (Full A)
|
|
484
|
+
|
|
485
|
+
**Gaps (if CONDITIONAL):**
|
|
486
|
+
- [Gap]
|
|
487
|
+
|
|
488
|
+
**Task for Conductor / RG-01:**
|
|
489
|
+
Release Gate checks final deliverables: all gates passed, content final,
|
|
490
|
+
user sign-off received before publication.
|
|
491
|
+
|
|
492
|
+
**Key parameters:**
|
|
493
|
+
- Output files: N
|
|
494
|
+
- PRD pages: N
|
|
495
|
+
- Deck slides: N
|
|
496
|
+
- File size: X MB (PRD) / Y MB (Deck)
|
|
497
|
+
- Self-contained: ✅
|
|
498
|
+
- Accessibility: semantic HTML + alt-text ✅
|
|
499
|
+
- Visualizations: N (roadmap, metric tree, charts, heatmap, flow)
|
|
500
|
+
- Print preview tested: ✅
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
## Example — Layouter for TeamFlow PRD + Deck (Full A)
|
|
504
|
+
|
|
505
|
+
### Input Validation
|
|
506
|
+
- Design Spec: ✅ 8 sections
|
|
507
|
+
- PRD content: ✅ 10 stories + AC + NFR
|
|
508
|
+
- Cross-references: ✅ all valid (metric tree → NSM, epic IDs → stories)
|
|
509
|
+
- Assets: logo SVG ✅
|
|
510
|
+
|
|
511
|
+
### HTML Structure
|
|
512
|
+
|
|
513
|
+
```html
|
|
514
|
+
<!DOCTYPE html>
|
|
515
|
+
<html lang="en">
|
|
516
|
+
<head>...</head>
|
|
517
|
+
<body>
|
|
518
|
+
<section class="title-page" id="cover">
|
|
519
|
+
<img src="data:image/svg+xml;base64,..." alt="TeamFlow logo" class="logo">
|
|
520
|
+
<h1>AI 1:1 Summarization</h1>
|
|
521
|
+
<p class="subtitle">PRD — Q1 2027 Launch</p>
|
|
522
|
+
<p class="decision-needed">Decision: Approve rollout to pilot 15 HR-tech accounts</p>
|
|
523
|
+
</section>
|
|
524
|
+
|
|
525
|
+
<nav class="toc">
|
|
526
|
+
<h2>Table of Contents</h2>
|
|
527
|
+
<ol>
|
|
528
|
+
<li><a href="#executive-summary">Executive Summary</a></li>
|
|
529
|
+
<!-- 10 sections -->
|
|
530
|
+
</ol>
|
|
531
|
+
</nav>
|
|
532
|
+
|
|
533
|
+
<section id="executive-summary" class="exec-summary">
|
|
534
|
+
<h2>Executive Summary</h2>
|
|
535
|
+
<div class="callout-info">
|
|
536
|
+
<strong>TL;DR:</strong> 40% MAM × 4.0 rating → 2h/week saved per manager,
|
|
537
|
+
$2M labor value, $250K ARR Q2. 10 team-weeks, managed risks.
|
|
538
|
+
</div>
|
|
539
|
+
<!-- ... -->
|
|
540
|
+
</section>
|
|
541
|
+
|
|
542
|
+
<section id="discovery">
|
|
543
|
+
<h2>Discovery</h2>
|
|
544
|
+
<h3 id="discovery-jtbd">JTBD</h3>
|
|
545
|
+
<!-- Buyer + End-user JTBD tables -->
|
|
546
|
+
<h3 id="discovery-problems">Problem Statements</h3>
|
|
547
|
+
<!-- top 3 problems -->
|
|
548
|
+
</section>
|
|
549
|
+
|
|
550
|
+
<section id="strategy">
|
|
551
|
+
<h2>Strategy (Mediator Unified Synthesis)</h2>
|
|
552
|
+
<!-- Vision, NSM, OKR, roadmap -->
|
|
553
|
+
<div class="roadmap">
|
|
554
|
+
<!-- 3-column grid Now/Next/Later -->
|
|
555
|
+
</div>
|
|
556
|
+
</section>
|
|
557
|
+
|
|
558
|
+
<section id="metric-plan">
|
|
559
|
+
<h2>Metric Plan</h2>
|
|
560
|
+
<div class="mermaid">
|
|
561
|
+
graph LR
|
|
562
|
+
NSM[NSM: 40% MAM × 4.0]
|
|
563
|
+
NSM --> I1[Activation]
|
|
564
|
+
NSM --> I2[Retention W4]
|
|
565
|
+
NSM --> G[Guardrails: Churn, NPS, Support, Latency]
|
|
566
|
+
</div>
|
|
567
|
+
<!-- hypotheses table -->
|
|
568
|
+
</section>
|
|
569
|
+
|
|
570
|
+
<!-- remaining sections -->
|
|
571
|
+
</body>
|
|
572
|
+
</html>
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
### Visualizations
|
|
576
|
+
- Roadmap: CSS Grid 3-column, Kano-color-coded themes
|
|
577
|
+
- Metric Tree: Mermaid horizontal
|
|
578
|
+
- RICE Chart: Chart.js horizontal bar, top 10 items
|
|
579
|
+
- Risk Heatmap: CSS Grid 3×3, 5 risks plotted
|
|
580
|
+
- Primary Flow: Mermaid flow diagram
|
|
581
|
+
|
|
582
|
+
### Self-Containment
|
|
583
|
+
✅ CSS inline
|
|
584
|
+
✅ Logo embedded (base64 SVG)
|
|
585
|
+
✅ Mermaid from CDN with fallback text
|
|
586
|
+
✅ Chart.js from CDN with fallback SVG
|
|
587
|
+
✅ No broken links
|
|
588
|
+
|
|
589
|
+
### File Size
|
|
590
|
+
- `prd.html`: 320 KB (without Mermaid/Chart.js; with CDN loaded: ~1 MB)
|
|
591
|
+
- `product-review-deck.html`: 180 KB
|
|
592
|
+
|
|
593
|
+
### Print Preview Tested
|
|
594
|
+
✅ Page breaks clean at section boundaries
|
|
595
|
+
✅ No split tables or callouts
|
|
596
|
+
✅ TOC page numbers correct (via CSS counter)
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
## Anti-patterns
|
|
601
|
+
|
|
602
|
+
| Mistake | Why it's bad | How to do it correctly |
|
|
603
|
+
|---------|-------------|------------------------|
|
|
604
|
+
| Content modification | Violates role | Layout / CSS / HTML only |
|
|
605
|
+
| Broken cross-links | TOC does not work | Validate anchors |
|
|
606
|
+
| External deps without fallback | Offline broken | CDN + fallback SVG / text |
|
|
607
|
+
| Page break splits table | Unreadable PDF | `page-break-inside: avoid` |
|
|
608
|
+
| Missing alt-text | Accessibility fail | `alt="..."` on every image |
|
|
609
|
+
| Non-semantic divs | Screen reader fail | `<section>`, `<nav>`, `<article>` |
|
|
610
|
+
| Uncontrolled file size | Email blocked | Compress / optimize |
|
|
611
|
+
| Design Spec ignored | Inconsistent with intent | Strict adherence |
|
|
612
|
+
| Custom handoff format | Incompatible | Standard format |
|
|
613
|
+
| Not updating `$board` | Board out of sync | LY-01 [→] / [✓] correctly |
|