Communitygithub.com

diegosouzapw/service-website-generator

通过并行代理自动生成面向本地SEO优化的服务型网站。可创建200+服务+地点的页面,集成Unsplash图片、NextJS动态路由与PostgreSQL数据库。适用于为水管工、电工、高压清洗、暖通空调等服务行业构建多地点网站。

service-website-generator 是什么?

该技能是一个高度自动化的服务型网站生成器,专为需要覆盖多个服务区域的中小企业(如水管工、电工、高压清洗、暖通空调等)设计。其核心流程包括:收集用户输入(服务类型、服务区域、Jina API密钥等)、生成前端设计、发现服务区域内的所有地点、创建服务架构模板、并行启动多个代理生成数百个服务+地点的页面(每个代理通过Jina AI搜索Unsplash获取相关图片),最后构建完整的NextJS 14网站并进行Playwright测试与GitHub部署。技能特别强调本地SEO优化,包含点击呼叫按钮、信任标识和行动号召等关键元素;同时遵循严格的前端美学指南(字体、配色、Tailwind v4兼容性),避免“AI粗糙感”。支持的平台为Claude Code、Cursor等可调用多代理的AI开发环境。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/diegosouzapw/awesome-omni-skill/tree/HEAD/skills/backend/service-website-generator

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

服务网站生成器

通过一个自动化工作流,构建包含数百个本地SEO页面的完整服务型网站。

技术栈:NextJS 14 + TypeScript + Tailwind CSS + PostgreSQL + Prisma ORM + Jina AI + Unsplash

快速开始

第0步:收集用户输入(必需)

开始之前,请收集以下输入:

  1. 服务领域:什么服务类业务?(例如“水管工”、“高压清洗”、“暖通空调”)
  2. 服务区域:主要城市/地区(例如“Port Orange, Florida”、“Galway, Ireland”)
  3. 商家名称(可选):用于个性化(例如“Murphy's Plumbing Services”)
  4. Jina API密钥:用于研究和Unsplash图片收集
  5. HTML/CSS/JS设计(可选):用户提供或系统生成

在确认以下信息之前不要继续:服务领域、服务区域和Jina API密钥。

第1步:设计生成

重要:生成设计时请遵循 frontend-aesthetics 技能指南!

如果用户未提供设计:

调用:design-generator 代理
输入:
  - 服务领域
  - 目标受众(本地客户)
  - 必须遵循 frontend-aesthetics 技能指南:
    - 字体:使用特色字体(Plus Jakarta Sans, Space Grotesk, Cabinet Grotesk)
    - 颜色:行业特定调色板,不要紫色渐变
    - 动效:使用CSS动画增添趣味
    - 背景:分层渐变、微妙图案
    - Tailwind v4:使用 gap-* 而非 space-x-*,不要自定义CSS重置
输出:/design/index.html, /design/styles.css, /design/script.js

如果用户提供了设计: 将他们的设计保存到 /design/ 文件夹。

第2步:地点发现

调用:location-generator 代理
输入:服务区域、服务领域、Jina API密钥
输出:/locations.json(包含20-50+个地点及其元数据)

发现服务半径内的所有城镇、郊区和社区(通常为15-50英里,取决于地理情况)。

第3步:服务架构创建

调用:service-schema-creator 代理
输入:服务领域、Jina API密钥、示例地点
输出:/service-schema-template.json(包含5-15个服务及其全面架构)

第4步:数据库设置

调用:database-agent 代理
输入:项目目录、服务领域、服务区域
输出:已配置PostgreSQL + Prisma ORM

创建数据表:ContactForm, QuoteRequest, CallbackRequest, PageView, EmailSubscriber, ServiceAreaLead

第5步:计算页面生成策略

总页面数 = 服务 × 地点
所需代理数 = 总页面数 ÷ 12(每个代理平均页面数)

示例:15个服务 × 48个地点 = 720页 → 60个代理

第6步:派生页面生成器(并行)

关键:所有代理同时派生,不要顺序执行!

调用:service-page-generator 代理(N个代理并行)
每个代理的输入:
  - 服务架构模板路径
  - 分配的服务+地点组合(10-15页)
  - Jina API密钥(用于Unsplash图片抓取)
  - 服务领域上下文
输出:/pages/*.json(每个代理10-15个文件)

每个代理:

  • 通过Jina搜索Unsplash获取相关图片
  • 生成服务描述、优势、流程、常见问题
  • 创建包含所有数据+图片的完整JSON文件

第7步:NextJS网站构建

调用:nextjs-builder 代理
输入:设计文件、所有JSON页面、服务架构、地点
输出:/website/ 文件夹,包含完整的NextJS应用

创建:

  • 带有服务概览的主页
  • 主要服务页面
  • 主要地点页面
  • 单个服务+地点页面(例如 /emergency-plumber-athenry)
  • 服务类别页面
  • 地点页面
  • 点击呼叫功能
  • 信任标识和行动号召

第8步:Playwright测试

# 在后台启动开发服务器
cd [项目]/website && npm run dev &

# 调用 playwright-tester 代理
# 测试所有页面,验证SEO,检查图片

# 测试完成后终止开发服务器
kill [PID]

第9步:GitHub部署

cd [项目目录]
git init
git add -A
git commit -m "初始提交:[服务领域] 在 [服务区域] 的网站"
gh repo create [存储库名称] --public --source=. --push

如果 gh CLI不可用,请提供手动操作说明。

可用代理

代理用途调用时机
business-researcher研究特定业务(如果提供了名称)一次,第1步
design-generator生成HTML/CSS/JS设计一次,第1步
location-generator发现服务区域内的地点一次,第2步
service-schema-creator创建服务列表和架构一次,第3步
database-agent设置PostgreSQL + Prisma一次,第4步
service-page-generator生成10-15个带图片的页面N个代理,并行
nextjs-builder构建完整的NextJS网站一次,第7步
playwright-tester测试所有页面和功能一次,第8步

设计与样式指南

关键:遵循 frontend-aesthetics 技能以避免“AI粗糙感”!

字体(来自frontend-aesthetics)

  • 切勿使用:Inter, Roboto, Open Sans, Lato, Arial, 系统字体
  • 推荐选择:Plus Jakarta Sans, Space Grotesk, Cabinet Grotesk, Outfit, Bricolage Grotesque
  • 使用极端值:100/200粗细 vs 800/900,字号跳跃3倍以上

按服务类型的颜色方案

  • 高压清洗/清洁:深蓝 (#1e40af) + 橙色 (#ea580c) + 绿色 (#059669)
  • 水管工:水蓝 (#0284c7) + 紧急红 (#dc2626) + 环保绿 (#16a34a)
  • 暖通空调:冷蓝 (#0369a1) + 暖橙 (#ea580c) + 绿色 (#059669)
  • 电工:电黄 (#eab308) + 专业蓝 (#1e40af) + 红色 (#dc2626)
  • 园艺/景观:自然绿 (#15803d) + 大地棕 (#92400e) + 蓝色 (#0284c7)
  • 营销/B2B:海军蓝 (#0A66C2) + 紫色强调 (#8B5CF6) + 成功绿 (#10B981)

Tailwind v4兼容性(关键)

  • 切勿使用:space-x-*, space-y-*(在v4中已移除)
  • 始终使用:在flex/grid容器中使用 gap-*
  • 不要添加:自定义 * { margin: 0 } 重置(会破坏mx-auto)
  • 添加:如果使用配置文件,请在CSS中添加 @config "../tailwind.config.ts"

服务网站要求

  • 强有力的行动号召(“立即拨打”按钮、“获取报价”表单)
  • 移动端点击呼叫功能
  • 信任标识(认证、保证、评价)
  • 本地电话号码醒目展示
  • 服务覆盖区域清晰显示
  • 前后对比图片画廊
  • 页面加载和交互的动效/动画

文件结构

项目根目录/
├── design/
│   ├── index.html
│   ├── styles.css
│   └── script.js
├── pages/
│   └── [服务]-[地点].json(200+个文件)
├── website/
│   ├── app/
│   │   ├── [slug]/page.tsx
│   │   ├── services/page.tsx
│   │   ├── locations/page.tsx
│   │   └── ...
│   ├── components/
│   └── package.json
├── prisma/
│   └── schema.prisma
├── locations.json
├── service-schema-template.json
└── business-profile.json(如果提供了商家名称)

示例工作流

用户:“帮我做一个佛罗里达州Port Orange的高压清洗服务网站”

  1. 收集输入(领域:高压清洗,区域:Port Orange FL,Jina密钥)
  2. 生成带有信任标识、行动号召、蓝/橙配色的设计
  3. 发现15英里半径内的48个地点
  4. 创建15个高压清洗服务的架构
  5. 设置包含6个潜在客户捕获表的PostgreSQL
  6. 计算:15 × 48 = 720页 → 派生约60个代理
  7. 生成所有服务+地点JSON文件,附带Unsplash图片
  8. 构建包含214+页面的NextJS网站
  9. 运行Playwright测试(目标:通过率80%以上)
  10. 推送到GitHub
  11. 报告:存储库URL、运行说明、部署说明

关键规则

必须做:

  • 开始前收集所有输入
  • 如果未提供设计,先生成设计
  • 创建页面之前先发现地点
  • 生成页面之前先创建服务架构
  • 所有页面生成代理同时派生
  • 部署之前使用Playwright测试
  • 提供清晰的部署说明

绝对不要:

  • 跳过输入收集阶段
  • 没有Jina API密钥就继续
  • 顺序派生代理(必须并行!)
  • 在所有页面准备好之前构建NextJS网站
  • 跳过Playwright测试
  • 不给用户提供后续步骤

成功标准

  • 设计已存在(生成或用户提供)
  • 已发现20-50+个地点
  • 架构中包含5-15个服务
  • 已生成200+个服务+地点页面
  • 所有页面都有Unsplash图片
  • NextJS网站已构建并可运行
  • Playwright测试通过(通过率80%以上)
  • 代码已提交到Git
  • 用户有部署说明

Individual skills in this repo

This repo contains 17 individual skills — each has its own dedicated page.

diegosouzapw/awesome-omni-skill

Skill for discovering and researching autonomous AI agents, tools, and ecosystems using the AgentFolio directory.

diegosouzapw/awesome-omni-skill

Factor modeling and portfolio construction (Markowitz, Black-Litterman, constraints, turnover).

diegosouzapw/awesome-omni-skill

Analyze the CustomGPT.ai Labs Innovation workbook and cost tracking data to surface portfolio-level insights, trends, and recommendations for where to focus Innovation efforts.

diegosouzapw/awesome-omni-skill

Optimize project portfolio selection under constraints using mathematical optimization

diegosouzapw/awesome-omni-skill

Rapidly build, prototype, and deploy full-stack software using AI "text-to-app" tools. Use this when you need to create a greenfield application, build a high-fidelity working prototype for user testing, or bypass traditional engineering bottlenecks for internal tools.

diegosouzapw/awesome-omni-skill

Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios,...

diegosouzapw/awesome-omni-skill

Minimalist, typography-focused portfolio design system inspired by neo-brutalist and Swiss design principles. Emphasizes bold typography, generous whitespace, monochromatic color schemes, and elegant simplicity for developer/designer portfolios.

diegosouzapw/awesome-omni-skill

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".

diegosouzapw/awesome-omni-skill

High-converting landing pages. Copy + design + implementation. Triggers: landing page, conversion page.

diegosouzapw/awesome-omni-skill

Portfolio allocation and rebalancing optimizer. Manages asset allocation across stocks/cash/bonds, performs periodic rebalancing, and ensures diversification according to market regime and risk tolerance.

diegosouzapw/awesome-omni-skill

Detect and explain risk drift in lending portfolios over time using vintage analysis, migration matrices, and concentration metrics. Use when monitoring portfolio credit quality trends, preparing board risk reports, conducting stress testing, or when risk metrics deviate from appetite thresholds.

diegosouzapw/awesome-omni-skill

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".

diegosouzapw/awesome-omni-skill

Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".

diegosouzapw/awesome-omni-skill

Index-based file discovery using ABOUTME headers. Use INSTEAD of grep or Explore agent when searching for files by purpose or feature. Faster and more accurate than scanning code. Invoke this skill when user asks "which files handle X", "where is Y implemented", or when you need to find files related to a feature or task.

diegosouzapw/awesome-omni-skill

Index-based file discovery using ABOUTME headers. Use INSTEAD of grep or Explore agent when searching for files by purpose or feature. Faster and more accurate than scanning code. Invoke this skill when user asks "which files handle X", "where is Y implemented", or when you need to find files related to a feature or task.

diegosouzapw/awesome-omni-skill

Automate Klipfolio tasks via Rube MCP (Composio). Always search tools first for current schemas.

diegosouzapw/awesome-omni-skill

Build a GitHub portfolio that gets you hired — curate 3-5 polished projects, craft compelling READMEs, deploy live demos, tell a coherent story across your repos, and align everything to AI-native development roles. Use when preparing your GitHub for job searches, deciding what to pin, or auditing your public presence.

相关技能