workflow-loop 0.3.3__tar.gz → 0.3.4__tar.gz

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.
Files changed (106) hide show
  1. {workflow_loop-0.3.3/src/workflow_loop.egg-info → workflow_loop-0.3.4}/PKG-INFO +18 -14
  2. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/README.md +17 -13
  3. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/pyproject.toml +1 -1
  4. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/__init__.py +2 -2
  5. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/impl/code_implementation.md +1 -1
  6. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/impl/impl.md +2 -2
  7. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/impl/impl.md +8 -7
  8. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/rollback.py +553 -77
  9. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/stages/stages.py +136 -13
  10. {workflow_loop-0.3.3 → workflow_loop-0.3.4/src/workflow_loop.egg-info}/PKG-INFO +18 -14
  11. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_current_workflow_qa.py +1 -1
  12. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_rollback.py +302 -19
  13. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_stages.py +201 -0
  14. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/LICENSE +0 -0
  15. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/setup.cfg +0 -0
  16. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/acceptance_records.py +0 -0
  17. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/artifact_paths.py +0 -0
  18. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/artifact_validation.py +0 -0
  19. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/bug_record.py +0 -0
  20. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/cli.py +0 -0
  21. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/acceptance/acceptance.md +0 -0
  22. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/acceptance/acceptance_plan.md +0 -0
  23. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/code_design/code_design.md +0 -0
  24. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/code_design/project_design_init.md +0 -0
  25. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/code_design/update_code_design.md +0 -0
  26. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/global/document_writing.md +0 -0
  27. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/global/workflow_lifecycle.md +0 -0
  28. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/qa/test.md +0 -0
  29. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/qa/test_code.md +0 -0
  30. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/qa/test_code_implementation.md +0 -0
  31. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/qa/test_plan.md +0 -0
  32. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/reproduce/reproduce.md +0 -0
  33. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/spec/spec.md +0 -0
  34. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Standardized_Repository/spike/spike.md +0 -0
  35. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/acceptance/acceptance_plan.md +0 -0
  36. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/acceptance/acceptance_result.md +0 -0
  37. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/code_design/code_design.md +0 -0
  38. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/code_design/project_design_init_evidence.md +0 -0
  39. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/qa/test.md +0 -0
  40. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/qa/test_plan.md +0 -0
  41. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/reproduce/reproduce.md +0 -0
  42. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/spec/spec.md +0 -0
  43. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/data/Template_Repository/spike/spike.md +0 -0
  44. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/diagnostics.py +0 -0
  45. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/installer.py +0 -0
  46. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/journal.py +0 -0
  47. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/markdown_links.py +0 -0
  48. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/path_composer.py +0 -0
  49. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/process_runner.py +0 -0
  50. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/project.py +0 -0
  51. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/role_doc.py +0 -0
  52. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/snapshots.py +0 -0
  53. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/spike_reuse.py +0 -0
  54. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/spike_validation.py +0 -0
  55. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/stage_materials.py +0 -0
  56. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/stages/__init__.py +0 -0
  57. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/stages/base.py +0 -0
  58. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/state.py +0 -0
  59. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/test_entry.py +0 -0
  60. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/test_execution.py +0 -0
  61. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/test_mapping.py +0 -0
  62. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/test_report.py +0 -0
  63. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/test_runner.py +0 -0
  64. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/topic.py +0 -0
  65. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/topic_relations.py +0 -0
  66. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/traceability.py +0 -0
  67. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop/verification.py +0 -0
  68. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop.egg-info/SOURCES.txt +0 -0
  69. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop.egg-info/dependency_links.txt +0 -0
  70. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop.egg-info/entry_points.txt +0 -0
  71. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop.egg-info/requires.txt +0 -0
  72. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/src/workflow_loop.egg-info/top_level.txt +0 -0
  73. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_acceptance_records.py +0 -0
  74. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_architecture_validation.py +0 -0
  75. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_artifact_paths.py +0 -0
  76. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_bug_record.py +0 -0
  77. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_bug_validation.py +0 -0
  78. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_commands.py +0 -0
  79. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_current_workflow_contracts.py +0 -0
  80. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_diagnostics.py +0 -0
  81. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_installer.py +0 -0
  82. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_light_task.py +0 -0
  83. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_maintenance.py +0 -0
  84. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_maintenance_scripts.py +0 -0
  85. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_markdown_links.py +0 -0
  86. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_path_composer.py +0 -0
  87. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_process_runner.py +0 -0
  88. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_project.py +0 -0
  89. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_project_design_init.py +0 -0
  90. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_public_project.py +0 -0
  91. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_release_script.py +0 -0
  92. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_release_workflow.py +0 -0
  93. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_snapshots.py +0 -0
  94. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_spike_assets.py +0 -0
  95. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_spike_validation.py +0 -0
  96. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_stage_materials.py +0 -0
  97. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_state.py +0 -0
  98. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_test_entry.py +0 -0
  99. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_test_execution.py +0 -0
  100. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_test_mapping.py +0 -0
  101. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_test_report.py +0 -0
  102. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_test_runner.py +0 -0
  103. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_topic_relations.py +0 -0
  104. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_traceability.py +0 -0
  105. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_verification.py +0 -0
  106. {workflow_loop-0.3.3 → workflow_loop-0.3.4}/tests/test_workflow_acceptance.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workflow-loop
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: 为 AI 驱动的软件开发提供有状态、可验证、可回退的工作流管理。
5
5
  Author: yuzyf
6
6
  License-Expression: MIT
@@ -34,8 +34,10 @@ Workflow Loop 把一次软件修改拆成有顺序的工作环节,并用程序
34
34
 
35
35
  - **保存进度**:在项目的 `.workflow_loop/` 目录保存当前工作环节、确认状态和机器执行记录,下一次对话可以从真实状态继续。
36
36
  - **控制推进**:完整研发任务的每个环节依次经过讨论完成、程序检查和用户确认三道门;无需开发任务走独立的讨论、执行、结果确认简单流程。
37
+ - **一次说明门禁问题**:完整研发门禁失败时,一次列出当前能够独立确认的全部问题;每项写明位置、预期、实际、证据、影响和下一动作,无法可靠判断的项目标为“未检查”并说明依赖。同一状态重复检查时,问题清单和顺序保持一致,要求先修改后再检查。
38
+ - **给出唯一下一步**:每条命令结束时只给出一条完整有效的下一命令,并说明执行者、是否会自动执行测试或其它实际动作、以及成功条件。AI 必须原样执行,不能追加管道、截断、重定向或命令串联。
37
39
  - **连接交付证据**:把产品设计、验收条件、测试项、实施记录和最终结果放进同一条可追踪链路。
38
- - **保护项目修改**:实施前保存计划修改文件的原内容;需要退回上游或作废整轮时,按工作流规则使旧结果失效或恢复受管内容。
40
+ - **保护项目修改**:实施前保存计划修改文件的原内容,并记录代码、测试、脚本和项目配置的实施观察基线;发现未登记变化时明确报告。需要退回上游或作废整轮时,按工作流规则使旧结果失效或恢复受管内容。
39
41
  - **管理四种工作**:分别处理从零创建、修改现有产品、修复缺陷和无需开发任务;只有前三种生成研发环节路径。
40
42
 
41
43
  ### 不做什么
@@ -77,9 +79,11 @@ flowchart TD
77
79
  完整研发路线的三道门分别解决不同问题:
78
80
 
79
81
  1. **讨论完成**:需求、限制和实施计划已经与用户逐项达成共识,允许开始写正式产物。
80
- 2. **程序检查**:程序核对必需文件、结构、关联、代码变化或测试记录等可机械判断的事实。
82
+ 2. **程序检查**:程序核对必需文件、结构、关联、代码变化或测试记录等可机械判断的事实;失败时一次列出全部能够独立确认的问题,不把依赖未满足的检查猜成失败。
81
83
  3. **用户确认**:用户确认实际内容符合意图,程序记录确认后才进入下一环节。
82
84
 
85
+ 门禁失败的每项问题都会给出具体位置、预期、实际、证据、影响和下一动作;同一状态不会逐次隐藏问题,也不会要求 AI 原样重试。命令末尾只保留一条完整下一命令,AI 应直接照此执行。
86
+
83
87
  `light_task`(无需开发任务)是一类任务,不是“改文档、提交、发布”三个固定选项。它也要求先调查和讨论:AI 用第一性原理梳理需求,每次只问一个问题并给出建议,用户确认讨论完毕后才执行。执行 `commit`(本地 Git 提交)、`push`(推送远端)、发布、删除等难撤销操作前,要按准确操作单独确认;“提交代码”必须先问清是只 `commit`,还是还要 `push`。完成后,AI 按约定方法展示真实结果,用户确认后收工。简单流程不创建研发阶段、三道门、固定全量测试或回退副本;失败或作废时保留真实现场并说明结果,不自动回滚。
84
88
 
85
89
  ## 环境要求
@@ -90,29 +94,29 @@ flowchart TD
90
94
  - 安装时能够访问 GitHub 和 PyPI(Python 公共软件包仓库)。
91
95
  - 执行安装命令前,先进入要由 Workflow Loop 管理的项目根目录。
92
96
 
93
- ## 安装 0.3.3
97
+ ## 安装 0.3.4
94
98
 
95
99
  安装器先进行只读检查并列出项目侧和电脑侧可能发生的全部持久修改。用户确认一次后,安装器才安装或复用全局 `workflow` 命令,并把智能体契约、产物模板和工作规范写入当前项目;用户取消或安装失败时不会留下只完成一部分的安装。
96
100
 
97
101
  ### macOS
98
102
 
99
103
  ```bash
100
- curl -fsSL https://github.com/yuzyf/workflow_loop/releases/download/v0.3.3/install.sh | bash
104
+ curl -fsSL https://github.com/yuzyf/workflow_loop/releases/download/v0.3.4/install.sh | bash
101
105
  ```
102
106
 
103
107
  ### Linux
104
108
 
105
109
  ```bash
106
- curl -fsSL https://github.com/yuzyf/workflow_loop/releases/download/v0.3.3/install.sh | bash
110
+ curl -fsSL https://github.com/yuzyf/workflow_loop/releases/download/v0.3.4/install.sh | bash
107
111
  ```
108
112
 
109
113
  ### 原生 Windows
110
114
 
111
115
  ```powershell
112
- powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/yuzyf/workflow_loop/releases/download/v0.3.3/install.ps1 | iex"
116
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/yuzyf/workflow_loop/releases/download/v0.3.4/install.ps1 | iex"
113
117
  ```
114
118
 
115
- 安装命令固定读取 `v0.3.3` 正式发布中的脚本;不会跟随内容可能变化的 `latest`(最新版本)地址。
119
+ 安装命令固定读取 `v0.3.4` 正式发布中的脚本;不会跟随内容可能变化的 `latest`(最新版本)地址。
116
120
 
117
121
  ## 更新与卸载
118
122
 
@@ -120,7 +124,7 @@ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/y
120
124
 
121
125
  ```bash
122
126
  workflow update
123
- workflow update --version 0.3.3
127
+ workflow update --version 0.3.4
124
128
  ```
125
129
 
126
130
  更新按需补齐电脑全局命令和当前项目,只直接覆盖项目根 `AGENTS.md`、`.workflow_loop/Template_Repository/`、`.workflow_loop/Standardized_Repository/`,以及 `.workflow_loop/project.json` 中的安装版本字段。更新不创建备份,不回滚已经完成的步骤;当前轮次状态、历史、回退资料、业务代码和正式产物保持不变。失败后重新执行同一命令即可继续补齐。
@@ -166,18 +170,18 @@ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/y
166
170
  安装完成后,在当前项目中启动支持读取 `AGENTS.md`(智能体契约文件)的 AI 编码助手,直接用自然语言提出需求:
167
171
 
168
172
  ```text
169
- 用户:给当前项目增加 CSV 导出功能,并保证原有导出格式不受影响。
173
+ 用户:给当前项目增加 CSV(逗号分隔值)导出功能,并保证原有导出格式不受影响。
170
174
  ```
171
175
 
172
176
  之后由 AI 编码助手执行日常流程:
173
177
 
174
178
  1. 自动运行 `workflow start` 检查当前状态,并根据事实与用户确认本轮工作意图。
175
179
  2. 调查现状并推荐四种路线之一,用户确认进入该任务后才启动轮次。
176
- 3. 严格执行每条命令输出的“下一步”,讨论时每次只问用户一个问题。
180
+ 3. 严格执行每条命令输出的“下一步”,讨论时每次只问用户一个问题;门禁失败先按完整问题清单修改,不能原样重试,也不能自行拼接或截断命令输出。
177
181
  4. 完整研发路线在写代码前完成需求、验收、测试和实施计划;无需开发任务在用户确认讨论完毕后直接执行约定内容。
178
182
  5. 把真实结果交给用户核对并确认,再正式收工。
179
183
 
180
- 用户不需要手工执行日常 `workflow` 命令;用户只负责描述需求、回答讨论问题、确认安装范围和确认各环节结果。
184
+ 用户不需要手工执行日常 `workflow` 命令,但仍需确认工作路线、回答讨论问题、作出产品和验收决定、批准难撤销操作、确认安装范围及确认各环节结果。
181
185
 
182
186
  ## 命令概览
183
187
 
@@ -223,10 +227,10 @@ uv run python -m build
223
227
 
224
228
  ## 发布正式版本
225
229
 
226
- 项目维护者确认当前仓库内容可以直接发布后,在仓库根目录执行下面的命令,并把 `0.3.3` 替换成要发布的新版本号:
230
+ 项目维护者确认当前仓库内容可以直接发布后,在仓库根目录执行下面的命令,并把 `0.3.4` 替换成要发布的新版本号:
227
231
 
228
232
  ```bash
229
- uv run python scripts/release.py 0.3.3
233
+ uv run python scripts/release.py 0.3.4
230
234
  ```
231
235
 
232
236
  运行这条命令本身就表示维护者接受当前仓库状态并承担跳过本地发布检查的风险。脚本不会再次确认,也不会在本地运行测试、构建或远程版本查询。它依次执行:
@@ -15,8 +15,10 @@ Workflow Loop 把一次软件修改拆成有顺序的工作环节,并用程序
15
15
 
16
16
  - **保存进度**:在项目的 `.workflow_loop/` 目录保存当前工作环节、确认状态和机器执行记录,下一次对话可以从真实状态继续。
17
17
  - **控制推进**:完整研发任务的每个环节依次经过讨论完成、程序检查和用户确认三道门;无需开发任务走独立的讨论、执行、结果确认简单流程。
18
+ - **一次说明门禁问题**:完整研发门禁失败时,一次列出当前能够独立确认的全部问题;每项写明位置、预期、实际、证据、影响和下一动作,无法可靠判断的项目标为“未检查”并说明依赖。同一状态重复检查时,问题清单和顺序保持一致,要求先修改后再检查。
19
+ - **给出唯一下一步**:每条命令结束时只给出一条完整有效的下一命令,并说明执行者、是否会自动执行测试或其它实际动作、以及成功条件。AI 必须原样执行,不能追加管道、截断、重定向或命令串联。
18
20
  - **连接交付证据**:把产品设计、验收条件、测试项、实施记录和最终结果放进同一条可追踪链路。
19
- - **保护项目修改**:实施前保存计划修改文件的原内容;需要退回上游或作废整轮时,按工作流规则使旧结果失效或恢复受管内容。
21
+ - **保护项目修改**:实施前保存计划修改文件的原内容,并记录代码、测试、脚本和项目配置的实施观察基线;发现未登记变化时明确报告。需要退回上游或作废整轮时,按工作流规则使旧结果失效或恢复受管内容。
20
22
  - **管理四种工作**:分别处理从零创建、修改现有产品、修复缺陷和无需开发任务;只有前三种生成研发环节路径。
21
23
 
22
24
  ### 不做什么
@@ -58,9 +60,11 @@ flowchart TD
58
60
  完整研发路线的三道门分别解决不同问题:
59
61
 
60
62
  1. **讨论完成**:需求、限制和实施计划已经与用户逐项达成共识,允许开始写正式产物。
61
- 2. **程序检查**:程序核对必需文件、结构、关联、代码变化或测试记录等可机械判断的事实。
63
+ 2. **程序检查**:程序核对必需文件、结构、关联、代码变化或测试记录等可机械判断的事实;失败时一次列出全部能够独立确认的问题,不把依赖未满足的检查猜成失败。
62
64
  3. **用户确认**:用户确认实际内容符合意图,程序记录确认后才进入下一环节。
63
65
 
66
+ 门禁失败的每项问题都会给出具体位置、预期、实际、证据、影响和下一动作;同一状态不会逐次隐藏问题,也不会要求 AI 原样重试。命令末尾只保留一条完整下一命令,AI 应直接照此执行。
67
+
64
68
  `light_task`(无需开发任务)是一类任务,不是“改文档、提交、发布”三个固定选项。它也要求先调查和讨论:AI 用第一性原理梳理需求,每次只问一个问题并给出建议,用户确认讨论完毕后才执行。执行 `commit`(本地 Git 提交)、`push`(推送远端)、发布、删除等难撤销操作前,要按准确操作单独确认;“提交代码”必须先问清是只 `commit`,还是还要 `push`。完成后,AI 按约定方法展示真实结果,用户确认后收工。简单流程不创建研发阶段、三道门、固定全量测试或回退副本;失败或作废时保留真实现场并说明结果,不自动回滚。
65
69
 
66
70
  ## 环境要求
@@ -71,29 +75,29 @@ flowchart TD
71
75
  - 安装时能够访问 GitHub 和 PyPI(Python 公共软件包仓库)。
72
76
  - 执行安装命令前,先进入要由 Workflow Loop 管理的项目根目录。
73
77
 
74
- ## 安装 0.3.3
78
+ ## 安装 0.3.4
75
79
 
76
80
  安装器先进行只读检查并列出项目侧和电脑侧可能发生的全部持久修改。用户确认一次后,安装器才安装或复用全局 `workflow` 命令,并把智能体契约、产物模板和工作规范写入当前项目;用户取消或安装失败时不会留下只完成一部分的安装。
77
81
 
78
82
  ### macOS
79
83
 
80
84
  ```bash
81
- curl -fsSL https://github.com/yuzyf/workflow_loop/releases/download/v0.3.3/install.sh | bash
85
+ curl -fsSL https://github.com/yuzyf/workflow_loop/releases/download/v0.3.4/install.sh | bash
82
86
  ```
83
87
 
84
88
  ### Linux
85
89
 
86
90
  ```bash
87
- curl -fsSL https://github.com/yuzyf/workflow_loop/releases/download/v0.3.3/install.sh | bash
91
+ curl -fsSL https://github.com/yuzyf/workflow_loop/releases/download/v0.3.4/install.sh | bash
88
92
  ```
89
93
 
90
94
  ### 原生 Windows
91
95
 
92
96
  ```powershell
93
- powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/yuzyf/workflow_loop/releases/download/v0.3.3/install.ps1 | iex"
97
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/yuzyf/workflow_loop/releases/download/v0.3.4/install.ps1 | iex"
94
98
  ```
95
99
 
96
- 安装命令固定读取 `v0.3.3` 正式发布中的脚本;不会跟随内容可能变化的 `latest`(最新版本)地址。
100
+ 安装命令固定读取 `v0.3.4` 正式发布中的脚本;不会跟随内容可能变化的 `latest`(最新版本)地址。
97
101
 
98
102
  ## 更新与卸载
99
103
 
@@ -101,7 +105,7 @@ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/y
101
105
 
102
106
  ```bash
103
107
  workflow update
104
- workflow update --version 0.3.3
108
+ workflow update --version 0.3.4
105
109
  ```
106
110
 
107
111
  更新按需补齐电脑全局命令和当前项目,只直接覆盖项目根 `AGENTS.md`、`.workflow_loop/Template_Repository/`、`.workflow_loop/Standardized_Repository/`,以及 `.workflow_loop/project.json` 中的安装版本字段。更新不创建备份,不回滚已经完成的步骤;当前轮次状态、历史、回退资料、业务代码和正式产物保持不变。失败后重新执行同一命令即可继续补齐。
@@ -147,18 +151,18 @@ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://github.com/y
147
151
  安装完成后,在当前项目中启动支持读取 `AGENTS.md`(智能体契约文件)的 AI 编码助手,直接用自然语言提出需求:
148
152
 
149
153
  ```text
150
- 用户:给当前项目增加 CSV 导出功能,并保证原有导出格式不受影响。
154
+ 用户:给当前项目增加 CSV(逗号分隔值)导出功能,并保证原有导出格式不受影响。
151
155
  ```
152
156
 
153
157
  之后由 AI 编码助手执行日常流程:
154
158
 
155
159
  1. 自动运行 `workflow start` 检查当前状态,并根据事实与用户确认本轮工作意图。
156
160
  2. 调查现状并推荐四种路线之一,用户确认进入该任务后才启动轮次。
157
- 3. 严格执行每条命令输出的“下一步”,讨论时每次只问用户一个问题。
161
+ 3. 严格执行每条命令输出的“下一步”,讨论时每次只问用户一个问题;门禁失败先按完整问题清单修改,不能原样重试,也不能自行拼接或截断命令输出。
158
162
  4. 完整研发路线在写代码前完成需求、验收、测试和实施计划;无需开发任务在用户确认讨论完毕后直接执行约定内容。
159
163
  5. 把真实结果交给用户核对并确认,再正式收工。
160
164
 
161
- 用户不需要手工执行日常 `workflow` 命令;用户只负责描述需求、回答讨论问题、确认安装范围和确认各环节结果。
165
+ 用户不需要手工执行日常 `workflow` 命令,但仍需确认工作路线、回答讨论问题、作出产品和验收决定、批准难撤销操作、确认安装范围及确认各环节结果。
162
166
 
163
167
  ## 命令概览
164
168
 
@@ -204,10 +208,10 @@ uv run python -m build
204
208
 
205
209
  ## 发布正式版本
206
210
 
207
- 项目维护者确认当前仓库内容可以直接发布后,在仓库根目录执行下面的命令,并把 `0.3.3` 替换成要发布的新版本号:
211
+ 项目维护者确认当前仓库内容可以直接发布后,在仓库根目录执行下面的命令,并把 `0.3.4` 替换成要发布的新版本号:
208
212
 
209
213
  ```bash
210
- uv run python scripts/release.py 0.3.3
214
+ uv run python scripts/release.py 0.3.4
211
215
  ```
212
216
 
213
217
  运行这条命令本身就表示维护者接受当前仓库状态并承担跳过本地发布检查的风险。脚本不会再次确认,也不会在本地运行测试、构建或远程版本查询。它依次执行:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "workflow-loop"
3
- version = "0.3.3"
3
+ version = "0.3.4"
4
4
  description = "为 AI 驱动的软件开发提供有状态、可验证、可回退的工作流管理。"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  # 包版本号,用于 pip/uv 安装时版本匹配
2
- __version__ = "0.3.3"
2
+ __version__ = "0.3.4"
3
3
  # 产品身份标识:workflow --version 输出、安装脚本身份核对和安装事务校验共用同一组常量
4
- # 本次发布版本为 0.3.3;后续发布使用尚未被 PyPI 占用的新版本号
4
+ # 本次发布版本为 0.3.4;后续发布使用尚未被 PyPI 占用的新版本号
5
5
  PRODUCT_NAME = "workflow-loop"
6
6
  PRODUCT_IDENTITY = f"{PRODUCT_NAME} {__version__}"
@@ -82,6 +82,6 @@
82
82
  - 依赖、状态变化和副作用的位置可以从调用关系中找到。
83
83
  - 错误不会被吞掉,失败结果不会被当成成功结果返回。
84
84
  - 代码没有实现未确认的产品规则,也没有留下无法解释的占位抽象。
85
- - 真实文件、类、函数和逻辑已经写入代码实施记录和代码结果。
85
+ - 真实文件、覆盖本轮差异的最终文件行号范围和逻辑已经写入代码实施记录和代码结果。
86
86
  - 实施记录中的“工作流编号”“验收主题”等固定字段的标签和值都在同一行;不存在标签单独一行、值写在下一行的格式。
87
87
  - 门禁输出已列出全部可独立确认的问题;依赖不成立的检查明确为“未检查”并写真实依赖,所有诊断后只有一条可执行的下一步命令。
@@ -119,9 +119,9 @@ workflow gate impl --prepare-code
119
119
 
120
120
  代码完成后,根据最终真实代码填写:
121
121
 
122
- 1. 每个计划步骤对应的真实文件、精确符号、最终逻辑、数据状态或输出变化和验收条件。
122
+ 1. 每个计划步骤对应的真实文件、覆盖真实差异的最终文件行号范围、最终逻辑、数据状态或输出变化和验收条件。行号范围写成 `L18-L57`;局部删除写成 `基线 L18-L31`。同一文件的每个不连续差异块都要被至少一条记录覆盖。
123
123
  2. 全部开发检查的命令或方法、范围、真实反馈和是否仍需修改。
124
- 3. 未完成内容;没有时写“暂无”。
124
+ 3. 未完成内容;没有时写“状态:无”。有未完成事项时写“状态:有”,并逐项说明事项、原因、影响和下一步;这种状态不能通过实施门禁。
125
125
 
126
126
  代码计划、实施动作、真实文件差异和代码结果必须一一对应。结果与计划不一致时不能建立“计划与实际差异”章节绕过确认,必须回到代码计划处理。
127
127
 
@@ -90,9 +90,9 @@
90
90
 
91
91
  ### 3.1 实施动作记录
92
92
 
93
- | 实施顺序 | 对应计划步骤 | 文件 | 类、函数或配置项 | 实际执行的动作 | 当步反馈 | 状态 |
93
+ | 实施顺序 | 对应计划步骤 | 文件 | 代码位置(最终文件) | 实际执行的动作 | 当步反馈 | 状态 |
94
94
  |---|---|---|---|---|---|---|
95
- | 1 | 1 | <具体文件路径> | <精确位置> | <实际增加、删除或修改了什么> | <语法、静态检查或局部运行反馈;尚未检查时写“待检查”> | 已完成 |
95
+ | 1 | 1 | <具体文件路径> | L<起始行>-L<结束行> | <实际增加、删除或修改了什么> | <语法、静态检查或局部运行反馈;尚未检查时写“待检查”> | 已完成 |
96
96
 
97
97
  ### 3.2 实施中问题与处理
98
98
 
@@ -102,15 +102,15 @@
102
102
 
103
103
  ### 3.3 未完成内容
104
104
 
105
- 暂无
105
+ 状态:无
106
106
 
107
107
  ### 3.4 代码结果
108
108
 
109
109
  #### 3.4.1 实际代码修改
110
110
 
111
- | 对应计划步骤 | 文件 | 类、函数或配置项 | 实际修改的代码逻辑 | 数据、状态或输出的实际变化 | 对应验收条件 |
111
+ | 对应计划步骤 | 文件 | 代码位置(最终文件) | 实际修改的代码逻辑 | 数据、状态或输出的实际变化 | 对应验收条件 |
112
112
  |---|---|---|---|---|---|
113
- | 1 | <具体文件路径> | <具体类、函数或配置项的精确位置> | <根据最终代码填写具体判断、调用和错误处理> | <根据最终代码填写可检查的状态、数据、文件或输出变化> | AC-01 |
113
+ | 1 | <具体文件路径> | L<起始行>-L<结束行> | <根据最终代码填写具体判断、调用和错误处理> | <根据最终代码填写可检查的状态、数据、文件或输出变化> | AC-01 |
114
114
 
115
115
  #### 3.4.2 开发检查记录
116
116
 
@@ -133,16 +133,17 @@
133
133
  ## 三、内容边界
134
134
 
135
135
  - `impl/索引.md` 不能写具体代码修改步骤;这些内容写在对应主题文档中。
136
- - `impl/<主题文件标识>_实施记录.md` 必须写到具体文件、类、函数或新增位置,不能只写模块名称。
136
+ - `impl/<主题文件标识>_实施记录.md` 的“3.4.1 实际代码修改”必须写到具体文件和最终文件行号范围,例如 `L18-L57`;新增文件也写最终行号范围,局部删除写 `基线 L18-L31`,整文件删除写“删除整个文件”。同一文件有多个不连续差异时,增加多行或使用覆盖全部差异的范围。不能只写模块、组件或页面名称。
137
137
  - 固定顺序是“代码计划 -> 代码实施 -> 代码结果”。用户只确认代码计划和代码结果;代码实施按已确认计划连续完成,不增加逐步确认。
138
138
  - “实施前计划(代码计划)”写修改前已经确认的方案;“实施后记录(代码实施与代码结果)”先按实际顺序记录动作和反馈,再根据最终代码填写结果,不能复制计划或过程记录代替事实。固定章节包括“实施前计划”“实施后记录”“未决问题”和“未完成内容”,工作顺序是代码计划、代码实施、代码结果。
139
139
  - 从零开发的最低实现设计和修改产品的本轮实现决定都写进代码计划;本轮实际架构变化在最终代码设计同步阶段依据真实代码更新。
140
- - 代码计划、实施动作、真实代码差异集合和代码结果必须一一一致;代码结果必须写具体文件、精确位置、真实逻辑,以及数据、状态或输出变化。
140
+ - 代码计划、实施动作、真实代码差异集合和代码结果必须一一一致;代码结果必须写具体文件、覆盖真实差异的最终文件行号范围、真实逻辑,以及数据、状态或输出变化。
141
141
  - 实施文档只绑定验收条件,不依赖尚未生成的测试计划或 `TC`(测试项编号)。
142
142
  - 不建立“计划与实际差异”章节。实施需要偏离当前确认计划时,应先停止、更新代码计划并重新取得用户确认;不能先改完再把偏差包装成结果。
143
143
  - 实施文档可以记录语法、类型、静态检查或局部运行等开发检查反馈,但这些反馈不是正式测试,不能填写正式测试通过、正式测试失败或主题验收通过。
144
144
  - 尚未生成的下游文档只写反引号包裹的普通相对路径和“(待生成)”,文件真实存在后才改成 Markdown 链接。
145
145
  - 没有相关内容时写“暂无”,不得编造内容填满表格。
146
+ - “3.3 未完成内容”是固定状态:没有未完成事项时只写“状态:无”;有未完成事项时写“状态:有”,随后用表格逐项写清事项、原因、影响和下一步。状态为“有”时不能通过实施门禁。
146
147
 
147
148
  ## 四、门禁失败信息
148
149