PortfolioFlow Skill
SkillWeb & browsingGenerates a complete designer portfolio website with admin login, portfolio CRUD management, AI-powered project description generation, theme customization (5 presets or custom hex), and visit analytics. Deploys to EdgeOne Pages with Edge Functions, KV Storage, JWT auth, and middleware. Use when a user wants to build a personal portfolio site, designer's online showcase, individual brand website, or multi-discipline design portfolio covering landscape, graphic, interior, industrial, or UX/UI design. Triggers include: "做一个设计师作品集" "做一个个人作品集网站" "建一个景观/平面/室内/工业/UX设计师作品集" "PortfolioFlow 建站" "生成作品集" "make a designer portfolio" "build a personal portfolio" "create a designer showcase site" "用 PortfolioFlow 做一个作品集".
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the PortfolioFlow Skill skill
What this skill tells your AI
The instructions your AI receives, as published by tencentedgeone/awesome-website-prompts-and-skills in skills/portfolio-flow/SKILL.md and read by ahel’s review.
把一句话,变成设计师的完整作品集网站。
PortfolioFlow 是面向5 大设计领域(景观 / 平面 / 室内 / 工业 / UX)的作品集 建站 Skill。用户用一句中文或英文描述需求,本 Skill 自动生成:
- 完整作品集前台站(Hero + 作品网格 + 详情页 + 关于 + AI 助手对话框)
- 设计师管理后台(登录 + 作品 CRUD + AI 生成介绍 + 统计看板)
- 主题色自定义(5 套预设主题 + 用户传入 hex 自由组合)
- Edge Functions / KV / Middleware / JWT 鉴权全栈能力
最终通过 edgeone-pages-deploy 一键部署到 EdgeOne Pages。
触发后的执行流程(决策树)
收到符合本 Skill 触发条件的用户请求后,按以下顺序执行:
Step 1 — 收集必填信息
如果用户描述中缺少以下任意字段,向用户一次性追问(不要反复问):
| 字段 | 必填 | 示例 | 默认值 |
|---|---|---|---|
| 设计师姓名 | ✅ | "李博" / "Alex Chen" | 用户名 |
| 设计领域 | ✅ | 景观 / 平面 / 室内 / 工业 / UX | 询问选一个 |
| 网站标题 | ❌ | "Lee · 景观设计作品集" | "{姓名} 作品集" |
| 一句话定位 | ❌ | "让设计回到土地与人居" | 按领域默认 |
| 主题方案 | ❌ | "暗夜森林" / hex 颜色 | "暗夜森林" |
| 预填作品数 | ❌ | 3-6 | 默认 3 个示例作品 |
追问示例:
我需要确认几个关键信息:
- 你的设计领域是什么?(景观/平面/室内/工业/UX)
- 设计师姓名?
- 主题方案?(暗夜森林/晨曦米色/深海蓝调/暖阳橙红/纯白极简,或者直接给一个 hex 颜色)
Step 2 — 决定项目结构
view 以下参考文件之一,根据用户领域加载对应的内容套路:
- 景观 / 室内 / 工业 →
references/portfolio-knowledge.md中的对应章节 - 平面 / UX → 同上
Step 3 — 生成项目骨架
在 /tmp/portfolio-{slug}/ 下创建以下文件(禁止使用 cd 进入路径包含特殊字符的目录,所有
路径都用绝对路径或 ~/Desktop/ 下的干净路径):
portfolio-{slug}/
├── index.html # 前台首页(用 templates/index.html 模板)
├── portfolio-detail.html # 作品详情
├── admin.html # 管理后台
├── login.html # 登录页
├── assets/ # 图片素材(用户上传或占位图)
├── functions/
│ ├── api/
│ │ ├── auth.js # 登录鉴权 + JWT 签发(参考 references/auth-jwt.md)
│ │ ├── portfolios.js # 作品 CRUD(参考 references/portfolio-crud.md)
│ │ ├── generate.js # AI 生成介绍(参考 references/ai-generate.md)
│ │ └── stats.js # 访问统计(参考 references/stats-kv.md)
│ └── _middleware.js # JWT 校验 + CORS
└── README.md
Step 4 — 主题色注入
用户选定的主题方案需要同时注入到:
index.html的<style>中的 CSS 变量admin.html的同位置login.html的同位置
5 套预设主题的具体 CSS 变量值见 references/design-system.md。
如果用户传入 hex 颜色(如 #FF6B6B),按 references/design-system.md 中"hex
转完整主题"的算法生成配套色阶。
Step 5 — 调用部署 Skill
完成所有文件生成后,调用 edgeone-pages-deploy Skill 执行部署:
触发短语:deploy this portfolio to EdgeOne Pages
项目目录:~/Desktop/portfolio-{slug}/
部署成功后,必须:
- 在 EdgeOne Pages 控制台引导用户绑定以下 KV 命名空间(手动一次性操作):
- 变量名
PORTFOLIO_USERS← 用户账号库 - 变量名
PORTFOLIO_WORKS← 作品库 - 变量名
PORTFOLIO_STATS← 访问统计 - 重要:变量名必须严格匹配,KV 绑定后在 Edge Function 中作为全局变量
访问,而非
env.PORTFOLIO_WORKS(这是 EdgeOne Pages 的特殊规范)。
- 变量名
- 重新部署一次让 KV 绑定生效。
- 返回访问 URL + 默认管理员账号密码(首次部署时自动写入 KV)。
路由表(references/ 按需加载)
下表帮助 AI 决定何时打开哪份 reference:
| 用户场景关键词 | 加载的 reference |
|---|---|
| "主题色 / 配色 / 视觉风格 / hex / 自定义颜色" | references/design-system.md |
| "登录 / 鉴权 / JWT / 密码 / token" | references/auth-jwt.md |
| "作品 / CRUD / 添加 / 编辑 / 删除 / 增删改查" | references/portfolio-crud.md |
| "AI 生成 / 作品介绍 / 描述生成 / 智能填写" | references/ai-generate.md |
| "统计 / 浏览量 / PV / 热门作品 / 看板" | references/stats-kv.md |
| "部署 / 上线 / EdgeOne / 域名 / KV 绑定" | references/deploy-workflow.md |
| "景观 / 平面 / 室内 / 工业 / UX 行业话术" | references/portfolio-knowledge.md |
核心约束(必须遵守)
-
绝不依赖外部 API Key——默认模式下所有功能(包括 AI 生成)必须零配置可跑。
references/ai-generate.md描述了可选的 DeepSeek 增强模式,但不是默认行为。 -
绝不写入用户路径含特殊字符的目录——优先使用
~/Desktop/下不含× ' " /的干净路径。 -
图片字段不做
startsWith('http')兜底判断——直接信任传入的img字段, 本地/assets/xxx.jpg和远程https://...都要原样使用。 -
JWT secret 不硬编码在代码里——从 EdgeOne Pages 环境变量
JWT_SECRET读取,部署后引导用户在控制台手动设置。 -
首次部署完成后必须返回:
- 公开访问 URL
- 控制台链接
- 默认管理员账号(提示首次登录后立即修改密码)
可选增强(用户明确要求时启用)
| 用户说 | 启用 |
|---|---|
| "接真 AI" / "用 DeepSeek" / "AI 能力更强一点" | references/ai-generate.md 中的 Plan B:DeepSeek 双引擎 |
| "支持中英文切换" / "双语" | 在 index.html 添加 i18n 字典 + 切换按钮 |
| "加上 RSS / 订阅功能" | 新增 functions/api/rss.js |
| "支持作品评论" | 新增 functions/api/comments.js + 评论 KV namespace |
反例:不应触发本 Skill 的请求
- "做一个景观项目展示站"(指特定项目站,不是设计师作品集) → 使用
landscapeflowPrompt - "做一个落地页 / SaaS / 电商网站" → 不属于作品集场景
- "把我现有的简历改成网页" → 是简历不是作品集
- 单纯的"AI 生成一段作品介绍"(不建站) → 不需要建站 Skill
输出契约
执行完成后,向用户输出以下结构化结果:
✅ PortfolioFlow 作品集已就绪
🌐 访问 URL: https://portfolio-{slug}.edgeone.cool
🔐 管理后台: https://portfolio-{slug}.edgeone.cool/admin
- 默认账号: admin@portfolio.local
- 默认密码: PortfolioFlow_{随机6位}
- ⚠️ 首次登录后请立即修改密码
📊 已部署能力:
✅ 前台作品集首页({N} 个示例作品)
✅ 作品详情页
✅ 管理后台(登录 / CRUD / AI 生成)
✅ Edge Functions × 4
✅ KV Storage × 3
✅ JWT 鉴权 + CORS Middleware
🎨 当前主题: {主题名称}
📁 项目目录: {本地路径}
下一步建议:
1. 登录后台添加你的真实作品
2. 上传头像和封面图到 /assets/
3. 修改 footer 中的版权和联系方式
Signals
- GitHub stars
- 171
- Forks
- 26
- Last commit
- Jun 2026
Advanced
- Catalog kind
- skill
- Gateway key
portfolio-flow- Source
- github.com/tencentedgeone/awesome-website-prompts-and-skills