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,476 +1,491 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: user-flow
|
|
3
|
-
description: Документация пользовательских флоу — шаги, decision points, happy path + error states
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
|
36
|
-
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
-
|
|
191
|
-
-
|
|
192
|
-
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
##
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
##
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
##
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
###
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
→ (
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
→
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
→
|
|
321
|
-
→ (
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
→ {
|
|
325
|
-
→ (
|
|
326
|
-
→
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
→
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
IF
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
-
|
|
408
|
-
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
-
|
|
412
|
-
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
-
|
|
419
|
-
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
-
|
|
423
|
-
-
|
|
424
|
-
|
|
425
|
-
###
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
1
|
+
---
|
|
2
|
+
name: user-flow
|
|
3
|
+
description: Документация пользовательских флоу — шаги, decision points, happy path + error states
|
|
4
|
+
type: triggered
|
|
5
|
+
domain: product
|
|
6
|
+
owners:
|
|
7
|
+
- ux_designer
|
|
8
|
+
gates:
|
|
9
|
+
- UX_DESIGNER
|
|
10
|
+
tech: []
|
|
11
|
+
topic: []
|
|
12
|
+
triggers:
|
|
13
|
+
- "user-flow"
|
|
14
|
+
- "user flow"
|
|
15
|
+
- "пользовательский сценарий"
|
|
16
|
+
related: []
|
|
17
|
+
budget_lines: 491
|
|
18
|
+
schema_version: 1
|
|
19
|
+
---
|
|
20
|
+
# User Flow
|
|
21
|
+
|
|
22
|
+
> **Категория:** UX · **Slug:** `user-flow`
|
|
23
|
+
|
|
24
|
+
## Когда использовать
|
|
25
|
+
|
|
26
|
+
- Для каждого non-trivial multi-step flow в PRD.
|
|
27
|
+
- Перед дизайном — flows align команду на happy path + edges.
|
|
28
|
+
- В specification — flows маппятся на user stories.
|
|
29
|
+
- Для onboarding / activation анализа — identify drop-off points.
|
|
30
|
+
|
|
31
|
+
## Вход
|
|
32
|
+
|
|
33
|
+
| Поле | Обязательно | Описание |
|
|
34
|
+
|------|:-----------:|----------|
|
|
35
|
+
| User story / PRD | ✅ | Что flow должен реализовать |
|
|
36
|
+
| User persona | ✅ | Для кого |
|
|
37
|
+
| Entry points | ✅ | Откуда пользователь попадает в flow |
|
|
38
|
+
| Exit points | ✅ | Успех vs отказ vs ошибки |
|
|
39
|
+
| Существующий flow (при изменении) | ⬚ | Ссылка на текущее состояние |
|
|
40
|
+
|
|
41
|
+
## Источники данных
|
|
42
|
+
|
|
43
|
+
1. User interviews — как делают сейчас.
|
|
44
|
+
2. Product analytics — данные drop-off для существующих flows.
|
|
45
|
+
3. Support tickets — точки боли.
|
|
46
|
+
4. Flows конкурентов — базовые ожидания.
|
|
47
|
+
|
|
48
|
+
### Связь с другими скилами
|
|
49
|
+
|
|
50
|
+
| Скил | Что берём | Когда вызывать |
|
|
51
|
+
|------|-----------|----------------|
|
|
52
|
+
| `user-story` | Stories → flow segments | Parent concept |
|
|
53
|
+
| `acceptance-criteria` | AC — edge / error cases in flow | После flow |
|
|
54
|
+
| `design-brief` | Flow input для design | Перед brief |
|
|
55
|
+
| `jtbd-canvas` | Job context для flow trigger | Для understanding entry |
|
|
56
|
+
|
|
57
|
+
## Типы Flows
|
|
58
|
+
|
|
59
|
+
1. **Task flow** — линейный путь (создание аккаунта, отправка формы)
|
|
60
|
+
2. **Decision flow** — разветвлённый (онбординг в зависимости от роли)
|
|
61
|
+
3. **Error flow** — что происходит при ошибках
|
|
62
|
+
4. **Recovery flow** — как пользователь возвращается на путь
|
|
63
|
+
|
|
64
|
+
## Структура User Flow Doc
|
|
65
|
+
|
|
66
|
+
1. **Название и назначение flow**
|
|
67
|
+
2. **Actors** — кто использует этот flow
|
|
68
|
+
3. **Preconditions** — состояние, необходимое для входа
|
|
69
|
+
4. **Entry points** — откуда прибывает пользователь
|
|
70
|
+
5. **Happy path** — шаг за шагом
|
|
71
|
+
6. **Decision points** — ветвление
|
|
72
|
+
7. **Error states** — каждый режим отказа
|
|
73
|
+
8. **Exit points** — успех, отказ, ошибка
|
|
74
|
+
9. **Metrics** — что будем измерять
|
|
75
|
+
|
|
76
|
+
## Протокол
|
|
77
|
+
|
|
78
|
+
### Шаг 0 — Определение границ
|
|
79
|
+
|
|
80
|
+
- Вход: откуда user flow начинается (signup CTA, клик по навигации, ссылка из email)
|
|
81
|
+
- Выход: где заканчивается (состояние успеха, ошибка, abandonment)
|
|
82
|
+
- Preconditions: состояние авторизации, разрешения, состояние данных
|
|
83
|
+
|
|
84
|
+
### Шаг 1 — Happy Path (последовательные шаги)
|
|
85
|
+
|
|
86
|
+
Линейная последовательность от входа до успешного выхода. Шаги — видимые пользователю действия + ответы системы.
|
|
87
|
+
|
|
88
|
+
Нотация:
|
|
89
|
+
- **→** последовательный шаг
|
|
90
|
+
- **[Действие]** действие пользователя
|
|
91
|
+
- **(Система)** ответ системы
|
|
92
|
+
- **{Данные}** изменение состояния
|
|
93
|
+
|
|
94
|
+
Пример:
|
|
95
|
+
```
|
|
96
|
+
[Клик «Пригласить участника»] →
|
|
97
|
+
(Открывается модальное окно с полем email) →
|
|
98
|
+
[Ввести email + назначить роль] →
|
|
99
|
+
[Клик «Отправить приглашение»] →
|
|
100
|
+
{Запись приглашения создана} →
|
|
101
|
+
(Email отправлен получателю) →
|
|
102
|
+
(Success toast: «Invite sent») →
|
|
103
|
+
Выход: приглашение ожидает ответа
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Шаг 2 — Decision Points
|
|
107
|
+
|
|
108
|
+
Где flow ветвится в зависимости от:
|
|
109
|
+
- Ввода пользователя (выбор роли, выбор плана)
|
|
110
|
+
- Состояния системы (доступность фичи, квота)
|
|
111
|
+
- Данных (существующий пользователь vs новый, разрешения)
|
|
112
|
+
|
|
113
|
+
Диаграмма: использовать операторы if/else или case:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
После [Ввод email]:
|
|
117
|
+
IF email — существующий пользователь:
|
|
118
|
+
→ Шаг: флоу существующего пользователя (добавить в команду)
|
|
119
|
+
ELIF домен email заблокирован политикой:
|
|
120
|
+
→ Ошибка: «Domain not allowed by your org»
|
|
121
|
+
ELSE:
|
|
122
|
+
→ Продолжить: флоу приглашения нового пользователя
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Шаг 3 — Error States
|
|
126
|
+
|
|
127
|
+
Для каждого системного режима отказа:
|
|
128
|
+
- **Триггер** — что вызывает
|
|
129
|
+
- **Сообщение, видимое пользователю** — точный текст
|
|
130
|
+
- **Действие по восстановлению** — что пользователь может сделать
|
|
131
|
+
- **Состояние системы** — залогировано? повторяется?
|
|
132
|
+
|
|
133
|
+
Частые ошибки:
|
|
134
|
+
- Сбой сети
|
|
135
|
+
- Ошибка валидации
|
|
136
|
+
- Доступ запрещён
|
|
137
|
+
- Квота исчерпана
|
|
138
|
+
- Сторонняя интеграция недоступна
|
|
139
|
+
- Устаревшие данные / одновременное изменение
|
|
140
|
+
|
|
141
|
+
### Шаг 4 — Empty / Loading States
|
|
142
|
+
|
|
143
|
+
- **Empty state:** пользователь впервые, данных ещё нет. Что они видят?
|
|
144
|
+
- **Loading state:** что во время сетевых вызовов?
|
|
145
|
+
- **Partial state:** часть данных загружена, часть загружается?
|
|
146
|
+
|
|
147
|
+
### Шаг 5 — Exit Points
|
|
148
|
+
|
|
149
|
+
Категоризировать все выходы:
|
|
150
|
+
- **Успех:** задача выполнена
|
|
151
|
+
- **Намеренный отказ:** пользователь отменил
|
|
152
|
+
- **Неявный отказ:** пользователь ушёл без действия (таймаут сессии, закрыл вкладку)
|
|
153
|
+
- **Сбой:** жёсткая ошибка, невосстановимая
|
|
154
|
+
|
|
155
|
+
Для каждого выхода:
|
|
156
|
+
- Что происходит в системе
|
|
157
|
+
- Что чувствует пользователь
|
|
158
|
+
- Может ли он снова войти в flow?
|
|
159
|
+
|
|
160
|
+
### Шаг 6 — Metrics Instrumentation
|
|
161
|
+
|
|
162
|
+
На каждый шаг flow:
|
|
163
|
+
- **Название события** (например, `invite_modal_opened`, `invite_sent_success`)
|
|
164
|
+
- **Свойства** (роль, источник и т.д.)
|
|
165
|
+
- **Воронка конверсии** — коэффициент от начала до успеха
|
|
166
|
+
- **Drop-off на каждом шаге**
|
|
167
|
+
|
|
168
|
+
Это подаётся в AARRR + success metrics.
|
|
169
|
+
|
|
170
|
+
### Шаг 7 — Визуализация
|
|
171
|
+
|
|
172
|
+
Варианты:
|
|
173
|
+
- **ASCII-диаграмма** (для текстовых документов)
|
|
174
|
+
- **Mermaid** (GitHub рендерит inline)
|
|
175
|
+
- **Figma / Whimsical / Miro** (для презентаций)
|
|
176
|
+
|
|
177
|
+
Пример Mermaid:
|
|
178
|
+
```mermaid
|
|
179
|
+
flowchart TD
|
|
180
|
+
A[Клик Пригласить] --> B{Пользователь в системе?}
|
|
181
|
+
B -->|Да| C[Добавить в команду]
|
|
182
|
+
B -->|Нет| D[Отправить приглашение]
|
|
183
|
+
D --> E[Success toast]
|
|
184
|
+
D --> F[Ошибка: email недействителен]
|
|
185
|
+
F --> D
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Валидация (Quality Gate)
|
|
189
|
+
|
|
190
|
+
- [ ] Entry + exit points явны
|
|
191
|
+
- [ ] Preconditions перечислены
|
|
192
|
+
- [ ] Happy path шаг за шагом
|
|
193
|
+
- [ ] ≥ 2 decision points (кроме тривиально линейных)
|
|
194
|
+
- [ ] ≥ 3 error states с recovery
|
|
195
|
+
- [ ] Empty / loading states покрыты
|
|
196
|
+
- [ ] Все выходы категоризированы (success / abandon / fail)
|
|
197
|
+
- [ ] Metric events определены на каждый шаг
|
|
198
|
+
- [ ] Визуализировано (диаграмма)
|
|
199
|
+
|
|
200
|
+
## Handoff
|
|
201
|
+
|
|
202
|
+
Результат является входом для:
|
|
203
|
+
- **`design-brief`** → flow → необходимые экраны
|
|
204
|
+
- **UX Designer** → вайрфреймы на каждый шаг
|
|
205
|
+
- **Engineering** → дизайн API для каждого действия
|
|
206
|
+
- **Data Analyst** → план инструментирования
|
|
207
|
+
- **QA** → тест-сценарии для каждого flow
|
|
208
|
+
|
|
209
|
+
Формат: user flow doc (markdown + Mermaid/diagram). Через `$handoff`.
|
|
210
|
+
|
|
211
|
+
## Anti-patterns
|
|
212
|
+
|
|
213
|
+
| Ошибка | Почему плохо | Как правильно |
|
|
214
|
+
|--------|-------------|---------------|
|
|
215
|
+
| Только happy path | Production — это граничные случаи | ≥ 3 error states |
|
|
216
|
+
| Нет decision points | Линейное ≠ реальность | Явное ветвление |
|
|
217
|
+
| Нет empty state | Новые пользователи в замешательстве | Всегда покрывать empty |
|
|
218
|
+
| Нет метрик | Воронку не измерить | События на каждый шаг |
|
|
219
|
+
| Текстовые стены без диаграммы | Трудно следить | Визуализировать |
|
|
220
|
+
| Нет путей восстановления | Пользователи застревают | Каждая ошибка имеет recovery |
|
|
221
|
+
|
|
222
|
+
## Шаблон
|
|
223
|
+
|
|
224
|
+
```markdown
|
|
225
|
+
# User Flow: [Название]
|
|
226
|
+
|
|
227
|
+
## Назначение
|
|
228
|
+
[Что пользователь достигает]
|
|
229
|
+
|
|
230
|
+
## Actors
|
|
231
|
+
[Основной пользователь + любые вторичные]
|
|
232
|
+
|
|
233
|
+
## Preconditions
|
|
234
|
+
- Auth: [авторизован как X]
|
|
235
|
+
- Состояние: [необходимое состояние данных]
|
|
236
|
+
|
|
237
|
+
## Entry Points
|
|
238
|
+
1. [Источник A]
|
|
239
|
+
2. [Источник B]
|
|
240
|
+
|
|
241
|
+
## Happy Path
|
|
242
|
+
1. [Действие] → (Ответ системы)
|
|
243
|
+
2. ...
|
|
244
|
+
|
|
245
|
+
## Decision Points
|
|
246
|
+
- После шага X:
|
|
247
|
+
- IF [условие] → [ветвь A]
|
|
248
|
+
- ELSE → [ветвь B]
|
|
249
|
+
|
|
250
|
+
## Error States
|
|
251
|
+
| # | Триггер | Сообщение | Восстановление |
|
|
252
|
+
| 1 | Неверный email | «Email format invalid» | Повторный ввод |
|
|
253
|
+
|
|
254
|
+
## Empty / Loading States
|
|
255
|
+
- Empty: [состояние]
|
|
256
|
+
- Loading: [состояние]
|
|
257
|
+
|
|
258
|
+
## Exit Points
|
|
259
|
+
- Успех: [конечное состояние]
|
|
260
|
+
- Отказ: [что происходит]
|
|
261
|
+
- Сбой: [что происходит]
|
|
262
|
+
|
|
263
|
+
## Metrics
|
|
264
|
+
- Событие: `flow_started` — при входе
|
|
265
|
+
- Событие: `flow_step_X_completed` — на каждый шаг
|
|
266
|
+
- Событие: `flow_succeeded` — выход при успехе
|
|
267
|
+
- Событие: `flow_abandoned` — выход при отказе
|
|
268
|
+
- Воронка: коэффициент конверсии от начала до успеха
|
|
269
|
+
|
|
270
|
+
## Diagram
|
|
271
|
+
[Mermaid или ссылка на Figma]
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## Worked Example — TeamFlow AI-Enabled 1:1 Full Flow
|
|
275
|
+
|
|
276
|
+
```markdown
|
|
277
|
+
# User Flow: AI-Enabled 1:1 (сквозной)
|
|
278
|
+
|
|
279
|
+
## Назначение
|
|
280
|
+
Менеджер проводит 1:1 с поддержкой AI — от планирования до просмотра AI-сводки + action items.
|
|
281
|
+
Охватывает Stories S1, S2, S3, S4, S5 сквозным образом.
|
|
282
|
+
|
|
283
|
+
## Actors
|
|
284
|
+
- **Основной:** People Manager (end-user, 5-15 прямых подчинённых)
|
|
285
|
+
- **Вторичный:** Прямой подчинённый (видит запрос согласия AI, может просматривать shared summary)
|
|
286
|
+
- **Третичный:** Admin (устанавливает общеорганизационную политику, влияет на настройки по умолчанию)
|
|
287
|
+
|
|
288
|
+
## Preconditions
|
|
289
|
+
- **Auth:** Менеджер авторизован в TeamFlow, на аккаунте Team Tier
|
|
290
|
+
- **Состояние:** У менеджера запланирован предстоящий 1:1, функция AI включена на уровне организации
|
|
291
|
+
- **Данные:** Подчинённый имеет аккаунт TeamFlow + дал согласие на AI-запись (разовое на уровне организации или на каждую встречу)
|
|
292
|
+
- **Браузер:** Chrome/Edge/Safari/Firefox с поддержкой MediaRecorder API
|
|
293
|
+
|
|
294
|
+
## Entry Points
|
|
295
|
+
1. Клик на 1:1 в представлении календаря TeamFlow → страница деталей встречи
|
|
296
|
+
2. Email-напоминание «Ваша встреча 1:1 с Sarah начинается через 10 мин» → клик по ссылке
|
|
297
|
+
3. Уведомление Slack-интеграции (если включено пользователем)
|
|
298
|
+
|
|
299
|
+
## Happy Path
|
|
300
|
+
|
|
301
|
+
### До встречи (подготовка)
|
|
302
|
+
```
|
|
303
|
+
1. [Менеджер просматривает страницу 1:1 встречи]
|
|
304
|
+
→ (Страница показывает информацию о встрече + участников + предыдущую сводку)
|
|
305
|
+
|
|
306
|
+
2. [Менеджер включает "Использовать AI на этой встрече"]
|
|
307
|
+
→ {State: ai_enabled = true, сохранено в запись встречи}
|
|
308
|
+
→ (Confirmation toast: "AI создаст сводку после окончания встречи")
|
|
309
|
+
|
|
310
|
+
3. [Менеджер нажимает "Начать встречу"]
|
|
311
|
+
→ (Система запрашивает разрешение на микрофон, если не предоставлено)
|
|
312
|
+
→ (После предоставления: запись начинается + AI-транскрипция начинается)
|
|
313
|
+
→ {Event: meeting_started с ai_enabled=true}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Во время встречи
|
|
317
|
+
```
|
|
318
|
+
4. [Менеджер + подчинённый общаются в обычном режиме]
|
|
319
|
+
→ (UI показывает: индикатор записи, таймер длительности, деликатный баннер «AI слушает»)
|
|
320
|
+
→ (Транскрипция накапливается в памяти, не видна пользователю)
|
|
321
|
+
→ (Подчинённый видит те же индикаторы через свою сессию TeamFlow)
|
|
322
|
+
|
|
323
|
+
5. Необязательно: [Менеджер нажимает "приостановить AI" для чувствительной темы]
|
|
324
|
+
→ {Транскрипция приостановлена}
|
|
325
|
+
→ (UI показывает: «AI приостановлен — возобновите, когда будете готовы»)
|
|
326
|
+
→ После 30 секунд или нажатия "возобновить" → транскрипция возобновляется
|
|
327
|
+
|
|
328
|
+
6. [Менеджер добавляет ручные заметки (необязательно) в параллельную текстовую область]
|
|
329
|
+
→ {Ручные заметки сохранены отдельно от AI-транскрипта}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Завершение встречи
|
|
333
|
+
```
|
|
334
|
+
7. [Менеджер нажимает "Завершить встречу"]
|
|
335
|
+
→ {Event: meeting_ended с duration, manual_notes_length}
|
|
336
|
+
→ (Модальное окно: "AI генерирует сводку — можете закрыть или остаться и проверить")
|
|
337
|
+
|
|
338
|
+
8. [Система генерирует сводку через LLM API]
|
|
339
|
+
→ {Целевая задержка: <60s p95}
|
|
340
|
+
→ (Streaming UI: разделы заполняются по мере генерации)
|
|
341
|
+
→ {Event: ai_summary_generated, ai_provider, latency, confidence_avg}
|
|
342
|
+
|
|
343
|
+
9. [Менеджер видит интерфейс проверки сводки]
|
|
344
|
+
→ (Видимые разделы: Обсуждённые темы, Решения, Action items с индикаторами достоверности)
|
|
345
|
+
→ (Автосохранение черновика)
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Фаза проверки
|
|
349
|
+
```
|
|
350
|
+
10. [Менеджер просматривает содержимое сводки]
|
|
351
|
+
→ (Может читать, прокручивать, решить редактировать или подтвердить)
|
|
352
|
+
|
|
353
|
+
11A. [Менеджер доволен → нажимает "Подтвердить"]
|
|
354
|
+
→ (Модальное подтверждение: "Подтвердить сводку? Action items будут отслеживаться.")
|
|
355
|
+
→ [Менеджер подтверждает]
|
|
356
|
+
→ {Event: ai_summary_approved, time_to_approve}
|
|
357
|
+
→ (Сводка переходит в «Approved», action items поступают в очередь отслеживания)
|
|
358
|
+
→ (Перенаправление на просмотр истории 1:1)
|
|
359
|
+
|
|
360
|
+
11B. [Менеджер хочет правки → входит в режим редактирования]
|
|
361
|
+
→ (Inline-редактор включён для каждого раздела)
|
|
362
|
+
→ {State: editing_mode = true}
|
|
363
|
+
→ ...продолжить по сценарию редактирования
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
## Decision Points
|
|
367
|
+
|
|
368
|
+
```
|
|
369
|
+
После Шага 2 (AI toggle):
|
|
370
|
+
IF политика орг «AI disabled» → toggle недоступен, подсказка «Contact admin»
|
|
371
|
+
ELIF подчинённый не давал согласия → показать запрос согласия перед тем, как менеджер может включить
|
|
372
|
+
ELIF первый раз → показать быструю подсказку онбординга
|
|
373
|
+
|
|
374
|
+
После Шага 3 (начало встречи):
|
|
375
|
+
IF разрешение на микрофон отклонено → переключиться в режим только ручных заметок, AI отключён для встречи
|
|
376
|
+
ELIF аудиопоток прерывается в середине встречи → повтор, если второй сбой → предупредить менеджера, продолжить без AI
|
|
377
|
+
|
|
378
|
+
После Шага 8 (генерация сводки):
|
|
379
|
+
IF основной LLM-провайдер недоступен → failover на вторичный (Anthropic) — прозрачно
|
|
380
|
+
ELIF оба провайдера недоступны → показать заглушку «AI-сводка недоступна — пришлём email, когда будет готово»
|
|
381
|
+
ELIF длительность встречи <5 мин → пропустить генерацию сводки, показать сообщение «Встреча слишком короткая»
|
|
382
|
+
|
|
383
|
+
После Шага 10 (проверка):
|
|
384
|
+
IF менеджер бездействует >7 дней без действия → email-напоминание «Не забудьте проверить»
|
|
385
|
+
IF менеджер никогда не просматривает → авто-отметить черновик как "непросмотренный" через 30 дней (не авто-подтверждение)
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
## Error States
|
|
389
|
+
|
|
390
|
+
| # | Триггер | Сообщение, видимое пользователю | Действие по восстановлению | Состояние системы |
|
|
391
|
+
|---|---------|----------------------|-----------------|--------------|
|
|
392
|
+
| 1 | Разрешение на микрофон отклонено | «AI требует доступ к микрофону — нажмите здесь чтобы разрешить, или продолжите без AI» | Повторный запрос разрешения ИЛИ переключение на ручные заметки | Событие `permission_denied` залогировано |
|
|
393
|
+
| 2 | Аудиопоток прерван >30s | Баннер: «Соединение с аудио потеряно. Переподключение…» | Авто-повтор 3× с интервалом 30s; при продолжении сбоев — завершить AI-запись корректно | Событие `audio_stream_lost` |
|
|
394
|
+
| 3 | LLM-провайдер недоступен | «Сводка занимает больше обычного — мы пришлём email, когда будет готово (в течение 24ч)» | Фоновая задача повторяет; email-уведомление при успехе | Событие `ai_summary_timeout_fallback` |
|
|
395
|
+
| 4 | Оба LLM-провайдера недоступны | «AI-сводка временно недоступна. Ваши ручные заметки сохранены.» | Email в течение 24ч после восстановления: «Хотите повторить попытку?» | Событие `ai_summary_unavailable` |
|
|
396
|
+
| 5 | Подчинённый отозвал согласие в середине встречи | «Sarah отключила AI-запись. Переключаемся на ручные заметки.» | AI останавливается; режим ручных заметок продолжается | Событие `ai_declined_by_participant` |
|
|
397
|
+
| 6 | Низкая достоверность сводки | Баннер предупреждения: «У этой сводки низкая достоверность — внимательно проверьте перед подтверждением» | Пользователь внимательно проверяет или запрашивает перегенерацию (один раз) | Событие `ai_summary_low_confidence` |
|
|
398
|
+
|
|
399
|
+
## Empty States
|
|
400
|
+
|
|
401
|
+
- **Первый раз, нет предыдущих 1:1:** Показать тур онбординга (3 подсказки: что делает AI, как включить, как проверять)
|
|
402
|
+
- **Нет извлечённых action items:** «Action items не обнаружены» с поясняющей подсказкой «Можно добавить вручную»
|
|
403
|
+
- **Разделы сводки не заполнены:** «Встреча была очень короткой — ручные заметки сохранены, AI-сводка недоступна» (пропускается если <5 мин)
|
|
404
|
+
|
|
405
|
+
## Loading States
|
|
406
|
+
|
|
407
|
+
- **Шаг 3 (начало записи):** Состояние кнопки: «Запуск…» → disabled → «Запись» (красный индикатор точки)
|
|
408
|
+
- **Шаг 8 (генерация сводки):**
|
|
409
|
+
- 0-5s: Без индикатора (ощущается мгновенным)
|
|
410
|
+
- 5-30s: Появляется progress bar («Генерация сводки…»)
|
|
411
|
+
- 30-60s: Потоковая загрузка раздел за разделом (темы первыми, action items последними как правило)
|
|
412
|
+
- 60s+: Переход в async-режим («Занимает больше обычного — пришлём email»)
|
|
413
|
+
- **Шаг 10 (загрузка редактора):** Skeleton screen с заполнителями текста за ~300ms
|
|
414
|
+
|
|
415
|
+
## Exit Points
|
|
416
|
+
|
|
417
|
+
### Успешные выходы
|
|
418
|
+
- **Подтверждённая сводка** (Шаг 11A): перенаправление на просмотр истории 1:1 с зелёным toast
|
|
419
|
+
- **Сохранён черновик и покинул** (прерывание шага 11B): состояние сохранено, возобновление через уведомление
|
|
420
|
+
|
|
421
|
+
### Выходы-отказы
|
|
422
|
+
- **Закрыл модальное окно встречи до готовности сводки** (Шаги 7-8): сводка генерируется в фоне, пользователь получает уведомление
|
|
423
|
+
- **Покинул проверку без подтверждения**: черновик сохранён; email-напоминание через 3 дня
|
|
424
|
+
|
|
425
|
+
### Выходы при сбое
|
|
426
|
+
- **AI недоступен, переключение на ручной режим** (ошибка 4): пользователь продолжает с флоу ручных заметок; встреча всё равно считается
|
|
427
|
+
- **Переключение при отклонении разрешения микрофона** (ошибка 1): только ручные заметки; AI-артефакты не создаются
|
|
428
|
+
|
|
429
|
+
## Metrics Instrumentation
|
|
430
|
+
|
|
431
|
+
### События на каждый шаг
|
|
432
|
+
- `ai_toggle_enabled` — Шаг 2: свойства `{meeting_id, user_id, org_policy}`
|
|
433
|
+
- `meeting_started` — Шаг 3: `{ai_enabled, mic_permission_status}`
|
|
434
|
+
- `meeting_ended` — Шаг 7: `{duration, manual_notes_chars, participants_count}`
|
|
435
|
+
- `ai_summary_generated` — Шаг 8: `{latency, provider, confidence_avg, summary_length}`
|
|
436
|
+
- `summary_review_opened` — Шаг 9: `{time_from_meeting_end}`
|
|
437
|
+
- `summary_edited` — Шаг 11B: `{sections_edited, char_delta, time_in_edit}`
|
|
438
|
+
- `summary_approved` — Шаг 11A: `{time_to_approve, edit_count}`
|
|
439
|
+
|
|
440
|
+
### Метрики воронки
|
|
441
|
+
```
|
|
442
|
+
Начата AI-встреча (Шаг 3) 100%
|
|
443
|
+
│
|
|
444
|
+
▼
|
|
445
|
+
Сводка сгенерирована (Шаг 8) 92% (8% потеряно: микрофон отклонён, слишком коротко, сбой потока)
|
|
446
|
+
│
|
|
447
|
+
▼
|
|
448
|
+
Сводка просмотрена (Шаг 10, открыто) 87% (5% непросмотрено через 7 дней)
|
|
449
|
+
│
|
|
450
|
+
▼
|
|
451
|
+
Сводка подтверждена (Шаг 11A) 78% (9% осталось в черновике, 82% просмотренных = подтверждено)
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
### Метрики качества
|
|
455
|
+
- **Edit rate** = сводки отредактированные / просмотренные (цель: 30-50%)
|
|
456
|
+
- **Time-to-approve** = медианное время от генерации до подтверждения (цель: ≤2 мин)
|
|
457
|
+
- **Error rate** = неудачные сводки / всего попыток (цель: <2%)
|
|
458
|
+
- **P95 latency** = задержка генерации сводки (цель: ≤60s)
|
|
459
|
+
|
|
460
|
+
## Diagram (Mermaid)
|
|
461
|
+
|
|
462
|
+
```mermaid
|
|
463
|
+
flowchart TD
|
|
464
|
+
A[Менеджер просматривает страницу 1:1] --> B{AI toggle включён?}
|
|
465
|
+
B -->|Нет| Z1[Флоу ручных заметок]
|
|
466
|
+
B -->|Да, включён| C{Подчинённый дал согласие?}
|
|
467
|
+
C -->|Нет| D[Показать запрос согласия]
|
|
468
|
+
D --> E{Подчинённый принимает?}
|
|
469
|
+
E -->|Да| F
|
|
470
|
+
E -->|Нет| Z1
|
|
471
|
+
C -->|Да| F{Разрешение на микрофон?}
|
|
472
|
+
F -->|Отклонено| G[Fallback: только ручные заметки]
|
|
473
|
+
F -->|Предоставлено| H[Начать запись]
|
|
474
|
+
H --> I[Встреча в процессе]
|
|
475
|
+
I --> J{Завершить встречу}
|
|
476
|
+
J --> K[Генерировать сводку]
|
|
477
|
+
K --> L{Провайдер доступен?}
|
|
478
|
+
L -->|Нет, оба недоступны| M[Fallback: email позже]
|
|
479
|
+
L -->|Да| N{Встреча >=5 мин?}
|
|
480
|
+
N -->|Нет| O[Пропустить сводку]
|
|
481
|
+
N -->|Да| P[Показать UI проверки]
|
|
482
|
+
P --> Q{Действие менеджера}
|
|
483
|
+
Q -->|Редактировать + Подтвердить| R[Action items отслеживаются]
|
|
484
|
+
Q -->|Подтвердить сразу| R
|
|
485
|
+
Q -->|Оставить черновик| S[Напоминание через 3д]
|
|
486
|
+
Q -->|Отказаться| T[Истекает через 30д]
|
|
487
|
+
R --> U[Напоминание о следующем 1:1]
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
> **Урок user-flow:** Полный документ flow объясняет, почему в AC для Story S2 существует **11 сценариев** — каждый decision point или error state — это сценарий. Сначала flow, затем AC — нельзя писать AC без понимания flow. **6 error states + 3 empty states + 3 loading states** для одного flow — это норма для production B2B — пользователи сталкиваются с граничными случаями в реальных условиях чаще, чем ожидается.
|
|
491
|
+
```
|