@hiai-gg/hiai-opencode 0.2.1 → 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 +34 -38
- package/ARCHITECTURE.md +4 -3
- package/LICENSE.md +14 -0
- package/README.md +52 -21
- 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 +3 -3
- 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/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/storage.d.ts +1 -0
- 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/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/git-operations.d.ts +47 -0
- package/dist/hooks/token-budget.d.ts +30 -0
- package/dist/index.js +1185 -1078
- 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/skill-discovery.md +288 -0
- package/package.json +1 -1
- 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,183 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Testing Safety Alert</title>
|
|
7
|
+
<link rel="stylesheet" href="../../../assets/fonts.css">
|
|
8
|
+
<link rel="stylesheet" href="../../../assets/base.css">
|
|
9
|
+
<link rel="stylesheet" href="style.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body class="tpl-testing-safety-alert">
|
|
12
|
+
<div class="deck">
|
|
13
|
+
|
|
14
|
+
<!-- 1. COVER -->
|
|
15
|
+
<section class="slide is-active">
|
|
16
|
+
<div class="ts-stripe"></div>
|
|
17
|
+
<div class="ts-chrome"><span class="ts-alert-tag">ai safety · 高优先级</span><span class="ts-page">01 / 08</span></div>
|
|
18
|
+
<div class="ts-kicker">2026 年最重要的一条判断</div>
|
|
19
|
+
<h1 class="ts-h1">别再追问<br><span class="strike">AI 会不会干活</span><br>开始问:<span class="red">它出事谁负责</span></h1>
|
|
20
|
+
<p class="ts-sub">AI 出错的代价,不再是一次 bad response 这么简单 —— 它可能一次性写 300 份工单、提 80 个 PR、发 5000 封邮件。</p>
|
|
21
|
+
<div class="ts-alert-box">
|
|
22
|
+
<h3>风险已经规模化</h3>
|
|
23
|
+
<p>「做错」成本 × N;「做对」收益 × N。<br>这就是为什么 <b>测试、验收、安全、风控</b> 会变成未来 3 年最贵的能力。</p>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="ts-stripe-b"></div>
|
|
26
|
+
<div class="ts-footer"><span>AI SAFETY BRIEF · LEWIS · 2026.04</span><span>01 / 08</span></div>
|
|
27
|
+
</section>
|
|
28
|
+
|
|
29
|
+
<!-- 2. SECTION -->
|
|
30
|
+
<section class="slide">
|
|
31
|
+
<div class="ts-stripe"></div>
|
|
32
|
+
<div class="ts-chrome"><span class="ts-alert-tag amber">section · risk 分级</span><span class="ts-page">02 / 08</span></div>
|
|
33
|
+
<div style="margin:auto 0">
|
|
34
|
+
<div class="ts-kicker">Chapter One</div>
|
|
35
|
+
<h1 class="ts-h1" style="font-size:130px">先分 <span class="red">等级</span></h1>
|
|
36
|
+
<p class="ts-sub" style="font-size:28px">不是所有 AI 行为都同等危险。<br>先把「可撤销」和「不可撤销」分开,再谈流程。</p>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="ts-stripe-b"></div>
|
|
39
|
+
<div class="ts-footer"><span>section · level taxonomy</span><span>02 / 08</span></div>
|
|
40
|
+
</section>
|
|
41
|
+
|
|
42
|
+
<!-- 3. CONTENT risk levels -->
|
|
43
|
+
<section class="slide">
|
|
44
|
+
<div class="ts-stripe"></div>
|
|
45
|
+
<div class="ts-chrome"><span class="ts-alert-tag">风险分级 · 3 levels</span><span class="ts-page">03 / 08</span></div>
|
|
46
|
+
<h2 class="ts-h2">三档风险,三种处理</h2>
|
|
47
|
+
<div class="ts-grid-3">
|
|
48
|
+
<div class="ts-card" style="border-top:4px solid var(--ts-green)"><div class="lbl">L1 · 绿色</div><h4>可撤销</h4><p>写 draft、生成图片、起草文档。<br>错了 Ctrl+Z,零代价。<br><b style="color:var(--ts-green)">策略:放开跑</b></p></div>
|
|
49
|
+
<div class="ts-card" style="border-top:4px solid var(--ts-amber)"><div class="lbl">L2 · 琥珀</div><h4>半可撤销</h4><p>发 draft 邮件、提 PR、改 staging 数据。<br>错了要道歉 / 回滚。<br><b style="color:var(--ts-amber)">策略:人工复核</b></p></div>
|
|
50
|
+
<div class="ts-card" style="border-top:4px solid var(--ts-red)"><div class="lbl">L3 · 红色</div><h4>不可撤销</h4><p>发真实邮件、付款、删库、删 prod 数据。<br>错了就真错了。<br><b style="color:var(--ts-red)">策略:硬卡 + 双人审</b></p></div>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="ts-alert-box amber">
|
|
53
|
+
<h3>绝不要让 agent 自己升级</h3>
|
|
54
|
+
<p>L1 的任务不能自己变成 L2。授权必须是显式的、可撤销的、带过期时间的。</p>
|
|
55
|
+
</div>
|
|
56
|
+
<div class="ts-stripe-b"></div>
|
|
57
|
+
<div class="ts-footer"><span>risk · 3 levels</span><span>03 / 08</span></div>
|
|
58
|
+
</section>
|
|
59
|
+
|
|
60
|
+
<!-- 4. CODE -->
|
|
61
|
+
<section class="slide">
|
|
62
|
+
<div class="ts-stripe"></div>
|
|
63
|
+
<div class="ts-chrome"><span class="ts-alert-tag">policy as code</span><span class="ts-page">04 / 08</span></div>
|
|
64
|
+
<div class="ts-kicker">别用文档管规则 · 用代码管规则</div>
|
|
65
|
+
<h2 class="ts-h2">三十行 YAML,<br><span class="ts-highlight-red">红线硬卡</span></h2>
|
|
66
|
+
<pre class="ts-codebox"><span class="cm"># safety-policy.yaml · compiled → runtime guard</span>
|
|
67
|
+
<span class="kw">level_1_allow</span>:
|
|
68
|
+
- tools: [<span class="st">write_draft</span>, <span class="st">generate_image</span>, <span class="st">read_docs</span>]
|
|
69
|
+
|
|
70
|
+
<span class="kw">level_2_require_review</span>:
|
|
71
|
+
- tools: [<span class="st">send_email_draft</span>, <span class="st">open_pr</span>, <span class="st">write_staging_db</span>]
|
|
72
|
+
reviewer: <span class="st">human</span>
|
|
73
|
+
|
|
74
|
+
<span class="kw">level_3_hard_block</span>:
|
|
75
|
+
- tools: [<span class="st">send_real_email</span>, <span class="st">transfer_money</span>, <span class="st">delete_prod</span>]
|
|
76
|
+
unless: <span class="st">two_human_sign_off AND within_24h</span>
|
|
77
|
+
|
|
78
|
+
<span class="bad">forbidden_always</span>:
|
|
79
|
+
- <span class="bad">"rm -rf /"</span>
|
|
80
|
+
- <span class="bad">"drop table"</span>
|
|
81
|
+
- <span class="bad">"force push origin main"</span></pre>
|
|
82
|
+
<div class="ts-stripe-b"></div>
|
|
83
|
+
<div class="ts-footer"><span>policy · yaml-as-guard</span><span>04 / 08</span></div>
|
|
84
|
+
</section>
|
|
85
|
+
|
|
86
|
+
<!-- 5. CHART -->
|
|
87
|
+
<section class="slide">
|
|
88
|
+
<div class="ts-stripe"></div>
|
|
89
|
+
<div class="ts-chrome"><span class="ts-alert-tag amber">incident report · q1</span><span class="ts-page">05 / 08</span></div>
|
|
90
|
+
<h2 class="ts-h2">我们 Q1 的 <span class="red">12 起 AI 事故</span></h2>
|
|
91
|
+
<p class="ts-sub">幸好全部捕获在 staging。但每一起都能上生产。</p>
|
|
92
|
+
<svg viewBox="0 0 1040 360" style="width:100%;max-width:1040px;margin-top:18px" xmlns="http://www.w3.org/2000/svg">
|
|
93
|
+
<g font-family="Inter,sans-serif" font-size="14" fill="#4a4955">
|
|
94
|
+
<line x1="70" y1="320" x2="1000" y2="320" stroke="#eaecf3" stroke-width="2"/>
|
|
95
|
+
<!-- month columns: Jan Feb Mar, L1/L2/L3 stacked -->
|
|
96
|
+
<g transform="translate(120,0)">
|
|
97
|
+
<rect x="0" y="220" width="60" height="100" fill="#067647"/>
|
|
98
|
+
<rect x="0" y="160" width="60" height="60" fill="#d97706"/>
|
|
99
|
+
<rect x="0" y="130" width="60" height="30" fill="#e0314a"/>
|
|
100
|
+
<text x="30" y="345" text-anchor="middle" font-weight="700">Jan</text>
|
|
101
|
+
<text x="30" y="120" text-anchor="middle" font-weight="800" fill="#14141a">5</text>
|
|
102
|
+
</g>
|
|
103
|
+
<g transform="translate(320,0)">
|
|
104
|
+
<rect x="0" y="240" width="60" height="80" fill="#067647"/>
|
|
105
|
+
<rect x="0" y="200" width="60" height="40" fill="#d97706"/>
|
|
106
|
+
<rect x="0" y="180" width="60" height="20" fill="#e0314a"/>
|
|
107
|
+
<text x="30" y="345" text-anchor="middle" font-weight="700">Feb</text>
|
|
108
|
+
<text x="30" y="170" text-anchor="middle" font-weight="800" fill="#14141a">3</text>
|
|
109
|
+
</g>
|
|
110
|
+
<g transform="translate(520,0)">
|
|
111
|
+
<rect x="0" y="250" width="60" height="70" fill="#067647"/>
|
|
112
|
+
<rect x="0" y="220" width="60" height="30" fill="#d97706"/>
|
|
113
|
+
<rect x="0" y="210" width="60" height="10" fill="#e0314a"/>
|
|
114
|
+
<text x="30" y="345" text-anchor="middle" font-weight="700">Mar</text>
|
|
115
|
+
<text x="30" y="200" text-anchor="middle" font-weight="800" fill="#14141a">4</text>
|
|
116
|
+
</g>
|
|
117
|
+
<!-- legend -->
|
|
118
|
+
<g transform="translate(720,60)">
|
|
119
|
+
<rect x="0" y="0" width="16" height="16" fill="#e0314a"/><text x="24" y="13" font-weight="700">L3 不可撤销 (3)</text>
|
|
120
|
+
<rect x="0" y="26" width="16" height="16" fill="#d97706"/><text x="24" y="39" font-weight="700">L2 需复核 (4)</text>
|
|
121
|
+
<rect x="0" y="52" width="16" height="16" fill="#067647"/><text x="24" y="65" font-weight="700">L1 可恢复 (5)</text>
|
|
122
|
+
<text x="0" y="100" font-size="13" fill="#8a8892">全部被 safety-policy 在 runtime 拦下,</text>
|
|
123
|
+
<text x="0" y="118" font-size="13" fill="#8a8892">未进 prod。但 3 起 L3 非常惊险。</text>
|
|
124
|
+
</g>
|
|
125
|
+
</g>
|
|
126
|
+
</svg>
|
|
127
|
+
<div class="ts-stripe-b"></div>
|
|
128
|
+
<div class="ts-footer"><span>incident · q1 summary</span><span>05 / 08</span></div>
|
|
129
|
+
</section>
|
|
130
|
+
|
|
131
|
+
<!-- 6. CHECKLIST -->
|
|
132
|
+
<section class="slide">
|
|
133
|
+
<div class="ts-stripe"></div>
|
|
134
|
+
<div class="ts-chrome"><span class="ts-alert-tag green">red-team checklist</span><span class="ts-page">06 / 08</span></div>
|
|
135
|
+
<h2 class="ts-h2">上线前 <span class="red">必过 7 道题</span></h2>
|
|
136
|
+
<div class="ts-checklist">
|
|
137
|
+
<div class="ts-check ok"><div class="box">✓</div><div class="txt">它能删除东西吗?有人类 review 吗?能 60 秒内回滚吗?</div></div>
|
|
138
|
+
<div class="ts-check ok"><div class="box">✓</div><div class="txt">它的 prompt 注入能让它越权吗?(跑过红队提示词)</div></div>
|
|
139
|
+
<div class="ts-check"><div class="box">!</div><div class="txt">它处理 PII 吗?日志里是不是也有 PII?</div></div>
|
|
140
|
+
<div class="ts-check ok"><div class="box">✓</div><div class="txt">上下游失败时,它会不会开始乱改其他资源?</div></div>
|
|
141
|
+
<div class="ts-check"><div class="box">!</div><div class="txt">并发 100 个 agent 一起跑会不会死锁?</div></div>
|
|
142
|
+
<div class="ts-check ok"><div class="box">✓</div><div class="txt">错了能不能 <b>立刻</b> 停?(kill switch 能 2 秒内生效吗)</div></div>
|
|
143
|
+
<div class="ts-check"><div class="box">!</div><div class="txt">出事时有没有人值班?值班手册有没有 agent 专属章节?</div></div>
|
|
144
|
+
</div>
|
|
145
|
+
<div class="ts-stripe-b"></div>
|
|
146
|
+
<div class="ts-footer"><span>checklist · pre-launch</span><span>06 / 08</span></div>
|
|
147
|
+
</section>
|
|
148
|
+
|
|
149
|
+
<!-- 7. CTA -->
|
|
150
|
+
<section class="slide">
|
|
151
|
+
<div class="ts-stripe"></div>
|
|
152
|
+
<div class="ts-chrome"><span class="ts-alert-tag green">今晚就能动</span><span class="ts-page">07 / 08</span></div>
|
|
153
|
+
<h2 class="ts-h2">今晚先做 <span class="ts-highlight-red">三件事</span></h2>
|
|
154
|
+
<div class="ts-grid-3">
|
|
155
|
+
<div class="ts-card"><div class="lbl">1 · 分级</div><h4>给你的 agent<br>写 L1/L2/L3</h4><p>把所有工具列出来,标上等级。不标的一律按 L3。</p></div>
|
|
156
|
+
<div class="ts-card"><div class="lbl">2 · 写 policy</div><h4>policy.yaml<br>接 runtime</h4><p>不要信 prompt 里的 "be careful",要信执行层的硬卡。</p></div>
|
|
157
|
+
<div class="ts-card"><div class="lbl">3 · kill switch</div><h4>红按钮<br>能在 2 秒内停</h4><p>CTO / on-call 都得知道怎么按。演练一次。</p></div>
|
|
158
|
+
</div>
|
|
159
|
+
<div class="ts-alert-box green">
|
|
160
|
+
<h3>真正的安全不是 prompt,是流程</h3>
|
|
161
|
+
<p>prompt 会被注入,流程不会。—— 把保护放在不可被说服的一层。</p>
|
|
162
|
+
</div>
|
|
163
|
+
<div class="ts-stripe-b"></div>
|
|
164
|
+
<div class="ts-footer"><span>cta · tonight</span><span>07 / 08</span></div>
|
|
165
|
+
</section>
|
|
166
|
+
|
|
167
|
+
<!-- 8. THANKS -->
|
|
168
|
+
<section class="slide">
|
|
169
|
+
<div class="ts-stripe"></div>
|
|
170
|
+
<div class="ts-chrome"><span class="ts-alert-tag amber">please stay safe</span><span class="ts-page">08 / 08</span></div>
|
|
171
|
+
<div style="margin:auto 0">
|
|
172
|
+
<div class="ts-kicker">end of brief</div>
|
|
173
|
+
<h1 class="ts-h1" style="font-size:140px">谢谢 <span class="red">·</span> thanks</h1>
|
|
174
|
+
<p class="ts-sub" style="font-size:24px">policy.yaml 模板、红队 prompt 清单、事故复盘模板 —— 评论区扣「安全」。</p>
|
|
175
|
+
</div>
|
|
176
|
+
<div class="ts-stripe-b"></div>
|
|
177
|
+
<div class="ts-footer"><span>end of brief</span><span>08 / 08</span></div>
|
|
178
|
+
</section>
|
|
179
|
+
|
|
180
|
+
</div>
|
|
181
|
+
<script src="../../../assets/runtime.js"></script>
|
|
182
|
+
</body>
|
|
183
|
+
</html>
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* testing-safety-alert — 红/琥珀 警示风 · 白底高对比 */
|
|
2
|
+
.tpl-testing-safety-alert{
|
|
3
|
+
--ts-bg:#fffaf7;
|
|
4
|
+
--ts-ink:#14141a;
|
|
5
|
+
--ts-ink2:#4a4955;
|
|
6
|
+
--ts-muted:#8a8892;
|
|
7
|
+
--ts-line:rgba(20,20,26,.08);
|
|
8
|
+
--ts-red:#e0314a;
|
|
9
|
+
--ts-red-soft:#ffecee;
|
|
10
|
+
--ts-amber:#d97706;
|
|
11
|
+
--ts-amber-soft:#fff5e6;
|
|
12
|
+
--ts-green:#067647;
|
|
13
|
+
--ts-green-soft:#e8f8ee;
|
|
14
|
+
background:var(--ts-bg);
|
|
15
|
+
color:var(--ts-ink);
|
|
16
|
+
font-family:'Inter','Noto Sans SC','PingFang SC',-apple-system,sans-serif;
|
|
17
|
+
}
|
|
18
|
+
.tpl-testing-safety-alert .slide{background:var(--ts-bg);color:var(--ts-ink);padding:64px 84px}
|
|
19
|
+
.tpl-testing-safety-alert .ts-stripe{position:absolute;top:0;left:0;right:0;height:14px;background:repeating-linear-gradient(45deg,var(--ts-red) 0 18px,#111318 18px 36px)}
|
|
20
|
+
.tpl-testing-safety-alert .ts-stripe-b{position:absolute;bottom:0;left:0;right:0;height:6px;background:repeating-linear-gradient(45deg,var(--ts-red) 0 10px,#111318 10px 20px);opacity:.6}
|
|
21
|
+
.tpl-testing-safety-alert .ts-chrome{display:flex;justify-content:space-between;align-items:center;margin:22px 0 16px}
|
|
22
|
+
.tpl-testing-safety-alert .ts-alert-tag{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:10px;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:var(--ts-red);color:#fff;box-shadow:0 6px 18px rgba(224,49,74,.28)}
|
|
23
|
+
.tpl-testing-safety-alert .ts-alert-tag::before{content:'⚠';font-size:16px}
|
|
24
|
+
.tpl-testing-safety-alert .ts-alert-tag.amber{background:var(--ts-amber);box-shadow:0 6px 18px rgba(217,119,6,.25)}
|
|
25
|
+
.tpl-testing-safety-alert .ts-alert-tag.green{background:var(--ts-green);box-shadow:0 6px 18px rgba(6,118,71,.22)}
|
|
26
|
+
.tpl-testing-safety-alert .ts-alert-tag.green::before{content:'✓'}
|
|
27
|
+
.tpl-testing-safety-alert .ts-page{font-size:13px;color:var(--ts-muted);letter-spacing:.15em;font-weight:700}
|
|
28
|
+
.tpl-testing-safety-alert .ts-kicker{font-size:15px;font-weight:700;color:var(--ts-red);letter-spacing:.06em;margin-bottom:10px;text-transform:uppercase}
|
|
29
|
+
.tpl-testing-safety-alert .ts-h1{font-size:88px;font-weight:900;line-height:1.04;letter-spacing:-2px;margin:10px 0 16px;color:var(--ts-ink)}
|
|
30
|
+
.tpl-testing-safety-alert .ts-h1 .red{color:var(--ts-red)}
|
|
31
|
+
.tpl-testing-safety-alert .ts-h1 .strike{position:relative;display:inline-block}
|
|
32
|
+
.tpl-testing-safety-alert .ts-h1 .strike::after{content:'';position:absolute;left:-4%;right:-4%;top:50%;height:10px;background:var(--ts-red);transform:skewX(-12deg);opacity:.85}
|
|
33
|
+
.tpl-testing-safety-alert .ts-h2{font-size:54px;font-weight:900;line-height:1.1;letter-spacing:-1px;margin:0 0 14px}
|
|
34
|
+
.tpl-testing-safety-alert .ts-sub{font-size:22px;line-height:1.5;color:var(--ts-ink2);max-width:880px;margin-top:10px}
|
|
35
|
+
.tpl-testing-safety-alert .ts-highlight-red{display:inline-block;padding:4px 14px;background:var(--ts-red);color:#fff;border-radius:8px;font-weight:800}
|
|
36
|
+
.tpl-testing-safety-alert .ts-highlight-amber{display:inline-block;padding:4px 14px;background:var(--ts-amber-soft);color:var(--ts-amber);border-radius:8px;font-weight:800;border:1px solid rgba(217,119,6,.2)}
|
|
37
|
+
.tpl-testing-safety-alert .ts-highlight-green{display:inline-block;padding:4px 14px;background:var(--ts-green-soft);color:var(--ts-green);border-radius:8px;font-weight:800;border:1px solid rgba(6,118,71,.2)}
|
|
38
|
+
.tpl-testing-safety-alert .ts-alert-box{border:2px solid var(--ts-red);border-radius:18px;padding:26px 30px;background:linear-gradient(180deg,#fff 0%,var(--ts-red-soft) 100%);box-shadow:0 14px 36px rgba(224,49,74,.14);margin-top:24px;position:relative}
|
|
39
|
+
.tpl-testing-safety-alert .ts-alert-box::before{content:'';position:absolute;top:-11px;left:24px;width:22px;height:22px;background:var(--ts-red);border-radius:50%;box-shadow:0 0 0 6px rgba(224,49,74,.2)}
|
|
40
|
+
.tpl-testing-safety-alert .ts-alert-box.amber{border-color:var(--ts-amber);background:linear-gradient(180deg,#fff 0%,var(--ts-amber-soft) 100%);box-shadow:0 14px 36px rgba(217,119,6,.14)}
|
|
41
|
+
.tpl-testing-safety-alert .ts-alert-box.amber::before{background:var(--ts-amber);box-shadow:0 0 0 6px rgba(217,119,6,.2)}
|
|
42
|
+
.tpl-testing-safety-alert .ts-alert-box.green{border-color:var(--ts-green);background:linear-gradient(180deg,#fff 0%,var(--ts-green-soft) 100%);box-shadow:0 14px 36px rgba(6,118,71,.14)}
|
|
43
|
+
.tpl-testing-safety-alert .ts-alert-box.green::before{background:var(--ts-green);box-shadow:0 0 0 6px rgba(6,118,71,.2)}
|
|
44
|
+
.tpl-testing-safety-alert .ts-alert-box h3{font-size:34px;font-weight:900;margin:0 0 10px}
|
|
45
|
+
.tpl-testing-safety-alert .ts-alert-box p{font-size:17px;line-height:1.6;color:var(--ts-ink2);margin:0}
|
|
46
|
+
.tpl-testing-safety-alert .ts-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
|
|
47
|
+
.tpl-testing-safety-alert .ts-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:20px}
|
|
48
|
+
.tpl-testing-safety-alert .ts-card{border:1px solid var(--ts-line);border-radius:16px;padding:22px 24px;background:#fff;box-shadow:0 6px 20px rgba(17,19,24,.04)}
|
|
49
|
+
.tpl-testing-safety-alert .ts-card .lbl{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ts-muted);margin-bottom:8px}
|
|
50
|
+
.tpl-testing-safety-alert .ts-card h4{font-size:26px;font-weight:900;line-height:1.2;margin-bottom:8px}
|
|
51
|
+
.tpl-testing-safety-alert .ts-card p{font-size:14px;color:var(--ts-ink2);line-height:1.55}
|
|
52
|
+
.tpl-testing-safety-alert .ts-checklist{display:flex;flex-direction:column;gap:12px;margin-top:20px;max-width:880px}
|
|
53
|
+
.tpl-testing-safety-alert .ts-check{display:flex;gap:16px;align-items:flex-start;padding:16px 20px;border:1px solid var(--ts-line);border-radius:14px;background:#fff}
|
|
54
|
+
.tpl-testing-safety-alert .ts-check .box{flex:0 0 32px;height:32px;border-radius:8px;border:2px solid var(--ts-red);display:grid;place-items:center;font-weight:900;color:var(--ts-red);background:var(--ts-red-soft)}
|
|
55
|
+
.tpl-testing-safety-alert .ts-check.ok .box{border-color:var(--ts-green);color:var(--ts-green);background:var(--ts-green-soft)}
|
|
56
|
+
.tpl-testing-safety-alert .ts-check .txt{font-size:18px;line-height:1.5;font-weight:600}
|
|
57
|
+
.tpl-testing-safety-alert .ts-codebox{background:#141418;color:#fff5ea;border-radius:14px;padding:22px 26px;font-family:'JetBrains Mono',monospace;font-size:14px;line-height:1.85;margin-top:20px;border-left:6px solid var(--ts-red)}
|
|
58
|
+
.tpl-testing-safety-alert .ts-codebox .cm{color:#7a756d}
|
|
59
|
+
.tpl-testing-safety-alert .ts-codebox .kw{color:#ffb38a}
|
|
60
|
+
.tpl-testing-safety-alert .ts-codebox .st{color:#b3e6c2}
|
|
61
|
+
.tpl-testing-safety-alert .ts-codebox .bad{color:#ff9aa8;font-weight:700}
|
|
62
|
+
.tpl-testing-safety-alert .ts-footer{position:absolute;left:84px;right:84px;bottom:36px;display:flex;justify-content:space-between;font-size:12px;color:var(--ts-muted);letter-spacing:.1em}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# weekly-report · 周报
|
|
2
|
+
|
|
3
|
+
7-slide team weekly report: cover (week range), KPI grid, shipped items, a metric trend chart, blockers, next-week plan, thanks.
|
|
4
|
+
|
|
5
|
+
Corporate-clarity palette: near-white background, blue→teal accent, ruled dividers and tiny mono tags (`FEAT`, `FIX`, `EXP`, `INFRA`). Data-dense, readable at a glance, and easy to skim in a standup.
|
|
6
|
+
|
|
7
|
+
**Use when:** team weekly readouts, squad reviews, skip-level updates, cross-team "what shipped this week" mails.
|
|
8
|
+
**Feel:** Linear changelog meets a McKinsey KPI deck — serious, measured, actionable.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
5
|
+
<title>Growth Squad · Weekly W15</title>
|
|
6
|
+
<link rel="stylesheet" href="../../../assets/fonts.css">
|
|
7
|
+
<link rel="stylesheet" href="../../../assets/base.css">
|
|
8
|
+
<link rel="stylesheet" href="../../../assets/animations/animations.css">
|
|
9
|
+
<link rel="stylesheet" href="style.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body class="tpl-weekly-report">
|
|
12
|
+
<div class="deck">
|
|
13
|
+
|
|
14
|
+
<!-- 1. Cover -->
|
|
15
|
+
<section class="slide" data-title="Cover">
|
|
16
|
+
<div class="cover-head">
|
|
17
|
+
<div class="logo">Growth Squad</div>
|
|
18
|
+
<div class="week-chip">W15 · 2026-04-07 → 2026-04-13</div>
|
|
19
|
+
</div>
|
|
20
|
+
<p class="kicker">WEEKLY REPORT</p>
|
|
21
|
+
<h1 class="h1 mt-s">本周:付费转化率<br>回到了 <span style="color:var(--accent)">3.8%</span>。</h1>
|
|
22
|
+
<p class="lede mt-m">6 个发布,3 个实验收敛,1 个阻塞项升级。整体健康。</p>
|
|
23
|
+
<div class="deck-footer"><span>Prepared by @lewis · reviewed by @may</span><span class="slide-number" data-current="1" data-total="7"></span></div>
|
|
24
|
+
</section>
|
|
25
|
+
|
|
26
|
+
<!-- 2. KPI -->
|
|
27
|
+
<section class="slide" data-title="KPIs">
|
|
28
|
+
<p class="kicker">HIGHLIGHTS · KPIs</p>
|
|
29
|
+
<h2 class="h2">本周核心指标</h2>
|
|
30
|
+
<div class="grid g4 mt-l">
|
|
31
|
+
<div class="kpi good"><div class="label">Paid conv.</div><div class="value">3.82%</div><div class="delta up">▲ +0.4 pts WoW</div></div>
|
|
32
|
+
<div class="kpi good"><div class="label">MRR</div><div class="value">$148k</div><div class="delta up">▲ +6.1%</div></div>
|
|
33
|
+
<div class="kpi"><div class="label">Signups</div><div class="value">12,430</div><div class="delta flat">— +0.3%</div></div>
|
|
34
|
+
<div class="kpi bad"><div class="label">D7 retention</div><div class="value">41%</div><div class="delta down">▼ -1.8 pts</div></div>
|
|
35
|
+
<div class="kpi good"><div class="label">NPS</div><div class="value">64</div><div class="delta up">▲ +3</div></div>
|
|
36
|
+
<div class="kpi"><div class="label">Support tickets</div><div class="value">318</div><div class="delta flat">— -12</div></div>
|
|
37
|
+
<div class="kpi warn"><div class="label">p95 latency</div><div class="value">412ms</div><div class="delta down">▼ +38ms</div></div>
|
|
38
|
+
<div class="kpi good"><div class="label">Deploys</div><div class="value">37</div><div class="delta up">▲ +9</div></div>
|
|
39
|
+
</div>
|
|
40
|
+
</section>
|
|
41
|
+
|
|
42
|
+
<!-- 3. Shipped -->
|
|
43
|
+
<section class="slide" data-title="Shipped">
|
|
44
|
+
<p class="kicker">SHIPPED THIS WEEK · 6 items</p>
|
|
45
|
+
<h2 class="h2">Shipped</h2>
|
|
46
|
+
<div class="mt-l" style="max-width:980px">
|
|
47
|
+
<div class="ship-item"><span class="tag feat">FEAT</span><div><b>New onboarding checklist v3</b><p class="dim" style="font-size:13px;margin:2px 0 0">4-step checklist replaces the old 7-step modal. A/B won +18% activation.</p></div><span class="owner">@may</span></div>
|
|
48
|
+
<div class="ship-item"><span class="tag feat">FEAT</span><div><b>Stripe Tax auto-filing</b><p class="dim" style="font-size:13px;margin:2px 0 0">Quarterly filings now handled for 12 US states via Stripe Tax API.</p></div><span class="owner">@raj</span></div>
|
|
49
|
+
<div class="ship-item"><span class="tag exp">EXP</span><div><b>Pricing page hero test</b><p class="dim" style="font-size:13px;margin:2px 0 0">"From $29" vs "Free trial" headline. Free-trial wins +22% click-through.</p></div><span class="owner">@lewis</span></div>
|
|
50
|
+
<div class="ship-item"><span class="tag fix">FIX</span><div><b>Edge case in SSO redirect</b><p class="dim" style="font-size:13px;margin:2px 0 0">Google Workspace users with custom domains now land on the correct workspace.</p></div><span class="owner">@eli</span></div>
|
|
51
|
+
<div class="ship-item"><span class="tag infra">INFRA</span><div><b>Postgres 16 upgrade</b><p class="dim" style="font-size:13px;margin:2px 0 0">Zero-downtime migration. Query p50 down 14%, p95 down 9%.</p></div><span class="owner">@raj</span></div>
|
|
52
|
+
<div class="ship-item"><span class="tag feat">FEAT</span><div><b>Referral rewards v1</b><p class="dim" style="font-size:13px;margin:2px 0 0">Both sides get 1 month free. Dashboard + email flow live behind flag.</p></div><span class="owner">@may</span></div>
|
|
53
|
+
</div>
|
|
54
|
+
</section>
|
|
55
|
+
|
|
56
|
+
<!-- 4. Metrics chart -->
|
|
57
|
+
<section class="slide" data-title="Metrics">
|
|
58
|
+
<p class="kicker">METRIC DEEP-DIVE</p>
|
|
59
|
+
<h2 class="h2">Paid conversion, last 8 weeks</h2>
|
|
60
|
+
<div class="chart mt-l">
|
|
61
|
+
<div class="row" style="justify-content:space-between"><h4>Paid conv. rate · weekly</h4><span class="pill" style="background:var(--surface-2);color:var(--text-2)">target: 4.0%</span></div>
|
|
62
|
+
<div class="chart-bars">
|
|
63
|
+
<div class="col"><div class="b" data-v="3.1%" style="height:58%"></div><div class="lbl">W08</div></div>
|
|
64
|
+
<div class="col"><div class="b" data-v="3.3%" style="height:64%"></div><div class="lbl">W09</div></div>
|
|
65
|
+
<div class="col"><div class="b" data-v="3.5%" style="height:72%"></div><div class="lbl">W10</div></div>
|
|
66
|
+
<div class="col"><div class="b" data-v="3.6%" style="height:75%"></div><div class="lbl">W11</div></div>
|
|
67
|
+
<div class="col"><div class="b" data-v="3.4%" style="height:68%"></div><div class="lbl">W12</div></div>
|
|
68
|
+
<div class="col"><div class="b" data-v="3.0%" style="height:55%"></div><div class="lbl">W13</div></div>
|
|
69
|
+
<div class="col"><div class="b" data-v="3.4%" style="height:68%"></div><div class="lbl">W14</div></div>
|
|
70
|
+
<div class="col"><div class="b" data-v="3.8%" style="height:88%"></div><div class="lbl">W15</div></div>
|
|
71
|
+
</div>
|
|
72
|
+
<p class="dim mt-m" style="font-size:13px;margin-top:36px">Drop in W13 tracked to a broken Stripe webhook (fixed W14). Rebound in W15 is driven by the new onboarding checklist.</p>
|
|
73
|
+
</div>
|
|
74
|
+
</section>
|
|
75
|
+
|
|
76
|
+
<!-- 5. Blockers -->
|
|
77
|
+
<section class="slide" data-title="Blockers">
|
|
78
|
+
<p class="kicker">BLOCKERS · 3 items</p>
|
|
79
|
+
<h2 class="h2">Needs attention</h2>
|
|
80
|
+
<div class="mt-l" style="max-width:900px">
|
|
81
|
+
<div class="blocker">
|
|
82
|
+
<h4>p95 latency regressed to 412ms (+38ms)</h4>
|
|
83
|
+
<p>Traced to the new recommender service under load. Adding caching layer + connection pooling.</p>
|
|
84
|
+
<div class="meta">owner: @raj · ETA: W16 Wed · severity: medium</div>
|
|
85
|
+
</div>
|
|
86
|
+
<div class="blocker">
|
|
87
|
+
<h4>Apple Pay disabled in EU for 3 days</h4>
|
|
88
|
+
<p>Stripe credential rotation wasn't synced to the EU account. Fixed, but cost ~$4.2k in lost checkouts.</p>
|
|
89
|
+
<div class="meta">owner: @eli · severity: high · postmortem in progress</div>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="blocker">
|
|
92
|
+
<h4>D7 retention down 1.8 points</h4>
|
|
93
|
+
<p>Cohort analysis shows it's isolated to the free-trial pricing test. Need to decide: kill test, or push through W16.</p>
|
|
94
|
+
<div class="meta">owner: @lewis · needs decision from @may by Monday</div>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</section>
|
|
98
|
+
|
|
99
|
+
<!-- 6. Next week -->
|
|
100
|
+
<section class="slide" data-title="Next Week">
|
|
101
|
+
<p class="kicker">NEXT WEEK · W16 plan</p>
|
|
102
|
+
<h2 class="h2">下周重点</h2>
|
|
103
|
+
<div class="mt-l" style="max-width:960px">
|
|
104
|
+
<div class="next-row"><div class="owner">@raj</div><div class="task"><b>Ship recommender cache layer</b><span>blocker · must land Wed</span></div></div>
|
|
105
|
+
<div class="next-row"><div class="owner">@may</div><div class="task"><b>Referral rewards · flag rollout to 100%</b><span>milestone · targets +3% WoW signups</span></div></div>
|
|
106
|
+
<div class="next-row"><div class="owner">@lewis</div><div class="task"><b>Pricing test: decision doc + readout</b><span>deadline Mon noon</span></div></div>
|
|
107
|
+
<div class="next-row"><div class="owner">@eli</div><div class="task"><b>Apple Pay postmortem + runbook update</b><span>include in W16 eng review</span></div></div>
|
|
108
|
+
<div class="next-row"><div class="owner">squad</div><div class="task"><b>Q2 OKR planning offsite</b><span>Thu 2–5pm · async pre-reads Wed</span></div></div>
|
|
109
|
+
</div>
|
|
110
|
+
</section>
|
|
111
|
+
|
|
112
|
+
<!-- 7. Thanks -->
|
|
113
|
+
<section class="slide center tc" data-title="Thanks">
|
|
114
|
+
<div>
|
|
115
|
+
<p class="kicker">FIN · week 15</p>
|
|
116
|
+
<h1 class="h1" style="font-size:100px">Thanks, team 🫶</h1>
|
|
117
|
+
<p class="lede" style="margin:16px auto">Solid week. Rebound earned, not luck.</p>
|
|
118
|
+
<div class="row mt-l" style="justify-content:center;gap:16px">
|
|
119
|
+
<span class="week-chip">Next report: Mon W16</span>
|
|
120
|
+
<span class="week-chip">questions → #growth-squad</span>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
</section>
|
|
124
|
+
|
|
125
|
+
</div>
|
|
126
|
+
<script src="../../../assets/runtime.js"></script>
|
|
127
|
+
</body></html>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/* weekly-report — corporate clarity */
|
|
2
|
+
.tpl-weekly-report{
|
|
3
|
+
--bg:#fafbfc;--bg-soft:#f3f5f9;--surface:#ffffff;--surface-2:#f3f5f9;
|
|
4
|
+
--border:rgba(22,30,55,.09);--border-strong:rgba(22,30,55,.2);
|
|
5
|
+
--text-1:#161e37;--text-2:#50586b;--text-3:#8b92a5;
|
|
6
|
+
--accent:#2e63eb;--accent-2:#0ea5b5;--accent-3:#f59e0b;
|
|
7
|
+
--good:#10b981;--warn:#f59e0b;--bad:#ef4444;
|
|
8
|
+
--grad:linear-gradient(120deg,#2e63eb,#0ea5b5);
|
|
9
|
+
--radius:14px;--radius-lg:18px;
|
|
10
|
+
--shadow:0 6px 20px rgba(22,30,55,.06),0 1px 3px rgba(22,30,55,.04);
|
|
11
|
+
font-family:'Inter','Noto Sans SC',sans-serif;
|
|
12
|
+
}
|
|
13
|
+
.tpl-weekly-report .slide{padding:64px 88px;background:var(--bg)}
|
|
14
|
+
.tpl-weekly-report .h1{font-size:64px;line-height:1.05;font-weight:800;letter-spacing:-.025em}
|
|
15
|
+
.tpl-weekly-report .h2{font-size:42px;font-weight:700;letter-spacing:-.02em}
|
|
16
|
+
.tpl-weekly-report .kicker{color:var(--accent);font-size:12px;font-weight:700}
|
|
17
|
+
.tpl-weekly-report .cover-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:48px}
|
|
18
|
+
.tpl-weekly-report .logo{font-weight:800;font-size:18px;letter-spacing:-.01em}
|
|
19
|
+
.tpl-weekly-report .logo::before{content:"■";color:var(--accent);margin-right:8px}
|
|
20
|
+
.tpl-weekly-report .week-chip{display:inline-block;padding:8px 18px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--text-2)}
|
|
21
|
+
.tpl-weekly-report .kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px 26px;position:relative;overflow:hidden}
|
|
22
|
+
.tpl-weekly-report .kpi .label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:600}
|
|
23
|
+
.tpl-weekly-report .kpi .value{font-size:48px;font-weight:800;letter-spacing:-.03em;margin-top:8px;line-height:1}
|
|
24
|
+
.tpl-weekly-report .kpi .delta{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:12px;font-weight:700;margin-top:10px}
|
|
25
|
+
.tpl-weekly-report .kpi .delta.up{background:rgba(16,185,129,.12);color:var(--good)}
|
|
26
|
+
.tpl-weekly-report .kpi .delta.down{background:rgba(239,68,68,.12);color:var(--bad)}
|
|
27
|
+
.tpl-weekly-report .kpi .delta.flat{background:rgba(139,146,165,.14);color:var(--text-2)}
|
|
28
|
+
.tpl-weekly-report .kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
|
|
29
|
+
.tpl-weekly-report .kpi.good::before{background:var(--good)}
|
|
30
|
+
.tpl-weekly-report .kpi.warn::before{background:var(--warn)}
|
|
31
|
+
.tpl-weekly-report .kpi.bad::before{background:var(--bad)}
|
|
32
|
+
.tpl-weekly-report .ship-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}
|
|
33
|
+
.tpl-weekly-report .ship-item .tag{flex:none;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;height:22px;display:inline-flex;align-items:center}
|
|
34
|
+
.tpl-weekly-report .tag.feat{background:rgba(46,99,235,.12);color:var(--accent)}
|
|
35
|
+
.tpl-weekly-report .tag.fix{background:rgba(16,185,129,.12);color:var(--good)}
|
|
36
|
+
.tpl-weekly-report .tag.exp{background:rgba(245,158,11,.14);color:var(--warn)}
|
|
37
|
+
.tpl-weekly-report .tag.infra{background:rgba(14,165,181,.12);color:var(--accent-2)}
|
|
38
|
+
.tpl-weekly-report .ship-item b{color:var(--text-1);font-weight:600}
|
|
39
|
+
.tpl-weekly-report .ship-item span.owner{margin-left:auto;color:var(--text-3);font-size:12px;font-family:'JetBrains Mono',monospace}
|
|
40
|
+
.tpl-weekly-report .chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px}
|
|
41
|
+
.tpl-weekly-report .chart-bars{display:flex;align-items:flex-end;gap:16px;height:220px;margin-top:20px}
|
|
42
|
+
.tpl-weekly-report .chart-bars .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}
|
|
43
|
+
.tpl-weekly-report .chart-bars .col .b{width:100%;background:var(--grad);border-radius:6px 6px 0 0;min-height:6px;position:relative}
|
|
44
|
+
.tpl-weekly-report .chart-bars .col .b::after{content:attr(data-v);position:absolute;top:-22px;left:0;right:0;text-align:center;font-size:12px;font-weight:700;color:var(--text-1)}
|
|
45
|
+
.tpl-weekly-report .chart-bars .col .lbl{font-size:11px;color:var(--text-3);font-family:'JetBrains Mono',monospace}
|
|
46
|
+
.tpl-weekly-report .blocker{background:var(--surface);border-left:3px solid var(--bad);padding:16px 20px;border-radius:8px;margin-bottom:12px}
|
|
47
|
+
.tpl-weekly-report .blocker h4{font-size:16px;margin-bottom:4px}
|
|
48
|
+
.tpl-weekly-report .blocker p{font-size:13px;color:var(--text-2);margin:0}
|
|
49
|
+
.tpl-weekly-report .blocker .meta{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text-3);margin-top:6px}
|
|
50
|
+
.tpl-weekly-report .next-row{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:14px 0;border-bottom:1px dashed var(--border);align-items:baseline}
|
|
51
|
+
.tpl-weekly-report .next-row .owner{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--accent)}
|
|
52
|
+
.tpl-weekly-report .next-row .task{color:var(--text-1);font-weight:500}
|
|
53
|
+
.tpl-weekly-report .next-row .task span{color:var(--text-3);font-size:12px;margin-left:8px}
|
|
54
|
+
.tpl-weekly-report .lede{color:var(--text-2)}
|
|
55
|
+
.tpl-weekly-report .card{background:var(--surface)}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# xhs-pastel-card
|
|
2
|
+
|
|
3
|
+
暖奶油 `#fef8f1` 底 + 模糊彩色 blob + Playfair italic 衬线大字 + 整色马卡龙卡片(桃 / 薄荷 / 天 / 丁香 / 柠檬 / 玫瑰)。共性提取自 `20260412-obsidian-skills/html/xhs-obsidian-skills.html` 的 `soft-purple/pink/blue/green/orange/teal` 软色卡系统,以及 `20260409 v2-白底版` 的胶囊 chip 顶部条。
|
|
4
|
+
|
|
5
|
+
**Visual traits:** 三颗柔光 blob 作背景、顶部 chip+page 组合、Playfair italic 做 accent 词(em / rose / mint)、整色圆角 28px 大卡片、italic Playfair 序号 01-04、donut SVG 图、小 divider 条 + 渐变、衬线正文做标题 / sans 做正文混排。
|
|
6
|
+
|
|
7
|
+
**Use when:** 生活方式 / 个人成长 / 轻内容 / 情感向的小红书贴或个人演讲;你想要一种「不那么科技感、偏杂志偏手作」的气质;适合讲「慢」「休息」「温柔」主题。
|
|
8
|
+
|
|
9
|
+
**Source inspiration:** `20260412-obsidian-skills/html/xhs-obsidian-skills.html` + `20260409` v2-白底版(共性 pastel 系统)。
|
|
10
|
+
|
|
11
|
+
**Path:** `templates/full-decks/xhs-pastel-card/index.html`
|