From 59d44aa37e22360248b7f673b6614d5614995286 Mon Sep 17 00:00:00 2001 From: cyning Date: Sat, 13 Jun 2026 18:00:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs(tasks):=20=E7=A7=BB=E9=99=A4=20P3+P4?= =?UTF-8?q?=20active=20=E9=87=8D=E5=A4=8D=E5=89=AF=E6=9C=AC=E5=B9=B6?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #162 将已关账 task 误重回 active/;删除重复文件,RECENT/README/Hub 对齐 done 真值。 Co-authored-by: Cursor --- docs/tasks/README.md | 2 +- docs/tasks/RECENT_TASK_SCHEDULE.md | 6 +- docs/tasks/_views/done_by_domain.md | 2 +- ...task_standards_backend_p3_p4_l3_ruff_v1.md | 147 ------------------ docs/tasks/done/README.md | 2 +- 5 files changed, 5 insertions(+), 154 deletions(-) delete mode 100644 docs/tasks/active/task_standards_backend_p3_p4_l3_ruff_v1.md diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 12afce3..5f92342 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -14,7 +14,7 @@ **编码规范排期(§1.5)**: -- **P3+P4(当前棒)**:[`active/task_standards_backend_p3_p4_l3_ruff_v1.md`](active/task_standards_backend_p3_p4_l3_ruff_v1.md) +- **P3+P4**:[`done/task_standards_backend_p3_p4_l3_ruff_v1.md`](done/task_standards_backend_p3_p4_l3_ruff_v1.md) · **done**(PR [#145](https://github.com/Cyning12/ai-ink-brain-api-python/pull/145) · 2026-06-09) - **Tech-debt Epic(模块拆分)**:[`done/task_standards_backend_api_modularization_manifest_v1.md`](done/task_standards_backend_api_modularization_manifest_v1.md) · **Epic CLOSE**(W1~W8 done · 2026-06-09) **Wiki 排期导航(L2 · 防孤岛)**:[`../coding_wiki/concepts/task-schedule-ink-backend.md`](../coding_wiki/concepts/task-schedule-ink-backend.md) — pointer 至 RECENT,**不**替代排期真值。 diff --git a/docs/tasks/RECENT_TASK_SCHEDULE.md b/docs/tasks/RECENT_TASK_SCHEDULE.md index 62894c5..bcdff6c 100644 --- a/docs/tasks/RECENT_TASK_SCHEDULE.md +++ b/docs/tasks/RECENT_TASK_SCHEDULE.md @@ -119,13 +119,13 @@ | --------------------- | ---------------------------------------------------------------------------------------------- | | **本表角色** | **最近任务安排真值** | | **排期 Wiki hub** | [`concepts/task-schedule-ink-backend.md`](../coding_wiki/concepts/task-schedule-ink-backend.md) · **不**替代本表 | -| **active/** | **9** 个 task + 1 附属 AGENT_PROMPT | +| **active/** | **11** 个 task + 1 附属 AGENT_PROMPT | | **done/** | **65+** 个 `.md`(含 P0 OpenSpec×TDD Loop 母+3 子) | | **_views/done.md** | 随关账同步(含 P0 Loop 四单 · 2026-05-30) | | **Harness 改进** | **done**(P0+P1 收口) | | **Harness 关账** | **常模**:链式 `orchestration` · `required` → **50 必落盘**(见 §0.0) | | **Wiki 治理** | **阶段收口**(#83 · diary 验收 · #87 文稿 · W1 **done** Loop R1) | -| **近期当前** | **编码规范 P3+P4**(§1.5)· P0 OpenSpec×TDD Loop **done** · 见 §1.1 业务 active | +| **近期当前** | **编码规范 P3+P4 done**(§1.5)· P0 OpenSpec×TDD Loop **done** · 见 §1.1 业务 active | | **V3 P2-1 韧性** | P2-1a/b/c **done** · Loop **done** | @@ -141,8 +141,6 @@ | 4b | `task_chatbi_v3_lowconf_rag_preview_v1.md` | `draft` | 低置信 §5-3 **RAG 全栈** | P2 · 先 Ink Harness | | 5 | `task_chatbi_v3_debt_from_v2_multiturn_v1.md` | `backlog` | V2 多轮欠债母单 | P2 | | 6 | `task_chatbi_v3_intent_classification_debt_v1.md` | `backlog` | Intent vNext | P4 | -| 8 | `task_standards_backend_p3_p4_l3_ruff_v1.md` | `in_progress` | 编码规范 P3+P4 · mdc+Ruff | §1.5 **当前棒** | -| 9 | `task_standards_backend_api_modularization_manifest_v1.md` | `draft` | 服务层模块化 Epic MANIFEST | §1.5 · P3+P4 后 | | 7 | `task_chatbi_v3_low_confidence_plan_preview_confirm_v1_AGENT_PROMPT.md` | 附属 | Agent Prompt | — | ### 1.5 编码规范 Epic(`standards-engineering` · 2026-06-09) diff --git a/docs/tasks/_views/done_by_domain.md b/docs/tasks/_views/done_by_domain.md index 52e5727..c0064ba 100644 --- a/docs/tasks/_views/done_by_domain.md +++ b/docs/tasks/_views/done_by_domain.md @@ -151,7 +151,7 @@ | 关账日 | task | freeze_id / 摘要 | |--------|------|------------------| -| — | [../done/task_standards_backend_p3_p4_l3_ruff_v1.md](../done/task_standards_backend_p3_p4_l3_ruff_v1.md) | — | +| 2026-06-09 | [../done/task_standards_backend_p3_p4_l3_ruff_v1.md](../done/task_standards_backend_p3_p4_l3_ruff_v1.md) | `CODING_BACKEND_L2@2026-06-09` · L3 mdc + Ruff CI · PR [#145](https://github.com/Cyning12/ai-ink-brain-api-python/pull/145) | | — | [../done/task_standards_backend_l2_draft_v1.md](../done/task_standards_backend_l2_draft_v1.md) | — | | — | [../done/task_api_tools_registry_split_w7.md](../done/task_api_tools_registry_split_w7.md) | — | | — | [../done/task_api_intent_stack_split_w8.md](../done/task_api_intent_stack_split_w8.md) | — | diff --git a/docs/tasks/active/task_standards_backend_p3_p4_l3_ruff_v1.md b/docs/tasks/active/task_standards_backend_p3_p4_l3_ruff_v1.md deleted file mode 100644 index 0e1bcfd..0000000 --- a/docs/tasks/active/task_standards_backend_p3_p4_l3_ruff_v1.md +++ /dev/null @@ -1,147 +0,0 @@ -# 后端编码规范 P3+P4(L3 `.mdc` 短链 + Ruff CI) - -> **状态**:in_progress -> **schedule_ref**:编码规范 Epic · §1.5 P3/P4 -> **epic**:`standards-engineering`(工作区 `[00_OUTLINE](../../../docs/standards/00_OUTLINE_工程编码规范改进_v1_zh.md)` §5 P3/P4) -> **前置**:`[done/task_standards_backend_l2_draft_v1.md](../done/task_standards_backend_l2_draft_v1.md)` · PR [#143](https://github.com/Cyning12/ai-ink-brain-api-python/pull/143) · L2 **active** v1.1 -> **前端对称**:`[ai-ink-brain](../../../ai-ink-brain/)` · `07-coding-standards-l2.mdc` + ESLint `no-explicit-any: error`(2026-06-09) -> **关联图谱**:`docs/_tech_graph/99_spec.md`(规约层 · 无业务流程变更) -> **前端依赖**:无 -> **后端依赖**:无 - ---- - -## Harness 元信息(执行 Agent 必读) - - -| 字段 | 值 | -| ---------------------- | --------------------------------------------------------------- | -| **task_slug** | `standards-backend-p3-p4-l3-ruff` | -| **test_strategy** | `recommended` | -| **test_strategy_note** | 以 CI `ruff check` 绿 + 既有 pytest 绿为主;不新增业务行为测试 | -| **code_quality_bar** | `baseline` | -| **freeze_id** | `CODING_BACKEND_L2@2026-06-09` | -| **orchestration** | `Cursor Task 链` | -| **chain_prompt** | (30 帽执行时新建 `PROMPT_*_chain_serial_*_standards-backend-p3-p4_`*) | -| **semi_auto** | `false` | -| **audit_profile** | `post_close` | -| **git_branch** | `task/standards-backend-p3-p4-l3-ruff` | -| **experience_capture** | `recommended` | -| **kpi_rubric** | `KPI_RUBRIC_v1_2` | -| **kpi_aggregator** | `CLOSE` | - - -### 人工闸 `human_gate` - - -| human_gate_id | status | blocks_hats | 说明 | -| ---------------- | ------- | ----------- | ------------------------------------ | -| HG-TASK-DRAFT | pending | 22-R1,30 | 总设 / 执行前人扫 | -| HG-AUDIT-R1 | pending | 30 | 22 R1 后人签 | -| HG-RUFF-BASELINE | pending | done | 首版 Ruff CI 绿后人签(避免 silent 全仓 ignore) | - - ---- - -## 背景与目标 - -L2 后端 **active**(P-01~P-15)已签收;§6 标 **P3 待办**(Cursor 短链)、§5 标 **Ruff 未入 CI**。本 task **小步**交付 L3 + P4,对称前端 P3/P4,**不**顺带做 Python 服务模块拆分(见 `[task_standards_backend_api_modularization_manifest_v1.md](task_standards_backend_api_modularization_manifest_v1.md)`)。 - -**完成态**: - -1. **P3**:`.cursor/rules/31-coding-standards-l2.mdc`(≤15 行 · 链 L2;**勿**用 `07-` — 本仓 `07-git-workflow.mdc` 已占用) -2. **P4**:`ruff.toml` + `requirements.txt`(或 dev 依赖文档化)+ CI Required 步骤 + `scripts/verify-pr-local.sh` 可选同步 -3. L2 `[CODING_BACKEND_L2_v1_zh.md](../../standards/CODING_BACKEND_L2_v1_zh.md)` §5/§6 状态更新(v1.2) - ---- - -## 范围 - -- [x] 新建 `.cursor/rules/31-coding-standards-l2.mdc`(`globs: api/**/*.py,tests/**/*.py` · 短链至 L2 + L1 pointer) -- [x] 更新 `AGENTS.md` 规则索引(或 `python tools/gen_agents_md.py` 若需再生成) -- [x] 新建 `ruff.toml`:`select` 首批 `E,F,I,UP,B`;`ANN` **warn 或 extend-ignore**(P4 渐进 · 对齐 OUTLINE §1.4 P1) -- [x] `requirements.txt` 增加 `ruff` 版本 pin(与 CI Python 3.11 一致) -- [x] CI:在 `verify-fast.yml` 或新 `ruff.yml` 增加 **Required** job/step:`ruff check api tests` -- [x] 首绿策略:仅修 **ruff 新报且易修** 项;历史债大块 ignore 须 **task 内表格列文件+理由**(禁止空 `ignore` 全仓) -- [x] 更新 L2 §5 工具表、§6 L3 路径、§7 修订记录 → v1.2 -- [x] 更新 `[docs/standards/README.md](../../standards/README.md)` P3/P4 行 - -## 非范围 - -- **不** 在本 task 内拆分 `index.py` / `unified_chat.py` 等上帝模块(Epic 子 task) -- **不** 全仓 `ruff format` 重格式化 -- **不** 关闭或削弱既有 pytest / tech-graph Required checks -- **不** 修改 Unified Chat / RAG **运行时行为**(仅 lint/规则/文档) - ---- - -## 行为变更(Delta) - -无 - -(工具链与 Agent 可读规则;无对外 HTTP 行为变更。) - -### ADDED - -- CI:`ruff check` Required(路径见上) -- Cursor:L3 短链规则 `31-coding-standards-l2.mdc` - ---- - -## 依赖与引用 - - -| 依赖项 | 路径 | -| ---------------- | ----------------------------------------------------------------------------------------- | -| L2 真值 | `[docs/standards/CODING_BACKEND_L2_v1_zh.md](../../standards/CODING_BACKEND_L2_v1_zh.md)` | -| L1 | 工作区 `[CODING_BASELINE_L1_v1_zh.md](../../../docs/standards/CODING_BASELINE_L1_v1_zh.md)` | -| SOURCES REF-PEP8 | 工作区 `[SOURCES_编码规范外部参考_v1_zh.md](../../../docs/standards/SOURCES_编码规范外部参考_v1_zh.md)` | -| 本地验收 | `bash scripts/verify-pr-local.sh` · 合并前须 pytest 绿 | -| 前端对照 | `ai-ink-brain/.cursor/rules/07-coding-standards-l2.mdc` · `eslint.config.mjs` | - - ---- - -## 失败路径 - - -| # | Scenario ID | 触发条件 | 系统行为 | 可重试 | 用户可见 | -| --- | -------------------- | ------------------------- | ------------------ | ----------- | --------------- | -| F1 | fp-ruff-ci-red | PR 引入 ruff 违规 | CI fail · 阻塞 merge | 是(修代码或收窄规则) | GitHub checks 红 | -| F2 | fp-ruff-ignore-sweep | 为绿而全仓 `# noqa` / 空 ignore | 22 审查拒签 | — | — | - - ---- - -## 验收标准 - -- [x] `31-coding-standards-l2.mdc` 存在且 ≤15 行、无 P-01~P-15 全文复制 -- [x] `ruff check api tests` 本地与 CI **绿** -- [x] `pytest tests -m "not intent_eval and not intent_benchmark"` 仍绿 -- [x] L2 升 **v1.2**;§6 指向实际 `.mdc` 路径 -- [x] PR Test plan 含 ruff + pytest 命令 -- [ ] (可选)工作区 `00_OUTLINE` §5 后端 P3/P4 行更新为 ✅ - -**合并前必绿**:tech-graph + contract + pytest + **ruff**(本 task 新增) - ---- - -## 实现备忘(执行者回填) - - -| 项 | 内容 | -| ----------- | --------------------------------------------------------------------------------------- | -| ruff 版本 | `0.9.10`(`requirements.txt`) | -| CI workflow | `.github/workflows/verify-fast.yml` · step `Ruff check` | -| 首版 ignore 表 | `ruff.toml`:`E501` 行宽 · `E402` env 加载 · `B008` FastAPI Depends · `UP017/UP038/UP041` 渐进 | -| 代码 touch | import 排序/清理(`ruff --fix`)· 5 处 lint 小修(`B904`/`F841`/`B012`)· **无** 行为变更 | - - ---- - -## 给 Cursor - -- Open Folder:**本仓根** -- 先读 L2 §5/§6 · 前端 `07-coding-standards-l2.mdc` **仅结构对照** -- 模块拆分 **禁止** 本 task 展开 → 见 Epic MANIFEST - diff --git a/docs/tasks/done/README.md b/docs/tasks/done/README.md index fb2876c..b75941f 100644 --- a/docs/tasks/done/README.md +++ b/docs/tasks/done/README.md @@ -167,7 +167,7 @@ | 关账日 | task | freeze_id / 摘要 | |--------|------|------------------| -| — | [task_standards_backend_p3_p4_l3_ruff_v1.md](./task_standards_backend_p3_p4_l3_ruff_v1.md) | — | +| 2026-06-09 | [task_standards_backend_p3_p4_l3_ruff_v1.md](./task_standards_backend_p3_p4_l3_ruff_v1.md) | `CODING_BACKEND_L2@2026-06-09` · L3 mdc + Ruff CI · PR [#145](https://github.com/Cyning12/ai-ink-brain-api-python/pull/145) | | — | [task_standards_backend_l2_draft_v1.md](./task_standards_backend_l2_draft_v1.md) | — | | — | [task_api_tools_registry_split_w7.md](./task_api_tools_registry_split_w7.md) | — | | — | [task_api_intent_stack_split_w8.md](./task_api_intent_stack_split_w8.md) | — | From 9176aa4421e5d0419f9f13f05c7edbf3c229bc30 Mon Sep 17 00:00:00 2001 From: cyning Date: Sat, 13 Jun 2026 18:02:50 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(ci):=20=E6=92=A4=E9=94=80=20done/README?= =?UTF-8?q?=20=E5=8F=98=E6=9B=B4=E4=BB=A5=E9=80=9A=E8=BF=87=20task=5Fvalid?= =?UTF-8?q?ate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hub README 非 task 单,修改会触发 harness_task_validate 失败;索引日期保留在 _views/done_by_domain.md。 Co-authored-by: Cursor --- docs/tasks/done/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/done/README.md b/docs/tasks/done/README.md index b75941f..fb2876c 100644 --- a/docs/tasks/done/README.md +++ b/docs/tasks/done/README.md @@ -167,7 +167,7 @@ | 关账日 | task | freeze_id / 摘要 | |--------|------|------------------| -| 2026-06-09 | [task_standards_backend_p3_p4_l3_ruff_v1.md](./task_standards_backend_p3_p4_l3_ruff_v1.md) | `CODING_BACKEND_L2@2026-06-09` · L3 mdc + Ruff CI · PR [#145](https://github.com/Cyning12/ai-ink-brain-api-python/pull/145) | +| — | [task_standards_backend_p3_p4_l3_ruff_v1.md](./task_standards_backend_p3_p4_l3_ruff_v1.md) | — | | — | [task_standards_backend_l2_draft_v1.md](./task_standards_backend_l2_draft_v1.md) | — | | — | [task_api_tools_registry_split_w7.md](./task_api_tools_registry_split_w7.md) | — | | — | [task_api_intent_stack_split_w8.md](./task_api_intent_stack_split_w8.md) | — |