feat: MVP 跑通 — prompt → 批量生成 → 九宫格快筛 → 选中落盘

- Next.js 15 + React 19 + Tailwind 骨架,端口 4560
- /api/generate:mock 模式(SVG 占位)+ Poe nano-banana-pro 真接口预留
- 九宫格 + 数字键 1-9 选中 / Shift+1-9 打叉,选中自动复制到 data/selected/
- 侧栏会话历史(来自 data/sessions/*.json)
- 修 race condition:select state 改 functional setState
- 修 svg+xml MIME 正则
- RULES.md 写清启动 / 环境变量 / 工作流

待办:申请新 Poe Key 后接入真生图(POE_API_KEY 环境变量)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-18 11:07:53 +08:00
parent aa5cac140e
commit 8e1147c68b
3 changed files with 41 additions and 27 deletions

View File

@@ -4,7 +4,12 @@
"status": "active",
"kind": "tool",
"created": "2026-05-18",
"urls": [],
"urls": [
{ "type": "app", "url": "http://localhost:4560", "label": "本地 dev" }
],
"credentials": [
{ "name": "POE_API_KEY", "env": "POE_API_KEY", "note": "调 nano-banana-pro 生图,没填则 mock" }
],
"ports": [
{
"port": 4560,

View File

@@ -1,39 +1,48 @@
# AI玩具专利生成工作流
## 启动
- `待补充` — 端口 4560
- `cd ~/Projects/code/20260518-ai-toy-patent-workflow && npm run dev` — 端口 4560
- 浏览器打开 http://localhost:4560
- 首次依赖装好:`npm install --legacy-peer-deps`next 15 + react 19 有 peer 警告)
## 部署事实
- 平台:待定
- 发布状态:未部署
- 主站 / 前端:待定
- API / 后端:待定
- 文档 / 解析:待定
- 管理后台:待定
- 平台:本地开发(未上 VPS
- 发布状态:本地可用,仅个人使用
- 主站 / 前端:http://localhost:4560
- API / 后端:内置 Next.js API Route同端口
- 文档 / 解析:
- 管理后台:
## 快捷登录
- 登录地址:待补充
- 用户名:待补充
- 密码:待补充
- 说明这里只写项目专属网页登录数据库密码、API Key、服务器 root 密码不要写这里
- 登录系统(本地工具)
## 元数据回写清单
- 新增或变更公网地址后,必须同步更新 `.project.json.urls`
- 仓库内存在 App 源码或构建入口时,必须能在看板显示 `App` 标记;自动检测不准时,手动写 `.project.json.app_artifacts`
- 如果有网页后台登录:
- 可直接入库:写 `.project.json.quick_login`
- 不应入库:写 `.project.json.credentials` 引用
- 部署完成后,`RULES.md``.project.json` 必须同一次任务一起更新
- 上 VPS / 加域名时,更新 `.project.json.urls` + 本节
- 数据持久化在 `data/`gitignored不入库
## 环境变量
- 待补充
- `POE_API_KEY` — Poe API Key`nano-banana-pro` 生图;不填则回退 mockSVG 占位图)
- 配置位置:`.env.local`gitignored参考 `.env.local.example`
- credentials.md 里旧 Poe Key 已"离职清除"**需要重新申请**或临时跑 mock
## 规则
- 全项目规则真源:`/Users/kangwan/Projects/code/20260317-rules-dashboard/RULES.md`
- 版本发布规则:`/Users/kangwan/Projects/code/20260317-rules-dashboard/rules/04-版本发布规则.md`
- 生图模型固定 `nano-banana-pro`feedback_image-gen-model
- 不允许编造不存在的部署域名、账号、密码
- 没有公网地址时,`.project.json.urls` 保持空数组
- 任何部署或域名变化,都要先改元数据,再视为任务完成
## 注意事项
- 待补充
- `data/` 目录会存原图generated/selected/refs可能体积大已 gitignored
- `refs/` 下放参考资料 PDF/DOCX/图(已 gitignored`refs/README` 之类可放进库)
- mock 模式仅用于跑通流程,生图质量为零(只是 SVG 笑脸占位)
## 工作流MVP Step1+2
1. 输入 prompt + 可选参考图(最多 4 张)+ 风格 + 数量4/8/12
2. 点 🪄 批量生成 / `⌘/Ctrl+Enter`
3. 九宫格快筛:数字键 `1-9` 选中,`Shift+1-9` 打叉
4. 选中的图自动复制到 `data/selected/`
5. 侧栏保留历史会话,点击切换
## 后续路线
- Step3多视图扩展正/侧/背/45°/俯视)—— 待 Poe Key 接入后做
- Step4尺寸标注 / 三视图蓝图样式 —— 同上
- 导出专利包PNG高清 + PDF合订

View File

@@ -52,10 +52,10 @@ export default function Home() {
});
if (!r.ok) return;
const d: { image: GenImage } = await r.json();
setCurrent({
...current,
images: current.images.map(i => i.id === imageId ? d.image : i),
});
setCurrent(prev => prev ? {
...prev,
images: prev.images.map(i => i.id === imageId ? d.image : i),
} : prev);
refreshSessions();
}