@wdyy/skills 0.1.13 → 0.1.15
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/.well-known/skills/index.json +2 -2
- package/.well-known/skills/wdyy-api-standard/reference/api-his-sql.md +38 -0
- package/.well-known/skills/wdyy-deployment-standard/SKILL.md +20 -4
- package/.well-known/skills/wdyy-deployment-standard/agents/openai.yaml +2 -2
- package/.well-known/skills/wdyy-deployment-standard/reference/docker-delivery-rules.md +25 -14
- package/.well-known/skills/wdyy-deployment-standard/scripts/generate-deployment-files.mjs +44 -8
- package/.well-known/skills/wdyy-deployment-standard/scripts/generate-deployment-files.test.mjs +148 -2
- package/.well-known/skills/wdyy-deployment-standard/scripts/validate-deployment-package.mjs +39 -4
- package/.well-known/skills/wdyy-deployment-standard/scripts/validate-deployment-package.test.mjs +287 -6
- package/.well-known/skills/wdyy-deployment-standard/templates/backend.Dockerfile.template +4 -5
- package/.well-known/skills/wdyy-deployment-standard/templates/deploy.sh.template +89 -9
- package/.well-known/skills/wdyy-deployment-standard/templates/docker-compose.yml +12 -1
- package/.well-known/skills/wdyy-deployment-standard/templates/env.example.template +5 -1
- package/.well-known/skills/wdyy-deployment-standard/templates/frontend-container.conf.template +9 -0
- package/.well-known/skills/wdyy-deployment-standard/templates/frontend.Dockerfile.template +3 -0
- package/README.md +2 -2
- package/lib/wdyy-cli.js +2 -2
- package/package.json +1 -1
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
services:
|
|
2
2
|
frontend:
|
|
3
3
|
image: "${PROJECT_NAME:?PROJECT_NAME is required}_frontend:latest"
|
|
4
|
+
container_name: "${PROJECT_NAME:?PROJECT_NAME is required}_frontend"
|
|
5
|
+
platform: "${DOCKER_PLATFORM:?DOCKER_PLATFORM is required}"
|
|
4
6
|
env_file: ./.env
|
|
5
7
|
environment:
|
|
6
|
-
NGINX_ENVSUBST_FILTER: "^(FRONTEND_URL|FRONTEND_PORT)$"
|
|
8
|
+
NGINX_ENVSUBST_FILTER: "^(FRONTEND_URL|FRONTEND_PORT|VITE_API_BASE_URL|BACKEND_PORT)$"
|
|
9
|
+
VITE_API_BASE_URL: "${VITE_API_BASE_URL:?VITE_API_BASE_URL is required}"
|
|
10
|
+
BACKEND_PORT: "${BACKEND_PORT:?BACKEND_PORT is required}"
|
|
11
|
+
TZ: "${TZ:?TZ is required}"
|
|
7
12
|
ports:
|
|
8
13
|
- "${DOCKER_BIND_IP}:${FRONTEND_PORT}:${FRONTEND_PORT}"
|
|
9
14
|
volumes:
|
|
10
15
|
- ./logs:/app/logs
|
|
11
16
|
restart: unless-stopped
|
|
17
|
+
depends_on:
|
|
18
|
+
backend:
|
|
19
|
+
condition: service_healthy
|
|
12
20
|
healthcheck:
|
|
13
21
|
test: ["CMD", "nginx", "-t"]
|
|
14
22
|
interval: 10s
|
|
@@ -17,10 +25,13 @@ services:
|
|
|
17
25
|
|
|
18
26
|
backend:
|
|
19
27
|
image: "${PROJECT_NAME:?PROJECT_NAME is required}_backend:latest"
|
|
28
|
+
container_name: "${PROJECT_NAME:?PROJECT_NAME is required}_backend"
|
|
29
|
+
platform: "${DOCKER_PLATFORM:?DOCKER_PLATFORM is required}"
|
|
20
30
|
env_file: ./.env
|
|
21
31
|
environment:
|
|
22
32
|
HOST: "${BACKEND_URL}"
|
|
23
33
|
PORT: "${BACKEND_PORT}"
|
|
34
|
+
TZ: "${TZ:?TZ is required}"
|
|
24
35
|
ports:
|
|
25
36
|
- "${DOCKER_BIND_IP}:${BACKEND_PORT}:${BACKEND_PORT}"
|
|
26
37
|
volumes:
|
package/.well-known/skills/wdyy-deployment-standard/templates/frontend-container.conf.template
CHANGED
|
@@ -12,6 +12,15 @@ server {
|
|
|
12
12
|
return 200 'ok';
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
location ${VITE_API_BASE_URL}/ {
|
|
16
|
+
proxy_pass http://backend:${BACKEND_PORT};
|
|
17
|
+
proxy_http_version 1.1;
|
|
18
|
+
proxy_set_header Host $host;
|
|
19
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
20
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
21
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
22
|
+
}
|
|
23
|
+
|
|
15
24
|
location / {
|
|
16
25
|
try_files $uri $uri/ /index.html;
|
|
17
26
|
}
|
|
@@ -2,8 +2,11 @@ ARG BACKEND_BASE_IMAGE
|
|
|
2
2
|
ARG FRONTEND_BASE_IMAGE
|
|
3
3
|
FROM ${BACKEND_BASE_IMAGE} AS build
|
|
4
4
|
WORKDIR /app
|
|
5
|
+
ARG VITE_API_BASE_URL
|
|
6
|
+
ENV VITE_API_BASE_URL=${VITE_API_BASE_URL}
|
|
5
7
|
COPY . .
|
|
6
8
|
RUN corepack enable && pnpm install --frozen-lockfile
|
|
9
|
+
RUN test -n "$VITE_API_BASE_URL"
|
|
7
10
|
RUN pnpm --dir src/frontend build
|
|
8
11
|
|
|
9
12
|
FROM ${FRONTEND_BASE_IMAGE}
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ OpenSpec 单项变更的需求、设计、任务、实
|
|
|
18
18
|
| `wdyy-api-standard` | 根据“获取XX数据”“使用XX接口”等需求定位接口 reference,并按已确认契约写入调用方式。 |
|
|
19
19
|
| `wdyy-bug-record` | 手动汇总当前任务已解决的问题,并按模板追加至 `docs/bug_record.md`。 |
|
|
20
20
|
| `wdyy-logging-standard` | 结构化日志、敏感字段移除、traceId、前端异常上报与日志轮转。 |
|
|
21
|
-
| `wdyy-deployment-standard` |
|
|
21
|
+
| `wdyy-deployment-standard` | 在 Linux、macOS Docker Desktop 或 Windows Docker Desktop + WSL2/Linux 容器模式中,使用本地基础镜像构建前后端独立镜像,分别导出并统一压缩交付,远程数据库直连并一键部署整个项目栈。 |
|
|
22
22
|
|
|
23
23
|
## 使用方式
|
|
24
24
|
|
|
@@ -43,7 +43,7 @@ wdyy update-skill --all
|
|
|
43
43
|
|
|
44
44
|
`wdyy update-skill <skill-name>` 只接受 5 个受管理的 `wdyy-*` Skill,且仅替换系统用户目录 `.agents/skills/` 中的指定目录;`--all` 替换全部 5 个受管理 Skill。两种方式都不会写入调用项目的 `AGENTS.md`、`AGENTS_new.md`、`docs/bug_record.md` 或 `.agents/skills/`,也不会执行 `openspec init`。首次初始化或需要重新生成项目规则时,使用 `wdyy init`。
|
|
45
45
|
|
|
46
|
-
部署 Skill
|
|
46
|
+
部署 Skill 生成的标准流程为:在 Linux、macOS Docker Desktop,或 Windows Docker Desktop + WSL2/Linux 文件系统的项目根目录执行 `./deploy.sh build`,只使用本地已有的 Node、Nginx 基础镜像构建 `<项目名>_frontend:latest` 与 `<项目名>_backend:latest`,分别导出两个镜像 tar,并统一封装为 `deploy/<项目名>-docker.tar.gz`。工程师人工复制并解压该压缩包,在平台匹配的 Linux engine 上无参数执行 `./deploy.sh` 即校验、加载并整体部署前后端;另可执行 `./deploy.sh stop` 和 `./deploy.sh status`。数据库通过 `.env` 直连远程 PostgreSQL,不生成数据库容器;前后端的宿主机与容器端口都来自 `.env`,容器名与镜像 repository 相同,使用 `unless-stopped`,并验证 24 小时制 CST(UTC+8);日志直接保存在部署根 `logs/`。不支持原生 PowerShell 或 Windows 容器模式。
|
|
47
47
|
|
|
48
48
|
中大型变更先使用 `/opsx:explore` 或 `/opsx:propose <change-name>`,在方案确认后使用 `/opsx:apply`;完成验证后使用 `/opsx:archive`。涉及数据库、内部 API、日志、部署时,按 `AGENTS.md` 的路由加载相应企业 Skill。所有 URL、端口和 IP 地址从 `.env` 读取,不得硬编码;所有项目管理的日志直接写入项目根目录 `logs/`;生产部署不使用蓝绿发布。不得提交秘密或生产环境 `.env`。项目完成后创建 `README.md`,说明技术栈、目录结构和安装部署。
|
|
49
49
|
|
package/lib/wdyy-cli.js
CHANGED
|
@@ -82,7 +82,7 @@ const generatedAgentsContent = `# 企业开发规则
|
|
|
82
82
|
| 获取已登记接口数据、使用已登记接口 | \`wdyy-api-standard\` |
|
|
83
83
|
| 汇总当前任务已解决的 BUG、漏洞或运行异常 | 手动调用 \`wdyy-bug-record\`,追加写入 \`docs/bug_record.md\` |
|
|
84
84
|
| 结构化日志、traceId、完整原始入参、前端异常上报 | \`wdyy-logging-standard\` |
|
|
85
|
-
| 统一 Docker
|
|
85
|
+
| 统一 Docker 交付、Linux/Mac/Windows WSL2 双镜像、远程数据库与整栈一键部署 | \`wdyy-deployment-standard\` |
|
|
86
86
|
|
|
87
87
|
## 通用边界
|
|
88
88
|
|
|
@@ -90,7 +90,7 @@ const generatedAgentsContent = `# 企业开发规则
|
|
|
90
90
|
- 代码、配置、迁移、测试与部署文件必须以实际实现为准;不得用模板虚构已实现能力。
|
|
91
91
|
- 所有需求(如数据库变更、流程变更、功能变更、从零开发项目等),必须先使用\`openspec-explore\`技能确认需求,再根据实际情况,使用\`openspec\`的其它技能。
|
|
92
92
|
- 所有项目管理的日志必须直接写入项目根目录 \`logs/\`,不得通过环境变量改写目录或创建服务、实例、日期等日志子目录。
|
|
93
|
-
- 生产部署必须使用 \`wdyy-deployment-standard
|
|
93
|
+
- 生产部署必须使用 \`wdyy-deployment-standard\`:在 Linux、macOS Docker Desktop 或 Windows Docker Desktop + WSL2/Linux 容器模式中,只使用已有基础镜像构建前后端两个独立 Linux 镜像,分别导出后封装为一个压缩包;数据库直连远程实例且不得使用数据库容器;解压后无参数执行 \`./deploy.sh\`,一次性部署整个前后端项目栈。禁止原生 PowerShell、Windows 容器模式、自动拉取镜像、交互菜单和单独操作一个服务。
|
|
94
94
|
- 不得静默吞错、跳过验证、以兜底逻辑掩盖未决问题。
|
|
95
95
|
`;
|
|
96
96
|
|