code-ai-installer 4.0.0 → 4.0.1-a
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/README.md +83 -67
- package/dist/index.js +2 -0
- package/dist/mcp/audit_ledger.d.ts +12 -0
- package/dist/mcp/audit_ledger.js +82 -0
- package/dist/mcp/cli.js +7 -1
- package/dist/mcp/config.d.ts +23 -0
- package/dist/mcp/config.js +36 -0
- package/dist/mcp/index.d.ts +1 -2
- package/dist/mcp/index.js +1 -2
- package/dist/mcp/paths.d.ts +20 -2
- package/dist/mcp/paths.js +29 -5
- package/dist/mcp/proposal_dedup.d.ts +32 -0
- package/dist/mcp/proposal_dedup.js +102 -0
- package/dist/mcp/proposal_store.d.ts +18 -0
- package/dist/mcp/proposal_store.js +74 -0
- package/dist/mcp/scorecard.d.ts +140 -0
- package/dist/mcp/scorecard.js +103 -0
- package/dist/mcp/skill_invocations.d.ts +15 -0
- package/dist/mcp/skill_invocations.js +28 -0
- package/dist/mcp/task_state.d.ts +77 -2
- package/dist/mcp/tools/_subprocess.d.ts +16 -0
- package/dist/mcp/tools/_subprocess.js +56 -0
- package/dist/mcp/tools/advance_gate.js +2 -2
- package/dist/mcp/tools/aggregate_run_metrics.d.ts +19 -0
- package/dist/mcp/tools/aggregate_run_metrics.js +139 -0
- package/dist/mcp/tools/apply_diff.d.ts +2 -0
- package/dist/mcp/tools/apply_diff.js +29 -0
- package/dist/mcp/tools/audit_bilocale_parity.d.ts +2 -0
- package/dist/mcp/tools/audit_bilocale_parity.js +146 -0
- package/dist/mcp/tools/audit_budget_compliance.d.ts +35 -0
- package/dist/mcp/tools/audit_budget_compliance.js +172 -0
- package/dist/mcp/tools/build.d.ts +2 -0
- package/dist/mcp/tools/build.js +47 -0
- package/dist/mcp/tools/check_lint.d.ts +2 -0
- package/dist/mcp/tools/check_lint.js +23 -0
- package/dist/mcp/tools/classify_gate.js +2 -2
- package/dist/mcp/tools/current_gate.js +2 -2
- package/dist/mcp/tools/dependency_supply_chain.d.ts +2 -0
- package/dist/mcp/tools/dependency_supply_chain.js +59 -0
- package/dist/mcp/tools/docker_compose.d.ts +2 -0
- package/dist/mcp/tools/docker_compose.js +24 -0
- package/dist/mcp/tools/e2e_playwright.d.ts +2 -0
- package/dist/mcp/tools/e2e_playwright.js +88 -0
- package/dist/mcp/tools/get_skill.js +17 -0
- package/dist/mcp/tools/git_commit.d.ts +2 -0
- package/dist/mcp/tools/git_commit.js +30 -0
- package/dist/mcp/tools/list_proposals.d.ts +6 -0
- package/dist/mcp/tools/list_proposals.js +16 -0
- package/dist/mcp/tools/list_skills.js +9 -1
- package/dist/mcp/tools/load_role.d.ts +3 -4
- package/dist/mcp/tools/load_role.js +11 -13
- package/dist/mcp/tools/propose_change.d.ts +8 -0
- package/dist/mcp/tools/propose_change.js +36 -0
- package/dist/mcp/tools/record_decision.js +25 -25
- package/dist/mcp/tools/review_proposal.d.ts +17 -0
- package/dist/mcp/tools/review_proposal.js +99 -0
- package/dist/mcp/tools/run_drift_audit.d.ts +11 -0
- package/dist/mcp/tools/run_drift_audit.js +79 -0
- package/dist/mcp/tools/run_tests.d.ts +2 -0
- package/dist/mcp/tools/run_tests.js +92 -0
- package/dist/mcp/tools/sign_off.js +14 -2
- package/dist/mcp/tools/stubs.js +30 -9
- package/dist/mcp/tools/verify_claim.js +33 -6
- package/dist/mcp_setup.d.ts +8 -0
- package/dist/mcp_setup.js +4 -1
- package/dist/shared/frontmatter.d.ts +44 -2
- package/dist/shared/frontmatter.js +54 -6
- package/dist/shared/index.d.ts +0 -5
- package/dist/shared/index.js +0 -5
- package/dist/shared/persona.d.ts +2 -2
- package/dist/shared/persona.js +1 -1
- package/dist/shared/pipeline.d.ts +46 -1
- package/dist/shared/tools.d.ts +1382 -16
- package/dist/shared/tools.js +229 -0
- package/dist/shared/vocabulary.d.ts +99 -4
- package/dist/shared/vocabulary.js +94 -5
- package/domains/analytics/.agents/skills/ansoff-matrix/SKILL.md +316 -300
- package/domains/analytics/.agents/skills/bcg-matrix/SKILL.md +345 -329
- package/domains/analytics/.agents/skills/blue-ocean-strategy/SKILL.md +432 -416
- package/domains/analytics/.agents/skills/board/SKILL.md +22 -0
- package/domains/analytics/.agents/skills/cohort-analysis/SKILL.md +338 -322
- package/domains/analytics/.agents/skills/competitive-analysis/SKILL.md +413 -395
- package/domains/analytics/.agents/skills/customer-journey-mapping/SKILL.md +347 -331
- package/domains/analytics/.agents/skills/gates/SKILL.md +388 -366
- package/domains/analytics/.agents/skills/handoff/SKILL.md +402 -380
- package/domains/analytics/.agents/skills/html-pdf-report/SKILL.md +21 -289
- package/domains/analytics/.agents/skills/html-pdf-report-reference/SKILL.md +325 -0
- package/domains/analytics/.agents/skills/html-pdf-report-reference/agents/claude.json +17 -0
- package/domains/analytics/.agents/skills/html-pdf-report-reference/agents/copilot.json +17 -0
- package/domains/analytics/.agents/skills/html-pdf-report-reference/agents/gemini.json +17 -0
- package/domains/analytics/.agents/skills/html-pdf-report-reference/agents/kimi.yaml +15 -0
- package/domains/analytics/.agents/skills/html-pdf-report-reference/agents/openai.yaml +10 -0
- package/domains/analytics/.agents/skills/html-pdf-report-reference/agents/qwen.json +17 -0
- package/domains/analytics/.agents/skills/html-pdf-report-reference/agents/skill.yaml +23 -0
- package/domains/analytics/.agents/skills/icp-buyer-persona/SKILL.md +407 -390
- package/domains/analytics/.agents/skills/jtbd-analysis/SKILL.md +357 -341
- package/domains/analytics/.agents/skills/karpathy-guidelines/SKILL.md +32 -0
- package/domains/analytics/.agents/skills/pest-analysis/SKILL.md +324 -305
- package/domains/analytics/.agents/skills/porters-five-forces/SKILL.md +377 -361
- package/domains/analytics/.agents/skills/report-design/SKILL.md +416 -398
- package/domains/analytics/.agents/skills/rfm-analysis/SKILL.md +330 -314
- package/domains/analytics/.agents/skills/session-prompt-generator/SKILL.md +400 -378
- package/domains/analytics/.agents/skills/swot-analysis/SKILL.md +340 -324
- package/domains/analytics/.agents/skills/tam-sam-som/SKILL.md +329 -312
- package/domains/analytics/.agents/skills/trend-analysis/SKILL.md +347 -331
- package/domains/analytics/.agents/skills/unit-economics/SKILL.md +430 -413
- package/domains/analytics/.agents/skills/value-chain-analysis/SKILL.md +346 -330
- package/domains/analytics/.agents/skills/web-research/SKILL.md +323 -308
- package/domains/analytics/AGENTS.md +1 -0
- package/domains/analytics/agents/auditor.md +76 -0
- package/domains/analytics/agents/conductor.md +11 -0
- package/domains/analytics/agents/data_analyst.md +11 -0
- package/domains/analytics/agents/designer.md +11 -0
- package/domains/analytics/agents/interviewer.md +11 -0
- package/domains/analytics/agents/layouter.md +11 -0
- package/domains/analytics/agents/mediator.md +11 -0
- package/domains/analytics/agents/researcher.md +11 -0
- package/domains/analytics/agents/strategist.md +11 -0
- package/domains/analytics/locales/en/.agents/skills/ansoff-matrix/SKILL.md +316 -300
- package/domains/analytics/locales/en/.agents/skills/bcg-matrix/SKILL.md +345 -329
- package/domains/analytics/locales/en/.agents/skills/blue-ocean-strategy/SKILL.md +432 -416
- package/domains/analytics/locales/en/.agents/skills/board/SKILL.md +22 -0
- package/domains/analytics/locales/en/.agents/skills/cohort-analysis/SKILL.md +338 -322
- package/domains/analytics/locales/en/.agents/skills/competitive-analysis/SKILL.md +413 -395
- package/domains/analytics/locales/en/.agents/skills/customer-journey-mapping/SKILL.md +347 -331
- package/domains/analytics/locales/en/.agents/skills/gates/SKILL.md +388 -366
- package/domains/analytics/locales/en/.agents/skills/handoff/SKILL.md +402 -380
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report/SKILL.md +21 -289
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report-reference/SKILL.md +325 -0
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report-reference/agents/claude.json +17 -0
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report-reference/agents/copilot.json +17 -0
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report-reference/agents/gemini.json +17 -0
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report-reference/agents/kimi.yaml +15 -0
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report-reference/agents/openai.yaml +10 -0
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report-reference/agents/qwen.json +17 -0
- package/domains/analytics/locales/en/.agents/skills/html-pdf-report-reference/agents/skill.yaml +29 -0
- package/domains/analytics/locales/en/.agents/skills/icp-buyer-persona/SKILL.md +407 -390
- package/domains/analytics/locales/en/.agents/skills/jtbd-analysis/SKILL.md +357 -341
- package/domains/analytics/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +32 -0
- package/domains/analytics/locales/en/.agents/skills/pest-analysis/SKILL.md +324 -305
- package/domains/analytics/locales/en/.agents/skills/porters-five-forces/SKILL.md +377 -361
- package/domains/analytics/locales/en/.agents/skills/report-design/SKILL.md +416 -398
- package/domains/analytics/locales/en/.agents/skills/rfm-analysis/SKILL.md +330 -314
- package/domains/analytics/locales/en/.agents/skills/session-prompt-generator/SKILL.md +400 -378
- package/domains/analytics/locales/en/.agents/skills/swot-analysis/SKILL.md +340 -324
- package/domains/analytics/locales/en/.agents/skills/tam-sam-som/SKILL.md +329 -312
- package/domains/analytics/locales/en/.agents/skills/trend-analysis/SKILL.md +347 -331
- package/domains/analytics/locales/en/.agents/skills/unit-economics/SKILL.md +430 -413
- package/domains/analytics/locales/en/.agents/skills/value-chain-analysis/SKILL.md +366 -350
- package/domains/analytics/locales/en/.agents/skills/web-research/SKILL.md +324 -309
- package/domains/analytics/locales/en/AGENTS.md +1 -0
- package/domains/analytics/locales/en/agents/auditor.md +76 -0
- package/domains/analytics/locales/en/agents/conductor.md +27 -0
- package/domains/analytics/locales/en/agents/data_analyst.md +29 -0
- package/domains/analytics/locales/en/agents/designer.md +27 -0
- package/domains/analytics/locales/en/agents/interviewer.md +11 -0
- package/domains/analytics/locales/en/agents/layouter.md +11 -0
- package/domains/analytics/locales/en/agents/mediator.md +11 -0
- package/domains/analytics/locales/en/agents/researcher.md +11 -0
- package/domains/analytics/locales/en/agents/strategist.md +11 -0
- package/domains/analytics/persona/persona-base.md +94 -0
- package/domains/analytics/pipeline.yaml +102 -0
- package/domains/content/.agents/skills/audience-analysis/SKILL.md +15 -0
- package/domains/content/.agents/skills/board/SKILL.md +20 -0
- package/domains/content/.agents/skills/brand-compliance/SKILL.md +15 -0
- package/domains/content/.agents/skills/brand-guidelines/SKILL.md +17 -0
- package/domains/content/.agents/skills/competitor-content-analysis/SKILL.md +15 -0
- package/domains/content/.agents/skills/content-brief/SKILL.md +15 -0
- package/domains/content/.agents/skills/content-calendar/SKILL.md +15 -0
- package/domains/content/.agents/skills/content-release-gate/SKILL.md +15 -0
- package/domains/content/.agents/skills/content-review-checklist/SKILL.md +15 -0
- package/domains/content/.agents/skills/cta-optimization/SKILL.md +15 -0
- package/domains/content/.agents/skills/data-storytelling/SKILL.md +15 -0
- package/domains/content/.agents/skills/email-copywriting/SKILL.md +15 -0
- package/domains/content/.agents/skills/email-engagement-tiers/SKILL.md +15 -0
- package/domains/content/.agents/skills/fact-checking/SKILL.md +15 -0
- package/domains/content/.agents/skills/gates/SKILL.md +20 -0
- package/domains/content/.agents/skills/google-stitch-content/SKILL.md +15 -0
- package/domains/content/.agents/skills/handoff/SKILL.md +24 -0
- package/domains/content/.agents/skills/headline-formulas/SKILL.md +15 -0
- package/domains/content/.agents/skills/image-prompt-engineering/SKILL.md +15 -0
- package/domains/content/.agents/skills/karpathy-guidelines/SKILL.md +28 -0
- package/domains/content/.agents/skills/mailerlite-email-ops/SKILL.md +15 -0
- package/domains/content/.agents/skills/marketing-psychology/SKILL.md +15 -0
- package/domains/content/.agents/skills/moodboard/SKILL.md +15 -0
- package/domains/content/.agents/skills/platform-compliance/SKILL.md +15 -0
- package/domains/content/.agents/skills/platform-strategy/SKILL.md +15 -0
- package/domains/content/.agents/skills/platform-visual-specs/SKILL.md +15 -0
- package/domains/content/.agents/skills/readability-scoring/SKILL.md +15 -0
- package/domains/content/.agents/skills/seo-copywriting/SKILL.md +15 -0
- package/domains/content/.agents/skills/social-media-formats/SKILL.md +15 -0
- package/domains/content/.agents/skills/source-verification/SKILL.md +15 -0
- package/domains/content/.agents/skills/storytelling-framework/SKILL.md +15 -0
- package/domains/content/.agents/skills/tone-of-voice/SKILL.md +15 -0
- package/domains/content/.agents/skills/topic-research/SKILL.md +15 -0
- package/domains/content/.agents/skills/trend-research/SKILL.md +15 -0
- package/domains/content/.agents/skills/visual-brief/SKILL.md +15 -0
- package/domains/content/AGENTS.md +4 -0
- package/domains/content/agents/auditor.md +76 -0
- package/domains/content/agents/conductor.md +11 -0
- package/domains/content/agents/copywriter.md +11 -0
- package/domains/content/agents/researcher.md +11 -0
- package/domains/content/agents/reviewer.md +11 -0
- package/domains/content/agents/strategist.md +11 -0
- package/domains/content/agents/visual_concept.md +11 -0
- package/domains/content/locales/en/.agents/skills/audience-analysis/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/board/SKILL.md +20 -0
- package/domains/content/locales/en/.agents/skills/brand-compliance/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/brand-guidelines/SKILL.md +17 -0
- package/domains/content/locales/en/.agents/skills/competitor-content-analysis/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/content-brief/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/content-calendar/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/content-release-gate/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/content-review-checklist/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/cta-optimization/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/data-storytelling/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/email-copywriting/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/email-engagement-tiers/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/fact-checking/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/gates/SKILL.md +20 -0
- package/domains/content/locales/en/.agents/skills/google-stitch-content/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/handoff/SKILL.md +24 -0
- package/domains/content/locales/en/.agents/skills/headline-formulas/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/image-prompt-engineering/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +30 -1
- package/domains/content/locales/en/.agents/skills/mailerlite-email-ops/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/marketing-psychology/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/moodboard/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/platform-compliance/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/platform-strategy/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/platform-visual-specs/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/readability-scoring/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/seo-copywriting/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/social-media-formats/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/source-verification/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/storytelling-framework/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/tone-of-voice/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/topic-research/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/trend-research/SKILL.md +15 -0
- package/domains/content/locales/en/.agents/skills/visual-brief/SKILL.md +15 -0
- package/domains/content/locales/en/AGENTS.md +4 -0
- package/domains/content/locales/en/agents/auditor.md +76 -0
- package/domains/content/locales/en/agents/conductor.md +12 -0
- package/domains/content/locales/en/agents/copywriter.md +12 -0
- package/domains/content/locales/en/agents/researcher.md +12 -0
- package/domains/content/locales/en/agents/reviewer.md +12 -0
- package/domains/content/locales/en/agents/strategist.md +12 -0
- package/domains/content/locales/en/agents/visual_concept.md +12 -0
- package/domains/content/persona/persona-base.md +94 -0
- package/domains/content/pipeline.yaml +96 -0
- package/domains/development/.agents/skills/adr-log/SKILL.md +1 -0
- package/domains/development/.agents/skills/design-intake/SKILL.md +0 -4
- package/domains/development/.agents/skills/karpathy-guidelines/SKILL.md +2 -1
- package/domains/development/.agents/skills/lava-flow-legacy-detection/SKILL.md +15 -1
- package/domains/development/.agents/skills/mcp-integration/SKILL.md +211 -0
- package/domains/development/.agents/skills/mcp-integration/agents/claude.json +22 -0
- package/domains/development/.agents/skills/mcp-integration/agents/copilot.json +22 -0
- package/domains/development/.agents/skills/mcp-integration/agents/gemini.json +22 -0
- package/domains/development/.agents/skills/mcp-integration/agents/kimi.yaml +18 -0
- package/domains/development/.agents/skills/mcp-integration/agents/openai.yaml +8 -0
- package/domains/development/.agents/skills/mcp-integration/agents/qwen.json +22 -0
- package/domains/development/.agents/skills/mcp-integration/agents/skill.yaml +26 -0
- package/domains/development/.agents/skills/qa-ui-a11y-smoke/SKILL.md +1 -1
- package/domains/development/.agents/skills/ui-a11y-smoke-review/SKILL.md +1 -1
- package/domains/development/AGENTS.md +1 -0
- package/domains/development/AGENTS.yaml +1 -0
- package/domains/development/agents/architect.md +13 -1
- package/domains/development/agents/auditor.md +74 -0
- package/domains/development/agents/conductor.md +14 -3
- package/domains/development/agents/devops.md +8 -9
- package/domains/development/agents/reviewer.md +12 -0
- package/domains/development/agents/senior_full_stack.md +12 -0
- package/domains/development/agents/tester.md +10 -16
- package/domains/development/locales/en/.agents/skills/adr-log/SKILL.md +1 -0
- package/domains/development/locales/en/.agents/skills/current-state-analysis/SKILL.md +256 -172
- package/domains/development/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +2 -1
- package/domains/development/locales/en/.agents/skills/lava-flow-legacy-detection/SKILL.md +15 -1
- package/domains/development/locales/en/.agents/skills/mcp-integration/SKILL.md +211 -0
- package/domains/development/locales/en/.agents/skills/mcp-integration/agents/claude.json +22 -0
- package/domains/development/locales/en/.agents/skills/mcp-integration/agents/copilot.json +22 -0
- package/domains/development/locales/en/.agents/skills/mcp-integration/agents/gemini.json +22 -0
- package/domains/development/locales/en/.agents/skills/mcp-integration/agents/kimi.yaml +18 -0
- package/domains/development/locales/en/.agents/skills/mcp-integration/agents/openai.yaml +8 -0
- package/domains/development/locales/en/.agents/skills/mcp-integration/agents/qwen.json +22 -0
- package/domains/development/locales/en/.agents/skills/mcp-integration/agents/skill.yaml +26 -0
- package/domains/development/locales/en/.agents/skills/qa-ui-a11y-smoke/SKILL.md +1 -1
- package/domains/development/locales/en/.agents/skills/ui-a11y-smoke-review/SKILL.md +1 -1
- package/domains/development/locales/en/AGENTS.md +5 -0
- package/domains/development/locales/en/AGENTS.yaml +1 -0
- package/domains/development/locales/en/agents/architect.md +13 -1
- package/domains/development/locales/en/agents/auditor.md +74 -0
- package/domains/development/locales/en/agents/conductor.md +14 -3
- package/domains/development/locales/en/agents/devops.md +8 -9
- package/domains/development/locales/en/agents/reviewer.md +12 -0
- package/domains/development/locales/en/agents/senior_full_stack.md +12 -0
- package/domains/development/locales/en/agents/tester.md +10 -16
- package/domains/development/persona/persona-base.md +94 -0
- package/domains/product/.agents/skills/aarrr-metrics/SKILL.md +451 -433
- package/domains/product/.agents/skills/ab-test-design/SKILL.md +428 -412
- package/domains/product/.agents/skills/acceptance-criteria/SKILL.md +422 -406
- package/domains/product/.agents/skills/assumption-mapping/SKILL.md +323 -307
- package/domains/product/.agents/skills/board/SKILL.md +24 -0
- package/domains/product/.agents/skills/design-brief/SKILL.md +433 -418
- package/domains/product/.agents/skills/epic-breakdown/SKILL.md +435 -420
- package/domains/product/.agents/skills/gates/SKILL.md +470 -446
- package/domains/product/.agents/skills/gtm-brief/SKILL.md +18 -321
- package/domains/product/.agents/skills/gtm-brief-reference/SKILL.md +348 -0
- package/domains/product/.agents/skills/gtm-brief-reference/agents/claude.json +17 -0
- package/domains/product/.agents/skills/gtm-brief-reference/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/gtm-brief-reference/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/gtm-brief-reference/agents/kimi.yaml +15 -0
- package/domains/product/.agents/skills/gtm-brief-reference/agents/openai.yaml +10 -0
- package/domains/product/.agents/skills/gtm-brief-reference/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/gtm-brief-reference/agents/skill.yaml +22 -0
- package/domains/product/.agents/skills/handoff/SKILL.md +463 -439
- package/domains/product/.agents/skills/html-pdf-report/SKILL.md +21 -663
- package/domains/product/.agents/skills/html-pdf-report-reference/SKILL.md +699 -0
- package/domains/product/.agents/skills/html-pdf-report-reference/agents/claude.json +17 -0
- package/domains/product/.agents/skills/html-pdf-report-reference/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/html-pdf-report-reference/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/html-pdf-report-reference/agents/kimi.yaml +15 -0
- package/domains/product/.agents/skills/html-pdf-report-reference/agents/openai.yaml +10 -0
- package/domains/product/.agents/skills/html-pdf-report-reference/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/html-pdf-report-reference/agents/skill.yaml +22 -0
- package/domains/product/.agents/skills/hypothesis-template/SKILL.md +484 -469
- package/domains/product/.agents/skills/jtbd-canvas/SKILL.md +274 -258
- package/domains/product/.agents/skills/kano-model/SKILL.md +370 -355
- package/domains/product/.agents/skills/karpathy-guidelines/SKILL.md +36 -0
- package/domains/product/.agents/skills/launch-checklist/SKILL.md +434 -419
- package/domains/product/.agents/skills/moscow-prioritization/SKILL.md +407 -392
- package/domains/product/.agents/skills/north-star-metric/SKILL.md +317 -301
- package/domains/product/.agents/skills/okr-framework/SKILL.md +299 -284
- package/domains/product/.agents/skills/opportunity-solution-tree/SKILL.md +472 -456
- package/domains/product/.agents/skills/prd-template/SKILL.md +18 -258
- package/domains/product/.agents/skills/prd-template-reference/SKILL.md +285 -0
- package/domains/product/.agents/skills/prd-template-reference/agents/claude.json +17 -0
- package/domains/product/.agents/skills/prd-template-reference/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/prd-template-reference/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/prd-template-reference/agents/kimi.yaml +16 -0
- package/domains/product/.agents/skills/prd-template-reference/agents/openai.yaml +10 -0
- package/domains/product/.agents/skills/prd-template-reference/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/prd-template-reference/agents/skill.yaml +23 -0
- package/domains/product/.agents/skills/problem-statement/SKILL.md +327 -312
- package/domains/product/.agents/skills/product-roadmap/SKILL.md +320 -304
- package/domains/product/.agents/skills/product-vision/SKILL.md +409 -394
- package/domains/product/.agents/skills/release-notes/SKILL.md +18 -258
- package/domains/product/.agents/skills/release-notes-reference/SKILL.md +285 -0
- package/domains/product/.agents/skills/release-notes-reference/agents/claude.json +17 -0
- package/domains/product/.agents/skills/release-notes-reference/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/release-notes-reference/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/release-notes-reference/agents/kimi.yaml +15 -0
- package/domains/product/.agents/skills/release-notes-reference/agents/openai.yaml +10 -0
- package/domains/product/.agents/skills/release-notes-reference/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/release-notes-reference/agents/skill.yaml +22 -0
- package/domains/product/.agents/skills/report-design/SKILL.md +17 -307
- package/domains/product/.agents/skills/report-design-reference/SKILL.md +331 -0
- package/domains/product/.agents/skills/report-design-reference/agents/claude.json +17 -0
- package/domains/product/.agents/skills/report-design-reference/agents/copilot.json +17 -0
- package/domains/product/.agents/skills/report-design-reference/agents/gemini.json +17 -0
- package/domains/product/.agents/skills/report-design-reference/agents/kimi.yaml +15 -0
- package/domains/product/.agents/skills/report-design-reference/agents/openai.yaml +10 -0
- package/domains/product/.agents/skills/report-design-reference/agents/qwen.json +17 -0
- package/domains/product/.agents/skills/report-design-reference/agents/skill.yaml +22 -0
- package/domains/product/.agents/skills/rice-scoring/SKILL.md +266 -251
- package/domains/product/.agents/skills/saas-metrics/SKILL.md +422 -404
- package/domains/product/.agents/skills/session-prompt-generator/SKILL.md +474 -450
- package/domains/product/.agents/skills/user-flow/SKILL.md +491 -476
- package/domains/product/.agents/skills/user-interview-script/SKILL.md +315 -298
- package/domains/product/.agents/skills/user-story/SKILL.md +401 -385
- package/domains/product/.agents/skills/wsjf-scoring/SKILL.md +333 -315
- package/domains/product/AGENTS.md +5 -0
- package/domains/product/AGENTS.yaml +1 -0
- package/domains/product/agents/auditor.md +76 -0
- package/domains/product/agents/conductor.md +11 -0
- package/domains/product/agents/data_analyst.md +11 -0
- package/domains/product/agents/designer.md +11 -0
- package/domains/product/agents/discovery.md +11 -0
- package/domains/product/agents/layouter.md +11 -0
- package/domains/product/agents/mediator.md +11 -0
- package/domains/product/agents/pm.md +11 -0
- package/domains/product/agents/product_strategist.md +11 -0
- package/domains/product/agents/tech_lead.md +11 -0
- package/domains/product/agents/ux_designer.md +11 -0
- package/domains/product/locales/en/.agents/skills/aarrr-metrics/SKILL.md +451 -433
- package/domains/product/locales/en/.agents/skills/ab-test-design/SKILL.md +428 -412
- package/domains/product/locales/en/.agents/skills/acceptance-criteria/SKILL.md +422 -406
- package/domains/product/locales/en/.agents/skills/assumption-mapping/SKILL.md +323 -307
- package/domains/product/locales/en/.agents/skills/board/SKILL.md +24 -0
- package/domains/product/locales/en/.agents/skills/design-brief/SKILL.md +433 -418
- package/domains/product/locales/en/.agents/skills/epic-breakdown/SKILL.md +435 -420
- package/domains/product/locales/en/.agents/skills/gates/SKILL.md +470 -446
- package/domains/product/locales/en/.agents/skills/gtm-brief/SKILL.md +18 -321
- package/domains/product/locales/en/.agents/skills/gtm-brief-reference/SKILL.md +348 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief-reference/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief-reference/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief-reference/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief-reference/agents/kimi.yaml +15 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief-reference/agents/openai.yaml +10 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief-reference/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/gtm-brief-reference/agents/skill.yaml +22 -0
- package/domains/product/locales/en/.agents/skills/handoff/SKILL.md +463 -439
- package/domains/product/locales/en/.agents/skills/html-pdf-report/SKILL.md +21 -663
- package/domains/product/locales/en/.agents/skills/html-pdf-report-reference/SKILL.md +699 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report-reference/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report-reference/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report-reference/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report-reference/agents/kimi.yaml +15 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report-reference/agents/openai.yaml +10 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report-reference/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/html-pdf-report-reference/agents/skill.yaml +22 -0
- package/domains/product/locales/en/.agents/skills/hypothesis-template/SKILL.md +484 -469
- package/domains/product/locales/en/.agents/skills/jtbd-canvas/SKILL.md +273 -257
- package/domains/product/locales/en/.agents/skills/kano-model/SKILL.md +370 -355
- package/domains/product/locales/en/.agents/skills/karpathy-guidelines/SKILL.md +36 -0
- package/domains/product/locales/en/.agents/skills/launch-checklist/SKILL.md +434 -419
- package/domains/product/locales/en/.agents/skills/moscow-prioritization/SKILL.md +407 -392
- package/domains/product/locales/en/.agents/skills/north-star-metric/SKILL.md +317 -301
- package/domains/product/locales/en/.agents/skills/okr-framework/SKILL.md +299 -284
- package/domains/product/locales/en/.agents/skills/opportunity-solution-tree/SKILL.md +472 -456
- package/domains/product/locales/en/.agents/skills/prd-template/SKILL.md +18 -258
- package/domains/product/locales/en/.agents/skills/prd-template-reference/SKILL.md +285 -0
- package/domains/product/locales/en/.agents/skills/prd-template-reference/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/prd-template-reference/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/prd-template-reference/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/prd-template-reference/agents/kimi.yaml +15 -0
- package/domains/product/locales/en/.agents/skills/prd-template-reference/agents/openai.yaml +10 -0
- package/domains/product/locales/en/.agents/skills/prd-template-reference/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/prd-template-reference/agents/skill.yaml +22 -0
- package/domains/product/locales/en/.agents/skills/problem-statement/SKILL.md +327 -312
- package/domains/product/locales/en/.agents/skills/product-roadmap/SKILL.md +321 -305
- package/domains/product/locales/en/.agents/skills/product-vision/SKILL.md +410 -395
- package/domains/product/locales/en/.agents/skills/release-notes/SKILL.md +18 -258
- package/domains/product/locales/en/.agents/skills/release-notes-reference/SKILL.md +285 -0
- package/domains/product/locales/en/.agents/skills/release-notes-reference/agents/claude.json +16 -0
- package/domains/product/locales/en/.agents/skills/release-notes-reference/agents/copilot.json +16 -0
- package/domains/product/locales/en/.agents/skills/release-notes-reference/agents/gemini.json +16 -0
- package/domains/product/locales/en/.agents/skills/release-notes-reference/agents/kimi.yaml +14 -0
- package/domains/product/locales/en/.agents/skills/release-notes-reference/agents/openai.yaml +10 -0
- package/domains/product/locales/en/.agents/skills/release-notes-reference/agents/qwen.json +16 -0
- package/domains/product/locales/en/.agents/skills/release-notes-reference/agents/skill.yaml +21 -0
- package/domains/product/locales/en/.agents/skills/report-design/SKILL.md +17 -307
- package/domains/product/locales/en/.agents/skills/report-design-reference/SKILL.md +331 -0
- package/domains/product/locales/en/.agents/skills/report-design-reference/agents/claude.json +17 -0
- package/domains/product/locales/en/.agents/skills/report-design-reference/agents/copilot.json +17 -0
- package/domains/product/locales/en/.agents/skills/report-design-reference/agents/gemini.json +17 -0
- package/domains/product/locales/en/.agents/skills/report-design-reference/agents/kimi.yaml +15 -0
- package/domains/product/locales/en/.agents/skills/report-design-reference/agents/openai.yaml +10 -0
- package/domains/product/locales/en/.agents/skills/report-design-reference/agents/qwen.json +17 -0
- package/domains/product/locales/en/.agents/skills/report-design-reference/agents/skill.yaml +22 -0
- package/domains/product/locales/en/.agents/skills/rice-scoring/SKILL.md +266 -251
- package/domains/product/locales/en/.agents/skills/saas-metrics/SKILL.md +422 -404
- package/domains/product/locales/en/.agents/skills/session-prompt-generator/SKILL.md +474 -450
- package/domains/product/locales/en/.agents/skills/user-flow/SKILL.md +491 -476
- package/domains/product/locales/en/.agents/skills/user-interview-script/SKILL.md +314 -297
- package/domains/product/locales/en/.agents/skills/user-story/SKILL.md +401 -385
- package/domains/product/locales/en/.agents/skills/wsjf-scoring/SKILL.md +333 -315
- package/domains/product/locales/en/AGENTS.md +5 -0
- package/domains/product/locales/en/agents/auditor.md +76 -0
- package/domains/product/locales/en/agents/conductor.md +11 -0
- package/domains/product/locales/en/agents/data_analyst.md +11 -0
- package/domains/product/locales/en/agents/designer.md +11 -0
- package/domains/product/locales/en/agents/discovery.md +11 -0
- package/domains/product/locales/en/agents/layouter.md +11 -0
- package/domains/product/locales/en/agents/mediator.md +11 -0
- package/domains/product/locales/en/agents/pm.md +11 -0
- package/domains/product/locales/en/agents/product_strategist.md +11 -0
- package/domains/product/locales/en/agents/tech_lead.md +11 -0
- package/domains/product/locales/en/agents/ux_designer.md +11 -0
- package/domains/product/persona/persona-base.md +94 -0
- package/domains/product/pipeline.yaml +115 -0
- package/package.json +72 -70
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: html-pdf-report
|
|
3
3
|
description: Генерация PRD или Product Review Deck из HTML/CSS в PDF — self-contained, print-ready
|
|
4
|
+
type: triggered
|
|
5
|
+
domain: product
|
|
6
|
+
owners:
|
|
7
|
+
- layouter
|
|
8
|
+
gates:
|
|
9
|
+
- LAYOUTER
|
|
10
|
+
tech: []
|
|
11
|
+
topic: []
|
|
12
|
+
triggers:
|
|
13
|
+
- "html-pdf-report"
|
|
14
|
+
- "HTML PDF"
|
|
15
|
+
- "PRD PDF"
|
|
16
|
+
- "product review deck"
|
|
17
|
+
related:
|
|
18
|
+
- html-pdf-report-reference
|
|
19
|
+
budget_lines: 297
|
|
20
|
+
schema_version: 1
|
|
4
21
|
---
|
|
5
22
|
# HTML/PDF-отчёт — Генерация PRD или Product Review Deck в PDF
|
|
6
23
|
|
|
@@ -69,120 +86,7 @@ description: Генерация PRD или Product Review Deck из HTML/CSS в
|
|
|
69
86
|
|
|
70
87
|
Полный рабочий CSS-блок:
|
|
71
88
|
|
|
72
|
-
|
|
73
|
-
/* ========== RESET & BASE ========== */
|
|
74
|
-
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
75
|
-
body {
|
|
76
|
-
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
|
|
77
|
-
font-size: 11pt;
|
|
78
|
-
line-height: 1.6;
|
|
79
|
-
color: #1a1a2e;
|
|
80
|
-
background: #fff;
|
|
81
|
-
}
|
|
82
|
-
.report { max-width: 210mm; margin: 0 auto; padding: 20mm; }
|
|
83
|
-
|
|
84
|
-
/* ========== TYPOGRAPHY ========== */
|
|
85
|
-
h1 { font-size: 24pt; font-weight: 700; margin-bottom: 0.5em; color: var(--primary); }
|
|
86
|
-
h2 { font-size: 18pt; font-weight: 600; margin: 1.5em 0 0.5em; padding-bottom: 0.3em;
|
|
87
|
-
border-bottom: 2px solid var(--primary); color: var(--primary); }
|
|
88
|
-
h3 { font-size: 14pt; font-weight: 600; margin: 1.2em 0 0.4em; color: var(--secondary); }
|
|
89
|
-
h4 { font-size: 12pt; font-weight: 600; margin: 1em 0 0.3em; }
|
|
90
|
-
p { margin-bottom: 0.8em; }
|
|
91
|
-
blockquote { border-left: 4px solid var(--accent); padding: 0.8em 1.2em;
|
|
92
|
-
margin: 1em 0; background: var(--bg-light); font-style: italic; }
|
|
93
|
-
|
|
94
|
-
/* ========== CSS VARIABLES (из палитры) ========== */
|
|
95
|
-
:root {
|
|
96
|
-
--primary: #1a1a2e; /* Заменить из Design Spec */
|
|
97
|
-
--secondary: #16213e;
|
|
98
|
-
--accent: #0f3460;
|
|
99
|
-
--highlight: #e94560;
|
|
100
|
-
--bg-light: #f5f5f5;
|
|
101
|
-
--border: #e0e0e0;
|
|
102
|
-
--success: #2ecc71;
|
|
103
|
-
--warning: #f39c12;
|
|
104
|
-
--danger: #e74c3c;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/* ========== TITLE PAGE ========== */
|
|
108
|
-
.title-page {
|
|
109
|
-
display: flex; flex-direction: column; justify-content: center; align-items: center;
|
|
110
|
-
min-height: 100vh; text-align: center;
|
|
111
|
-
}
|
|
112
|
-
.title-page h1 { font-size: 32pt; margin-bottom: 0.3em; }
|
|
113
|
-
.title-page .subtitle { font-size: 16pt; color: var(--secondary); margin-bottom: 2em; }
|
|
114
|
-
.title-page .meta { font-size: 10pt; color: #666; }
|
|
115
|
-
|
|
116
|
-
/* ========== TOC ========== */
|
|
117
|
-
.toc-list { list-style: none; counter-reset: toc; }
|
|
118
|
-
.toc-list li { padding: 0.4em 0; border-bottom: 1px dotted var(--border); }
|
|
119
|
-
.toc-list li::before { counter-increment: toc; content: counter(toc) ". "; font-weight: 600; }
|
|
120
|
-
.toc-list a { text-decoration: none; color: var(--primary); }
|
|
121
|
-
.toc-list a:hover { color: var(--accent); }
|
|
122
|
-
|
|
123
|
-
/* ========== DATA TABLE ========== */
|
|
124
|
-
.data-table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: 10pt; }
|
|
125
|
-
.data-table th { background: var(--primary); color: #fff; padding: 8px 12px;
|
|
126
|
-
text-align: left; font-weight: 600; }
|
|
127
|
-
.data-table td { padding: 8px 12px; border-bottom: 1px solid var(--border); }
|
|
128
|
-
.data-table tr:nth-child(even) { background: var(--bg-light); }
|
|
129
|
-
.data-table .highlight { background: rgba(233, 69, 96, 0.1); font-weight: 600; }
|
|
130
|
-
|
|
131
|
-
/* ========== MATRIX 2x2 ========== */
|
|
132
|
-
.matrix-2x2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
|
|
133
|
-
margin: 1em 0; border: 2px solid var(--border); }
|
|
134
|
-
.matrix-2x2 .cell { padding: 1.2em; }
|
|
135
|
-
.matrix-2x2 .cell-header { background: var(--primary); color: #fff; font-weight: 600;
|
|
136
|
-
text-align: center; padding: 0.6em; }
|
|
137
|
-
.matrix-2x2 .cell-tl { background: #e8f5e9; } /* Top-left: green */
|
|
138
|
-
.matrix-2x2 .cell-tr { background: #fff3e0; } /* Top-right: orange */
|
|
139
|
-
.matrix-2x2 .cell-bl { background: #e3f2fd; } /* Bottom-left: blue */
|
|
140
|
-
.matrix-2x2 .cell-br { background: #fce4ec; } /* Bottom-right: red */
|
|
141
|
-
|
|
142
|
-
/* ========== CALLOUT BOX ========== */
|
|
143
|
-
.callout { padding: 1em 1.2em; margin: 1em 0; border-radius: 6px; border-left: 4px solid; }
|
|
144
|
-
.callout-info { background: #e3f2fd; border-color: #2196f3; }
|
|
145
|
-
.callout-success { background: #e8f5e9; border-color: var(--success); }
|
|
146
|
-
.callout-warning { background: #fff3e0; border-color: var(--warning); }
|
|
147
|
-
.callout-danger { background: #fce4ec; border-color: var(--danger); }
|
|
148
|
-
.callout-title { font-weight: 700; margin-bottom: 0.3em; }
|
|
149
|
-
|
|
150
|
-
/* ========== PULL QUOTE ========== */
|
|
151
|
-
.pull-quote { font-size: 14pt; font-weight: 300; text-align: center;
|
|
152
|
-
padding: 1.5em 2em; margin: 1.5em 0; color: var(--accent);
|
|
153
|
-
border-top: 2px solid var(--accent); border-bottom: 2px solid var(--accent); }
|
|
154
|
-
|
|
155
|
-
/* ========== CHART CONTAINER ========== */
|
|
156
|
-
.chart-container { position: relative; margin: 1.5em 0; max-width: 100%; }
|
|
157
|
-
.chart-container canvas { max-width: 100%; }
|
|
158
|
-
.chart-container figcaption { font-size: 9pt; color: #666; text-align: center;
|
|
159
|
-
margin-top: 0.5em; font-style: italic; }
|
|
160
|
-
|
|
161
|
-
/* ========== SCORE / BADGE ========== */
|
|
162
|
-
.score-badge { display: inline-block; padding: 0.2em 0.8em; border-radius: 12px;
|
|
163
|
-
font-weight: 700; font-size: 10pt; }
|
|
164
|
-
.score-high { background: var(--success); color: #fff; }
|
|
165
|
-
.score-mid { background: var(--warning); color: #fff; }
|
|
166
|
-
.score-low { background: var(--danger); color: #fff; }
|
|
167
|
-
|
|
168
|
-
/* ========== PRINT ========== */
|
|
169
|
-
@media print {
|
|
170
|
-
@page { size: A4 portrait; margin: 20mm; }
|
|
171
|
-
body { font-size: 10pt; }
|
|
172
|
-
.report { max-width: none; padding: 0; }
|
|
173
|
-
.title-page { min-height: auto; page-break-after: always; }
|
|
174
|
-
.toc { page-break-after: always; }
|
|
175
|
-
.executive-summary { page-break-after: always; }
|
|
176
|
-
.appendix { page-break-before: always; }
|
|
177
|
-
.data-table, .chart-container, .matrix-2x2, .mermaid, figure {
|
|
178
|
-
page-break-inside: avoid;
|
|
179
|
-
}
|
|
180
|
-
h2, h3 { page-break-after: avoid; }
|
|
181
|
-
.callout { page-break-inside: avoid; }
|
|
182
|
-
a { color: inherit; text-decoration: none; }
|
|
183
|
-
canvas { max-width: 100% !important; height: auto !important; }
|
|
184
|
-
}
|
|
185
|
-
```
|
|
89
|
+
> 📦 <!--SPLIT-POINTER--> Полный блок — в `$html-pdf-report-reference` (§ Шаг 2 — CSS (Base + Print)).
|
|
186
90
|
|
|
187
91
|
> **Палитра:** заменить CSS variables из Design Spec. Все цвета — через `var(--name)`, чтобы палитра менялась в одном месте.
|
|
188
92
|
|
|
@@ -194,99 +98,7 @@ blockquote { border-left: 4px solid var(--accent); padding: 0.8em 1.2em;
|
|
|
194
98
|
|
|
195
99
|
**Конфигурации по типам:**
|
|
196
100
|
|
|
197
|
-
|
|
198
|
-
// ========== BAR CHART (сравнение конкурентов, scoring) ==========
|
|
199
|
-
new Chart(document.getElementById('chart-competitors'), {
|
|
200
|
-
type: 'bar',
|
|
201
|
-
data: {
|
|
202
|
-
labels: ['Конкурент A', 'Конкурент B', 'Конкурент C', 'Наш продукт'],
|
|
203
|
-
datasets: [{
|
|
204
|
-
label: 'Threat Score',
|
|
205
|
-
data: [7.2, 7.3, 4.8, null],
|
|
206
|
-
backgroundColor: ['#e74c3c', '#e74c3c', '#f39c12', '#2ecc71'],
|
|
207
|
-
borderWidth: 0,
|
|
208
|
-
borderRadius: 4
|
|
209
|
-
}]
|
|
210
|
-
},
|
|
211
|
-
options: {
|
|
212
|
-
animation: false, responsive: true,
|
|
213
|
-
plugins: { legend: { display: false },
|
|
214
|
-
title: { display: true, text: 'Threat Score конкурентов', font: { size: 14 } } },
|
|
215
|
-
scales: { y: { beginAtZero: true, max: 10, title: { display: true, text: 'Score' } } }
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
// ========== RADAR CHART (мультикритериальное сравнение) ==========
|
|
220
|
-
new Chart(document.getElementById('chart-radar'), {
|
|
221
|
-
type: 'radar',
|
|
222
|
-
data: {
|
|
223
|
-
labels: ['Функционал', 'Цена', 'UX', 'Поддержка', 'Экосистема', 'Бренд'],
|
|
224
|
-
datasets: [
|
|
225
|
-
{ label: 'Наш продукт', data: [7, 8, 6, 5, 4, 3],
|
|
226
|
-
borderColor: '#0f3460', backgroundColor: 'rgba(15,52,96,0.1)', borderWidth: 2 },
|
|
227
|
-
{ label: 'Лидер рынка', data: [9, 4, 8, 7, 9, 9],
|
|
228
|
-
borderColor: '#e94560', backgroundColor: 'rgba(233,69,96,0.1)', borderWidth: 2 }
|
|
229
|
-
]
|
|
230
|
-
},
|
|
231
|
-
options: {
|
|
232
|
-
animation: false, responsive: true,
|
|
233
|
-
scales: { r: { beginAtZero: true, max: 10, ticks: { stepSize: 2 } } }
|
|
234
|
-
}
|
|
235
|
-
});
|
|
236
|
-
|
|
237
|
-
// ========== PIE / DOUGHNUT (доли, распределение) ==========
|
|
238
|
-
new Chart(document.getElementById('chart-share'), {
|
|
239
|
-
type: 'doughnut',
|
|
240
|
-
data: {
|
|
241
|
-
labels: ['Сегмент A', 'Сегмент B', 'Сегмент C', 'Прочие'],
|
|
242
|
-
datasets: [{ data: [35, 28, 22, 15],
|
|
243
|
-
backgroundColor: ['#1a1a2e', '#0f3460', '#e94560', '#ccc'],
|
|
244
|
-
borderWidth: 2, borderColor: '#fff' }]
|
|
245
|
-
},
|
|
246
|
-
options: {
|
|
247
|
-
animation: false, responsive: true,
|
|
248
|
-
plugins: { legend: { position: 'right' } }
|
|
249
|
-
}
|
|
250
|
-
});
|
|
251
|
-
|
|
252
|
-
// ========== LINE CHART (тренды, retention curves) ==========
|
|
253
|
-
new Chart(document.getElementById('chart-retention'), {
|
|
254
|
-
type: 'line',
|
|
255
|
-
data: {
|
|
256
|
-
labels: ['M0', 'M1', 'M2', 'M3', 'M6', 'M12'],
|
|
257
|
-
datasets: [
|
|
258
|
-
{ label: 'Когорта Янв', data: [100, 42, 31, 26, 20, 16],
|
|
259
|
-
borderColor: '#e94560', fill: false, tension: 0.3 },
|
|
260
|
-
{ label: 'Когорта Мар', data: [100, 55, 44, 38, null, null],
|
|
261
|
-
borderColor: '#2ecc71', fill: false, tension: 0.3 }
|
|
262
|
-
]
|
|
263
|
-
},
|
|
264
|
-
options: {
|
|
265
|
-
animation: false, responsive: true,
|
|
266
|
-
scales: { y: { beginAtZero: true, max: 100, title: { display: true, text: 'Retention %' } } }
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
|
|
270
|
-
// ========== SCATTER (позиционирование 2D) ==========
|
|
271
|
-
new Chart(document.getElementById('chart-positioning'), {
|
|
272
|
-
type: 'scatter',
|
|
273
|
-
data: {
|
|
274
|
-
datasets: [
|
|
275
|
-
{ label: 'Конкурент A', data: [{ x: 8, y: 7 }], pointRadius: 10,
|
|
276
|
-
backgroundColor: '#e74c3c' },
|
|
277
|
-
{ label: 'Наш продукт', data: [{ x: 5, y: 6 }], pointRadius: 12,
|
|
278
|
-
backgroundColor: '#2ecc71', pointStyle: 'star' }
|
|
279
|
-
]
|
|
280
|
-
},
|
|
281
|
-
options: {
|
|
282
|
-
animation: false, responsive: true,
|
|
283
|
-
scales: {
|
|
284
|
-
x: { min: 0, max: 10, title: { display: true, text: 'Функционал' } },
|
|
285
|
-
y: { min: 0, max: 10, title: { display: true, text: 'Цена' } }
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
```
|
|
101
|
+
> 📦 <!--SPLIT-POINTER--> Полный блок — в `$html-pdf-report-reference` (§ Шаг 3 — Chart.js).
|
|
290
102
|
|
|
291
103
|
### Шаг 4 — Mermaid
|
|
292
104
|
|
|
@@ -296,51 +108,7 @@ mermaid.initialize({ startOnLoad: true, theme: 'neutral', securityLevel: 'loose'
|
|
|
296
108
|
|
|
297
109
|
**Диаграммы по типам:**
|
|
298
110
|
|
|
299
|
-
|
|
300
|
-
<!-- ========== FLOWCHART (процессы, пайплайны) ========== -->
|
|
301
|
-
<div class="mermaid">
|
|
302
|
-
flowchart TD
|
|
303
|
-
A[Awareness] --> B[Consideration]
|
|
304
|
-
B --> C[Decision]
|
|
305
|
-
C --> D[Purchase]
|
|
306
|
-
D --> E[Retention]
|
|
307
|
-
E --> F[Advocacy]
|
|
308
|
-
E -.->|churn| G[Exit]
|
|
309
|
-
style G fill:#fce4ec,stroke:#e74c3c
|
|
310
|
-
</div>
|
|
311
|
-
|
|
312
|
-
<!-- ========== MINDMAP (структура, иерархия) ========== -->
|
|
313
|
-
<div class="mermaid">
|
|
314
|
-
mindmap
|
|
315
|
-
root((Стратегия роста))
|
|
316
|
-
Проникновение
|
|
317
|
-
Upsell
|
|
318
|
-
Cross-sell
|
|
319
|
-
Развитие рынка
|
|
320
|
-
СНГ
|
|
321
|
-
Enterprise
|
|
322
|
-
Развитие продукта
|
|
323
|
-
AI-модуль
|
|
324
|
-
Mobile app
|
|
325
|
-
Диверсификация
|
|
326
|
-
White-label
|
|
327
|
-
</div>
|
|
328
|
-
|
|
329
|
-
<!-- ========== QUADRANT CHART (матрицы 2x2) ========== -->
|
|
330
|
-
<div class="mermaid">
|
|
331
|
-
quadrantChart
|
|
332
|
-
title Impact vs Effort
|
|
333
|
-
x-axis Low Effort --> High Effort
|
|
334
|
-
y-axis Low Impact --> High Impact
|
|
335
|
-
quadrant-1 Big Bets
|
|
336
|
-
quadrant-2 Quick Wins
|
|
337
|
-
quadrant-3 Fill-ins
|
|
338
|
-
quadrant-4 Avoid
|
|
339
|
-
Action A: [0.3, 0.8]
|
|
340
|
-
Action B: [0.7, 0.9]
|
|
341
|
-
Action C: [0.2, 0.3]
|
|
342
|
-
</div>
|
|
343
|
-
```
|
|
111
|
+
> 📦 <!--SPLIT-POINTER--> Полный блок — в `$html-pdf-report-reference` (§ Шаг 4 — Mermaid).
|
|
344
112
|
|
|
345
113
|
> Каждая Mermaid-диаграмма оборачивается в `<figure>` с `<figcaption>` и `page-break-inside: avoid`.
|
|
346
114
|
|
|
@@ -452,43 +220,7 @@ quadrantChart
|
|
|
452
220
|
|
|
453
221
|
## Пример — Секция Executive Summary
|
|
454
222
|
|
|
455
|
-
|
|
456
|
-
<section class="executive-summary" id="executive-summary">
|
|
457
|
-
<h2>Executive Summary</h2>
|
|
458
|
-
|
|
459
|
-
<div class="pull-quote">
|
|
460
|
-
«AI-powered 1:1 summarization решает 45-60 мин/week admin overhead для 5,000+
|
|
461
|
-
managers в TeamFlow base. Projected +$2.4M ARR expansion за 12 мес, NRR +4pp.»
|
|
462
|
-
</div>
|
|
463
|
-
|
|
464
|
-
<h3>Ключевые выводы</h3>
|
|
465
|
-
<div class="callout callout-success">
|
|
466
|
-
<div class="callout-title">✅ Главный инсайт</div>
|
|
467
|
-
<p>Mid-market и enterprise customers готовы платить $8-12/seat premium за AI summarization.
|
|
468
|
-
6 of 8 buyer interviews подтверждают value, 4/4 enterprise accounts ready для beta.</p>
|
|
469
|
-
</div>
|
|
470
|
-
|
|
471
|
-
<table class="data-table">
|
|
472
|
-
<caption>Сводка по ключевым метрикам</caption>
|
|
473
|
-
<thead>
|
|
474
|
-
<tr><th scope="col">Метрика</th><th scope="col">Значение</th><th scope="col">Бенчмарк</th><th scope="col">Оценка</th></tr>
|
|
475
|
-
</thead>
|
|
476
|
-
<tbody>
|
|
477
|
-
<tr><td>TAM</td><td>$4.2B</td><td>—</td>
|
|
478
|
-
<td><span class="score-badge score-high">Крупный</span></td></tr>
|
|
479
|
-
<tr><td>SOM (Year 1)</td><td>$180M</td><td>—</td>
|
|
480
|
-
<td><span class="score-badge score-mid">Средний</span></td></tr>
|
|
481
|
-
<tr><td>Главная угроза</td><td>Яндекс Практикум</td><td>Score 7.6</td>
|
|
482
|
-
<td><span class="score-badge score-low">High</span></td></tr>
|
|
483
|
-
</tbody>
|
|
484
|
-
</table>
|
|
485
|
-
|
|
486
|
-
<figure class="chart-container" role="img" aria-label="Threat Score: Skillbox 7.2, Нетология 6.8, Яндекс 7.6, GeekBrains 4.1, Skyeng 5.3">
|
|
487
|
-
<canvas id="chart-exec-threats"></canvas>
|
|
488
|
-
<figcaption>Рис. 1 — Threat Score ключевых конкурентов</figcaption>
|
|
489
|
-
</figure>
|
|
490
|
-
</section>
|
|
491
|
-
```
|
|
223
|
+
> 📦 <!--SPLIT-POINTER--> Полный блок — в `$html-pdf-report-reference` (§ Пример — Секция Executive Summary).
|
|
492
224
|
|
|
493
225
|
## Валидация (Quality Gate)
|
|
494
226
|
|
|
@@ -563,377 +295,3 @@ quadrantChart
|
|
|
563
295
|
### Инструкция для PDF
|
|
564
296
|
Chrome/Edge → Ctrl+P → Save as PDF → Portrait → A4 → Default margins → **Background graphics: ON** → Save
|
|
565
297
|
```
|
|
566
|
-
|
|
567
|
-
## Worked Example — TeamFlow Product Review Deck (HTML skeleton)
|
|
568
|
-
|
|
569
|
-
**Контекст:** Full Pipeline A `/ship-right-thing` завершён. Дизайнер подготовил design spec (см. `$report-design`). Верстальщик конвертирует в production HTML/PDF — Product Review Deck для exec sign-off.
|
|
570
|
-
|
|
571
|
-
### Целевая структура
|
|
572
|
-
|
|
573
|
-
- 12 страниц в стиле слайдов (каждая отделена `page-break`)
|
|
574
|
-
- Cover → TL;DR → Проблема → Стратегия → PRD highlights → Метрики → Риски → Роллаут → Приложения
|
|
575
|
-
- Executive-стиль: плотный, но читаемый, без декоративных элементов, данные на первом плане
|
|
576
|
-
- Целевой размер PDF < 5MB для рассылки по email
|
|
577
|
-
|
|
578
|
-
### Self-contained HTML Skeleton
|
|
579
|
-
|
|
580
|
-
```html
|
|
581
|
-
<!DOCTYPE html>
|
|
582
|
-
<html lang="en">
|
|
583
|
-
<head>
|
|
584
|
-
<meta charset="UTF-8">
|
|
585
|
-
<title>TeamFlow AI Summarization — Product Review Deck · Q2 2026</title>
|
|
586
|
-
<meta name="description" content="Product Review Deck for executive sign-off: AI-powered 1:1 summarization initiative">
|
|
587
|
-
<style>
|
|
588
|
-
/* ============ CSS Tokens ============ */
|
|
589
|
-
:root {
|
|
590
|
-
--color-primary: #0A2540; /* TeamFlow deep blue */
|
|
591
|
-
--color-accent: #F2A900; /* TeamFlow amber */
|
|
592
|
-
--color-text: #1A1A1A;
|
|
593
|
-
--color-text-muted: #6B6B6B;
|
|
594
|
-
--color-bg: #FFFFFF;
|
|
595
|
-
--color-bg-alt: #F7F9FB;
|
|
596
|
-
--color-success: #22A06B;
|
|
597
|
-
--color-warning: #E67E22;
|
|
598
|
-
--color-danger: #C0392B;
|
|
599
|
-
--color-border: #E1E4E8;
|
|
600
|
-
--font-body: 'Inter', -apple-system, sans-serif;
|
|
601
|
-
--font-serif: 'Source Serif Pro', Georgia, serif;
|
|
602
|
-
--space-1: 4px; --space-2: 8px; --space-3: 16px;
|
|
603
|
-
--space-4: 24px; --space-5: 32px; --space-6: 48px;
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
/* ============ Reset + Base ============ */
|
|
607
|
-
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
608
|
-
body {
|
|
609
|
-
font-family: var(--font-body);
|
|
610
|
-
color: var(--color-text);
|
|
611
|
-
font-size: 14px;
|
|
612
|
-
line-height: 1.5;
|
|
613
|
-
background: var(--color-bg);
|
|
614
|
-
}
|
|
615
|
-
|
|
616
|
-
/* ============ Page Structure (print-ready) ============ */
|
|
617
|
-
@page {
|
|
618
|
-
size: A4 portrait;
|
|
619
|
-
margin: 2cm 1.8cm;
|
|
620
|
-
}
|
|
621
|
-
.page {
|
|
622
|
-
page-break-after: always;
|
|
623
|
-
min-height: 24cm;
|
|
624
|
-
padding: 2cm 1.5cm;
|
|
625
|
-
position: relative;
|
|
626
|
-
}
|
|
627
|
-
.page:last-child { page-break-after: auto; }
|
|
628
|
-
.page-footer {
|
|
629
|
-
position: absolute;
|
|
630
|
-
bottom: 0.8cm;
|
|
631
|
-
left: 1.5cm;
|
|
632
|
-
right: 1.5cm;
|
|
633
|
-
font-size: 10px;
|
|
634
|
-
color: var(--color-text-muted);
|
|
635
|
-
border-top: 1px solid var(--color-border);
|
|
636
|
-
padding-top: 8px;
|
|
637
|
-
display: flex;
|
|
638
|
-
justify-content: space-between;
|
|
639
|
-
}
|
|
640
|
-
@media screen { .page { border-bottom: 2px dashed var(--color-border); margin-bottom: 2cm; } }
|
|
641
|
-
|
|
642
|
-
/* ============ Typography ============ */
|
|
643
|
-
h1 { font-size: 32px; font-weight: 700; color: var(--color-primary); letter-spacing: -0.5px; margin-bottom: var(--space-4); }
|
|
644
|
-
h2 { font-size: 22px; font-weight: 600; color: var(--color-primary); margin: var(--space-5) 0 var(--space-3); }
|
|
645
|
-
h3 { font-size: 16px; font-weight: 600; color: var(--color-text); margin: var(--space-3) 0 var(--space-2); }
|
|
646
|
-
p { margin-bottom: var(--space-2); }
|
|
647
|
-
.lead { font-size: 16px; line-height: 1.6; color: var(--color-text); }
|
|
648
|
-
.pull-quote {
|
|
649
|
-
font-family: var(--font-serif);
|
|
650
|
-
font-size: 20px; line-height: 1.4;
|
|
651
|
-
color: var(--color-primary);
|
|
652
|
-
border-left: 3px solid var(--color-accent);
|
|
653
|
-
padding: var(--space-3) var(--space-4);
|
|
654
|
-
margin: var(--space-4) 0;
|
|
655
|
-
background: var(--color-bg-alt);
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
/* ============ Components ============ */
|
|
659
|
-
.meta-bar {
|
|
660
|
-
display: flex;
|
|
661
|
-
justify-content: space-between;
|
|
662
|
-
border-top: 3px solid var(--color-accent);
|
|
663
|
-
border-bottom: 1px solid var(--color-border);
|
|
664
|
-
padding: var(--space-3) 0;
|
|
665
|
-
font-size: 12px;
|
|
666
|
-
color: var(--color-text-muted);
|
|
667
|
-
margin-bottom: var(--space-5);
|
|
668
|
-
}
|
|
669
|
-
.callout {
|
|
670
|
-
border-left: 4px solid var(--color-accent);
|
|
671
|
-
padding: var(--space-3);
|
|
672
|
-
background: var(--color-bg-alt);
|
|
673
|
-
margin: var(--space-3) 0;
|
|
674
|
-
}
|
|
675
|
-
.callout-title {
|
|
676
|
-
font-weight: 600;
|
|
677
|
-
color: var(--color-primary);
|
|
678
|
-
margin-bottom: var(--space-1);
|
|
679
|
-
}
|
|
680
|
-
.callout-success { border-left-color: var(--color-success); }
|
|
681
|
-
.callout-warning { border-left-color: var(--color-warning); }
|
|
682
|
-
.callout-danger { border-left-color: var(--color-danger); }
|
|
683
|
-
|
|
684
|
-
table {
|
|
685
|
-
width: 100%;
|
|
686
|
-
border-collapse: collapse;
|
|
687
|
-
margin: var(--space-3) 0;
|
|
688
|
-
font-size: 12px;
|
|
689
|
-
}
|
|
690
|
-
th, td {
|
|
691
|
-
padding: var(--space-2) var(--space-3);
|
|
692
|
-
text-align: left;
|
|
693
|
-
border-bottom: 1px solid var(--color-border);
|
|
694
|
-
}
|
|
695
|
-
th {
|
|
696
|
-
font-weight: 600;
|
|
697
|
-
background: var(--color-bg-alt);
|
|
698
|
-
color: var(--color-primary);
|
|
699
|
-
}
|
|
700
|
-
tr:hover { background: var(--color-bg-alt); }
|
|
701
|
-
.metric-positive { color: var(--color-success); font-weight: 600; }
|
|
702
|
-
.metric-negative { color: var(--color-danger); font-weight: 600; }
|
|
703
|
-
.metric-neutral { color: var(--color-text-muted); }
|
|
704
|
-
|
|
705
|
-
.status-badge {
|
|
706
|
-
display: inline-block;
|
|
707
|
-
padding: 2px 8px;
|
|
708
|
-
font-size: 10px;
|
|
709
|
-
font-weight: 600;
|
|
710
|
-
border-radius: 3px;
|
|
711
|
-
text-transform: uppercase;
|
|
712
|
-
}
|
|
713
|
-
.status-green { background: var(--color-success); color: white; }
|
|
714
|
-
.status-amber { background: var(--color-warning); color: white; }
|
|
715
|
-
.status-red { background: var(--color-danger); color: white; }
|
|
716
|
-
|
|
717
|
-
/* Grid layouts */
|
|
718
|
-
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
|
|
719
|
-
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--space-3); }
|
|
720
|
-
.kpi-card {
|
|
721
|
-
padding: var(--space-4);
|
|
722
|
-
background: var(--color-bg-alt);
|
|
723
|
-
border: 1px solid var(--color-border);
|
|
724
|
-
border-left: 3px solid var(--color-accent);
|
|
725
|
-
}
|
|
726
|
-
.kpi-value {
|
|
727
|
-
font-size: 32px; font-weight: 700;
|
|
728
|
-
color: var(--color-primary);
|
|
729
|
-
margin-bottom: var(--space-1);
|
|
730
|
-
}
|
|
731
|
-
.kpi-label {
|
|
732
|
-
font-size: 11px;
|
|
733
|
-
color: var(--color-text-muted);
|
|
734
|
-
text-transform: uppercase;
|
|
735
|
-
letter-spacing: 0.5px;
|
|
736
|
-
}
|
|
737
|
-
|
|
738
|
-
/* Roadmap columns */
|
|
739
|
-
.roadmap {
|
|
740
|
-
display: grid;
|
|
741
|
-
grid-template-columns: 1fr 1fr 1fr;
|
|
742
|
-
gap: var(--space-3);
|
|
743
|
-
margin: var(--space-4) 0;
|
|
744
|
-
}
|
|
745
|
-
.roadmap-column {
|
|
746
|
-
padding: var(--space-3);
|
|
747
|
-
background: var(--color-bg-alt);
|
|
748
|
-
border-top: 3px solid var(--color-accent);
|
|
749
|
-
}
|
|
750
|
-
.roadmap-column h4 {
|
|
751
|
-
font-size: 13px;
|
|
752
|
-
font-weight: 700;
|
|
753
|
-
text-transform: uppercase;
|
|
754
|
-
color: var(--color-primary);
|
|
755
|
-
margin-bottom: var(--space-2);
|
|
756
|
-
}
|
|
757
|
-
.roadmap-column ul { list-style: none; padding-left: 0; }
|
|
758
|
-
.roadmap-column li { padding: 6px 0; border-bottom: 1px solid var(--color-border); font-size: 12px; }
|
|
759
|
-
|
|
760
|
-
/* ============ Print Optimizations ============ */
|
|
761
|
-
@media print {
|
|
762
|
-
body { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
|
|
763
|
-
.page { page-break-after: always; }
|
|
764
|
-
table { page-break-inside: avoid; }
|
|
765
|
-
.callout { page-break-inside: avoid; }
|
|
766
|
-
h2, h3 { page-break-after: avoid; }
|
|
767
|
-
}
|
|
768
|
-
</style>
|
|
769
|
-
</head>
|
|
770
|
-
<body>
|
|
771
|
-
|
|
772
|
-
<!-- PAGE 1: COVER -->
|
|
773
|
-
<section class="page" id="cover">
|
|
774
|
-
<div style="margin-top: 8cm; text-align: center;">
|
|
775
|
-
<p style="font-size: 13px; color: var(--color-text-muted); letter-spacing: 2px;">PRODUCT REVIEW DECK · CONFIDENTIAL</p>
|
|
776
|
-
<h1 style="font-size: 42px; margin-top: var(--space-4);">AI 1:1 Summarization</h1>
|
|
777
|
-
<p class="lead" style="margin-top: var(--space-3); color: var(--color-text-muted);">
|
|
778
|
-
TeamFlow Q2 2026 Launch Proposal · Executive Sign-Off
|
|
779
|
-
</p>
|
|
780
|
-
<div style="margin-top: 4cm;">
|
|
781
|
-
<p style="font-size: 12px; color: var(--color-text-muted);">Prepared by Product Team · April 17, 2026</p>
|
|
782
|
-
<p style="font-size: 12px; color: var(--color-text-muted);">Alex K., Product · Priya S., Engineering · Jordan M., Design · Sam P., Data</p>
|
|
783
|
-
</div>
|
|
784
|
-
</div>
|
|
785
|
-
</section>
|
|
786
|
-
|
|
787
|
-
<!-- PAGE 2: TL;DR / EXECUTIVE SUMMARY -->
|
|
788
|
-
<section class="page" id="summary">
|
|
789
|
-
<div class="meta-bar">
|
|
790
|
-
<span>TeamFlow AI Summarization</span>
|
|
791
|
-
<span>Page 2 · Executive Summary</span>
|
|
792
|
-
</div>
|
|
793
|
-
<h1>Executive Summary</h1>
|
|
794
|
-
<div class="pull-quote">
|
|
795
|
-
«AI-powered 1:1 summarization решает 45-60 мин/week admin overhead для 3,000+ managers в TeamFlow base. Projected +$2.4M ARR expansion за 12 мес, NRR +4pp.»
|
|
796
|
-
</div>
|
|
797
|
-
<div class="grid-3" style="margin: var(--space-5) 0;">
|
|
798
|
-
<div class="kpi-card">
|
|
799
|
-
<div class="kpi-value">40</div>
|
|
800
|
-
<div class="kpi-label">Target Team Tier Upgrades (Q2)</div>
|
|
801
|
-
</div>
|
|
802
|
-
<div class="kpi-card">
|
|
803
|
-
<div class="kpi-value">+$8</div>
|
|
804
|
-
<div class="kpi-label">Per-Seat Premium (Team Tier)</div>
|
|
805
|
-
</div>
|
|
806
|
-
<div class="kpi-card">
|
|
807
|
-
<div class="kpi-value">3 hrs</div>
|
|
808
|
-
<div class="kpi-label">Weekly Manager Time Saved</div>
|
|
809
|
-
</div>
|
|
810
|
-
</div>
|
|
811
|
-
<h2>What we're proposing</h2>
|
|
812
|
-
<p class="lead">Launch AI Summarization as flagship feature of new Team Tier ($23/seat/month). Core capability: generate structured summary + action items within 60 seconds of 1:1 meeting end. Privacy-first architecture — opt-in per meeting, zero data retention с LLM providers, SOC 2 Type II attestation.</p>
|
|
813
|
-
<h2>Why now</h2>
|
|
814
|
-
<p class="lead">Mid-market и enterprise customers face growing manager efficiency crisis — 3-4 hrs/week admin burden is #2 churn risk factor per exit interviews. Competitors (Lattice, 15Five) haven't shipped AI summarization — 6-12 month first-mover window exists. Our 3-year behavioral data corpus enables superior quality vs standalone tools.</p>
|
|
815
|
-
<div class="callout callout-success">
|
|
816
|
-
<div class="callout-title">Expected Outcome</div>
|
|
817
|
-
<p>Mid-market base ($5M ARR) → +30% NRR lift over 12 months via Team Tier upgrades. Enterprise tier foundation enables $2-3M ARR expansion opportunity через Q3.</p>
|
|
818
|
-
</div>
|
|
819
|
-
<div class="page-footer">
|
|
820
|
-
<span>TeamFlow AI Summarization · Product Review · April 17, 2026</span>
|
|
821
|
-
<span>2 / 12</span>
|
|
822
|
-
</div>
|
|
823
|
-
</section>
|
|
824
|
-
|
|
825
|
-
<!-- PAGE 3: PROBLEM -->
|
|
826
|
-
<section class="page" id="problem">
|
|
827
|
-
<div class="meta-bar">
|
|
828
|
-
<span>TeamFlow AI Summarization</span>
|
|
829
|
-
<span>Page 3 · The Problem</span>
|
|
830
|
-
</div>
|
|
831
|
-
<h1>The Problem</h1>
|
|
832
|
-
<p class="lead">People managers managing 5-15 direct reports at mid-market B2B SaaS companies experience severe admin overhead in 1:1 workflow. This manifests across three dimensions:</p>
|
|
833
|
-
|
|
834
|
-
<div class="grid-3" style="margin: var(--space-4) 0;">
|
|
835
|
-
<div class="kpi-card">
|
|
836
|
-
<div class="kpi-value" style="color: var(--color-danger);">3-4 hrs</div>
|
|
837
|
-
<div class="kpi-label">Manager admin time / week on 1:1s (8 reports avg)</div>
|
|
838
|
-
</div>
|
|
839
|
-
<div class="kpi-card">
|
|
840
|
-
<div class="kpi-value" style="color: var(--color-danger);">40%</div>
|
|
841
|
-
<div class="kpi-label">Action items dropped / never completed</div>
|
|
842
|
-
</div>
|
|
843
|
-
<div class="kpi-card">
|
|
844
|
-
<div class="kpi-value" style="color: var(--color-danger);">0%</div>
|
|
845
|
-
<div class="kpi-label">VP HR visibility into manager 1:1 quality</div>
|
|
846
|
-
</div>
|
|
847
|
-
</div>
|
|
848
|
-
|
|
849
|
-
<h2>Evidence from Discovery</h2>
|
|
850
|
-
<p>8 customer interviews (4 buyers VP HR, 4 end-user managers) + 120 support tickets Q1 2026 + internal product analytics. Direct quotes:</p>
|
|
851
|
-
|
|
852
|
-
<div class="callout">
|
|
853
|
-
<p><em>«25 минут prep каждую неделю на каждого из 8 reports. Итого ~3 часа в неделю.»</em></p>
|
|
854
|
-
<p style="text-align: right; font-size: 11px; margin-top: 8px; color: var(--color-text-muted);">— Interview E3 (Engineering Manager, mid-market)</p>
|
|
855
|
-
</div>
|
|
856
|
-
<div class="callout">
|
|
857
|
-
<p><em>«Some managers run amazing 1:1s, others literally cancel them. I have no visibility, no levers.»</em></p>
|
|
858
|
-
<p style="text-align: right; font-size: 11px; margin-top: 8px; color: var(--color-text-muted);">— Interview B2 (VP HR, 450-employee B2B SaaS)</p>
|
|
859
|
-
</div>
|
|
860
|
-
|
|
861
|
-
<div class="page-footer">
|
|
862
|
-
<span>TeamFlow AI Summarization · Product Review · April 17, 2026</span>
|
|
863
|
-
<span>3 / 12</span>
|
|
864
|
-
</div>
|
|
865
|
-
</section>
|
|
866
|
-
|
|
867
|
-
<!-- PAGES 4-12: abbreviated ... full deck continues with Strategy / PRD / Metrics / Risks / Rollout / Appendix -->
|
|
868
|
-
|
|
869
|
-
<!-- PAGE 12: APPENDIX — Roadmap -->
|
|
870
|
-
<section class="page" id="roadmap">
|
|
871
|
-
<div class="meta-bar">
|
|
872
|
-
<span>TeamFlow AI Summarization</span>
|
|
873
|
-
<span>Page 12 · Roadmap</span>
|
|
874
|
-
</div>
|
|
875
|
-
<h1>Product Roadmap — Now / Next / Later</h1>
|
|
876
|
-
<div class="roadmap">
|
|
877
|
-
<div class="roadmap-column">
|
|
878
|
-
<h4>Now (Q2 2026)</h4>
|
|
879
|
-
<ul>
|
|
880
|
-
<li>✨ AI Summarization Core (Team Tier)</li>
|
|
881
|
-
<li>✨ Auto Action Items Extraction</li>
|
|
882
|
-
<li>✨ Action Items Reminders</li>
|
|
883
|
-
<li>🔐 SOC 2 Type II (AI features)</li>
|
|
884
|
-
<li>🔐 SSO SAML + SCIM</li>
|
|
885
|
-
</ul>
|
|
886
|
-
</div>
|
|
887
|
-
<div class="roadmap-column">
|
|
888
|
-
<h4>Next (Q3 2026)</h4>
|
|
889
|
-
<ul>
|
|
890
|
-
<li>📊 Aggregate Dashboard (Enterprise)</li>
|
|
891
|
-
<li>⏱️ Real-time Transcription</li>
|
|
892
|
-
<li>🎯 Manager Health Score</li>
|
|
893
|
-
<li>🔗 Zoom / Meet Import</li>
|
|
894
|
-
</ul>
|
|
895
|
-
</div>
|
|
896
|
-
<div class="roadmap-column">
|
|
897
|
-
<h4>Later (Q4+)</h4>
|
|
898
|
-
<ul>
|
|
899
|
-
<li>🌍 Multi-language Support</li>
|
|
900
|
-
<li>📱 Native Mobile App</li>
|
|
901
|
-
<li>🔍 AI Coaching Insights</li>
|
|
902
|
-
<li>📈 Predictive Attrition Model</li>
|
|
903
|
-
</ul>
|
|
904
|
-
</div>
|
|
905
|
-
</div>
|
|
906
|
-
<div class="page-footer">
|
|
907
|
-
<span>TeamFlow AI Summarization · Product Review · April 17, 2026</span>
|
|
908
|
-
<span>12 / 12</span>
|
|
909
|
-
</div>
|
|
910
|
-
</section>
|
|
911
|
-
|
|
912
|
-
</body>
|
|
913
|
-
</html>
|
|
914
|
-
```
|
|
915
|
-
|
|
916
|
-
### Проверки качества пройдены
|
|
917
|
-
- [x] Self-contained (единый HTML-файл, весь CSS встроен)
|
|
918
|
-
- [x] Отсутствие битых ссылок
|
|
919
|
-
- [x] Print-ready (директивы @page, @media print)
|
|
920
|
-
- [x] Page breaks между секциями
|
|
921
|
-
- [x] Executive-плотность без перегруза
|
|
922
|
-
- [x] Цвета соответствуют бренду TeamFlow (тёмно-синий + янтарный)
|
|
923
|
-
- [x] Доступность (семантический HTML, alt text на изображениях при наличии)
|
|
924
|
-
- [x] Оценочный размер файла < 2MB (без встроенных изображений; с логотипами/графиками возможен рост до 3-4MB)
|
|
925
|
-
|
|
926
|
-
### PDF Generation
|
|
927
|
-
|
|
928
|
-
```bash
|
|
929
|
-
# Via puppeteer (preferred, automation-friendly)
|
|
930
|
-
puppeteer-pdf product-review-deck.html --format=A4 --margin-top=2cm --print-background
|
|
931
|
-
|
|
932
|
-
# Via WeasyPrint
|
|
933
|
-
weasyprint product-review-deck.html product-review-deck.pdf
|
|
934
|
-
|
|
935
|
-
# Manual via Chrome
|
|
936
|
-
open product-review-deck.html; Ctrl+P; Save as PDF; Background graphics ON
|
|
937
|
-
```
|
|
938
|
-
|
|
939
|
-
> **Урок html-pdf-report:** Self-contained = единый HTML + inline CSS. Component tokens (CSS variables) обеспечивают единообразие и лёгкую смену палитры. Правила @page + @media print критичны для PDF-вывода. KPI-карточки с одним крупным числом + маленьким ярлыком — паттерн чтения, оптимизированный для exec-сканирования. Callouts (цветная левая граница) > inline-цитаты для визуальной иерархии. Page footers с номерами страниц + заголовком помогают читателю ориентироваться в печатном PDF.
|