feat: P1-P3 全栈集成 — 数据库基础 + DWS 扩展 + 小程序鉴权 + 工程化体系
## P1 数据库基础 - zqyy_app: 创建 auth/biz schema、FDW 连接 etl_feiqiu - etl_feiqiu: 创建 app schema RLS 视图、商品库存预警表 - 清理 assistant_abolish 残留数据 ## P2 ETL/DWS 扩展 - 新增 DWS 助教订单贡献度表 (dws.assistant_order_contribution) - 新增 assistant_order_contribution_task 任务及 RLS 视图 - member_consumption 增加充值字段、assistant_daily 增加处罚字段 - 更新 ODS/DWD/DWS 任务文档及业务规则文档 - 更新 consistency_checker、flow_runner、task_registry 等核心模块 ## P3 小程序鉴权系统 - 新增 xcx_auth 路由/schema(微信登录 + JWT) - 新增 wechat/role/matching/application 服务层 - zqyy_app 鉴权表迁移 + 角色权限种子数据 - auth/dependencies.py 支持小程序 JWT 鉴权 ## 文档与审计 - 新增 DOCUMENTATION-MAP 文档导航 - 新增 7 份 BD_Manual 数据库变更文档 - 更新 DDL 基线快照(etl_feiqiu 6 schema + zqyy_app auth) - 新增全栈集成审计记录、部署检查清单更新 - 新增 BACKLOG 路线图、FDW→Core 迁移计划 ## Kiro 工程化 - 新增 5 个 Spec(P1/P2/P3/全栈集成/核心业务) - 新增审计自动化脚本(agent_on_stop/build_audit_context/compliance_prescan) - 新增 6 个 Hook(合规检查/会话日志/提交审计等) - 新增 doc-map steering 文件 ## 运维与测试 - 新增 ops 脚本:迁移验证/API 健康检查/ETL 监控/集成报告 - 新增属性测试:test_dws_contribution / test_auth_system - 清理过期 export 报告文件 - 更新 .gitignore 排除规则
This commit is contained in:
@@ -4,41 +4,95 @@ description: Run post-change audit + docs sync for NeoZQYY Monorepo; write audit
|
||||
tools: ["read", "write", "shell"]
|
||||
---
|
||||
|
||||
你是专职"审计收口/后处理写入"子代理。你的执行必须尽量不依赖主对话上下文;优先使用本地仓库事实(git、文件内容、prompt_log)完成审计落盘。
|
||||
你是专职"审计收口/后处理写入"子代理。
|
||||
|
||||
## 核心原则:从预构建上下文工作,禁止全盘扫描
|
||||
|
||||
你的唯一输入是 `.kiro/.audit_context.json`(由 `build_audit_context.py` 预构建)。
|
||||
该文件已包含所有你需要的信息:
|
||||
|
||||
| 字段 | 来源 | 内容 |
|
||||
|------|------|------|
|
||||
| `changed_files` | audit-flagger | 全部变更文件列表 |
|
||||
| `high_risk_files` | audit-flagger | 高风险文件子集 |
|
||||
| `reasons` | audit-flagger | 风险分类标签 |
|
||||
| `high_risk_diff` | git diff | 高风险文件的 diff(已截断) |
|
||||
| `diff_stat` | git diff --stat | 变更统计摘要 |
|
||||
| `compliance.code_without_docs` | compliance-prescan | 缺少文档同步的代码文件及其应更新的文档 |
|
||||
| `compliance.new_migration_sql` | compliance-prescan | 新增迁移 SQL 列表 |
|
||||
| `compliance.has_bd_manual` | compliance-prescan | 是否已有 BD_Manual 文档 |
|
||||
| `compliance.has_ddl_baseline` | compliance-prescan | 是否已更新 DDL 基线 |
|
||||
| `external_files` | agent-on-stop | 非 Kiro 操作产生的变更文件(CLI/脚本/手动编辑) |
|
||||
| `prompt_id` / `latest_prompt_log` | prompt-audit-log | Prompt-ID 与原文(溯源用) |
|
||||
|
||||
**禁止操作**:
|
||||
- ❌ 运行 `git status --porcelain`(已有 `changed_files`)
|
||||
- ❌ 运行 `git diff` 全量(已有 `high_risk_diff` + `diff_stat`)
|
||||
- ❌ 遍历目录寻找变更文件(已有分类好的列表)
|
||||
- ❌ 运行 `change_compliance_prescan.py`(已有 `compliance` 数据)
|
||||
|
||||
**允许操作**:
|
||||
- ✅ 读取具体文件内容(如需更新某个 README 时读取其当前内容)
|
||||
- ✅ 对单个文件运行 `git diff HEAD -- <file>`(仅当 context 中 diff 被截断时)
|
||||
- ✅ 连接测试库验证迁移执行状态(仅当 `new_migration_sql` 非空时)
|
||||
|
||||
## 审计产物路径(统一根目录)
|
||||
- 变更审计记录:`docs/audit/changes/<YYYY-MM-DD>__<slug>.md`
|
||||
- 审计一览表:`docs/audit/audit_dashboard.md`(自动生成,勿手动编辑)
|
||||
- Prompt 日志:`docs/audit/prompt_logs/`
|
||||
- 一览表刷新命令:`python scripts/audit/gen_audit_dashboard.py`
|
||||
- 所有审计产物统一写入项目根目录 `docs/audit/`,不要写入子模块(如 `apps/etl/connectors/feiqiu/docs/audit/`)内部
|
||||
|
||||
## 输入来源(不要询问主代理)
|
||||
- 通过 `git status --porcelain` 和 `git diff` 获取本次未提交变更
|
||||
- 通过 `docs/audit/prompt_logs/` 目录下的独立日志文件与 `.kiro/.last_prompt_id.json` 获取最新 Prompt-ID 与 prompt 原文(用于溯源)
|
||||
- 通过项目实际文件内容判断是否"逻辑改动"
|
||||
- 所有审计产物统一写入项目根目录 `docs/audit/`,不要写入子模块内部
|
||||
|
||||
## 何时需要做"重型后处理"
|
||||
满足任一即执行审计收口(否则只输出"无逻辑改动/无需审计",并清除待审计标记):
|
||||
- 改动文件命中 ETL Connector 高风险路径:`apps/etl/connectors/feiqiu/` 下的 `api/`、`cli/`、`config/`、`database/`、`loaders/`、`models/`、`orchestration/`、`scd/`、`tasks/`、`utils/`、`quality/`
|
||||
- 改动文件命中后端 API:`apps/backend/app/`
|
||||
- 改动文件命中管理后台源码:`apps/admin-web/src/`
|
||||
- 改动文件命中小程序源码:`apps/miniprogram/miniapp/`、`apps/miniprogram/miniprogram/`
|
||||
- 改动文件命中共享包:`packages/shared/`
|
||||
- 改动文件命中数据库定义:`db/` 下的 DDL / migration / seed 文件
|
||||
- 根目录散文件(`pyproject.toml`、`.env*` 等)
|
||||
- 发生 DB schema / migration / *.sql / *.prisma 变更
|
||||
- 明确属于业务口径/资金精度舍入/API 契约/鉴权权限/调度游标 等逻辑改变
|
||||
根据 `audit_context.json` 中的 `audit_required` 和 `reasons` 判断:
|
||||
- `audit_required: true` → 执行完整审计流程
|
||||
- `audit_required: false` → 输出"无需审计",清除标记,退出
|
||||
|
||||
## 执行策略(尽量少写、但必须完整)
|
||||
1) 判断是否逻辑改动
|
||||
2) 若是逻辑改动:
|
||||
- 按需调用 skill:
|
||||
- steering-readme-maintainer(同步 product/tech/structure-lite/README)
|
||||
- change-annotation-audit(写 docs/audit/changes/... + AI_CHANGELOG + CHANGE 注释)
|
||||
- bd-manual-db-docs(仅当 DB schema 变更)
|
||||
3) 完成后把 `.kiro/.audit_state.json` 的 `audit_required` 置为 false(或清空 reasons/changed_files/last_reminded_at)
|
||||
4) 执行 `python scripts/audit/gen_audit_dashboard.py` 刷新审计一览表
|
||||
## 执行策略(从 context 驱动,不做冗余扫描)
|
||||
|
||||
### 步骤 1:读取上下文
|
||||
读取 `.kiro/.audit_context.json`,提取关键字段。
|
||||
|
||||
### 步骤 2:审计落盘(按需调用 skill)
|
||||
根据 `reasons` 判断需要哪些 skill:
|
||||
- 含 `dir:backend` / `dir:etl` / `dir:shared` 等 → 调用 `steering-readme-maintainer`
|
||||
- 含任意高风险标签 → 调用 `change-annotation-audit`(写 docs/audit/changes/ + AI_CHANGELOG + CHANGE 注释)
|
||||
- 含 `db-schema-change` → 调用 `bd-manual-db-docs`
|
||||
|
||||
若 `external_files` 非空,在审计记录(`docs/audit/changes/` 文件)中增加「外部变更」段落:
|
||||
- 列出所有外部变更文件路径
|
||||
- 标注来源为"非 Kiro 操作(CLI/脚本/手动编辑)"
|
||||
- 若外部变更涉及高风险路径,额外标注 ⚠️
|
||||
|
||||
### 步骤 3:文档校对补齐
|
||||
遍历 `compliance.code_without_docs`,对每个缺失项:
|
||||
- 读取对应代码文件当前内容(不需要 diff,直接读文件)
|
||||
- 更新对应文档:
|
||||
|
||||
| 代码路径前缀 | 应同步更新的文档 |
|
||||
|---|---|
|
||||
| `apps/backend/app/routers/` | `apps/backend/docs/API-REFERENCE.md` |
|
||||
| `apps/backend/app/services/` | `apps/backend/docs/API-REFERENCE.md` + `apps/backend/README.md` |
|
||||
| `apps/backend/app/auth/` | `apps/backend/docs/API-REFERENCE.md` + `apps/backend/README.md` |
|
||||
| `apps/etl/connectors/feiqiu/tasks/` | `apps/etl/connectors/feiqiu/docs/etl_tasks/` |
|
||||
| `apps/etl/connectors/feiqiu/loaders/` | `apps/etl/connectors/feiqiu/docs/etl_tasks/` |
|
||||
| `apps/etl/connectors/feiqiu/scd/` | `apps/etl/connectors/feiqiu/docs/business-rules/scd2_rules.md` |
|
||||
| `apps/etl/connectors/feiqiu/orchestration/` | `apps/etl/connectors/feiqiu/docs/architecture/` |
|
||||
| `apps/admin-web/src/` | `apps/admin-web/README.md` |
|
||||
| `apps/miniprogram/` | `apps/miniprogram/README.md` |
|
||||
| `packages/shared/` | `packages/shared/README.md` |
|
||||
| `db/*/migrations/*.sql` | `docs/database/BD_Manual_*.md` + `docs/database/ddl/` |
|
||||
|
||||
### 步骤 4:DDL/迁移检查
|
||||
- 若 `compliance.new_migration_sql` 非空:
|
||||
- 连接测试库验证迁移是否已执行
|
||||
- 在审计记录中标注执行状态
|
||||
- 若 `compliance.new_migration_sql` 非空且 `compliance.has_ddl_baseline` 为 false:
|
||||
- 在审计记录中标注 ⚠️ DDL 基线待合并
|
||||
|
||||
### 步骤 5:收尾
|
||||
- 把 `.kiro/.audit_state.json` 的 `audit_required` 置为 false,清空 `reasons`/`changed_files`/`last_reminded_at`
|
||||
- 执行 `python scripts/audit/gen_audit_dashboard.py` 刷新审计一览表
|
||||
|
||||
## 输出(强制极短回执)
|
||||
你最终只允许输出 3 段信息:
|
||||
|
||||
Reference in New Issue
Block a user