@lark-apaas/coding-steering 0.1.60 → 0.1.61-alpha.20261002215905
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/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-apaas/coding-steering",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.61-alpha.20261002215905",
|
|
4
4
|
"description": "Stack-specific steering content for miaoda-coding templates",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"steering"
|
|
8
8
|
],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"lint:md": "markdownlint 'steering/**/*.md' --ignore 'steering/**/skills/**' --ignore 'steering/**/skills_common/**' --ignore 'steering/**/skills_local/**'"
|
|
11
|
+
},
|
|
9
12
|
"devDependencies": {
|
|
10
13
|
"markdownlint-cli": "^0.47.0"
|
|
11
14
|
},
|
|
@@ -17,8 +20,5 @@
|
|
|
17
20
|
"miaoda",
|
|
18
21
|
"coding-steering"
|
|
19
22
|
],
|
|
20
|
-
"license": "MIT"
|
|
21
|
-
|
|
22
|
-
"lint:md": "markdownlint 'steering/**/*.md' --ignore 'steering/**/skills/**' --ignore 'steering/**/skills_common/**' --ignore 'steering/**/skills_local/**'"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
23
|
+
"license": "MIT"
|
|
24
|
+
}
|
|
@@ -154,7 +154,7 @@ shared/
|
|
|
154
154
|
## 开发环境与内置服务
|
|
155
155
|
|
|
156
156
|
- **登录/注册/用户系统**:内置,禁止自行实现
|
|
157
|
-
-
|
|
157
|
+
- 项目依赖已安装完整,普通前端源码变更由 HMR 更新;服务端子进程退出后,只有当前环境的 supervisor 明确接管时才会重启。两者都不保证被 production build 替换的输出会自动恢复
|
|
158
158
|
- `/api` 和 `/openapi` 代理已配置,前端 TS 严格模式已禁用,后端已启用
|
|
159
159
|
- Rspack 用于构建,已配置好,**禁止修改**
|
|
160
160
|
- **禁止修改的工程配置文件与目录**:
|
|
@@ -164,6 +164,13 @@ shared/
|
|
|
164
164
|
- `.eslintrc.js`、`.prettierrc`
|
|
165
165
|
- `node_modules/`、`.git/`、`dist/`、`build/`
|
|
166
166
|
|
|
167
|
+
### 开发预览与 production build
|
|
168
|
+
|
|
169
|
+
- `npm run build`、`npm run build:prod`、`npm run build:client` 及等价 production 入口会生成或替换生产输出,不是普通提交或发布前的默认自检。默认按改动范围运行代码检查、接口测试并读取相关日志,不在开发预览工作区执行本地 production build
|
|
170
|
+
- 只有明确需要 production 产物时才允许构建,并且必须满足其一:构建入口支持预览输出保护和显式隔离 `outDir`,且确认解析后的目录不是当前预览服务目录;或在没有活动预览的独立工作副本中构建
|
|
171
|
+
- 旧版 SDK、脚本不支持输出保护时,不得在活动预览工作区运行 production 入口;无法确认隔离目录或独立副本没有活动预览时,停止并报告缺少的隔离条件
|
|
172
|
+
- build 命令 `exit=0` 只证明该命令完成,不证明开发预览或业务页面健康
|
|
173
|
+
|
|
167
174
|
### `__runtime__` 接口在 Agent 验证入口下不可达
|
|
168
175
|
|
|
169
176
|
**判据**:请求路径含 `__runtime__`,或不以 `/api` / `/openapi` 开头——在 Agent 这里一定拿不到正常响应。不必重试,也不要换请求方法再试。
|
|
@@ -232,7 +239,8 @@ shared/
|
|
|
232
239
|
通用提交前检查(代码检查 / 接口测试 / 读日志确认无错误)见系统任务流程约束;本栈具体落点:
|
|
233
240
|
|
|
234
241
|
- **日志源**:服务端读 `server-devserver` / `server` 日志,客户端读 `client-devserver` 日志
|
|
235
|
-
-
|
|
242
|
+
- **恢复边界**:只能使用合同明确绑定当前 app/client 的运维工具执行恢复;没有这种工具时停止操作,报告所需的 app/client 范围与恢复合同,不按命令字符串批量终止进程,也不声称已恢复
|
|
243
|
+
- **恢复验收**:实际执行恢复后,必须重新运行真实 E2E,并从页面 HTML 识别应用自身的可执行入口资源(不是只看 HMR/平台辅助脚本),确认这些资源均可成功返回 JavaScript;只看进程、日志或 build 退出码不能证明业务恢复
|
|
236
244
|
|
|
237
245
|
---
|
|
238
246
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: devops-guide
|
|
3
|
-
description: "Use when user needs build, deploy, run, troubleshoot, or operate a miaoda fullstack app. IMPORTANT: Only activate this skill when the user explicitly asks about deployment, build failures, or service operations. Do NOT proactively trigger this skill during normal code development — reading devops skills to troubleshoot preemptively disrupts the development workflow. Only use when: build fails, deploy fails, service crashes, or user explicitly asks about ops issues. 触发词:devops, 构建, 部署, 运维, 日志, 启动失败, 编译失败, 服务异常, read_logs,
|
|
3
|
+
description: "Use when user needs build, deploy, run, troubleshoot, or operate a miaoda fullstack app. IMPORTANT: Only activate this skill when the user explicitly asks about deployment, build failures, or service operations. Do NOT proactively trigger this skill during normal code development — reading devops skills to troubleshoot preemptively disrupts the development workflow. Only use when: build fails, deploy fails, service crashes, or user explicitly asks about ops issues. 触发词:devops, 构建, 部署, 运维, 日志, 启动失败, 编译失败, 服务异常, read_logs, ps, pstree"
|
|
4
4
|
steering: true
|
|
5
5
|
steering-topic: devops
|
|
6
6
|
match-template-name: nestjs-react-fullstack
|
|
@@ -17,9 +17,9 @@ control-by-feature-ab: true
|
|
|
17
17
|
|
|
18
18
|
| 场景 | 必做动作 | 结果标准 |
|
|
19
19
|
|------|----------|----------|
|
|
20
|
-
| 修改代码后自检 |
|
|
20
|
+
| 修改代码后自检 | 按改动范围跑代码检查 | 对应语法、类型与样式检查通过 |
|
|
21
21
|
| 修改服务端代码 | 补跑接口测试 | 每个新增接口都能验证通过 |
|
|
22
|
-
| 准备交付前 |
|
|
22
|
+
| 准备交付前 | 读取最新日志,不默认跑本地 production build | 最新改动后无错误日志 |
|
|
23
23
|
| 用户反馈编译失败 | 查 lint/typecheck + devServer 日志 | 定位到具体文件、具体报错 |
|
|
24
24
|
| 用户反馈服务无响应 | 查日志 + 查进程状态 | 确认是代码报错还是 dev 进程卡死 |
|
|
25
25
|
|
|
@@ -27,11 +27,9 @@ control-by-feature-ab: true
|
|
|
27
27
|
|
|
28
28
|
### A. 代码改完后的质量保障
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
1. 运行代码检查工具,优先发现语法、类型、样式问题。
|
|
30
|
+
1. 按改动范围运行代码检查,优先发现语法、类型、样式问题。
|
|
33
31
|
2. 若改了服务端代码,执行接口测试,覆盖新增接口。
|
|
34
|
-
3.
|
|
32
|
+
3. 最后读取相关日志,确认最新改动没有引入错误日志。
|
|
35
33
|
|
|
36
34
|
### B. 编译失败 / 服务启动失败 / 页面异常
|
|
37
35
|
|
|
@@ -56,37 +54,22 @@ control-by-feature-ab: true
|
|
|
56
54
|
- **不要基于旧日志下结论**,要读取最新日志。
|
|
57
55
|
- 日志为空不代表没问题,先确认对应服务是否真的在运行。
|
|
58
56
|
|
|
59
|
-
## Step 3
|
|
60
|
-
|
|
61
|
-
若你发现代码已经修改,但 dev 日志长时间不更新,优先怀疑 dev 进程失活。
|
|
62
|
-
|
|
63
|
-
### 检查顺序
|
|
64
|
-
|
|
65
|
-
1. 用 `ps` / `pgrep` / `pstree` 确认 `dev:server`、`dev:client` 相关进程是否存在。
|
|
66
|
-
2. 若进程存在但日志不更新,先把现象记录为结论,不要直接重启环境。
|
|
67
|
-
3. 只有调用方明确要求时,才执行 `pkill -f "dev:server"` 或 `pkill -f "dev:client"`。
|
|
68
|
-
|
|
69
|
-
### 推荐命令
|
|
57
|
+
## Step 3:区分更新与恢复机制
|
|
70
58
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
pgrep -af "dev:server"
|
|
75
|
-
pgrep -af "dev:client"
|
|
76
|
-
pstree -p <pid>
|
|
77
|
-
pkill -f "dev:server"
|
|
78
|
-
pkill -f "dev:client"
|
|
79
|
-
```
|
|
59
|
+
- **源码 HMR**:只处理开发服务支持的源码热更新,不修复被 production build 替换的输出。
|
|
60
|
+
- **child-exit supervisor**:只有当前环境明确提供 supervisor 合同时,子进程退出后才可能被拉起;以新的进程状态和日志确认,不能预设必然重启。
|
|
61
|
+
- **输出替换**:production 输出覆盖开发预览内容不属于 HMR 或 child-exit,不能等待自动恢复。
|
|
80
62
|
|
|
81
|
-
|
|
63
|
+
需要恢复时:
|
|
82
64
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
65
|
+
1. 先读取最新日志、真实页面、页面中的应用入口资源,并确认当前 app/client 范围。
|
|
66
|
+
2. 只有已文档化的运维工具合同明确绑定当前 app/client 时,才用它执行恢复。
|
|
67
|
+
3. 没有这样的工具合同就停止,准确报告当前状态,以及继续操作所缺的 app/client 范围或恢复合同;不要按命令字符串批量终止进程,不要声称已恢复。
|
|
68
|
+
4. 实际恢复后重新读取日志,运行真实 E2E,并确认页面 HTML 中应用自身的可执行入口资源均成功返回 JavaScript;进程存在、日志刷新或命令 `exit=0` 都不能替代业务验收。
|
|
86
69
|
|
|
87
70
|
## Step 4:构建 / 部署 / 运维排查框架
|
|
88
71
|
|
|
89
|
-
按照 **现象 → 根因 → 方案** 输出。
|
|
72
|
+
按照 **现象 → 根因 → 方案** 输出。production build 的入口范围、默认检查、隔离输出与旧版 fail-safe 边界,以 always-loaded `coding-guide` 的“开发预览与 production build”为唯一权威规则。
|
|
90
73
|
|
|
91
74
|
### 常见现象映射
|
|
92
75
|
|
|
@@ -96,7 +79,7 @@ pkill -f "dev:client"
|
|
|
96
79
|
| 后端启动失败 | Nest 模块注册错误、配置错误、运行时异常 | 查 `server-devserver` 和 `server` |
|
|
97
80
|
| 页面白屏 | 前端编译错误、运行时异常、接口异常 | 查 `client-devserver`,必要时补 `browser` |
|
|
98
81
|
| 接口 500 | 服务端业务异常 | 查 `server` / `trace`,补接口测试 |
|
|
99
|
-
| 热更新失效 |
|
|
82
|
+
| 热更新失效 | HMR 错误、子进程状态或输出被替换 | 分别核对日志、进程合同与页面入口,不默认重启 |
|
|
100
83
|
|
|
101
84
|
## 交付要求
|
|
102
85
|
|
|
@@ -114,6 +97,6 @@ pkill -f "dev:client"
|
|
|
114
97
|
| 改完代码直接说“没问题” | 先跑代码检查,再读日志 |
|
|
115
98
|
| 服务端改动后不测接口 | 必须验证新增接口 |
|
|
116
99
|
| 只看 `server` 不看 `server-devserver` | 服务端至少看两个日志源 |
|
|
117
|
-
|
|
|
118
|
-
|
|
|
100
|
+
| 发现无响应就按命令名结束进程 | 先定位 app/client;只有文档化的 scoped 工具才能执行恢复 |
|
|
101
|
+
| 恢复后只看日志或退出码 | 重新运行真实 E2E,并验证应用入口资源 |
|
|
119
102
|
| 只给结论不给证据 | 必须给日志或检查结果作为依据 |
|