diff --git a/docs/marketing/frontagent-douyin-video.md b/docs/marketing/frontagent-douyin-video.md new file mode 100644 index 00000000..060a915f --- /dev/null +++ b/docs/marketing/frontagent-douyin-video.md @@ -0,0 +1,76 @@ +# FrontAgent Douyin Promo Video + +## Positioning + +FrontAgent is an open-source frontend engineering agent. The video sells one idea: AI coding only becomes production-ready when the agent is constrained by specs, controlled tools, repository context, browser awareness, and quality gates. + +## Target Viewer + +Chinese-speaking frontend engineers, full-stack engineers, independent developers, and technical founders who have tried AI coding tools and hit hallucinated files, broken imports, context drift, or inconsistent project conventions. + +## 30-Second Voiceover + +AI 编程最大的问题,不是不会写代码。 +是它会乱猜。 + +编不存在的路径,调不存在的 API,绕过你的工程规范。 + +FrontAgent 不是聊天式代码助手。 +它是一个前端工程 Agent。 + +先用 SDD 定边界:技术栈、目录结构、禁止改动、质量规则。 +再用 MCP 控制感知和执行:读文件、打补丁、看浏览器、跑校验。 + +交付前,先过 lint、typecheck、test。 +失败就回到计划,重新修。 + +FrontAgent,把 AI 编程关进工程护栏。 +开源可试。 + +## On-Screen Captions + +1. AI 编程最大的问题 +2. 不是不会写代码 +3. 是它会乱猜 +4. 不存在的路径 +5. 不存在的 API +6. 绕过工程规范 +7. FrontAgent +8. 前端工程 Agent +9. SDD 先定边界 +10. MCP 控制感知与执行 +11. 交付前跑门禁 +12. 失败回到计划 +13. 把 AI 编程关进工程护栏 +14. GitHub: ceilf6/FrontAgent + +## Storyboard + +| Time | Beat | Visual | Caption | +| --- | --- | --- | --- | +| 0-3s | Hook | Broken paths, red terminal errors, unstable imports | AI 会乱猜 | +| 3-8s | Product reveal | FrontAgent logo resolves from code fragments | 前端工程 Agent | +| 8-15s | SDD | Blueprint panel locks project rules into place | 先有规格,再让 AI 动手 | +| 15-22s | MCP | Files, Browser, Shell, Git rails feed a protected pipeline | 不靠猜,靠工具确认 | +| 22-26s | Quality gates | Validation rows pass in sequence, with failed checks looping back to the plan | 过了门禁再交付 | +| 26-30s | CTA | Logo, repo name, npm install command | 开源可试 | + +## Douyin Post Copy + +AI 编程不是不能用,问题是不能让它乱猜。FrontAgent 用 SDD、MCP、浏览器感知、RAG 上下文和质量门禁,把前端 AI Agent 放进真实工程约束里。 + +## Titles + +1. AI 编程真正缺的不是模型,是工程护栏 +2. 让 AI 写前端代码前,先把边界定死 +3. FrontAgent:面向真实工程的前端 AI Agent + +## Hashtags + +#AI编程 #前端开发 #开源项目 #MCP #Agent #TypeScript #程序员 + +## Production Notes + +- Render as 9:16 vertical, 1080x1920, 30 fps. +- Keep captions large enough for mobile viewing. +- BGM is an original local synth bed stored with the HyperFrames source. diff --git a/docs/superpowers/plans/2026-06-17-frontagent-hyperframes-douyin-video.md b/docs/superpowers/plans/2026-06-17-frontagent-hyperframes-douyin-video.md new file mode 100644 index 00000000..4cffd005 --- /dev/null +++ b/docs/superpowers/plans/2026-06-17-frontagent-hyperframes-douyin-video.md @@ -0,0 +1,401 @@ +# FrontAgent HyperFrames Douyin Video Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Build a 30-second 9:16 HyperFrames promo video project for FrontAgent and a matching Douyin marketing script/storyboard. + +**Architecture:** Keep the work isolated from product runtime code. The marketing document owns copy, captions, and publishing metadata; the HyperFrames folder owns video source files, reusable styles, local assets, and render output. The rendered MP4 is treated as a local artifact because repository `.gitignore` already ignores `dist/`. + +**Tech Stack:** Markdown, HTML, CSS keyframe animation, HyperFrames CLI via `npx hyperframes`, FFmpeg, GitNexus diff inspection. + +--- + +## File Structure + +- Create `docs/marketing/frontagent-douyin-video.md` + - Owns final Chinese copy, narration, subtitle sequence, storyboard, Douyin title, description, and hashtags. +- Create `marketing/hyperframes/frontagent-douyin-promo/meta.json` + - Owns project metadata, dimensions, fps, and duration. +- Create `marketing/hyperframes/frontagent-douyin-promo/index.html` + - Owns the full 30-second root HyperFrames composition and all visual beats. +- Create `marketing/hyperframes/frontagent-douyin-promo/assets/icon.png` + - Project-local copy of `assets/branding/icon.png` so the video project renders from its own directory. +- Create `marketing/hyperframes/frontagent-douyin-promo/README.md` + - Owns local preview, lint, render, and verification commands. +- Generated local artifact: `marketing/hyperframes/frontagent-douyin-promo/dist/frontagent-douyin-promo.mp4` + - Do not commit unless maintainers explicitly approve committing generated binary output. + +## Task 1: Marketing Script And Storyboard + +**Files:** +- Create: `docs/marketing/frontagent-douyin-video.md` + +- [ ] **Step 1: Create the marketing docs directory** + +Run: + +```bash +mkdir -p docs/marketing +``` + +Expected: command exits with status `0`. + +- [ ] **Step 2: Write the Douyin video script** + +Create `docs/marketing/frontagent-douyin-video.md` with these sections: + +```markdown +# FrontAgent Douyin Promo Video + +## Positioning + +FrontAgent is an open-source frontend engineering agent. The video sells one idea: AI coding only becomes production-ready when the agent is constrained by specs, tools, repository knowledge, and quality gates. + +## Target Viewer + +Chinese-speaking frontend engineers, full-stack engineers, independent developers, and technical founders who have tried AI coding tools and hit hallucinated files, broken imports, context drift, or inconsistent project conventions. + +## 30-Second Voiceover + +AI 编程最大的问题,不是不会写代码。 +是它会乱猜。 + +编不存在的路径,调不存在的 API,绕过你的工程规范。 + +FrontAgent 不是聊天式代码助手。 +它是一个前端工程 Agent。 + +先用 SDD 定边界:技术栈、目录结构、禁止改动、质量规则。 +再用 MCP 控制感知和执行:读文件、打补丁、看浏览器、跑校验。 + +交付前,先过 lint、typecheck、test。 +失败就回到计划,重新修。 + +FrontAgent,把 AI 编程关进工程护栏。 +开源可试。 + +## On-Screen Captions + +1. AI 编程最大的问题 +2. 不是不会写代码 +3. 是它会乱猜 +4. 不存在的路径 +5. 不存在的 API +6. 绕过工程规范 +7. FrontAgent +8. 前端工程 Agent +9. SDD 先定边界 +10. MCP 控制感知与执行 +11. 交付前跑门禁 +12. 失败回到计划 +13. 把 AI 编程关进工程护栏 +14. GitHub: ceilf6/FrontAgent + +## Storyboard + +| Time | Beat | Visual | Caption | +| --- | --- | --- | --- | +| 0-3s | Hook | Broken paths, red terminal errors, unstable imports | AI 会乱猜 | +| 3-8s | Product reveal | FrontAgent logo resolves from code fragments | 前端工程 Agent | +| 8-15s | SDD | Blueprint panel locks project rules into place | 先有规格,再让 AI 动手 | +| 15-22s | MCP | Files, Browser, Shell, Git rails feed a protected pipeline | 不靠猜,靠工具确认 | +| 22-26s | Quality gates | Validation rows pass in sequence, with failed checks looping back to the plan | 过了门禁再交付 | +| 26-30s | CTA | Logo, repo name, npm install command | 开源可试 | + +## Douyin Post Copy + +AI 编程不是不能用,问题是不能让它乱猜。FrontAgent 用 SDD、MCP、浏览器感知、RAG 上下文和质量门禁,把前端 AI Agent 放进真实工程约束里。 + +## Titles + +1. AI 编程真正缺的不是模型,是工程护栏 +2. 让 AI 写前端代码前,先把边界定死 +3. FrontAgent:面向真实工程的前端 AI Agent + +## Hashtags + +#AI编程 #前端开发 #开源项目 #MCP #Agent #TypeScript #程序员 + +## Production Notes + +- Render as 9:16 vertical, 1080x1920, 30 fps. +- Keep captions large enough for mobile viewing. +- Do not bundle copyrighted music in the repository. +- Choose background music from Douyin's licensed music library after export. +``` + +Expected: the document exists and contains `## 30-Second Voiceover`. + +- [ ] **Step 3: Verify the marketing document** + +Run: + +```bash +rg -n "FrontAgent|SDD|MCP|RAG|Douyin" docs/marketing/frontagent-douyin-video.md +``` + +Expected: output includes lines from the positioning, storyboard, and post copy sections. + +## Task 2: HyperFrames Project Source + +**Files:** +- Create: `marketing/hyperframes/frontagent-douyin-promo/meta.json` +- Create: `marketing/hyperframes/frontagent-douyin-promo/index.html` +- Create: `marketing/hyperframes/frontagent-douyin-promo/assets/icon.png` +- Create: `marketing/hyperframes/frontagent-douyin-promo/assets/bgm.m4a` +- Create: `marketing/hyperframes/frontagent-douyin-promo/assets/bgm-captions.vtt` +- Create: `marketing/hyperframes/frontagent-douyin-promo/README.md` + +- [ ] **Step 1: Create project directories** + +Run: + +```bash +mkdir -p marketing/hyperframes/frontagent-douyin-promo/assets +``` + +Expected: command exits with status `0`. + +- [ ] **Step 2: Copy the project-local logo asset** + +Run: + +```bash +cp assets/branding/icon.png marketing/hyperframes/frontagent-douyin-promo/assets/icon.png +``` + +Expected: `file marketing/hyperframes/frontagent-douyin-promo/assets/icon.png` reports `PNG image data`. + +- [ ] **Step 3: Create HyperFrames metadata** + +Create `marketing/hyperframes/frontagent-douyin-promo/meta.json`: + +```json +{ + "name": "frontagent-douyin-promo", + "id": "frontagent-douyin-promo", + "width": 1080, + "height": 1920, + "fps": 30, + "duration": 30, + "entry": "index.html" +} +``` + +Expected: `node -e "JSON.parse(require('fs').readFileSync('marketing/hyperframes/frontagent-douyin-promo/meta.json','utf8')); console.log('ok')"` prints `ok`. + +- [ ] **Step 4: Create the HTML composition** + +Create `marketing/hyperframes/frontagent-douyin-promo/index.html` as one root composition with: + +- `data-composition-id="frontagent-douyin-promo"` +- `data-width="1080"` +- `data-height="1920"` +- `data-duration="30"` +- six `.scene.clip` sections with `data-start` and `data-duration` +- CSS-only seek-safe visual design +- no external network assets +- project-local image reference `assets/icon.png` +- project-local audio reference `assets/bgm.m4a` +- project-local audio caption cue `assets/bgm-captions.vtt` + +Required scene timing: + +```text +hook: 0-3s +product: 3-8s +sdd: 8-15s +mcp: 15-22s +quality-gates: 22-26s +cta: 26-30s +``` + +Expected: the file contains `AI 会乱猜`, `SDD 先定边界`, `MCP 控制感知与执行`, `Quality Gates`, and `npm install -g frontagent`. + +- [ ] **Step 5: Create the project README** + +Create `marketing/hyperframes/frontagent-douyin-promo/README.md`: + +```markdown +# FrontAgent Douyin Promo HyperFrames Project + +Source for the 30-second vertical FrontAgent Douyin promo video. + +## Requirements + +- Node.js 22+ +- FFmpeg +- Network access for `npx hyperframes` on first run + +## Commands + +```bash +npx hyperframes lint +npx hyperframes preview +npx hyperframes render --output dist/frontagent-douyin-promo.mp4 +``` + +Run commands from this directory: + +```bash +cd marketing/hyperframes/frontagent-douyin-promo +``` + +The rendered MP4 is a local artifact under `dist/`. Repository `.gitignore` ignores `dist/`, so the MP4 is not committed by default. +``` + +Expected: the README includes `npx hyperframes render --output dist/frontagent-douyin-promo.mp4`. + +- [ ] **Step 6: Verify source files** + +Run: + +```bash +rg -n "data-composition-id|data-duration|AI 会乱猜|GitHub: ceilf6/FrontAgent" marketing/hyperframes/frontagent-douyin-promo +``` + +Expected: output includes matches from `index.html`. + +## Task 3: Local HyperFrames Validation And Render + +**Files:** +- Read: `marketing/hyperframes/frontagent-douyin-promo/index.html` +- Generated: `marketing/hyperframes/frontagent-douyin-promo/dist/frontagent-douyin-promo.mp4` + +- [ ] **Step 1: Check runtime dependencies** + +Run: + +```bash +node --version +ffmpeg -version | head -n 1 +``` + +Expected: + +- Node.js major version is `v22` or newer. +- FFmpeg prints a version line. + +If Node.js is older than 22 or FFmpeg is missing, record the exact output and skip render while keeping source files complete. + +- [ ] **Step 2: Run HyperFrames lint** + +Run: + +```bash +cd marketing/hyperframes/frontagent-douyin-promo && npx hyperframes lint +``` + +Expected: command exits with status `0`, or prints actionable composition issues to fix. + +- [ ] **Step 3: Render the MP4** + +Run: + +```bash +cd marketing/hyperframes/frontagent-douyin-promo && npx hyperframes render --output dist/frontagent-douyin-promo.mp4 +``` + +Expected: command exits with status `0` and creates `dist/frontagent-douyin-promo.mp4`. + +- [ ] **Step 4: Inspect media properties** + +Run: + +```bash +ffprobe -v error -select_streams v:0 -show_entries stream=width,height,r_frame_rate,duration -of default=noprint_wrappers=1 marketing/hyperframes/frontagent-douyin-promo/dist/frontagent-douyin-promo.mp4 +``` + +Expected: + +- `width=1080` +- `height=1920` +- `r_frame_rate=30/1` +- duration is approximately `30` seconds + +- [ ] **Step 5: Capture representative frames** + +Run: + +```bash +mkdir -p marketing/hyperframes/frontagent-douyin-promo/dist/frames +ffmpeg -y -ss 1 -i marketing/hyperframes/frontagent-douyin-promo/dist/frontagent-douyin-promo.mp4 -frames:v 1 marketing/hyperframes/frontagent-douyin-promo/dist/frames/hook.png +ffmpeg -y -ss 16 -i marketing/hyperframes/frontagent-douyin-promo/dist/frontagent-douyin-promo.mp4 -frames:v 1 marketing/hyperframes/frontagent-douyin-promo/dist/frames/mcp.png +ffmpeg -y -ss 28 -i marketing/hyperframes/frontagent-douyin-promo/dist/frontagent-douyin-promo.mp4 -frames:v 1 marketing/hyperframes/frontagent-douyin-promo/dist/frames/cta.png +``` + +Expected: three PNG frame captures exist and are non-empty. Visually inspect them before finalizing. + +## Task 4: Repository Checks And Commit + +**Files:** +- Stage: `docs/marketing/frontagent-douyin-video.md` +- Stage: `marketing/hyperframes/frontagent-douyin-promo/meta.json` +- Stage: `marketing/hyperframes/frontagent-douyin-promo/index.html` +- Stage: `marketing/hyperframes/frontagent-douyin-promo/assets/icon.png` +- Stage: `marketing/hyperframes/frontagent-douyin-promo/README.md` +- Do not stage: `.gitnexus/lbug` +- Do not stage: `.gitnexus/meta.json` +- Do not stage: `marketing/hyperframes/frontagent-douyin-promo/dist/` + +- [ ] **Step 1: Inspect working tree** + +Run: + +```bash +git status --short +``` + +Expected: source files are untracked or modified; `.gitnexus/lbug` and `.gitnexus/meta.json` may remain modified and must not be staged. + +- [ ] **Step 2: Run GitNexus change detection before staging** + +Run via MCP: + +```text +detect_changes(repo="FrontAgent", scope="unstaged") +``` + +Expected: marketing/docs files show no code-symbol blast radius or only low-risk file additions. + +- [ ] **Step 3: Stage only source deliverables** + +Run: + +```bash +git add docs/marketing/frontagent-douyin-video.md \ + marketing/hyperframes/frontagent-douyin-promo/meta.json \ + marketing/hyperframes/frontagent-douyin-promo/index.html \ + marketing/hyperframes/frontagent-douyin-promo/assets/icon.png \ + marketing/hyperframes/frontagent-douyin-promo/README.md +``` + +Expected: `git diff --cached --name-status` lists exactly those five paths. + +- [ ] **Step 4: Run GitNexus change detection on staged diff** + +Run via MCP: + +```text +detect_changes(repo="FrontAgent", scope="staged") +``` + +Expected: low risk, no runtime execution flows affected. + +- [ ] **Step 5: Commit implementation source** + +Run: + +```bash +git commit -m "docs: add FrontAgent HyperFrames Douyin promo" +``` + +Expected: commit succeeds. If pre-commit runs full quality gates, record the result. If it fails on unrelated existing lint info, report the exact failure before changing unrelated code. + +## Self-Review Checklist + +- The plan covers the approved spec deliverables: marketing script, HyperFrames source project, local logo asset, render attempt, and GitNexus final diff check. +- The plan avoids runtime FrontAgent code changes. +- The plan keeps generated MP4 output local because `dist/` is ignored. +- The plan names exact files and commands. +- The plan includes fallback behavior for missing Node.js 22 or FFmpeg. diff --git a/docs/superpowers/specs/2026-06-17-frontagent-hyperframes-douyin-video-design.md b/docs/superpowers/specs/2026-06-17-frontagent-hyperframes-douyin-video-design.md new file mode 100644 index 00000000..5fdc93e1 --- /dev/null +++ b/docs/superpowers/specs/2026-06-17-frontagent-hyperframes-douyin-video-design.md @@ -0,0 +1,274 @@ +# FrontAgent HyperFrames Douyin Promo Video Design + +Date: 2026-06-17 +Branch: `feature/hyperframes-video` +Status: Approved for implementation planning + +## Summary + +Create a 30-second vertical Douyin promo video for FrontAgent using HyperFrames. The video should position FrontAgent as an open-source frontend engineering agent that turns AI coding from uncontrolled guessing into a constrained, inspectable engineering workflow. + +The work has two deliverables: + +- A marketing script and storyboard document at `docs/marketing/frontagent-douyin-video.md`. +- A HyperFrames video project at `marketing/hyperframes/frontagent-douyin-promo/`, rendering to `marketing/hyperframes/frontagent-douyin-promo/dist/frontagent-douyin-promo.mp4`. + +## Audience And Goal + +The target audience is Chinese-speaking frontend engineers, full-stack engineers, independent developers, and technical founders browsing Douyin. They may already know AI coding tools, but they are skeptical because generated code often invents paths, ignores project rules, or fails after one error. + +The video should make one idea memorable: + +> AI coding is useful only when it is constrained by real engineering context. FrontAgent adds SDD, MCP, browser awareness, repository memory, and quality gates around the agent loop. + +The expected viewer action is to remember the project name and visit GitHub, npm, or the README later. The video is not expected to explain every feature or prove every benchmark. + +## Chosen Approach + +Use a 9:16, 1080x1920, 30 fps, approximately 30-second kinetic technical explainer. + +This approach was selected over a longer product explainer or live demo recording because Douyin rewards immediate hooks, short beats, strong captions, and a single sharp takeaway. A first version should sell the positioning before trying to show a full terminal workflow. + +## Source Positioning + +The creative direction is based on the existing repository materials: + +- `README.md` and `docs/README-CN.md`: FrontAgent is an open-source frontend AI coding agent with CLI, VS Code, Desktop, MCP server, RAG planning, browser-aware automation, SDD guardrails, self-healing, and quality gates. +- `docs/FrontAgent-Introduction.md`: the main product pain points are hallucinated paths and APIs, context drift, weak error recovery, weak engineering constraints, and brittle JSON planning. +- `docs/design.md` and `docs/architecture.md`: the core technical thesis is SDD as a hard control layer, MCP as the trusted interface, and hallucination prevention through planning, execution, validation, and memory layers. + +HyperFrames implementation assumptions are based on the official HyperFrames README and quickstart: + +- HyperFrames turns HTML, CSS, media, and seekable animations into deterministic MP4 output. +- Local projects can be scaffolded and run with `npx hyperframes init`, `npx hyperframes preview`, `npx hyperframes lint`, and `npx hyperframes render`. +- Local rendering requires Node.js 22+ and FFmpeg. +- HyperFrames compositions are HTML-native and use `data-*` attributes for timed clips and tracks, with seekable animation support through CSS, GSAP, Lottie, Three.js, Anime.js, WAAPI, or custom adapters. + +## Video Format + +- Platform: Douyin +- Aspect ratio: 9:16 vertical +- Resolution: 1080x1920 +- Frame rate: 30 fps +- Duration: 30 seconds target, with a tolerance of plus or minus 1 second +- Language: Simplified Chinese +- Audio: no bundled copyrighted background music in the repository; use silent render or simple generated non-copyright click/sweep effects if practical. Background music can be chosen inside Douyin after export. +- Voiceover: optional. The first implementation may rely on large captions and motion instead of generated voiceover to avoid TTS quality and licensing issues. + +## Narrative Structure + +### Beat 1: Hook, 0-3s + +Message: "AI 编程最大的问题,不是不会写代码。是它会乱猜。" + +Visuals: + +- Fast glitch-style stack of fake broken file paths, red terminal errors, and crossed-out package imports. +- Big center caption: "AI 会乱猜" +- Small supporting terms: "不存在的文件", "错误路径", "绕过规范" + +Purpose: stop scroll immediately with a familiar pain. + +### Beat 2: Reframe, 3-8s + +Message: "FrontAgent 不是聊天式代码助手,而是前端工程 Agent。" + +Visuals: + +- FrontAgent logo resolves from noisy terminal fragments. +- Three labeled surfaces orbit or slide in: CLI, VS Code, Desktop. +- Caption: "前端工程 Agent" + +Purpose: establish category and product name. + +### Beat 3: Control Layer, 8-15s + +Message: "SDD 先定边界:技术栈、目录结构、禁止改动、质量规则。" + +Visuals: + +- A blueprint-like SDD panel drops over the chaotic code. +- Tokens lock into place: `tech_stack`, `module_boundaries`, `protected_files`, `quality_gates`. +- Caption: "先有规格,再让 AI 动手" + +Purpose: communicate why FrontAgent differs from prompt-only tools. + +### Beat 4: Trusted Execution, 15-22s + +Message: "MCP 让感知和执行可控:读文件、打补丁、看浏览器、跑校验。" + +Visuals: + +- Four tool rails animate into a protected pipeline: Files, Browser, Shell, Git. +- A browser card shows a simplified accessibility tree rather than a generic screenshot. +- Caption: "不靠猜,靠工具确认" + +Purpose: connect MCP to practical engineering reliability. + +### Beat 5: Quality Gates, 22-26s + +Message: "质量门禁检查结果,失败就回到计划修复。" + +Visuals: + +- Quality gate rows light up in sequence. +- Failed-check repair loop is visible as a controlled workflow. +- Caption: "过了门禁再交付" + +Purpose: show production workflow credibility. + +### Beat 6: Call To Action, 26-30s + +Message: "FrontAgent:把 AI 编程关进工程护栏。开源可试。" + +Visuals: + +- Final lockup with logo, GitHub URL text, npm package name, and short command `npm install -g frontagent`. +- Caption: "开源前端工程 Agent" + +Purpose: leave one product phrase and one action. + +## On-Screen Copy + +Primary caption sequence: + +1. AI 编程最大的问题 +2. 不是不会写代码 +3. 是它会乱猜 +4. FrontAgent +5. 前端工程 Agent +6. SDD 先定边界 +7. MCP 控制感知与执行 +8. 浏览器感知 + 最小补丁 + 质量门禁 +9. 交付前跑门禁 +10. 失败回到计划 +11. 把 AI 编程关进工程护栏 +12. GitHub: ceilf6/FrontAgent + +The captions should be short and punchy. They must not cover the CTA or logo in the final 4 seconds. + +## Visual Direction + +The visual tone should be technical, sharp, and controlled. Avoid generic cyberpunk neon, oversized gradients, or decorative blobs. The design should look like a serious frontend engineering tool translated into a social video. + +Recommended palette: + +- Background: near-black charcoal, `#0b0f14` +- Primary accent: FrontAgent cyan/blue sampled or approximated from `assets/branding/icon.png` +- Reliability accent: green for passed checks +- Risk accent: red only for the opening broken-state hook +- Text: white and cool gray + +Typography: + +- Use system Chinese sans-serif fallback stacks for broad rendering reliability. +- Use large, high-contrast captions with stable safe margins for Douyin UI overlays. +- Avoid small paragraphs. Use short labels and code-like tokens. + +Motion: + +- Fast cuts in the first 3 seconds. +- Snap-to-grid transitions for SDD and MCP beats. +- Smooth gate illumination for the quality beat. +- Final CTA should hold long enough to read. + +## HyperFrames Project Design + +The implementation should create a self-contained HyperFrames project: + +```text +marketing/hyperframes/frontagent-douyin-promo/ + meta.json + index.html + compositions/ + 01-hook.html + 02-product.html + 03-sdd.html + 04-mcp.html + 05-quality-gates.html + 06-cta.html + assets/ + icon.png + bgm.m4a + bgm-captions.vtt + dist/ + frontagent-douyin-promo.mp4 +``` + +The root `index.html` should orchestrate the six beats as timed sub-compositions. Each sub-composition should be understandable on its own, with one visual responsibility and one section of copy. + +The project should copy or reference `assets/branding/icon.png` in a way that keeps the video project portable. Referencing the existing source asset is acceptable during development, but the final project should include its own `assets/icon.png` copy so rendering works from the project directory. + +## Animation Architecture + +Use plain HTML/CSS for the first implementation unless a specific beat clearly requires GSAP. CSS keyframes and HyperFrames timing attributes should be enough for: + +- Broken-code glitch text +- Logo reveal +- SDD blueprint cards +- MCP tool rails +- Quality gate rows pulse +- CTA lockup + +If GSAP is used, the timeline must be paused and registered for deterministic seekable rendering according to HyperFrames expectations. Avoid wall-clock-only animations that could preview differently from rendered frames. + +## Data And Asset Flow + +Input assets: + +- `assets/branding/icon.png` +- Existing README and docs for accurate product copy + +Generated assets: + +- `docs/marketing/frontagent-douyin-video.md` +- HyperFrames HTML/CSS files +- Project-local `assets/icon.png` +- Project-local original BGM `assets/bgm.m4a` +- Project-local BGM caption cue `assets/bgm-captions.vtt` +- Rendered MP4 in `dist/` + +No generated binary should be committed until size and repository policy are checked. If the MP4 is large, keep it as a local artifact and commit only the source project plus docs. + +## Error Handling + +Implementation should handle common local setup failures explicitly: + +- If Node.js is older than 22, report that HyperFrames cannot render locally and leave the project source ready. +- If FFmpeg is missing, report that preview/lint may work but render cannot complete locally. +- If `npx hyperframes` fails due to network or package resolution, keep the manually authored project files and document the exact command failure. +- If rendering succeeds but visual inspection shows blank or misframed output, iterate before claiming completion. + +## Verification Plan + +Minimum verification before implementation is considered complete: + +1. Check Node.js and FFmpeg availability. +2. Run HyperFrames lint if available. +3. Run HyperFrames preview or an equivalent static composition inspection. +4. Render a draft or final MP4 with HyperFrames. +5. Inspect the video output or at least capture representative frames at the hook, midpoint, and CTA. +6. Confirm the video is vertical 1080x1920, approximately 30 seconds, and nonblank. +7. Run GitNexus `detect_changes` before committing implementation work. + +Repository-wide gates such as `pnpm quality:precommit` should be run before final review when feasible. If they are skipped because the work is marketing-only or the environment lacks video dependencies, the reason must be stated. + +## Non-Goals + +- Do not add new product features to FrontAgent. +- Do not modify runtime agent, CLI, VS Code, desktop, MCP, or GitNexus code. +- Do not add comment-triggered automation, training-camp workflow claims, score labels, or OSS workflow changes. +- Do not bundle copyrighted music or third-party media without a clear license. +- Do not make a long-form Bilibili explainer in this first version. +- Do not depend on a live website or external API at render time. + +## Acceptance Criteria + +The work is complete when: + +- The marketing script and storyboard exist in `docs/marketing/frontagent-douyin-video.md`. +- The HyperFrames source project exists in `marketing/hyperframes/frontagent-douyin-promo/`. +- A local render command has been attempted and its result is reported. +- If rendering succeeds, the MP4 path and basic media properties are reported. +- If rendering cannot complete locally, the source project remains runnable and the missing dependency or command failure is documented. +- Existing `.gitnexus` working tree changes are not reverted, staged, or committed unless explicitly requested by the maintainer. diff --git a/marketing/hyperframes/frontagent-douyin-promo/README.md b/marketing/hyperframes/frontagent-douyin-promo/README.md new file mode 100644 index 00000000..66540b63 --- /dev/null +++ b/marketing/hyperframes/frontagent-douyin-promo/README.md @@ -0,0 +1,27 @@ +# FrontAgent Douyin Promo HyperFrames Project + +Source for the 30-second vertical FrontAgent Douyin promo video. + +## Requirements + +- Node.js 22+ +- FFmpeg +- Network access for `npx hyperframes` on first run + +## Commands + +```bash +npx hyperframes lint +npx hyperframes preview +npx hyperframes render --output dist/frontagent-douyin-promo.mp4 +``` + +The composition includes an original local BGM asset at `assets/bgm.m4a`; HyperFrames should render it into the MP4 audio track. `assets/bgm-captions.vtt` provides the required media caption cue for the background music. + +Run commands from this directory: + +```bash +cd marketing/hyperframes/frontagent-douyin-promo +``` + +The rendered MP4 is a local artifact under `dist/`. Repository `.gitignore` ignores `dist/`, so the MP4 is not committed by default. diff --git a/marketing/hyperframes/frontagent-douyin-promo/assets/bgm-captions.vtt b/marketing/hyperframes/frontagent-douyin-promo/assets/bgm-captions.vtt new file mode 100644 index 00000000..f647f691 --- /dev/null +++ b/marketing/hyperframes/frontagent-douyin-promo/assets/bgm-captions.vtt @@ -0,0 +1,4 @@ +WEBVTT + +00:00:00.000 --> 00:00:30.000 +原创电子背景音乐 diff --git a/marketing/hyperframes/frontagent-douyin-promo/assets/bgm.m4a b/marketing/hyperframes/frontagent-douyin-promo/assets/bgm.m4a new file mode 100644 index 00000000..c030c3b5 Binary files /dev/null and b/marketing/hyperframes/frontagent-douyin-promo/assets/bgm.m4a differ diff --git a/marketing/hyperframes/frontagent-douyin-promo/assets/icon.png b/marketing/hyperframes/frontagent-douyin-promo/assets/icon.png new file mode 100644 index 00000000..d660db43 Binary files /dev/null and b/marketing/hyperframes/frontagent-douyin-promo/assets/icon.png differ diff --git a/marketing/hyperframes/frontagent-douyin-promo/index.html b/marketing/hyperframes/frontagent-douyin-promo/index.html new file mode 100644 index 00000000..3b164d87 --- /dev/null +++ b/marketing/hyperframes/frontagent-douyin-promo/index.html @@ -0,0 +1,1191 @@ + + + + + + FrontAgent Douyin Promo + + + +
+ + +
+
+
+
+ + import Button from "@/ui/ButtonGhost" +
+
+
+
+ + fetch("/api/agent/unknown-route") +
+
+
+
+ + writeFile("src/random/path.tsx") +
+
+
+

AI 会乱猜

+

不存在的路径 / 不存在的 API / 绕过工程规范

+
+
AI 编程最大的问题,不是不会写代码
+
+
+ +
+
+ +
+
Open Source
+
FrontAgent
+
+
+

前端工程 Agent

+

不是聊天式代码助手,是规划、执行、验证、修复的一套工程流。

+
+
+ CLI + fa run / fa init +
+
+ VS Code + 侧边栏任务台 +
+
+ Desktop + 可视化执行控制 +
+
+
+
FrontAgent:前端工程 Agent
+
+
+ +
+
Specification Driven Development
+

SDD 先定边界

+

让 AI 动手前,先把项目规则变成硬约束。

+
+
+ tech_stack + React / TypeScript / Vite + LOCK +
+
+ module_boundaries + 组件、Hooks、工具函数边界 + LOCK +
+
+ protected_files + 关键配置需要显式确认 + LOCK +
+
+ quality_gates + lint / typecheck / test + LOCK +
+
+
+
先有规格,再让 AI 动手
+
+
+ +
+
Model Context Protocol
+

MCP 控制感知与执行

+

不靠猜,所有关键动作都走可检查工具。

+
+
+
Files
+
read_file / apply_patch / minimal diff
+
OK
+
+
+
Browser
+
DOM / accessibility tree / interaction
+
OK
+
+
+
Shell
+
typecheck / tests / local gates
+
OK
+
+
+
Git
+
diff / branch / commit / PR workflow
+
OK
+
+
+
+ accessibility-tree
+ ├─ button: "Run task"
+ ├─ input: "Browser URL"
+ └─ status: "quality gates passing" +
+
+
不靠猜,靠工具确认
+
+
+ +
+
Quality Gates
+

交付前跑门禁

+

不是说完成就完成,验证结果必须过线。

+
+
+ 01 +
+ 计划对齐 + SDD / 文件边界 / 最小改动 +
+ CHECK +
+
+ 02 +
+ 本地校验 + lint / typecheck / test +
+ PASS +
+
+ 03 +
+ 失败回修 + 把错误反馈给计划,再生成补丁 +
+ LOOP +
+
+
+
lint / typecheck / test,过了再交付
+
+
+ +
+
+ +
FrontAgent
+
把 AI 编程关进工程护栏
+
npm install -g frontagent
+
GitHub: ceilf6/FrontAgent
+
+
+
开源前端工程 Agent
+
+
+
+ + + diff --git a/marketing/hyperframes/frontagent-douyin-promo/meta.json b/marketing/hyperframes/frontagent-douyin-promo/meta.json new file mode 100644 index 00000000..12b708a9 --- /dev/null +++ b/marketing/hyperframes/frontagent-douyin-promo/meta.json @@ -0,0 +1,9 @@ +{ + "name": "frontagent-douyin-promo", + "id": "frontagent-douyin-promo", + "width": 1080, + "height": 1920, + "fps": 30, + "duration": 30, + "entry": "index.html" +}