@hiai-gg/hiai-opencode 0.2.0 → 0.2.2
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/.env.example +4 -0
- package/AGENTS.md +40 -44
- package/ARCHITECTURE.md +4 -3
- package/LICENSE.md +14 -0
- package/README.md +61 -30
- package/assets/cli/hiai-opencode.mjs +4 -4
- package/config/hiai-opencode.schema.json +11 -13
- package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
- package/dist/agents/bob/core.d.ts +6 -0
- package/dist/agents/bob/gpt.d.ts +11 -0
- package/dist/agents/bob/index.d.ts +3 -0
- package/dist/agents/coder/core.d.ts +4 -0
- package/dist/agents/coder/gpt.d.ts +1 -4
- package/dist/agents/coder/index.d.ts +1 -0
- package/dist/agents/manager/agent.d.ts +1 -1
- package/dist/agents/manager/default-prompt-sections.d.ts +4 -4
- package/dist/agents/manager/guard-integration.d.ts +1 -0
- package/dist/agents/prompt-library/index.d.ts +0 -1
- package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
- package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
- package/dist/agents/strategist/identity-constraints.d.ts +1 -1
- package/dist/agents/strategist/plan-generation.d.ts +1 -1
- package/dist/agents/types.d.ts +2 -1
- package/dist/config/defaults.d.ts +1 -0
- package/dist/config/platform-schema.d.ts +26 -26
- package/dist/config/schema/agent-names.d.ts +6 -6
- package/dist/config/schema/agent-overrides.d.ts +0 -128
- package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
- package/dist/config/types.d.ts +2 -2
- package/dist/features/background-agent/error-classifier.d.ts +1 -0
- package/dist/features/background-agent/manager-notifier.d.ts +46 -0
- package/dist/features/background-agent/manager-types.d.ts +40 -0
- package/dist/features/background-agent/manager.d.ts +3 -19
- package/dist/features/background-agent/polling-manager.d.ts +51 -0
- package/dist/features/boulder-state/constants.d.ts +3 -0
- package/dist/features/boulder-state/storage.d.ts +95 -0
- package/dist/features/boulder-state/types.d.ts +17 -0
- package/dist/features/builtin-commands/templates/doctor.d.ts +1 -1
- package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
- package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
- package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
- package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
- package/dist/hooks/manager/resolve-active-boulder-session.d.ts +5 -0
- package/dist/hooks/manager/system-reminder-templates.d.ts +2 -2
- package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
- package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
- package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
- package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
- package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
- package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
- package/dist/hooks/start-work/context-info-builder.d.ts +2 -0
- package/dist/hooks/start-work/git-operations.d.ts +47 -0
- package/dist/hooks/start-work/worktree-block.d.ts +2 -1
- package/dist/hooks/start-work/worktree-detector.d.ts +45 -0
- package/dist/hooks/strategist-md-only/agent-resolution.d.ts +1 -1
- package/dist/hooks/strategist-md-only/constants.d.ts +6 -0
- package/dist/hooks/token-budget.d.ts +30 -0
- package/dist/index.js +1275 -1132
- package/dist/mcp/rate-limiter.d.ts +68 -0
- package/dist/plugin/chat-message.d.ts +8 -0
- package/dist/plugin/command-execute-before.d.ts +1 -1
- package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
- package/dist/plugin/event-handlers/session-error.d.ts +2 -0
- package/dist/plugin/event-handlers/session-status.d.ts +2 -0
- package/dist/plugin/event-handlers/types.d.ts +62 -0
- package/dist/plugin/event-handlers/utils.d.ts +11 -0
- package/dist/plugin/event.d.ts +1 -1
- package/dist/shared/data-path.d.ts +1 -1
- package/dist/shared/errors.d.ts +70 -0
- package/dist/shared/extract-session-id.d.ts +8 -0
- package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
- package/dist/shared/index.d.ts +67 -68
- package/dist/shared/internal-initiator-marker.d.ts +1 -1
- package/dist/shared/logger.d.ts +5 -1
- package/dist/shared/reasoning-content-cache.d.ts +68 -0
- package/dist/shared/safe-create-hook.d.ts +4 -4
- package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
- package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
- package/dist/tools/look-at/constants.d.ts +1 -1
- package/docs/architecture/bob-manager-architecture.md +244 -0
- package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
- package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
- package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
- package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
- package/docs/hiai-opencode/api.md +305 -0
- package/docs/hiai-opencode/hooks-architecture.md +225 -0
- package/docs/hiai-opencode/migration.md +209 -0
- package/docs/quickstart.md +1 -1
- package/docs/skill-discovery.md +288 -0
- package/package.json +2 -2
- package/skills/agent-browser/SKILL.md +193 -0
- package/skills/apple-hig/SKILL.md +43 -0
- package/skills/article-magazine/SKILL.md +46 -0
- package/skills/article-magazine/example.html +81 -0
- package/skills/article-magazine/example.md +38 -0
- package/skills/canvas-design/SKILL.md +45 -0
- package/skills/design-templates/audio-jingle/SKILL.md +132 -0
- package/skills/design-templates/audio-jingle/example.html +128 -0
- package/skills/design-templates/blog-post/SKILL.md +80 -0
- package/skills/design-templates/blog-post/example.html +80 -0
- package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
- package/skills/design-templates/clinical-case-report/example.html +698 -0
- package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
- package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
- package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
- package/skills/design-templates/critique/SKILL.md +258 -0
- package/skills/design-templates/critique/example.html +671 -0
- package/skills/design-templates/dashboard/SKILL.md +76 -0
- package/skills/design-templates/dashboard/example.html +118 -0
- package/skills/design-templates/dating-web/SKILL.md +92 -0
- package/skills/design-templates/dating-web/example.html +265 -0
- package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
- package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
- package/skills/design-templates/digital-eguide/SKILL.md +94 -0
- package/skills/design-templates/digital-eguide/example.html +204 -0
- package/skills/design-templates/docs-page/SKILL.md +80 -0
- package/skills/design-templates/docs-page/example.html +122 -0
- package/skills/design-templates/email-marketing/SKILL.md +84 -0
- package/skills/design-templates/email-marketing/example.html +159 -0
- package/skills/design-templates/eng-runbook/SKILL.md +51 -0
- package/skills/design-templates/eng-runbook/example.html +250 -0
- package/skills/design-templates/finance-report/SKILL.md +61 -0
- package/skills/design-templates/finance-report/example.html +242 -0
- package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
- package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
- package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
- package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
- package/skills/design-templates/gamified-app/SKILL.md +108 -0
- package/skills/design-templates/gamified-app/example.html +292 -0
- package/skills/design-templates/github-dashboard/SKILL.md +130 -0
- package/skills/design-templates/github-dashboard/example.html +473 -0
- package/skills/design-templates/github-dashboard/references/README.md +10 -0
- package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
- package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
- package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
- package/skills/design-templates/github-dashboard/references/template.html +473 -0
- package/skills/design-templates/guizang-ppt/LICENSE +21 -0
- package/skills/design-templates/guizang-ppt/README.en.md +119 -0
- package/skills/design-templates/guizang-ppt/README.md +120 -0
- package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
- package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
- package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
- package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
- package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
- package/skills/design-templates/guizang-ppt/references/components.md +363 -0
- package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
- package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
- package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
- package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
- package/skills/design-templates/hr-onboarding/example.html +219 -0
- package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
- package/skills/design-templates/html-ppt/LICENSE +21 -0
- package/skills/design-templates/html-ppt/README.md +234 -0
- package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
- package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
- package/skills/design-templates/html-ppt/SKILL.md +250 -0
- package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
- package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
- package/skills/design-templates/html-ppt/assets/base.css +150 -0
- package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
- package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
- package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
- package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
- package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
- package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
- package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
- package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
- package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
- package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
- package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
- package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
- package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
- package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
- package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
- package/skills/design-templates/html-ppt/references/animations.md +147 -0
- package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
- package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
- package/skills/design-templates/html-ppt/references/layouts.md +103 -0
- package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
- package/skills/design-templates/html-ppt/references/themes.md +107 -0
- package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
- package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
- package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
- package/skills/design-templates/html-ppt/templates/deck.html +69 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
- package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
- package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
- package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
- package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
- package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
- package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
- package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
- package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
- package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
- package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
- package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
- package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
- package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
- package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
- package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
- package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
- package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
- package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
- package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
- package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
- package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
- package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
- package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
- package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-course-module/example.html +542 -0
- package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
- package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
- package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
- package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
- package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
- package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
- package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
- package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
- package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
- package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
- package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
- package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
- package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
- package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
- package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
- package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
- package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
- package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
- package/skills/figma-code-connect-components/SKILL.md +42 -0
- package/skills/figma-create-design-system-rules/SKILL.md +42 -0
- package/skills/figma-create-new-file/SKILL.md +41 -0
- package/skills/figma-generate-design/SKILL.md +42 -0
- package/skills/figma-generate-library/SKILL.md +42 -0
- package/skills/figma-implement-design/SKILL.md +42 -0
- package/skills/figma-use/SKILL.md +42 -0
- package/skills/full-page-screenshot/SKILL.md +42 -0
- package/skills/interview-me/SKILL.md +64 -0
- package/skills/planning-and-task-breakdown/SKILL.md +52 -0
- package/skills/sora/SKILL.md +43 -0
- package/skills/theme-factory/SKILL.md +43 -0
- package/skills/web-design-guidelines/SKILL.md +42 -0
- package/dist/agents/prompt-library/orchestration.d.ts +0 -4
- package/skills/brainstorming/SKILL.md +0 -164
- package/skills/brainstorming/scripts/frame-template.html +0 -214
- package/skills/brainstorming/scripts/helper.js +0 -88
- package/skills/brainstorming/scripts/server.cjs +0 -354
- package/skills/brainstorming/scripts/start-server.sh +0 -148
- package/skills/brainstorming/scripts/stop-server.sh +0 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
- package/skills/brainstorming/visual-companion.md +0 -287
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dashboard
|
|
3
|
+
description: |
|
|
4
|
+
Admin / analytics dashboard in a single HTML file. Fixed left sidebar,
|
|
5
|
+
top bar with user/search, main grid of KPI cards and one or two charts.
|
|
6
|
+
Use when the brief asks for a "dashboard", "admin", "analytics", or
|
|
7
|
+
"control panel" screen.
|
|
8
|
+
triggers:
|
|
9
|
+
- "dashboard"
|
|
10
|
+
- "admin panel"
|
|
11
|
+
- "analytics"
|
|
12
|
+
- "control panel"
|
|
13
|
+
- "后台"
|
|
14
|
+
- "管理后台"
|
|
15
|
+
od:
|
|
16
|
+
mode: prototype
|
|
17
|
+
platform: desktop
|
|
18
|
+
scenario: operations
|
|
19
|
+
preview:
|
|
20
|
+
type: html
|
|
21
|
+
entry: index.html
|
|
22
|
+
design_system:
|
|
23
|
+
requires: true
|
|
24
|
+
sections: [color, typography, layout, components]
|
|
25
|
+
craft:
|
|
26
|
+
requires: [state-coverage, accessibility-baseline, laws-of-ux]
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Dashboard Skill
|
|
30
|
+
|
|
31
|
+
Produce a single-screen admin / analytics dashboard.
|
|
32
|
+
|
|
33
|
+
## Workflow
|
|
34
|
+
|
|
35
|
+
1. **Read the active DESIGN.md** (injected above). Colors, typography, spacing,
|
|
36
|
+
component styling all come from it. Do not invent new tokens.
|
|
37
|
+
2. **Classify** what the dashboard monitors (sales, traffic, usage, incidents,
|
|
38
|
+
ops, etc.) from the brief. Generate specific, plausible metric names and
|
|
39
|
+
values — no "Metric A / Metric B" placeholders.
|
|
40
|
+
3. **Lay out** the required regions:
|
|
41
|
+
- **Left sidebar** (220–260px): brand mark at top, 6–8 nav links with
|
|
42
|
+
icons, active state uses the DS accent.
|
|
43
|
+
- **Top bar**: page title on the left, search input + user avatar / status
|
|
44
|
+
on the right.
|
|
45
|
+
- **Main**:
|
|
46
|
+
- Row 1: 3–4 KPI cards (label + big number + delta vs. prior period).
|
|
47
|
+
- Row 2: one primary chart (full width or 2/3) — render as an inline SVG
|
|
48
|
+
line / bar / area chart drawn from real-looking numbers.
|
|
49
|
+
- Row 3: one secondary chart or table (recent events, top items, etc.).
|
|
50
|
+
4. **Write** one self-contained HTML document:
|
|
51
|
+
- `<!doctype html>` through `</html>`, CSS in one inline `<style>` block.
|
|
52
|
+
- CSS Grid for the overall layout; Flexbox inside cards.
|
|
53
|
+
- Semantic HTML: `<aside>`, `<header>`, `<main>`, `<section>`.
|
|
54
|
+
- Tag each logical region with `data-od-id="slug"` for comment mode.
|
|
55
|
+
5. **Charts**: inline SVG only, no JS libraries. A line chart is ~10 lines of
|
|
56
|
+
`<polyline>` with a subtle area fill. A bar chart is N `<rect>`s with
|
|
57
|
+
DS-accent fill. Label axes lightly (muted text, smaller scale).
|
|
58
|
+
6. **Self-check**:
|
|
59
|
+
- Every color comes from DESIGN.md tokens.
|
|
60
|
+
- Accent used at most twice (sidebar active + one chart highlight).
|
|
61
|
+
- Sidebar + top bar are sticky; main scrolls independently.
|
|
62
|
+
- Density matches the DS mood — airy DSes get more padding, dense DSes
|
|
63
|
+
(trading, crypto) tighten rows.
|
|
64
|
+
|
|
65
|
+
## Output contract
|
|
66
|
+
|
|
67
|
+
Emit between `<artifact>` tags:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
<artifact identifier="dashboard-slug" type="text/html" title="Dashboard Title">
|
|
71
|
+
<!doctype html>
|
|
72
|
+
<html>...</html>
|
|
73
|
+
</artifact>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
One sentence before the artifact, nothing after.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Pulse — analytics overview</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root {
|
|
9
|
+
--bg: #fafaf9; --fg: #1c1b1a; --muted: #6b6964; --border: #e6e4e0;
|
|
10
|
+
--accent: #c96442; --surface: #ffffff; --good: #2f7d4a; --bad: #b53a2a;
|
|
11
|
+
}
|
|
12
|
+
* { box-sizing: border-box; }
|
|
13
|
+
body { margin: 0; background: var(--bg); color: var(--fg); font: 14px/1.5 -apple-system, system-ui, sans-serif; display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; }
|
|
14
|
+
.sidebar { background: var(--surface); border-right: 1px solid var(--border); padding: 16px; }
|
|
15
|
+
.brand { font-weight: 600; padding: 8px 10px 18px; }
|
|
16
|
+
.nav { display: flex; flex-direction: column; gap: 2px; }
|
|
17
|
+
.nav a { padding: 7px 10px; border-radius: 6px; color: var(--fg); text-decoration: none; }
|
|
18
|
+
.nav a.active { background: var(--bg); font-weight: 500; }
|
|
19
|
+
.nav a:hover { background: var(--bg); }
|
|
20
|
+
.nav .group-label { font-size: 11px; color: var(--muted); padding: 14px 10px 6px; text-transform: uppercase; letter-spacing: 0.06em; }
|
|
21
|
+
main { padding: 0 28px 56px; }
|
|
22
|
+
.topbar { padding: 16px 0; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); margin-bottom: 24px; }
|
|
23
|
+
.topbar h1 { font-size: 20px; margin: 0; letter-spacing: -0.01em; }
|
|
24
|
+
.topbar .right { display: flex; align-items: center; gap: 12px; color: var(--muted); }
|
|
25
|
+
button { font: inherit; cursor: pointer; padding: 7px 13px; border-radius: 6px; }
|
|
26
|
+
.btn-primary { background: var(--accent); color: white; border: 1px solid var(--accent); }
|
|
27
|
+
.btn-secondary { background: transparent; color: var(--fg); border: 1px solid var(--border); }
|
|
28
|
+
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 28px; }
|
|
29
|
+
@media (max-width: 900px) { .kpis { grid-template-columns: repeat(2, 1fr); } }
|
|
30
|
+
.kpi { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; }
|
|
31
|
+
.kpi .label { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }
|
|
32
|
+
.kpi .value { font-size: 28px; letter-spacing: -0.02em; }
|
|
33
|
+
.kpi .delta { font-size: 12px; margin-top: 4px; }
|
|
34
|
+
.kpi .delta.up { color: var(--good); }
|
|
35
|
+
.kpi .delta.down { color: var(--bad); }
|
|
36
|
+
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 20px; margin-bottom: 16px; }
|
|
37
|
+
.panel h3 { margin: 0 0 16px; font-size: 14px; font-weight: 500; }
|
|
38
|
+
.chart { height: 240px; background: linear-gradient(180deg, rgba(201,100,66,0.06), transparent); border-bottom: 1px solid var(--border); position: relative; overflow: hidden; }
|
|
39
|
+
.chart svg { width: 100%; height: 100%; display: block; }
|
|
40
|
+
.panels-row { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
|
|
41
|
+
@media (max-width: 900px) { .panels-row { grid-template-columns: 1fr; } }
|
|
42
|
+
table { width: 100%; border-collapse: collapse; }
|
|
43
|
+
th, td { text-align: left; padding: 10px 6px; border-top: 1px solid var(--border); }
|
|
44
|
+
th { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; }
|
|
45
|
+
.pill { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 999px; background: var(--bg); border: 1px solid var(--border); }
|
|
46
|
+
.pill.good { color: var(--good); border-color: rgba(47,125,74,0.3); }
|
|
47
|
+
.pill.bad { color: var(--bad); border-color: rgba(181,58,42,0.3); }
|
|
48
|
+
</style>
|
|
49
|
+
</head>
|
|
50
|
+
<body>
|
|
51
|
+
<aside class="sidebar" data-od-id="sidebar">
|
|
52
|
+
<div class="brand">◐ Pulse</div>
|
|
53
|
+
<nav class="nav">
|
|
54
|
+
<a href="#" class="active">Overview</a>
|
|
55
|
+
<a href="#">Funnels</a>
|
|
56
|
+
<a href="#">Cohorts</a>
|
|
57
|
+
<a href="#">Sessions</a>
|
|
58
|
+
<span class="group-label">Workspace</span>
|
|
59
|
+
<a href="#">Sources</a>
|
|
60
|
+
<a href="#">Members</a>
|
|
61
|
+
<a href="#">Billing</a>
|
|
62
|
+
<a href="#">Settings</a>
|
|
63
|
+
</nav>
|
|
64
|
+
</aside>
|
|
65
|
+
<main>
|
|
66
|
+
<div class="topbar" data-od-id="topbar">
|
|
67
|
+
<h1>Overview · April 2026</h1>
|
|
68
|
+
<div class="right">
|
|
69
|
+
<button class="btn-secondary">Last 30 days ▾</button>
|
|
70
|
+
<button class="btn-primary">+ New report</button>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<div class="kpis" data-od-id="kpis">
|
|
75
|
+
<div class="kpi"><div class="label">MRR</div><div class="value">$48.2K</div><div class="delta up">+12.4% MoM</div></div>
|
|
76
|
+
<div class="kpi"><div class="label">Active accounts</div><div class="value">3,184</div><div class="delta up">+204 this month</div></div>
|
|
77
|
+
<div class="kpi"><div class="label">Churn (30d)</div><div class="value">2.1%</div><div class="delta down">+0.4 pp</div></div>
|
|
78
|
+
<div class="kpi"><div class="label">P95 latency</div><div class="value">182 ms</div><div class="delta up">-23 ms</div></div>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<div class="panels-row">
|
|
82
|
+
<div class="panel" data-od-id="chart-panel">
|
|
83
|
+
<h3>Revenue · 30 days</h3>
|
|
84
|
+
<div class="chart">
|
|
85
|
+
<svg viewBox="0 0 600 240" preserveAspectRatio="none">
|
|
86
|
+
<polyline fill="none" stroke="#c96442" stroke-width="2" points="0,180 30,170 60,150 90,160 120,140 150,120 180,130 210,110 240,90 270,100 300,80 330,70 360,80 390,60 420,50 450,60 480,40 510,30 540,40 570,20 600,10" />
|
|
87
|
+
</svg>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="panel" data-od-id="signups-panel">
|
|
91
|
+
<h3>New accounts</h3>
|
|
92
|
+
<table>
|
|
93
|
+
<thead><tr><th>Account</th><th>Plan</th><th>Status</th></tr></thead>
|
|
94
|
+
<tbody>
|
|
95
|
+
<tr><td>Linear</td><td>Team</td><td><span class="pill good">active</span></td></tr>
|
|
96
|
+
<tr><td>Cursor</td><td>Pro</td><td><span class="pill good">active</span></td></tr>
|
|
97
|
+
<tr><td>Notion</td><td>Team</td><td><span class="pill bad">trial</span></td></tr>
|
|
98
|
+
<tr><td>Vercel</td><td>Enterprise</td><td><span class="pill good">active</span></td></tr>
|
|
99
|
+
</tbody>
|
|
100
|
+
</table>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<div class="panel" data-od-id="recent-events">
|
|
105
|
+
<h3>Recent events</h3>
|
|
106
|
+
<table>
|
|
107
|
+
<thead><tr><th>Time</th><th>Account</th><th>Event</th><th>Plan</th></tr></thead>
|
|
108
|
+
<tbody>
|
|
109
|
+
<tr><td>2:14 pm</td><td>Acme Co</td><td>Upgraded to Team</td><td>Team</td></tr>
|
|
110
|
+
<tr><td>1:48 pm</td><td>Northwind</td><td>Connected GitHub</td><td>Pro</td></tr>
|
|
111
|
+
<tr><td>1:32 pm</td><td>Globex</td><td>Cancelled subscription</td><td>Solo</td></tr>
|
|
112
|
+
<tr><td>12:51 pm</td><td>Initech</td><td>New seat invited</td><td>Team</td></tr>
|
|
113
|
+
</tbody>
|
|
114
|
+
</table>
|
|
115
|
+
</div>
|
|
116
|
+
</main>
|
|
117
|
+
</body>
|
|
118
|
+
</html>
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dating-web
|
|
3
|
+
description: |
|
|
4
|
+
A consumer-feeling dating / matchmaking dashboard — left rail navigation,
|
|
5
|
+
ticker bar of community signals, headline KPIs, a 30-day mutual-matches
|
|
6
|
+
bar chart, and a match-rate trend block. Editorial typography, restrained
|
|
7
|
+
accent. Use when the brief asks for a "dating site", "matchmaking",
|
|
8
|
+
"community dashboard", "social network dashboard", or any consumer
|
|
9
|
+
product where the data is the story.
|
|
10
|
+
triggers:
|
|
11
|
+
- "dating app"
|
|
12
|
+
- "dating site"
|
|
13
|
+
- "matchmaking"
|
|
14
|
+
- "social dashboard"
|
|
15
|
+
- "community dashboard"
|
|
16
|
+
- "consumer dashboard"
|
|
17
|
+
- "约会应用"
|
|
18
|
+
- "婚恋"
|
|
19
|
+
od:
|
|
20
|
+
mode: prototype
|
|
21
|
+
platform: desktop
|
|
22
|
+
scenario: personal
|
|
23
|
+
preview:
|
|
24
|
+
type: html
|
|
25
|
+
entry: index.html
|
|
26
|
+
design_system:
|
|
27
|
+
requires: true
|
|
28
|
+
sections: [color, typography, layout, components]
|
|
29
|
+
example_prompt: "Design ‘mutuals’ — a dating site for X posters. Daily digest dashboard with stats, mutual-matches bar chart, and a community ticker."
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# Dating Web Skill
|
|
33
|
+
|
|
34
|
+
Produce a single-screen consumer dashboard that feels like a Sunday-paper
|
|
35
|
+
dating column rendered as software. Editorial type, single restrained
|
|
36
|
+
accent, lots of negative space, *no* swipe deck or hookup tropes.
|
|
37
|
+
|
|
38
|
+
## Workflow
|
|
39
|
+
|
|
40
|
+
1. **Read the active DESIGN.md** (injected above). Lean into a serif display
|
|
41
|
+
token for the metric numerals — these screens live or die on numerals.
|
|
42
|
+
2. **Pick a brand voice** — wry, observational, slightly literary. Generate
|
|
43
|
+
real, specific copy. Examples: "the people who'd text back within a day",
|
|
44
|
+
"manageable. two are now friends.", "your single greatest compatibility
|
|
45
|
+
asset."
|
|
46
|
+
3. **Layout**, in order:
|
|
47
|
+
- **Top ticker** — single-row horizontal strip across the top in a
|
|
48
|
+
sans-serif eyebrow style: tagline left, "NEXT TIER AT 2,080 MUTUALS"
|
|
49
|
+
right, both in mono caps with letter-spacing. Thin rule below.
|
|
50
|
+
- **Left rail** — 220–260px sidebar. Brand wordmark in serif italic at
|
|
51
|
+
top. User card (avatar / handle / ratio / tier). Three groups of nav:
|
|
52
|
+
"TODAY" (specimen, inbox, queue, notifications), "YOU" (your stats,
|
|
53
|
+
mutuals & communities, blocked, settings), "ARCHIVE" (past issues,
|
|
54
|
+
expired matches). Active item gets accent text + accent dot.
|
|
55
|
+
- **Main content**:
|
|
56
|
+
- **KPI grid** — 3 columns × 3 rows (or 9 cells). Each cell: small
|
|
57
|
+
caps mono label, an oversized serif numeral (use accent or muted
|
|
58
|
+
green for positive, muted red for caution), one-line italic
|
|
59
|
+
footnote. Plausible specifics — "1,842 ↑ 41 this wk · healthy
|
|
60
|
+
growth.", "14% above median for your cohort.", "4 / exes in your
|
|
61
|
+
circle · manageable. two are now friends."
|
|
62
|
+
- **Bar chart panel** — "mutuals — last 30 days". Tall thin black
|
|
63
|
+
bars, last two days highlighted in accent. Caption above with
|
|
64
|
+
"↑ TRENDING UP · +3 CLOSE MUTUALS THIS MONTH · TWO VIA THE SAME
|
|
65
|
+
OFFSITE" in mono.
|
|
66
|
+
- **Trend panel** — "match rate — last 12 weeks". One line of body
|
|
67
|
+
copy below ("STEADY CLIMB FROM 8% → 14%. ATTRIBUTABLE TO ONE
|
|
68
|
+
COMMUNITY JOIN…"). Footer rule.
|
|
69
|
+
4. **Write** a single HTML document:
|
|
70
|
+
- `<!doctype html>` through `</html>`, CSS inline.
|
|
71
|
+
- Background creamy off-white, body serif, mono labels everywhere.
|
|
72
|
+
- Use `font-feature-settings: 'tnum'` on the metric numerals.
|
|
73
|
+
- SVG bar chart with ~30 bars, varied heights.
|
|
74
|
+
- `data-od-id` on ticker, sidebar, kpi grid, chart, trend.
|
|
75
|
+
5. **Self-check**:
|
|
76
|
+
- Reads as restrained, editorial, slightly funny — not horny.
|
|
77
|
+
- Single accent token used in 3–4 places max (one KPI, two highlight
|
|
78
|
+
bars, one nav active state).
|
|
79
|
+
- No swipe deck, no hearts, no fire emoji.
|
|
80
|
+
|
|
81
|
+
## Output contract
|
|
82
|
+
|
|
83
|
+
Emit between `<artifact>` tags:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
<artifact identifier="dating-slug" type="text/html" title="Dating Dashboard — Title">
|
|
87
|
+
<!doctype html>
|
|
88
|
+
<html>...</html>
|
|
89
|
+
</artifact>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
One sentence before the artifact, nothing after.
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>mutuals · your dating life, measured by the company you keep</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Serif+Text:ital@0;1&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
10
|
+
<style>
|
|
11
|
+
:root {
|
|
12
|
+
--paper: #f4ede0;
|
|
13
|
+
--panel: #f9f3e7;
|
|
14
|
+
--ink: #1f1c14;
|
|
15
|
+
--muted: #7a7264;
|
|
16
|
+
--rule: #d6cdb6;
|
|
17
|
+
--accent: #c14a2b;
|
|
18
|
+
--good: #406b3a;
|
|
19
|
+
--bad: #b6422f;
|
|
20
|
+
--serif-display: 'DM Serif Display', 'Iowan Old Style', Georgia, serif;
|
|
21
|
+
--serif-body: 'DM Serif Text', 'Iowan Old Style', Georgia, serif;
|
|
22
|
+
--mono: 'IBM Plex Mono', ui-monospace, monospace;
|
|
23
|
+
}
|
|
24
|
+
* { box-sizing: border-box; }
|
|
25
|
+
body { margin: 0; background: var(--paper); color: var(--ink); font: 14px/1.55 var(--serif-body); }
|
|
26
|
+
|
|
27
|
+
.ticker {
|
|
28
|
+
display: flex;
|
|
29
|
+
justify-content: space-between;
|
|
30
|
+
align-items: center;
|
|
31
|
+
padding: 14px 28px;
|
|
32
|
+
border-bottom: 1px solid var(--ink);
|
|
33
|
+
font: 11px/1 var(--mono);
|
|
34
|
+
color: var(--muted);
|
|
35
|
+
letter-spacing: 0.18em;
|
|
36
|
+
text-transform: uppercase;
|
|
37
|
+
}
|
|
38
|
+
.ticker .left { display: flex; align-items: center; gap: 18px; }
|
|
39
|
+
.ticker b { color: var(--ink); font-weight: 500; }
|
|
40
|
+
|
|
41
|
+
.layout { display: grid; grid-template-columns: 232px 1fr; min-height: calc(100vh - 44px); }
|
|
42
|
+
aside.rail {
|
|
43
|
+
border-right: 1px solid var(--ink);
|
|
44
|
+
padding: 22px 22px 22px 28px;
|
|
45
|
+
display: flex; flex-direction: column; gap: 22px;
|
|
46
|
+
}
|
|
47
|
+
aside .brand { font: italic 800 30px/1 var(--serif-display); letter-spacing: -0.005em; }
|
|
48
|
+
aside .brand .dot { color: var(--accent); }
|
|
49
|
+
aside .user { display: flex; align-items: center; gap: 10px; }
|
|
50
|
+
aside .avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: var(--paper); display: grid; place-items: center; font: 700 12px/1 var(--mono); letter-spacing: 0.06em; }
|
|
51
|
+
aside .user .meta { font: 13px/1.2 var(--mono); }
|
|
52
|
+
aside .user .meta b { display: block; color: var(--ink); font-weight: 500; }
|
|
53
|
+
aside .user .meta span { color: var(--muted); font-size: 11px; letter-spacing: 0.06em; }
|
|
54
|
+
|
|
55
|
+
aside h4 { font: 11px/1 var(--mono); color: var(--muted); letter-spacing: 0.18em; text-transform: uppercase; margin: 0 0 10px; }
|
|
56
|
+
aside ul { list-style: none; padding: 0; margin: 0 0 14px; display: flex; flex-direction: column; gap: 4px; }
|
|
57
|
+
aside li { display: flex; justify-content: space-between; align-items: center; padding: 5px 8px; border-radius: 4px; font: 15.5px/1.2 var(--serif-body); color: var(--ink); cursor: default; }
|
|
58
|
+
aside li.active { background: rgba(193,74,43,0.10); color: var(--accent); font-weight: 600; }
|
|
59
|
+
aside li.active::before { content: '●'; color: var(--accent); margin-right: 6px; font-size: 9px; }
|
|
60
|
+
aside li .badge { background: var(--accent); color: var(--paper); font: 10px/1 var(--mono); padding: 3px 6px; border-radius: 999px; letter-spacing: 0.06em; }
|
|
61
|
+
aside li .badge.gray { background: var(--ink); }
|
|
62
|
+
|
|
63
|
+
aside .status {
|
|
64
|
+
margin-top: auto;
|
|
65
|
+
padding-top: 18px;
|
|
66
|
+
border-top: 1px solid var(--rule);
|
|
67
|
+
font: 11px/1.4 var(--mono);
|
|
68
|
+
color: var(--muted);
|
|
69
|
+
letter-spacing: 0.06em;
|
|
70
|
+
}
|
|
71
|
+
aside .status .live::before { content: '●'; color: #2f7d4a; margin-right: 6px; }
|
|
72
|
+
|
|
73
|
+
main { padding: 30px 36px 44px; }
|
|
74
|
+
.grid {
|
|
75
|
+
display: grid;
|
|
76
|
+
grid-template-columns: repeat(3, 1fr);
|
|
77
|
+
grid-auto-rows: minmax(120px, auto);
|
|
78
|
+
gap: 22px 36px;
|
|
79
|
+
margin-bottom: 36px;
|
|
80
|
+
}
|
|
81
|
+
.stat { padding: 4px 0 14px; border-bottom: 1px solid var(--rule); }
|
|
82
|
+
.stat .label { font: 11px/1.4 var(--mono); color: var(--muted); letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 6px; }
|
|
83
|
+
.stat .value {
|
|
84
|
+
font: 800 56px/1.05 var(--serif-display);
|
|
85
|
+
letter-spacing: -0.01em;
|
|
86
|
+
font-feature-settings: 'tnum';
|
|
87
|
+
margin-bottom: 6px;
|
|
88
|
+
}
|
|
89
|
+
.stat .value.good { color: var(--good); }
|
|
90
|
+
.stat .value.bad { color: var(--bad); }
|
|
91
|
+
.stat .value em { font-style: italic; font-weight: 400; }
|
|
92
|
+
.stat .note { font: italic 13.5px/1.4 var(--serif-body); color: var(--muted); max-width: 32ch; }
|
|
93
|
+
.stat .arrow { font-style: normal; color: var(--good); font-size: 14px; }
|
|
94
|
+
|
|
95
|
+
.panel { padding: 18px 0 24px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); margin-bottom: 18px; }
|
|
96
|
+
.panel-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 14px; }
|
|
97
|
+
.panel-head h3 { margin: 0; font: italic 24px/1 var(--serif-display); letter-spacing: -0.005em; }
|
|
98
|
+
.panel-head .meta { font: 11px/1.4 var(--mono); color: var(--muted); letter-spacing: 0.16em; text-transform: uppercase; max-width: 56ch; text-align: right; }
|
|
99
|
+
.panel svg { width: 100%; height: 220px; display: block; }
|
|
100
|
+
.panel .axis { display: flex; justify-content: space-between; font: 10px/1 var(--mono); color: var(--muted); letter-spacing: 0.1em; padding: 8px 4px 0; text-transform: uppercase; }
|
|
101
|
+
|
|
102
|
+
.lower-panel .lede { font: italic 15px/1.55 var(--serif-body); color: var(--muted); margin: 0; max-width: 70ch; }
|
|
103
|
+
.lower-panel .lede b { color: var(--ink); font-style: normal; font-weight: 600; }
|
|
104
|
+
|
|
105
|
+
@media (max-width: 1100px) {
|
|
106
|
+
.layout { grid-template-columns: 1fr; }
|
|
107
|
+
aside.rail { border-right: none; border-bottom: 1px solid var(--ink); }
|
|
108
|
+
.grid { grid-template-columns: repeat(2, 1fr); gap: 18px 28px; }
|
|
109
|
+
}
|
|
110
|
+
</style>
|
|
111
|
+
</head>
|
|
112
|
+
<body>
|
|
113
|
+
<div class="ticker" data-od-id="ticker">
|
|
114
|
+
<div class="left">
|
|
115
|
+
<span>YOUR DATING LIFE, MEASURED BY THE COMPANY YOU KEEP</span>
|
|
116
|
+
<span style="opacity:0.6;">·</span>
|
|
117
|
+
<span>REVIEWED WEEKLY</span>
|
|
118
|
+
</div>
|
|
119
|
+
<div>NEXT TIER AT <b>2,080 MUTUALS</b></div>
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
<div class="layout">
|
|
123
|
+
<aside class="rail" data-od-id="rail">
|
|
124
|
+
<div class="brand">mutuals<span class="dot">.</span></div>
|
|
125
|
+
<div class="user">
|
|
126
|
+
<div class="avatar">si</div>
|
|
127
|
+
<div class="meta"><b>@signals</b><span>RATIO 22.9 · TIER III</span></div>
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
<div>
|
|
131
|
+
<h4>Today</h4>
|
|
132
|
+
<ul>
|
|
133
|
+
<li>specimen <span class="badge">3</span></li>
|
|
134
|
+
<li>inbox <span class="badge">3</span></li>
|
|
135
|
+
<li>queue <span style="font:11px/1 var(--mono);color:var(--muted);">6</span></li>
|
|
136
|
+
<li>notifications <span class="badge gray">12</span></li>
|
|
137
|
+
</ul>
|
|
138
|
+
</div>
|
|
139
|
+
<div>
|
|
140
|
+
<h4>You</h4>
|
|
141
|
+
<ul>
|
|
142
|
+
<li class="active">your stats</li>
|
|
143
|
+
<li>mutuals & communities</li>
|
|
144
|
+
<li>blocked <span style="font:11px/1 var(--mono);color:var(--muted);">14</span></li>
|
|
145
|
+
<li>settings</li>
|
|
146
|
+
</ul>
|
|
147
|
+
</div>
|
|
148
|
+
<div>
|
|
149
|
+
<h4>Archive</h4>
|
|
150
|
+
<ul>
|
|
151
|
+
<li>past issues</li>
|
|
152
|
+
<li>expired matches <span style="font:11px/1 var(--mono);color:var(--muted);">7</span></li>
|
|
153
|
+
</ul>
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
<div class="status">
|
|
157
|
+
<div class="live">online · last match 11m ago</div>
|
|
158
|
+
<div style="opacity:0.7;margin-top:2px;">mutuals.v0.6.1</div>
|
|
159
|
+
</div>
|
|
160
|
+
</aside>
|
|
161
|
+
|
|
162
|
+
<main data-od-id="main">
|
|
163
|
+
<section class="grid" data-od-id="kpis">
|
|
164
|
+
<div class="stat">
|
|
165
|
+
<div class="label">Mutuals on file</div>
|
|
166
|
+
<div class="value"><em>1,842</em></div>
|
|
167
|
+
<p class="note"><span class="arrow">↑</span> 41 this wk · healthy growth.</p>
|
|
168
|
+
</div>
|
|
169
|
+
<div class="stat">
|
|
170
|
+
<div class="label">Replies in 24h</div>
|
|
171
|
+
<div class="value good">47</div>
|
|
172
|
+
<p class="note">the people who'd text back within a day.</p>
|
|
173
|
+
</div>
|
|
174
|
+
<div class="stat">
|
|
175
|
+
<div class="label">Communities</div>
|
|
176
|
+
<div class="value"><em>14</em></div>
|
|
177
|
+
<p class="note">4 active · 7 lurking · 3 inferred.</p>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
<div class="stat">
|
|
181
|
+
<div class="label">Match rate</div>
|
|
182
|
+
<div class="value good">14%</div>
|
|
183
|
+
<p class="note">above median for your cohort.</p>
|
|
184
|
+
</div>
|
|
185
|
+
<div class="stat">
|
|
186
|
+
<div class="label">2nd dates</div>
|
|
187
|
+
<div class="value"><em>3</em></div>
|
|
188
|
+
<p class="note">of 7 first dates this year. you commit.</p>
|
|
189
|
+
</div>
|
|
190
|
+
<div class="stat">
|
|
191
|
+
<div class="label">Exes in your circle</div>
|
|
192
|
+
<div class="value bad">4</div>
|
|
193
|
+
<p class="note">manageable. two are now friends.</p>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<div class="stat">
|
|
197
|
+
<div class="label">Shared blocks</div>
|
|
198
|
+
<div class="value"><em>214</em></div>
|
|
199
|
+
<p class="note">your single greatest compatibility asset.</p>
|
|
200
|
+
</div>
|
|
201
|
+
<div class="stat">
|
|
202
|
+
<div class="label">Avg response</div>
|
|
203
|
+
<div class="value"><em>2.1<span style="font-size:32px;">h</span></em></div>
|
|
204
|
+
<p class="note">too fast. wait 4–6h. they notice.</p>
|
|
205
|
+
</div>
|
|
206
|
+
<div class="stat">
|
|
207
|
+
<div class="label">Logged-off hrs</div>
|
|
208
|
+
<div class="value bad">4</div>
|
|
209
|
+
<p class="note">/ 168 this wk. we beg.</p>
|
|
210
|
+
</div>
|
|
211
|
+
</section>
|
|
212
|
+
|
|
213
|
+
<section class="panel" data-od-id="bars">
|
|
214
|
+
<div class="panel-head">
|
|
215
|
+
<h3>mutuals — <em>last 30 days</em></h3>
|
|
216
|
+
<div class="meta">↑ TRENDING UP · +3 CLOSE MUTUALS THIS MONTH · TWO VIA THE SAME OFFSITE</div>
|
|
217
|
+
</div>
|
|
218
|
+
<svg viewBox="0 0 720 220" preserveAspectRatio="none" aria-hidden="true">
|
|
219
|
+
<g fill="#1f1c14">
|
|
220
|
+
<rect x="6" y="170" width="14" height="50"></rect>
|
|
221
|
+
<rect x="30" y="158" width="14" height="62"></rect>
|
|
222
|
+
<rect x="54" y="146" width="14" height="74"></rect>
|
|
223
|
+
<rect x="78" y="172" width="14" height="48"></rect>
|
|
224
|
+
<rect x="102" y="162" width="14" height="58"></rect>
|
|
225
|
+
<rect x="126" y="138" width="14" height="82"></rect>
|
|
226
|
+
<rect x="150" y="120" width="14" height="100"></rect>
|
|
227
|
+
<rect x="174" y="148" width="14" height="72"></rect>
|
|
228
|
+
<rect x="198" y="132" width="14" height="88"></rect>
|
|
229
|
+
<rect x="222" y="108" width="14" height="112"></rect>
|
|
230
|
+
<rect x="246" y="118" width="14" height="102"></rect>
|
|
231
|
+
<rect x="270" y="154" width="14" height="66"></rect>
|
|
232
|
+
<rect x="294" y="130" width="14" height="90"></rect>
|
|
233
|
+
<rect x="318" y="100" width="14" height="120"></rect>
|
|
234
|
+
<rect x="342" y="86" width="14" height="134"></rect>
|
|
235
|
+
<rect x="366" y="116" width="14" height="104"></rect>
|
|
236
|
+
<rect x="390" y="138" width="14" height="82"></rect>
|
|
237
|
+
<rect x="414" y="92" width="14" height="128"></rect>
|
|
238
|
+
<rect x="438" y="74" width="14" height="146"></rect>
|
|
239
|
+
<rect x="462" y="106" width="14" height="114"></rect>
|
|
240
|
+
<rect x="486" y="84" width="14" height="136"></rect>
|
|
241
|
+
<rect x="510" y="124" width="14" height="96"></rect>
|
|
242
|
+
<rect x="534" y="98" width="14" height="122"></rect>
|
|
243
|
+
<rect x="558" y="68" width="14" height="152"></rect>
|
|
244
|
+
<rect x="582" y="80" width="14" height="140"></rect>
|
|
245
|
+
<rect x="606" y="46" width="14" height="174" fill="#c14a2b"></rect>
|
|
246
|
+
<rect x="630" y="60" width="14" height="160" fill="#c14a2b"></rect>
|
|
247
|
+
<rect x="654" y="92" width="14" height="128"></rect>
|
|
248
|
+
<rect x="678" y="76" width="14" height="144"></rect>
|
|
249
|
+
<rect x="702" y="90" width="14" height="130"></rect>
|
|
250
|
+
</g>
|
|
251
|
+
</svg>
|
|
252
|
+
<div class="axis"><span>MAR 18</span><span>MAR 25</span><span>APR 1</span><span>APR 8</span><span>APR 15</span><span>TODAY</span></div>
|
|
253
|
+
</section>
|
|
254
|
+
|
|
255
|
+
<section class="panel lower-panel" data-od-id="trend">
|
|
256
|
+
<div class="panel-head">
|
|
257
|
+
<h3>match rate — <em>last 12 weeks</em></h3>
|
|
258
|
+
<div class="meta">STEADY CLIMB FROM 8% → 14%. ATTRIBUTABLE TO ONE COMMUNITY JOIN (FOUNDERS WHO POST, WK 4).</div>
|
|
259
|
+
</div>
|
|
260
|
+
<p class="lede">A real climb, not a vibe. <b>One community join</b> moved your match rate more than four months of profile edits — keep posting from that circle, ship more, tweet less.</p>
|
|
261
|
+
</section>
|
|
262
|
+
</main>
|
|
263
|
+
</div>
|
|
264
|
+
</body>
|
|
265
|
+
</html>
|