openfeel 1.1.6 → 1.2.0
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/README.en.md +25 -6
- package/README.md +17 -2
- package/README.zh-CN.md +25 -6
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +85 -4
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/flow.d.ts +8 -0
- package/dist/commands/flow.d.ts.map +1 -1
- package/dist/commands/flow.js +447 -15
- package/dist/commands/flow.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +71 -7
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/req.d.ts +14 -0
- package/dist/commands/req.d.ts.map +1 -0
- package/dist/commands/req.js +562 -0
- package/dist/commands/req.js.map +1 -0
- package/dist/commands/stage.d.ts.map +1 -1
- package/dist/commands/stage.js +56 -2
- package/dist/commands/stage.js.map +1 -1
- package/dist/core/config.d.ts +17 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +21 -6
- package/dist/core/config.js.map +1 -1
- package/dist/core/flow-archive/archive-file.d.ts +35 -0
- package/dist/core/flow-archive/archive-file.d.ts.map +1 -0
- package/dist/core/flow-archive/archive-file.js +3 -0
- package/dist/core/flow-archive/archive-file.js.map +1 -0
- package/dist/core/flow-archive/archive-health.d.ts +34 -0
- package/dist/core/flow-archive/archive-health.d.ts.map +1 -0
- package/dist/core/flow-archive/archive-health.js +76 -0
- package/dist/core/flow-archive/archive-health.js.map +1 -0
- package/dist/core/flow-archive/archive-ops.d.ts +68 -0
- package/dist/core/flow-archive/archive-ops.d.ts.map +1 -0
- package/dist/core/flow-archive/archive-ops.js +184 -0
- package/dist/core/flow-archive/archive-ops.js.map +1 -0
- package/dist/core/flow-archive/grouping.d.ts +58 -0
- package/dist/core/flow-archive/grouping.d.ts.map +1 -0
- package/dist/core/flow-archive/grouping.js +153 -0
- package/dist/core/flow-archive/grouping.js.map +1 -0
- package/dist/core/flow-manager.d.ts +78 -14
- package/dist/core/flow-manager.d.ts.map +1 -1
- package/dist/core/flow-manager.js +311 -55
- package/dist/core/flow-manager.js.map +1 -1
- package/dist/core/i18n-data/en.d.ts +1 -0
- package/dist/core/i18n-data/en.d.ts.map +1 -1
- package/dist/core/i18n-data/en.js +159 -3
- package/dist/core/i18n-data/en.js.map +1 -1
- package/dist/core/i18n-data/zh-CN.d.ts +1 -0
- package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
- package/dist/core/i18n-data/zh-CN.js +161 -3
- package/dist/core/i18n-data/zh-CN.js.map +1 -1
- package/dist/core/i18n.js +4 -4
- package/dist/core/i18n.js.map +1 -1
- package/dist/core/pipeline-schema.d.ts +5 -0
- package/dist/core/pipeline-schema.d.ts.map +1 -1
- package/dist/core/pipeline-schema.js +5 -0
- package/dist/core/pipeline-schema.js.map +1 -1
- package/dist/core/plan/path.d.ts +17 -0
- package/dist/core/plan/path.d.ts.map +1 -1
- package/dist/core/plan/path.js +31 -0
- package/dist/core/plan/path.js.map +1 -1
- package/dist/core/plan/scheme.d.ts +22 -0
- package/dist/core/plan/scheme.d.ts.map +1 -1
- package/dist/core/plan/scheme.js +71 -2
- package/dist/core/plan/scheme.js.map +1 -1
- package/dist/core/plan/stage.d.ts +2 -0
- package/dist/core/plan/stage.d.ts.map +1 -1
- package/dist/core/plan/stage.js +8 -0
- package/dist/core/plan/stage.js.map +1 -1
- package/dist/core/req/aggregate.d.ts +61 -0
- package/dist/core/req/aggregate.d.ts.map +1 -0
- package/dist/core/req/aggregate.js +134 -0
- package/dist/core/req/aggregate.js.map +1 -0
- package/dist/core/req/body-file.d.ts +16 -0
- package/dist/core/req/body-file.d.ts.map +1 -0
- package/dist/core/req/body-file.js +80 -0
- package/dist/core/req/body-file.js.map +1 -0
- package/dist/core/req/requirement-ops.d.ts +74 -0
- package/dist/core/req/requirement-ops.d.ts.map +1 -0
- package/dist/core/req/requirement-ops.js +290 -0
- package/dist/core/req/requirement-ops.js.map +1 -0
- package/dist/core/req/types.d.ts +40 -0
- package/dist/core/req/types.d.ts.map +1 -0
- package/dist/core/req/types.js +13 -0
- package/dist/core/req/types.js.map +1 -0
- package/dist/core/setup.js +4 -4
- package/dist/core/template-loader.d.ts.map +1 -1
- package/dist/core/template-loader.js +649 -65
- package/dist/core/template-loader.js.map +1 -1
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +131 -15
- package/dist/core/update.js.map +1 -1
- package/package.json +1 -1
|
@@ -218,6 +218,47 @@ When a stage enters \`plan_passed\` and the project's \`auto_advance\` is set to
|
|
|
218
218
|
3. **User declines**: Feel keeps \`auto_advance=disabled\` and requires user confirmation before each stage advance (manual execution mode).
|
|
219
219
|
4. **No silent advancement**: When \`auto_advance=disabled\`, Feel must not advance the pipeline without asking the user.
|
|
220
220
|
|
|
221
|
+
#### Workflow Mode (workflow_mode)
|
|
222
|
+
|
|
223
|
+
Before dispatching, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`; when the field is absent, fall back per the cascade). Two modes:
|
|
224
|
+
|
|
225
|
+
- **full (complete flow)**: planner → plan_review (reviewer) → schemer → executor → reviewer → tester → archiver.
|
|
226
|
+
- **fast (Workflow Fast Line)**: planner (lightweight) → plan_review (**single mandatory plan review**) → executor → reviewer (single round) → archiver (lightweight); **does not dispatch openfeel-schemer / openfeel-feel-tester**.
|
|
227
|
+
|
|
228
|
+
Fast-mode discipline:
|
|
229
|
+
|
|
230
|
+
1. **The quality floor cannot be skipped**: under fast the reviewer **runs twice** — ① \`plan_review\` plan review (**mandatory single round**, on par with code review; pass → \`plan_passed\`, issues returned → \`plan_pending\`); ② code review after exec (single round); the \`review_failed\` loop allows re-review or returning to exec for fixes; failures are recorded as usual (REV entries unchanged).
|
|
231
|
+
2. **Lightweight**: planner / archiver produce lightweight output (**must not** omit the task table / dependencies / acceptance points, or the state record / knowledge-staging decision).
|
|
232
|
+
3. **Phase semantics**: under fast, reachable phases are the fast-line chain (\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`); the **legal phase enumeration remains at 15** (6 phases are unreachable under fast: \`scheme_*\` / \`test_*\`).
|
|
233
|
+
4. **Full skeletons unchanged**: fast trims no on-disk structure; it only reduces agent relay steps.
|
|
234
|
+
5. **Terminology disambiguation**: the flow mode is called the **Workflow Fast Line** (\`workflow_mode=fast\`); the review-depth downgrade is called **Fast Track (FAST-PASS)** — they are different mechanisms and must not be cross-referenced or conflated.
|
|
235
|
+
|
|
236
|
+
#### Requirement Lifecycle
|
|
237
|
+
|
|
238
|
+
The requirement layer is the second layer of the four-layer model "version → requirement REQ-NNN → plan stage → op": **a requirement is the scheduling layer**, answering "what to do and when"; **implementation still goes through the full pipeline** — a requirement is not a plan; after taking a requirement, delegate to openfeel-planner for plan.md per the "Threshold for Small Changes vs. Large-Scale Planning" as usual.
|
|
239
|
+
|
|
240
|
+
A requirement has 7 statuses: \`draft\` → \`scheduled\` → \`in_progress\` → \`done\`, plus three side states \`blocked\` / \`cancelled\` / \`rejected\`. Requirement progress is aggregated from the linked stages' phases (single projection direction: stage phase → requirement status; the requirement is closed as done automatically once all linked stages are done — precondition: only \`scheduled\` / \`in_progress\`; \`draft\` / \`blocked\` / terminal states do not trigger).
|
|
241
|
+
|
|
242
|
+
Requirement lifecycle actions (command group \`openfeel req\`, 10 subcommands):
|
|
243
|
+
|
|
244
|
+
| Step | Action | Command |
|
|
245
|
+
|------|--------|---------|
|
|
246
|
+
| Take | Browse requirement views and pick the next takeable requirement | \`openfeel req board\` / \`openfeel req next\` / \`openfeel req list\` |
|
|
247
|
+
| Claim | Claim the requirement (rejected if already claimed by another — guards concurrent overwrite; no TTL) | \`openfeel req claim <REQ-NNN>\` |
|
|
248
|
+
| Link | Link the requirement to the stages implementing it | \`openfeel req link --stage <stageId> --requirement <REQ-NNN>\` |
|
|
249
|
+
| Advance | Stage advancement drives aggregation; advance explicitly along legal targets | \`openfeel req advance <REQ-NNN> --to <status>\` |
|
|
250
|
+
| Complete | Auto-done once all linked stages are done; overview and release | \`openfeel req board\` / \`openfeel req release <REQ-NNN>\` |
|
|
251
|
+
|
|
252
|
+
> Orthogonality note: requirement flow is orthogonal to the workflow mode (\`full\` / \`fast\`) — the requirement discipline is identical in both modes.
|
|
253
|
+
|
|
254
|
+
#### Archiving and History Reading
|
|
255
|
+
|
|
256
|
+
Once a version is finalized (all its stages done), prompt the user that version archiving is available (\`openfeel flow archive <version>\` — after the criteria gate passes, the archive file is written first and the active entries removed afterwards): the archiving action is executed by the CLI; dispatch only prompts, never performs it.
|
|
257
|
+
|
|
258
|
+
- Never read archive files proactively: regular dispatch must not read \`.openfeel/flow-archive/**\` (to prevent context pollution); the active set via \`openfeel flow status\` / \`openfeel flow overview\` is the full working view.
|
|
259
|
+
- Query history on demand: when history is genuinely needed, use \`openfeel flow archive show <version>\` (single version, read-only) or \`openfeel flow archive list\` (enumerate versions); do not read the files directly.
|
|
260
|
+
- Distinct from top-level \`openfeel archive\`: the top-level command is stage-summary archiving; \`flow archive\` is flow.json version-shard archiving — different responsibilities.
|
|
261
|
+
|
|
221
262
|
## Threshold for Small Changes vs. Large-Scale Planning
|
|
222
263
|
|
|
223
264
|
Choose the appropriate process path based on the change scale:
|
|
@@ -285,7 +326,7 @@ A shared log entry (\`.openfeel/log/yyyy-mm-dd-feel-NNN.md\`) must be created wh
|
|
|
285
326
|
|
|
286
327
|
### Skeleton File Note
|
|
287
328
|
|
|
288
|
-
During critical operations (advancing to exec_running / review_pending / test_pending / archiving), the pipeline automatically creates skeleton files with date prefixes in the private log directory. Feel does not need to manually create log files; simply fill in the content when you see a skeleton file.
|
|
329
|
+
During critical operations (advancing to exec_running / review_pending / test_pending / archiving), the pipeline automatically creates skeleton files with date prefixes in the private log directory (under the fast Workflow Fast Line, \`test_pending\` remains a legal phase but is unreachable (no inbound edge), so its skeleton is no longer produced; all other skeleton rules are unchanged). Feel does not need to manually create log files; simply fill in the content when you see a skeleton file.
|
|
289
330
|
|
|
290
331
|
### Log Entry Format
|
|
291
332
|
|
|
@@ -547,6 +588,15 @@ After archiving is complete, the stage's pipeline phase must be set to one of th
|
|
|
547
588
|
|
|
548
589
|
> ⚠️ Note: After archiving is complete, the stage status must be set to \`"done"\`, **do not** use non-standard values like \`"completed"\`. \`"completed"\` does not exist in \`VALID_TRANSITIONS\`.
|
|
549
590
|
|
|
591
|
+
> **Under the fast Workflow Fast Line**: the 15-phase enumeration above is **unchanged** (reachable ≠ legal); reachable phases are the fast-line chain (\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`).
|
|
592
|
+
|
|
593
|
+
## Workflow Mode Awareness (fast lightweight archiving)
|
|
594
|
+
|
|
595
|
+
Before archiving, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
596
|
+
|
|
597
|
+
- **full**: full archiving checklist (unchanged).
|
|
598
|
+
- **fast (Workflow Fast Line)**: **lightweight archiving** — the state record and the knowledge-staging decision (including the dedup lookup) **must not be omitted**; checklist process narrative may be merged and condensed. (Lightweight scope: keep the state record / knowledge-staging decision / kb index quick overview / manual update decision / shared log summary; summary process narrative may be merged into bullet points.)
|
|
599
|
+
|
|
550
600
|
## Model Selection
|
|
551
601
|
|
|
552
602
|
openfeel-archiver is driven by a **reasoning model** (such as DeepSeek V4 Pro), responsible for understanding context and extracting valuable experience.
|
|
@@ -556,7 +606,7 @@ description: openfeel-executor Agent, fast model, implements code according to o
|
|
|
556
606
|
mode: subagent
|
|
557
607
|
model: deepseek/deepseek-flash
|
|
558
608
|
reasoning_effort: medium
|
|
559
|
-
color: "#
|
|
609
|
+
color: "#4CAF50"
|
|
560
610
|
permission:
|
|
561
611
|
bash: "allow"
|
|
562
612
|
read: "allow"
|
|
@@ -622,9 +672,10 @@ Confirm that the following 6 required fields are present. If any is missing, ret
|
|
|
622
672
|
|
|
623
673
|
### Step 2: Phase Legitimacy Check
|
|
624
674
|
|
|
625
|
-
1. Read \`.openfeel/flow.json\`, check if \`pipeline.phase\` is a valid enum value (\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`); refuse to execute if invalid.
|
|
675
|
+
1. Read \`.openfeel/flow.json\`, check if \`pipeline.phase\` is a valid enum value (\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`); refuse to execute if invalid. (under the fast Workflow Fast Line, reachable phases are the fast-line chain; the legal phase enumeration remains at 15 — reachable ≠ legal)
|
|
626
676
|
2. Confirm \`pipeline.current.op\` matches the current op-id; refuse to execute if mismatched.
|
|
627
677
|
3. When the current phase is not \`exec_running\`: if Feel explicitly instructs execution, it may proceed but must note the phase deviation; otherwise, refuse to execute.
|
|
678
|
+
4. **Fast-mode phase paths**: \`plan_pending → plan_review → plan_passed → exec_running\` (the plan review is a mandatory single round; the step is entered only after it passes); the \`review_failed → exec_running\` loop (review failure returns to exec for fixes; the \`review_failed → review_pending\` re-review exit is retained).
|
|
628
679
|
|
|
629
680
|
### Step 3: FlowManager Transition Legitimacy Check
|
|
630
681
|
|
|
@@ -765,7 +816,7 @@ Delegable targets: openfeel-vision (analyze screenshots), openfeel-reviewer (pre
|
|
|
765
816
|
description: openfeel-feel-tester Agent, reasoning model, responsible for formal testing and acceptance in the pipeline.
|
|
766
817
|
mode: subagent
|
|
767
818
|
reasoning_effort: medium
|
|
768
|
-
color: "#
|
|
819
|
+
color: "#22D3EE"
|
|
769
820
|
permission:
|
|
770
821
|
bash: "allow"
|
|
771
822
|
read: "allow"
|
|
@@ -864,6 +915,7 @@ Write regression verification results into the Bug file's "Acceptance Record" ta
|
|
|
864
915
|
- When issues are found, notify openfeel-schemer to formulate a revision
|
|
865
916
|
- Re-test after fixes until passing
|
|
866
917
|
- When tests pass, notify Feel to enter the archiving phase
|
|
918
|
+
- **Workflow Mode Awareness**: under the fast Workflow Fast Line this agent is **not dispatched** (the formal test step is skipped per \`status.md\` "Workflow Mode"; the \`test_*\` phases are unreachable); the role definition is unchanged.
|
|
867
919
|
|
|
868
920
|
## Model Selection
|
|
869
921
|
|
|
@@ -978,6 +1030,22 @@ This step ensures openfeel-planner absorbs existing project knowledge before mak
|
|
|
978
1030
|
- Does not directly code or execute tests
|
|
979
1031
|
- openfeel-planner and openfeel-schemer responsibility boundary: openfeel-planner is responsible for "what" (what) and "when" (when), openfeel-schemer is responsible for "how" (how)
|
|
980
1032
|
|
|
1033
|
+
## Workflow Mode Awareness (fast)
|
|
1034
|
+
|
|
1035
|
+
Before planning, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
1036
|
+
|
|
1037
|
+
- **full**: the output goes through openfeel-reviewer plan review (\`plan_review\`) before openfeel-schemer (unchanged).
|
|
1038
|
+
- **fast (Workflow Fast Line)**: **this agent's output must pass openfeel-reviewer's plan review (\`plan_review\`, single round; pass → \`plan_passed\`, issues returned → \`plan_pending\`; only then does it enter exec)**; produce a lightweight plan — the task table / dependencies / acceptance points **must not be omitted**; other process narrative may be trimmed. (Lightweight scope: keep goals / dependencies / task table / acceptance points / constraints / KB retrieval / change-point list / risks; background evidence details and revision history may be condensed.)
|
|
1039
|
+
|
|
1040
|
+
## Requirement Awareness
|
|
1041
|
+
|
|
1042
|
+
When a task originates from a requirement (\`REQ-NNN\`):
|
|
1043
|
+
|
|
1044
|
+
- Read the requirement: first read the requirement details (title / status / owner / linked stages) via \`openfeel req show <REQ-NNN>\` as plan input.
|
|
1045
|
+
- Link the plan to the requirement: annotate the header of the produced \`plan.md\` with "Linked requirement: REQ-NNN"; omit the annotation when there is no requirement source.
|
|
1046
|
+
- Flow is not this agent's duty: requirement status transitions (claim / link / advance) are executed via the \`openfeel req\` CLI; this agent is read-only (no direct flow.json writes).
|
|
1047
|
+
- Orthogonal to "Workflow Mode Awareness": requirement awareness is identical under \`full\` / \`fast\`.
|
|
1048
|
+
|
|
981
1049
|
## Model Selection
|
|
982
1050
|
|
|
983
1051
|
openfeel-planner is driven by a **reasoning model** (such as DeepSeek V4 Pro). In the Feel system design, openfeel-planner duties can be concurrently handled by Feel, but exist as an independent agent definition to support flexible scheduling strategies.
|
|
@@ -990,7 +1058,7 @@ description: openfeel-reviewer Agent, heterogenous reasoning model, responsible
|
|
|
990
1058
|
mode: subagent
|
|
991
1059
|
model: zhipuai/glm-5.3-flash
|
|
992
1060
|
reasoning_effort: medium
|
|
993
|
-
color: "#
|
|
1061
|
+
color: "#EC4899"
|
|
994
1062
|
permission:
|
|
995
1063
|
bash: "allow"
|
|
996
1064
|
read: "allow"
|
|
@@ -1057,6 +1125,15 @@ When **all three** of the following conditions are met, openfeel-reviewer enters
|
|
|
1057
1125
|
|
|
1058
1126
|
If any condition is not met, skip fast track and execute full review process.
|
|
1059
1127
|
|
|
1128
|
+
## Workflow Mode Awareness (fast single round)
|
|
1129
|
+
|
|
1130
|
+
Before reviewing, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
1131
|
+
|
|
1132
|
+
- **full**: plan review + code review (multiple points, unchanged).
|
|
1133
|
+
- **fast (Workflow Fast Line)**: **single round ×2, both mandatory** — ① \`plan_review\` **plan review (mandatory under fast**, on par with code review; pass → \`plan_passed\`, issues returned → \`plan_pending\`); ② code review after exec (the \`review_failed\` loop allows re-review / returning to exec for fixes); the **quality floor is unchanged** (issues are still recorded and blockers still raised; REV entries as usual).
|
|
1134
|
+
|
|
1135
|
+
> **Terminology disambiguation**: the **Workflow Fast Line** (\`workflow_mode=fast\`, the flow mode) and **Fast Track (FAST-PASS)** (the review-depth downgrade mechanism defined in this template) are **different mechanisms** with similar names — do not cross-reference or conflate them.
|
|
1136
|
+
|
|
1060
1137
|
## REV Template Specification
|
|
1061
1138
|
|
|
1062
1139
|
\`\`\`yaml
|
|
@@ -1098,7 +1175,7 @@ openfeel-reviewer must be driven by a **heterogenous reasoning model** (such as
|
|
|
1098
1175
|
| Requires judgment (default blocking) | Serious coding convention violations / Cross-module consistency issues | \`true\` |
|
|
1099
1176
|
| Non-blocking | Naming suggestions / Comment improvements / Style tweaks / Optimization suggestions | \`false\` |
|
|
1100
1177
|
|
|
1101
|
-
> When fast track is hit, REV defaults to \`blocking=false\` (except for security vulnerabilities).
|
|
1178
|
+
> When fast track is hit, REV defaults to \`blocking=false\` (except for security vulnerabilities). This mechanism is unrelated to the Workflow Fast Line — see "Workflow Mode Awareness".
|
|
1102
1179
|
|
|
1103
1180
|
## blocking and Pipeline Behavior
|
|
1104
1181
|
|
|
@@ -1218,6 +1295,7 @@ When third-party dependencies are involved:
|
|
|
1218
1295
|
|
|
1219
1296
|
- Receives dispatch from Feel to start, outputs are reviewed by openfeel-reviewer before being handed to openfeel-executor
|
|
1220
1297
|
- When review fails, re-formulate the scheme based on openfeel-reviewer feedback
|
|
1298
|
+
- **Workflow Mode Awareness**: under the fast Workflow Fast Line this agent is **not dispatched** (the scheme step is skipped per \`status.md\` "Workflow Mode"); the role definition is unchanged.
|
|
1221
1299
|
|
|
1222
1300
|
## Notes
|
|
1223
1301
|
|
|
@@ -1575,6 +1653,47 @@ Agent 模型需求对照:
|
|
|
1575
1653
|
3. **用户拒绝**:Feel 保持 \`auto_advance=disabled\`,每次阶段推进前均需向用户确认(手动执行模式)。
|
|
1576
1654
|
4. **禁止静默推进**:\`auto_advance=disabled\` 时禁止 Feel 不询问用户直接推进流水线。
|
|
1577
1655
|
|
|
1656
|
+
#### 工作流模式(workflow_mode)
|
|
1657
|
+
|
|
1658
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询:\`openfeel flow mode [--stage <id>]\`;字段缺失时按级联口径回落)。两种模式:
|
|
1659
|
+
|
|
1660
|
+
- **full(完整流程)**:planner → plan_review(reviewer)→ schemer → executor → reviewer → tester → archiver。
|
|
1661
|
+
- **fast(工作流快线)**:planner(轻量)→ plan_review(**计划审查单轮,必经**)→ executor → reviewer(单轮)→ archiver(轻量);**不派发 schemer / tester**。
|
|
1662
|
+
|
|
1663
|
+
fast 调度纪律:
|
|
1664
|
+
|
|
1665
|
+
1. **质量底线不可跳**:reviewer 在 fast 下**必跑两处**——① \`plan_review\` 计划审查(**必经单轮**,与代码审查同级;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`);② exec 后代码审查(单轮);\`review_failed\` 回环可重审或回执行修复;失败留痕照常(REV 条目照常)。
|
|
1666
|
+
2. **轻量化**:planner / archiver 轻量产出(**不得**省略任务表 / 依赖 / 验收要点与状态记录 / 知识暂存判定)。
|
|
1667
|
+
3. **相位口径**:fast 下可达相位为快线链(\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`);**合法相位枚举 15 项不变**(fast 下 6 项不可达:\`scheme_*\` / \`test_*\`)。
|
|
1668
|
+
4. **骨架全量不变**:fast 不裁剪任何落盘结构,仅减少 Agent 接力环节。
|
|
1669
|
+
5. **术语消歧**:流程模式称「**工作流快线**」(\`workflow_mode=fast\`);审查深度降级称「**快速通道 / fast track(FAST-PASS)**」——二者为不同机制,不得互相引用 / 混用。
|
|
1670
|
+
|
|
1671
|
+
#### 需求流转(requirement lifecycle)
|
|
1672
|
+
|
|
1673
|
+
需求层位于「版本 → 需求 REQ-NNN → 计划 stage → 方案 op」四层模型的第二层:**需求 = 排期与调度层**,回答「做什么、何时做」;**实现仍走完整流水线**——需求不等于计划,接取需求后按「小改 vs 大规模规划的阈值」照常委托 openfeel-planner 产出 plan.md。
|
|
1674
|
+
|
|
1675
|
+
需求共 7 个状态:\`draft\` → \`scheduled\` → \`in_progress\` → \`done\`,另有 \`blocked\` / \`cancelled\` / \`rejected\` 三个旁路状态。需求进度由关联阶段的 phase 聚合(投影方向单一:阶段 phase → 需求状态;全部关联阶段 done 时需求自动收口 done——前置集限定:仅 \`scheduled\` / \`in_progress\`;\`draft\` / \`blocked\` / 终态不触发)。
|
|
1676
|
+
|
|
1677
|
+
需求生命周期动作(命令组 \`openfeel req\`,共 10 个子命令):
|
|
1678
|
+
|
|
1679
|
+
| 步骤 | 动作 | 命令 |
|
|
1680
|
+
|------|------|------|
|
|
1681
|
+
| 接取 | 浏览需求视图,挑选下一个可接取需求 | \`openfeel req board\` / \`openfeel req next\` / \`openfeel req list\` |
|
|
1682
|
+
| 认领 | 占用需求(已被他人认领则拒绝——防并发覆盖,无 TTL) | \`openfeel req claim <REQ-NNN>\` |
|
|
1683
|
+
| 关联 | 把需求关联到实现它的阶段 | \`openfeel req link --stage <stageId> --requirement <REQ-NNN>\` |
|
|
1684
|
+
| 流转 | 阶段推进驱动聚合;显式流转按合法目标推进 | \`openfeel req advance <REQ-NNN> --to <status>\` |
|
|
1685
|
+
| 完成 | 全部关联阶段 done 后需求自动 done;总览与释放 | \`openfeel req board\` / \`openfeel req release <REQ-NNN>\` |
|
|
1686
|
+
|
|
1687
|
+
> 正交注记:需求流转与工作流模式(\`full\` / \`fast\`)正交——两种模式下需求纪律一致。
|
|
1688
|
+
|
|
1689
|
+
#### 归档与历史读取
|
|
1690
|
+
|
|
1691
|
+
版本收官(该版本全部阶段 done)后,提示用户可执行版本归档(\`openfeel flow archive <version>\`——判据门校验后先写归档文件、再移除活跃条目):归档动作由 CLI 执行,调度侧只提示不代劳。
|
|
1692
|
+
|
|
1693
|
+
- 不主动读归档文件:常规调度不得读取 \`.openfeel/flow-archive/**\`(防上下文污染);活跃集经 \`openfeel flow status\` / \`openfeel flow overview\` 即为全量工作视图。
|
|
1694
|
+
- 按需查询历史:确需历史版本时用 \`openfeel flow archive show <version>\`(单版本只读)或 \`openfeel flow archive list\`(列举版本),不直接读文件。
|
|
1695
|
+
- 与顶层 \`openfeel archive\` 区分:顶层命令是阶段摘要归档;\`flow archive\` 是 flow.json 版本分片归档,二者职责不同。
|
|
1696
|
+
|
|
1578
1697
|
## 小改 vs 大规模规划的阈值
|
|
1579
1698
|
|
|
1580
1699
|
根据变更规模选择适当的流程路径:
|
|
@@ -1642,7 +1761,7 @@ Agent 模型需求对照:
|
|
|
1642
1761
|
|
|
1643
1762
|
### 骨架文件提示
|
|
1644
1763
|
|
|
1645
|
-
关键操作(推进到 exec_running / review_pending / test_pending / archiving
|
|
1764
|
+
关键操作(推进到 exec_running / review_pending / test_pending / archiving)时,流水线会自动在私域日志目录创建带日期前缀的骨架文件(fast 工作流快线下 \`test_pending\` 仍为合法相位、仅不可达(无入边),该相位骨架不再产生;其余骨架规则全量不变)。Feel 无需手动创建日志文件,看到骨架文件时填充内容即可。
|
|
1646
1765
|
|
|
1647
1766
|
### 日志条目格式
|
|
1648
1767
|
|
|
@@ -1903,6 +2022,15 @@ openfeel-feel-tester 通过 → Feel 触发归档 → openfeel-archiver 整理
|
|
|
1903
2022
|
|
|
1904
2023
|
> ⚠️ 注意:归档完成后的阶段状态必须设为 \`"done"\`,**不得**使用 \`"completed"\` 等非标准值。\`VALID_TRANSITIONS\` 中不存在 \`"completed"\`。
|
|
1905
2024
|
|
|
2025
|
+
> **fast 工作流快线下**:上表 15 项相位枚举**不变**(可达 ≠ 合法);可达相位为快线链(\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`)。
|
|
2026
|
+
|
|
2027
|
+
## 工作流模式感知(fast 轻量归档)
|
|
2028
|
+
|
|
2029
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
2030
|
+
|
|
2031
|
+
- **full**:归档全量清单(现状不变)。
|
|
2032
|
+
- **fast(工作流快线)**:**轻量归档**——状态记录与知识暂存判定(含去重检索)**不得省略**;清单过程性叙述可合并精简。(轻量口径:保留 状态记录 / 知识暂存判定 / 知识库快速概览 / 模块手册判定 / 公共日志摘要;总结过程性叙述可合并为要点。)
|
|
2033
|
+
|
|
1906
2034
|
## 模型选择
|
|
1907
2035
|
|
|
1908
2036
|
openfeel-archiver 由**推理模型**(如 DeepSeek V4 Pro)驱动,负责理解上下文并提取有价值的经验。
|
|
@@ -1912,7 +2040,7 @@ description: openfeel-executor 执行官 Agent,快速模型,按操作方案
|
|
|
1912
2040
|
mode: subagent
|
|
1913
2041
|
model: deepseek/deepseek-flash
|
|
1914
2042
|
reasoning_effort: medium
|
|
1915
|
-
color: "#
|
|
2043
|
+
color: "#4CAF50"
|
|
1916
2044
|
permission:
|
|
1917
2045
|
bash: "allow"
|
|
1918
2046
|
read: "allow"
|
|
@@ -1978,9 +2106,10 @@ permission:
|
|
|
1978
2106
|
|
|
1979
2107
|
### 步骤 2:Phase 合法性校验
|
|
1980
2108
|
|
|
1981
|
-
1. 读取 \`.openfeel/flow.json\`,检查 \`pipeline.phase\` 是否为合法枚举值(\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done
|
|
2109
|
+
1. 读取 \`.openfeel/flow.json\`,检查 \`pipeline.phase\` 是否为合法枚举值(\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`),非法则拒绝执行。(fast 工作流快线下可达相位为快线链;合法相位枚举 15 项不变——可达 ≠ 合法)
|
|
1982
2110
|
2. 确认 \`pipeline.current.op\` 与当前 op-id 匹配,不匹配则拒绝执行。
|
|
1983
2111
|
3. 当前 phase 不是 \`exec_running\` 时:若 Feel 已明确指示执行可继续但需注明 phase 偏差;否则拒绝执行。
|
|
2112
|
+
4. **fast 工作流快线下相位路径**:\`plan_pending → plan_review → plan_passed → exec_running\`(计划审查为必经单轮:通过后进入本环节);\`review_failed → exec_running\` 回环(审查不通过时回执行修复;\`review_failed → review_pending\` 重审出口保留)。
|
|
1984
2113
|
|
|
1985
2114
|
### 步骤 3:FlowManager 流转合法性校验
|
|
1986
2115
|
|
|
@@ -2121,7 +2250,7 @@ openfeel-executor 由**快速模型**(如 DeepSeek V4 Flash)驱动,编码
|
|
|
2121
2250
|
description: openfeel-feel-tester 测试官 Agent,推理模型驱动,负责流水线中的正式测试验收。
|
|
2122
2251
|
mode: subagent
|
|
2123
2252
|
reasoning_effort: medium
|
|
2124
|
-
color: "#
|
|
2253
|
+
color: "#22D3EE"
|
|
2125
2254
|
permission:
|
|
2126
2255
|
bash: "allow"
|
|
2127
2256
|
read: "allow"
|
|
@@ -2220,6 +2349,7 @@ high 优先级 Bug 修复后,推荐执行全量测试套件。
|
|
|
2220
2349
|
- 发现问题后通知 openfeel-schemer 制定修复方案
|
|
2221
2350
|
- 修复后重新测试直到通过
|
|
2222
2351
|
- 测试通过后通知 Feel 进入归档阶段
|
|
2352
|
+
- **工作流模式感知**:fast 工作流快线下本 Agent **不被调度**(依据 \`status.md「工作流模式」\` 跳过正式测试环节,\`test_*\` 相位不可达);职责定义不变。
|
|
2223
2353
|
|
|
2224
2354
|
## 模型选择
|
|
2225
2355
|
|
|
@@ -2334,6 +2464,22 @@ openfeel-planner 作为独立子 Agent 由 Feel 按需唤起。Feel 根据规划
|
|
|
2334
2464
|
- 不直接编码,不执行测试
|
|
2335
2465
|
- openfeel-planner 与 openfeel-schemer 的职责边界:openfeel-planner 负责"做什么"(what)和"何时做"(when),openfeel-schemer 负责"怎么做"(how)
|
|
2336
2466
|
|
|
2467
|
+
## 工作流模式感知(fast 快线)
|
|
2468
|
+
|
|
2469
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
2470
|
+
|
|
2471
|
+
- **full**:产出经 openfeel-reviewer 计划审查(\`plan_review\`)后进入 openfeel-schemer(现状不变)。
|
|
2472
|
+
- **fast(工作流快线)**:**本 Agent 产出后必经 openfeel-reviewer 的计划审查(\`plan_review\` 单轮;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`;此后进入 exec)**;产出为轻量计划——任务表 / 依赖声明 / 验收要点**不得省略**,其余过程性描述可精简。(轻量口径:保留 目标 / 依赖 / 任务表 / 验收要点 / 约束 / KB 检索 / 变更点清单 / 风险;背景实测证据明细与修订记录过程可收敛为结论。)
|
|
2473
|
+
|
|
2474
|
+
## 需求感知
|
|
2475
|
+
|
|
2476
|
+
当任务源自需求(\`REQ-NNN\`)时:
|
|
2477
|
+
|
|
2478
|
+
- 读取需求:先以 \`openfeel req show <REQ-NNN>\` 读取需求详情(标题 / 状态 / 认领人 / 关联阶段),作为计划输入。
|
|
2479
|
+
- 计划关联需求:产出的 \`plan.md\` 头部标注「关联需求:REQ-NNN」;无需求来源时省略该标注。
|
|
2480
|
+
- 流转不在本 Agent 职责内:需求状态流转(认领 / 关联 / 推进)经 \`openfeel req\` CLI 执行;本 Agent 只读不写(不直写 flow.json)。
|
|
2481
|
+
- 与「工作流模式感知」正交:\`full\` / \`fast\` 下需求感知口径一致。
|
|
2482
|
+
|
|
2337
2483
|
## 模型选择
|
|
2338
2484
|
|
|
2339
2485
|
openfeel-planner 由**推理模型**(如 DeepSeek V4 Pro)驱动。在 Feel 体系设计中,openfeel-planner 职责可由 Feel 兼任,但作为独立 Agent 定义存在以支持灵活的调度策略。
|
|
@@ -2346,7 +2492,7 @@ description: openfeel-reviewer 审查官 Agent,异种推理模型,负责交
|
|
|
2346
2492
|
mode: subagent
|
|
2347
2493
|
model: zhipuai/glm-5.3-flash
|
|
2348
2494
|
reasoning_effort: medium
|
|
2349
|
-
color: "#
|
|
2495
|
+
color: "#EC4899"
|
|
2350
2496
|
permission:
|
|
2351
2497
|
bash: "allow"
|
|
2352
2498
|
read: "allow"
|
|
@@ -2413,6 +2559,15 @@ permission:
|
|
|
2413
2559
|
|
|
2414
2560
|
若任一条件不满足,跳过快速通道,执行完整审查流程。
|
|
2415
2561
|
|
|
2562
|
+
## 工作流模式感知(fast 单轮)
|
|
2563
|
+
|
|
2564
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
2565
|
+
|
|
2566
|
+
- **full**:计划审查 + 代码审查(多轮位点,现状不变)。
|
|
2567
|
+
- **fast(工作流快线)**:**单轮 ×2,两处均必跑**——① \`plan_review\` **计划审查(fast 下必经**,与代码审查同级;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`);② exec 后代码审查(\`review_failed\` 回环可重审 / 回执行修复);**质量底线不变**(问题照记、阻断照留,REV 条目照常)。
|
|
2568
|
+
|
|
2569
|
+
> **术语消歧**:本节的「**工作流快线**」(\`workflow_mode=fast\`,流程模式)与本模板「**快速通道 / fast track(FAST-PASS)**」(审查深度降级机制)为**不同机制**、同名异义——不得互相引用 / 混用。
|
|
2570
|
+
|
|
2416
2571
|
## REV 模板规范
|
|
2417
2572
|
|
|
2418
2573
|
\`\`\`yaml
|
|
@@ -2454,7 +2609,7 @@ openfeel-reviewer 必须由**异种推理模型**(如 GLM / Qwen)驱动,
|
|
|
2454
2609
|
| 需判定(默认阻塞) | 编码规范严重违反 / 跨模块一致性问题 | \`true\` |
|
|
2455
2610
|
| 非阻塞 | 命名建议 / 注释完善 / 风格微调 / 优化建议 | \`false\` |
|
|
2456
2611
|
|
|
2457
|
-
> 快速通道命中时,REV 默认 \`blocking=false
|
|
2612
|
+
> 快速通道命中时,REV 默认 \`blocking=false\`(安全漏洞除外)。该机制与「工作流快线」无关——见「工作流模式感知」节。
|
|
2458
2613
|
|
|
2459
2614
|
## blocking 与流水线行为
|
|
2460
2615
|
|
|
@@ -2574,6 +2729,7 @@ permission:
|
|
|
2574
2729
|
|
|
2575
2730
|
- 接收 Feel 调度启动,产出方案经 openfeel-reviewer 审查后交 openfeel-executor 执行
|
|
2576
2731
|
- 审查不通过时,根据 openfeel-reviewer 反馈重新制定方案
|
|
2732
|
+
- **工作流模式感知**:fast 工作流快线下本 Agent **不被调度**(依据 \`status.md「工作流模式」\` 跳过方案环节);职责定义不变。
|
|
2577
2733
|
|
|
2578
2734
|
## 注意事项
|
|
2579
2735
|
|
|
@@ -2740,7 +2896,7 @@ Not all tasks must go through the full pipeline. Non-coding tasks and coding tas
|
|
|
2740
2896
|
| Task Type | Handling Path | Notes |
|
|
2741
2897
|
|-----------|---------------|-------|
|
|
2742
2898
|
| Research/exploration (reading code, consulting references, locating issues) | Feel → research (general / explore Agent) | Read-only exploration, no source code changes; flow.json need not spin up for this |
|
|
2743
|
-
| Coding implementation (adding/modifying source code) | Full pipeline (openfeel-planner → openfeel-schemer → openfeel-executor → openfeel-reviewer → openfeel-feel-tester) | Involves source changes, must go through the full audit chain |
|
|
2899
|
+
| Coding implementation (adding/modifying source code) | Full pipeline (openfeel-planner → openfeel-schemer → openfeel-executor → openfeel-reviewer → openfeel-feel-tester) (full); in fast mode: planner → plan review (reviewer, single mandatory round) → executor → code review (reviewer) → archiver (see status.md "Workflow Mode" / openfeel flow mode) | Involves source changes, must go through the full audit chain (fast-line audit chain in fast mode) |
|
|
2744
2900
|
| Selection discussion (settling a technical approach / design trade-off) | Feel + \`question\` tool | Conversational decision, produces a conclusion, no plan.md |
|
|
2745
2901
|
|
|
2746
2902
|
> Non-coding tasks (research, selection discussion) do not require creating a plan or advancing the pipeline; the pipeline is engaged only when source changes or a formal plan document is produced.
|
|
@@ -2803,7 +2959,7 @@ When encountering technical issues, **the first action MUST be to consult the kn
|
|
|
2803
2959
|
- openfeel-utility Agent performs mechanical file operations, does not participate in design decisions
|
|
2804
2960
|
- openfeel-archiver archives and distills knowledge, does not modify source code; does not write flow.json directly (written via Feel)
|
|
2805
2961
|
|
|
2806
|
-
3. **Feel orchestration constraint**: Feel, as the overall commander, uniformly orchestrates downstream Agents (openfeel-planner / openfeel-schemer / openfeel-executor / openfeel-reviewer / openfeel-feel-tester / openfeel-utility Agent / openfeel-vision / openfeel-archiver), advancing serially via the \`task\` tool according to pipeline phases (plan → scheme → execute → review → test → archive). Each Agent operates only within its own responsibility boundary and must not start other Agents beyond its scope or modify flow.json state on its own.
|
|
2962
|
+
3. **Feel orchestration constraint**: Feel, as the overall commander, uniformly orchestrates downstream Agents (openfeel-planner / openfeel-schemer / openfeel-executor / openfeel-reviewer / openfeel-feel-tester / openfeel-utility Agent / openfeel-vision / openfeel-archiver), advancing serially via the \`task\` tool according to pipeline phases (plan → scheme → execute → review → test → archive) (full); in fast mode: plan → plan review → execute → code review → archive (see status.md "Workflow Mode" / openfeel flow mode). Each Agent operates only within its own responsibility boundary and must not start other Agents beyond its scope or modify flow.json state on its own.
|
|
2807
2963
|
|
|
2808
2964
|
4. **Lightweight decision boundary**: Conversational selections (Feel and the user settle a technical direction or design trade-off via the \`question\` tool, producing a conclusion but no plan.md) are handled by Feel directly, without delegating to openfeel-planner; only when a **formal plan document** (plan.md, including stage division, task table, constraint table) is needed, or the planning scale threshold is reached, should openfeel-planner be delegated. Avoid the extremes of "handle everything personally" or "delegate everything".
|
|
2809
2965
|
|
|
@@ -2856,7 +3012,7 @@ Version progression must be prudent, using the four-level X.Y.Z.W version number
|
|
|
2856
3012
|
| Level 4 (W) | Feature detail | Independently committed feature or submodule |
|
|
2857
3013
|
|
|
2858
3014
|
When Feel starts a new version, it defaults to incrementing the fourth level (W+1), unless the user explicitly specifies otherwise.
|
|
2859
|
-
The OpenFeel framework has released the official v1.0.x (currently v1.
|
|
3015
|
+
The OpenFeel framework has released the official v1.0.x (currently v1.2.0). After deploying the global constraints via openfeel setup, new projects set their own starting version number as needed.
|
|
2860
3016
|
|
|
2861
3017
|
### Module Manuals
|
|
2862
3018
|
|
|
@@ -3249,7 +3405,7 @@ AI Agent 行为约束与编码规范。本文件为永久性约束,适用于
|
|
|
3249
3405
|
| 任务类型 | 处理路径 | 说明 |
|
|
3250
3406
|
|----------|----------|------|
|
|
3251
3407
|
| 调研/探索(读代码、查资料、定位问题) | Feel → research(general / explore Agent) | 只读探索,不产出源码变更,flow.json 不必为此空转 |
|
|
3252
|
-
| 编码实现(新增/修改源码) | 完整流水线(openfeel-planner → openfeel-schemer → openfeel-executor → openfeel-reviewer → openfeel-feel-tester
|
|
3408
|
+
| 编码实现(新增/修改源码) | 完整流水线(openfeel-planner → openfeel-schemer → openfeel-executor → openfeel-reviewer → openfeel-feel-tester)(full);fast 工作流快线(workflow_mode=fast)下为 planner → 计划审查(reviewer,单轮必经)→ executor → 代码审查(reviewer)→ archiver——见 status.md「工作流模式」 / openfeel flow mode | 有源码变更,须走完整审计链(fast 走快线审计链) |
|
|
3253
3409
|
| 选型讨论(敲定技术方案/设计取舍) | Feel + \`question\` 工具 | 对话式决策,产出结论,不产出 plan.md |
|
|
3254
3410
|
|
|
3255
3411
|
> 非编码任务(调研、选型讨论)不强制创建计划或推进流水线;仅当产生源码变更或正式计划文档时才接入流水线。
|
|
@@ -3312,7 +3468,7 @@ AI Agent 行为约束与编码规范。本文件为永久性约束,适用于
|
|
|
3312
3468
|
- 事务官 执行文件机械操作,不参与设计决策
|
|
3313
3469
|
- openfeel-archiver 归档和沉淀知识,不修改源码;不直写 flow.json(通过 Feel 写入)
|
|
3314
3470
|
|
|
3315
|
-
3. **Feel 调度约束**:Feel 总统领统一调度下游 Agent(openfeel-planner / openfeel-schemer / openfeel-executor / openfeel-reviewer / openfeel-feel-tester / 事务官 / openfeel-vision / openfeel-archiver),通过 \`task\`
|
|
3471
|
+
3. **Feel 调度约束**:Feel 总统领统一调度下游 Agent(openfeel-planner / openfeel-schemer / openfeel-executor / openfeel-reviewer / openfeel-feel-tester / 事务官 / openfeel-vision / openfeel-archiver),通过 \`task\` 工具按流水线阶段(计划→方案→执行→审查→测试→归档)串行推进(full);fast 工作流快线下为 计划 → 计划审查 → 执行 → 代码审查 → 归档(见 status.md「工作流模式」 / openfeel flow mode)。各 Agent 仅在自己的职责边界内操作,不得越界启动其他 Agent 或自行修改 flow.json 状态。
|
|
3316
3472
|
|
|
3317
3473
|
4. **轻量决策边界**:对话式选型(Feel 与用户通过 \`question\` 工具敲定技术方向/设计取舍,产出结论不产出 plan.md)由 Feel 直接处理,不委托 openfeel-planner;仅当需要**产出正式计划文档**(plan.md,含阶段划分、任务表、约束表)或达到规划规模阈值时,才委托 openfeel-planner。避免"要么全亲为、要么全委托"的极端。
|
|
3318
3474
|
|
|
@@ -3365,7 +3521,7 @@ AI Agent 行为约束与编码规范。本文件为永久性约束,适用于
|
|
|
3365
3521
|
| 四级(W) | 功能细节 | 独立提交的功能或子模块 |
|
|
3366
3522
|
|
|
3367
3523
|
Feel 启动新版本时默认使用四级版本递增(W+1),除非用户明确指定。
|
|
3368
|
-
OpenFeel 框架已发布正式版 v1.0.x(当前 v1.
|
|
3524
|
+
OpenFeel 框架已发布正式版 v1.0.x(当前 v1.2.0)。新项目经 openfeel setup 部署全局约束后,按自身需求设定起始版本号。
|
|
3369
3525
|
|
|
3370
3526
|
### 模块手册
|
|
3371
3527
|
|
|
@@ -3986,6 +4142,47 @@ When a stage enters \`plan_passed\` and the project's \`auto_advance\` is set to
|
|
|
3986
4142
|
3. **User declines**: Feel keeps \`auto_advance=disabled\` and requires user confirmation before each stage advance (manual execution mode).
|
|
3987
4143
|
4. **No silent advancement**: When \`auto_advance=disabled\`, Feel must not advance the pipeline without asking the user.
|
|
3988
4144
|
|
|
4145
|
+
#### Workflow Mode (workflow_mode)
|
|
4146
|
+
|
|
4147
|
+
Before dispatching, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`; when the field is absent, fall back per the cascade). Two modes:
|
|
4148
|
+
|
|
4149
|
+
- **full (complete flow)**: planner → plan_review (reviewer) → schemer → executor → reviewer → tester → archiver.
|
|
4150
|
+
- **fast (Workflow Fast Line)**: planner (lightweight) → plan_review (**single mandatory plan review**) → executor → reviewer (single round) → archiver (lightweight); **does not dispatch openfeel-schemer / openfeel-feel-tester**.
|
|
4151
|
+
|
|
4152
|
+
Fast-mode discipline:
|
|
4153
|
+
|
|
4154
|
+
1. **The quality floor cannot be skipped**: under fast the reviewer **runs twice** — ① \`plan_review\` plan review (**mandatory single round**, on par with code review; pass → \`plan_passed\`, issues returned → \`plan_pending\`); ② code review after exec (single round); the \`review_failed\` loop allows re-review or returning to exec for fixes; failures are recorded as usual (REV entries unchanged).
|
|
4155
|
+
2. **Lightweight**: planner / archiver produce lightweight output (**must not** omit the task table / dependencies / acceptance points, or the state record / knowledge-staging decision).
|
|
4156
|
+
3. **Phase semantics**: under fast, reachable phases are the fast-line chain (\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`); the **legal phase enumeration remains at 15** (6 phases are unreachable under fast: \`scheme_*\` / \`test_*\`).
|
|
4157
|
+
4. **Full skeletons unchanged**: fast trims no on-disk structure; it only reduces agent relay steps.
|
|
4158
|
+
5. **Terminology disambiguation**: the flow mode is called the **Workflow Fast Line** (\`workflow_mode=fast\`); the review-depth downgrade is called **Fast Track (FAST-PASS)** — they are different mechanisms and must not be cross-referenced or conflated.
|
|
4159
|
+
|
|
4160
|
+
#### Requirement Lifecycle
|
|
4161
|
+
|
|
4162
|
+
The requirement layer is the second layer of the four-layer model "version → requirement REQ-NNN → plan stage → op": **a requirement is the scheduling layer**, answering "what to do and when"; **implementation still goes through the full pipeline** — a requirement is not a plan; after taking a requirement, delegate to openfeel-planner for plan.md per the "Threshold for Small Changes vs. Large-Scale Planning" as usual.
|
|
4163
|
+
|
|
4164
|
+
A requirement has 7 statuses: \`draft\` → \`scheduled\` → \`in_progress\` → \`done\`, plus three side states \`blocked\` / \`cancelled\` / \`rejected\`. Requirement progress is aggregated from the linked stages' phases (single projection direction: stage phase → requirement status; the requirement is closed as done automatically once all linked stages are done — precondition: only \`scheduled\` / \`in_progress\`; \`draft\` / \`blocked\` / terminal states do not trigger).
|
|
4165
|
+
|
|
4166
|
+
Requirement lifecycle actions (command group \`openfeel req\`, 10 subcommands):
|
|
4167
|
+
|
|
4168
|
+
| Step | Action | Command |
|
|
4169
|
+
|------|--------|---------|
|
|
4170
|
+
| Take | Browse requirement views and pick the next takeable requirement | \`openfeel req board\` / \`openfeel req next\` / \`openfeel req list\` |
|
|
4171
|
+
| Claim | Claim the requirement (rejected if already claimed by another — guards concurrent overwrite; no TTL) | \`openfeel req claim <REQ-NNN>\` |
|
|
4172
|
+
| Link | Link the requirement to the stages implementing it | \`openfeel req link --stage <stageId> --requirement <REQ-NNN>\` |
|
|
4173
|
+
| Advance | Stage advancement drives aggregation; advance explicitly along legal targets | \`openfeel req advance <REQ-NNN> --to <status>\` |
|
|
4174
|
+
| Complete | Auto-done once all linked stages are done; overview and release | \`openfeel req board\` / \`openfeel req release <REQ-NNN>\` |
|
|
4175
|
+
|
|
4176
|
+
> Orthogonality note: requirement flow is orthogonal to the workflow mode (\`full\` / \`fast\`) — the requirement discipline is identical in both modes.
|
|
4177
|
+
|
|
4178
|
+
#### Archiving and History Reading
|
|
4179
|
+
|
|
4180
|
+
Once a version is finalized (all its stages done), prompt the user that version archiving is available (\`openfeel flow archive <version>\` — after the criteria gate passes, the archive file is written first and the active entries removed afterwards): the archiving action is executed by the CLI; dispatch only prompts, never performs it.
|
|
4181
|
+
|
|
4182
|
+
- Never read archive files proactively: regular dispatch must not read \`.openfeel/flow-archive/**\` (to prevent context pollution); the active set via \`openfeel flow status\` / \`openfeel flow overview\` is the full working view.
|
|
4183
|
+
- Query history on demand: when history is genuinely needed, use \`openfeel flow archive show <version>\` (single version, read-only) or \`openfeel flow archive list\` (enumerate versions); do not read the files directly.
|
|
4184
|
+
- Distinct from top-level \`openfeel archive\`: the top-level command is stage-summary archiving; \`flow archive\` is flow.json version-shard archiving — different responsibilities.
|
|
4185
|
+
|
|
3989
4186
|
## Threshold for Small Changes vs. Large-Scale Planning
|
|
3990
4187
|
|
|
3991
4188
|
Choose the appropriate process path based on the change scale:
|
|
@@ -4053,7 +4250,7 @@ A shared log entry (\`.openfeel/log/yyyy-mm-dd-feel-NNN.md\`) must be created wh
|
|
|
4053
4250
|
|
|
4054
4251
|
### Skeleton File Note
|
|
4055
4252
|
|
|
4056
|
-
During critical operations (advancing to exec_running / review_pending / test_pending / archiving), the pipeline automatically creates skeleton files with date prefixes in the private log directory. Feel does not need to manually create log files; simply fill in the content when you see a skeleton file.
|
|
4253
|
+
During critical operations (advancing to exec_running / review_pending / test_pending / archiving), the pipeline automatically creates skeleton files with date prefixes in the private log directory (under the fast Workflow Fast Line, \`test_pending\` remains a legal phase but is unreachable (no inbound edge), so its skeleton is no longer produced; all other skeleton rules are unchanged). Feel does not need to manually create log files; simply fill in the content when you see a skeleton file.
|
|
4057
4254
|
|
|
4058
4255
|
### Log Entry Format
|
|
4059
4256
|
|
|
@@ -4315,6 +4512,15 @@ After archiving is complete, the stage's pipeline phase must be set to one of th
|
|
|
4315
4512
|
|
|
4316
4513
|
> ⚠️ Note: After archiving is complete, the stage status must be set to \`"done"\`, **do not** use non-standard values like \`"completed"\`. \`"completed"\` does not exist in \`VALID_TRANSITIONS\`.
|
|
4317
4514
|
|
|
4515
|
+
> **Under the fast Workflow Fast Line**: the 15-phase enumeration above is **unchanged** (reachable ≠ legal); reachable phases are the fast-line chain (\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`).
|
|
4516
|
+
|
|
4517
|
+
## Workflow Mode Awareness (fast lightweight archiving)
|
|
4518
|
+
|
|
4519
|
+
Before archiving, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
4520
|
+
|
|
4521
|
+
- **full**: full archiving checklist (unchanged).
|
|
4522
|
+
- **fast (Workflow Fast Line)**: **lightweight archiving** — the state record and the knowledge-staging decision (including the dedup lookup) **must not be omitted**; checklist process narrative may be merged and condensed. (Lightweight scope: keep the state record / knowledge-staging decision / kb index quick overview / manual update decision / shared log summary; summary process narrative may be merged into bullet points.)
|
|
4523
|
+
|
|
4318
4524
|
## Model Selection
|
|
4319
4525
|
|
|
4320
4526
|
openfeel-archiver is driven by a **reasoning model** (such as DeepSeek V4 Pro), responsible for understanding context and extracting valuable experience.
|
|
@@ -4324,7 +4530,7 @@ description: openfeel-executor Agent, fast model, implements code according to o
|
|
|
4324
4530
|
mode: subagent
|
|
4325
4531
|
model: deepseek/deepseek-flash
|
|
4326
4532
|
reasoning_effort: medium
|
|
4327
|
-
color: "#
|
|
4533
|
+
color: "#4CAF50"
|
|
4328
4534
|
permission:
|
|
4329
4535
|
bash: "allow"
|
|
4330
4536
|
read: "allow"
|
|
@@ -4390,9 +4596,10 @@ Confirm that the following 6 required fields are present. If any is missing, ret
|
|
|
4390
4596
|
|
|
4391
4597
|
### Step 2: Phase Legitimacy Check
|
|
4392
4598
|
|
|
4393
|
-
1. Read \`.openfeel/flow.json\`, check if \`pipeline.phase\` is a valid enum value (\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`); refuse to execute if invalid.
|
|
4599
|
+
1. Read \`.openfeel/flow.json\`, check if \`pipeline.phase\` is a valid enum value (\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`); refuse to execute if invalid. (under the fast Workflow Fast Line, reachable phases are the fast-line chain; the legal phase enumeration remains at 15 — reachable ≠ legal)
|
|
4394
4600
|
2. Confirm \`pipeline.current.op\` matches the current op-id; refuse to execute if mismatched.
|
|
4395
4601
|
3. When the current phase is not \`exec_running\`: if Feel explicitly instructs execution, it may proceed but must note the phase deviation; otherwise, refuse to execute.
|
|
4602
|
+
4. **Fast-mode phase paths**: \`plan_pending → plan_review → plan_passed → exec_running\` (the plan review is a mandatory single round; the step is entered only after it passes); the \`review_failed → exec_running\` loop (review failure returns to exec for fixes; the \`review_failed → review_pending\` re-review exit is retained).
|
|
4396
4603
|
|
|
4397
4604
|
### Step 3: FlowManager Transition Legitimacy Check
|
|
4398
4605
|
|
|
@@ -4533,7 +4740,7 @@ Delegable targets: openfeel-vision (analyze screenshots), openfeel-reviewer (pre
|
|
|
4533
4740
|
description: openfeel-feel-tester Agent, reasoning model, responsible for formal testing and acceptance in the pipeline.
|
|
4534
4741
|
mode: subagent
|
|
4535
4742
|
reasoning_effort: medium
|
|
4536
|
-
color: "#
|
|
4743
|
+
color: "#22D3EE"
|
|
4537
4744
|
permission:
|
|
4538
4745
|
bash: "allow"
|
|
4539
4746
|
read: "allow"
|
|
@@ -4632,6 +4839,7 @@ Write regression verification results into the Bug file's "Acceptance Record" ta
|
|
|
4632
4839
|
- When issues are found, notify openfeel-schemer to formulate a revision
|
|
4633
4840
|
- Re-test after fixes until passing
|
|
4634
4841
|
- When tests pass, notify Feel to enter the archiving phase
|
|
4842
|
+
- **Workflow Mode Awareness**: under the fast Workflow Fast Line this agent is **not dispatched** (the formal test step is skipped per \`status.md\` "Workflow Mode"; the \`test_*\` phases are unreachable); the role definition is unchanged.
|
|
4635
4843
|
|
|
4636
4844
|
## Model Selection
|
|
4637
4845
|
|
|
@@ -4746,6 +4954,22 @@ This step ensures openfeel-planner absorbs existing project knowledge before mak
|
|
|
4746
4954
|
- Does not directly code or execute tests
|
|
4747
4955
|
- openfeel-planner and openfeel-schemer responsibility boundary: openfeel-planner is responsible for "what" (what) and "when" (when), openfeel-schemer is responsible for "how" (how)
|
|
4748
4956
|
|
|
4957
|
+
## Workflow Mode Awareness (fast)
|
|
4958
|
+
|
|
4959
|
+
Before planning, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
4960
|
+
|
|
4961
|
+
- **full**: the output goes through openfeel-reviewer plan review (\`plan_review\`) before openfeel-schemer (unchanged).
|
|
4962
|
+
- **fast (Workflow Fast Line)**: **this agent's output must pass openfeel-reviewer's plan review (\`plan_review\`, single round; pass → \`plan_passed\`, issues returned → \`plan_pending\`; only then does it enter exec)**; produce a lightweight plan — the task table / dependencies / acceptance points **must not be omitted**; other process narrative may be trimmed. (Lightweight scope: keep goals / dependencies / task table / acceptance points / constraints / KB retrieval / change-point list / risks; background evidence details and revision history may be condensed.)
|
|
4963
|
+
|
|
4964
|
+
## Requirement Awareness
|
|
4965
|
+
|
|
4966
|
+
When a task originates from a requirement (\`REQ-NNN\`):
|
|
4967
|
+
|
|
4968
|
+
- Read the requirement: first read the requirement details (title / status / owner / linked stages) via \`openfeel req show <REQ-NNN>\` as plan input.
|
|
4969
|
+
- Link the plan to the requirement: annotate the header of the produced \`plan.md\` with "Linked requirement: REQ-NNN"; omit the annotation when there is no requirement source.
|
|
4970
|
+
- Flow is not this agent's duty: requirement status transitions (claim / link / advance) are executed via the \`openfeel req\` CLI; this agent is read-only (no direct flow.json writes).
|
|
4971
|
+
- Orthogonal to "Workflow Mode Awareness": requirement awareness is identical under \`full\` / \`fast\`.
|
|
4972
|
+
|
|
4749
4973
|
## Model Selection
|
|
4750
4974
|
|
|
4751
4975
|
openfeel-planner is driven by a **reasoning model** (such as DeepSeek V4 Pro). In the Feel system design, openfeel-planner duties can be concurrently handled by Feel, but exist as an independent agent definition to support flexible scheduling strategies.
|
|
@@ -4758,7 +4982,7 @@ description: openfeel-reviewer Agent, heterogenous reasoning model, responsible
|
|
|
4758
4982
|
mode: subagent
|
|
4759
4983
|
model: zhipuai/glm-5.3-flash
|
|
4760
4984
|
reasoning_effort: medium
|
|
4761
|
-
color: "#
|
|
4985
|
+
color: "#EC4899"
|
|
4762
4986
|
permission:
|
|
4763
4987
|
bash: "allow"
|
|
4764
4988
|
read: "allow"
|
|
@@ -4825,6 +5049,15 @@ When **all three** of the following conditions are met, openfeel-reviewer enters
|
|
|
4825
5049
|
|
|
4826
5050
|
If any condition is not met, skip fast track and execute full review process.
|
|
4827
5051
|
|
|
5052
|
+
## Workflow Mode Awareness (fast single round)
|
|
5053
|
+
|
|
5054
|
+
Before reviewing, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
5055
|
+
|
|
5056
|
+
- **full**: plan review + code review (multiple points, unchanged).
|
|
5057
|
+
- **fast (Workflow Fast Line)**: **single round ×2, both mandatory** — ① \`plan_review\` **plan review (mandatory under fast**, on par with code review; pass → \`plan_passed\`, issues returned → \`plan_pending\`); ② code review after exec (the \`review_failed\` loop allows re-review / returning to exec for fixes); the **quality floor is unchanged** (issues are still recorded and blockers still raised; REV entries as usual).
|
|
5058
|
+
|
|
5059
|
+
> **Terminology disambiguation**: the **Workflow Fast Line** (\`workflow_mode=fast\`, the flow mode) and **Fast Track (FAST-PASS)** (the review-depth downgrade mechanism defined in this template) are **different mechanisms** with similar names — do not cross-reference or conflate them.
|
|
5060
|
+
|
|
4828
5061
|
## REV Template Specification
|
|
4829
5062
|
|
|
4830
5063
|
\`\`\`yaml
|
|
@@ -4866,7 +5099,7 @@ openfeel-reviewer must be driven by a **heterogenous reasoning model** (such as
|
|
|
4866
5099
|
| Requires judgment (default blocking) | Serious coding convention violations / Cross-module consistency issues | \`true\` |
|
|
4867
5100
|
| Non-blocking | Naming suggestions / Comment improvements / Style tweaks / Optimization suggestions | \`false\` |
|
|
4868
5101
|
|
|
4869
|
-
> When fast track is hit, REV defaults to \`blocking=false\` (except for security vulnerabilities).
|
|
5102
|
+
> When fast track is hit, REV defaults to \`blocking=false\` (except for security vulnerabilities). This mechanism is unrelated to the Workflow Fast Line — see "Workflow Mode Awareness".
|
|
4870
5103
|
|
|
4871
5104
|
## blocking and Pipeline Behavior
|
|
4872
5105
|
|
|
@@ -4986,6 +5219,7 @@ When third-party dependencies are involved:
|
|
|
4986
5219
|
|
|
4987
5220
|
- Receives dispatch from Feel to start, outputs are reviewed by openfeel-reviewer before being handed to openfeel-executor
|
|
4988
5221
|
- When review fails, re-formulate the scheme based on openfeel-reviewer feedback
|
|
5222
|
+
- **Workflow Mode Awareness**: under the fast Workflow Fast Line this agent is **not dispatched** (the scheme step is skipped per \`status.md\` "Workflow Mode"); the role definition is unchanged.
|
|
4989
5223
|
|
|
4990
5224
|
## Notes
|
|
4991
5225
|
|
|
@@ -5343,6 +5577,47 @@ Agent 模型需求对照:
|
|
|
5343
5577
|
3. **用户拒绝**:Feel 保持 \`auto_advance=disabled\`,每次阶段推进前均需向用户确认(手动执行模式)。
|
|
5344
5578
|
4. **禁止静默推进**:\`auto_advance=disabled\` 时禁止 Feel 不询问用户直接推进流水线。
|
|
5345
5579
|
|
|
5580
|
+
#### 工作流模式(workflow_mode)
|
|
5581
|
+
|
|
5582
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询:\`openfeel flow mode [--stage <id>]\`;字段缺失时按级联口径回落)。两种模式:
|
|
5583
|
+
|
|
5584
|
+
- **full(完整流程)**:planner → plan_review(reviewer)→ schemer → executor → reviewer → tester → archiver。
|
|
5585
|
+
- **fast(工作流快线)**:planner(轻量)→ plan_review(**计划审查单轮,必经**)→ executor → reviewer(单轮)→ archiver(轻量);**不派发 schemer / tester**。
|
|
5586
|
+
|
|
5587
|
+
fast 调度纪律:
|
|
5588
|
+
|
|
5589
|
+
1. **质量底线不可跳**:reviewer 在 fast 下**必跑两处**——① \`plan_review\` 计划审查(**必经单轮**,与代码审查同级;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`);② exec 后代码审查(单轮);\`review_failed\` 回环可重审或回执行修复;失败留痕照常(REV 条目照常)。
|
|
5590
|
+
2. **轻量化**:planner / archiver 轻量产出(**不得**省略任务表 / 依赖 / 验收要点与状态记录 / 知识暂存判定)。
|
|
5591
|
+
3. **相位口径**:fast 下可达相位为快线链(\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`);**合法相位枚举 15 项不变**(fast 下 6 项不可达:\`scheme_*\` / \`test_*\`)。
|
|
5592
|
+
4. **骨架全量不变**:fast 不裁剪任何落盘结构,仅减少 Agent 接力环节。
|
|
5593
|
+
5. **术语消歧**:流程模式称「**工作流快线**」(\`workflow_mode=fast\`);审查深度降级称「**快速通道 / fast track(FAST-PASS)**」——二者为不同机制,不得互相引用 / 混用。
|
|
5594
|
+
|
|
5595
|
+
#### 需求流转(requirement lifecycle)
|
|
5596
|
+
|
|
5597
|
+
需求层位于「版本 → 需求 REQ-NNN → 计划 stage → 方案 op」四层模型的第二层:**需求 = 排期与调度层**,回答「做什么、何时做」;**实现仍走完整流水线**——需求不等于计划,接取需求后按「小改 vs 大规模规划的阈值」照常委托 openfeel-planner 产出 plan.md。
|
|
5598
|
+
|
|
5599
|
+
需求共 7 个状态:\`draft\` → \`scheduled\` → \`in_progress\` → \`done\`,另有 \`blocked\` / \`cancelled\` / \`rejected\` 三个旁路状态。需求进度由关联阶段的 phase 聚合(投影方向单一:阶段 phase → 需求状态;全部关联阶段 done 时需求自动收口 done——前置集限定:仅 \`scheduled\` / \`in_progress\`;\`draft\` / \`blocked\` / 终态不触发)。
|
|
5600
|
+
|
|
5601
|
+
需求生命周期动作(命令组 \`openfeel req\`,共 10 个子命令):
|
|
5602
|
+
|
|
5603
|
+
| 步骤 | 动作 | 命令 |
|
|
5604
|
+
|------|------|------|
|
|
5605
|
+
| 接取 | 浏览需求视图,挑选下一个可接取需求 | \`openfeel req board\` / \`openfeel req next\` / \`openfeel req list\` |
|
|
5606
|
+
| 认领 | 占用需求(已被他人认领则拒绝——防并发覆盖,无 TTL) | \`openfeel req claim <REQ-NNN>\` |
|
|
5607
|
+
| 关联 | 把需求关联到实现它的阶段 | \`openfeel req link --stage <stageId> --requirement <REQ-NNN>\` |
|
|
5608
|
+
| 流转 | 阶段推进驱动聚合;显式流转按合法目标推进 | \`openfeel req advance <REQ-NNN> --to <status>\` |
|
|
5609
|
+
| 完成 | 全部关联阶段 done 后需求自动 done;总览与释放 | \`openfeel req board\` / \`openfeel req release <REQ-NNN>\` |
|
|
5610
|
+
|
|
5611
|
+
> 正交注记:需求流转与工作流模式(\`full\` / \`fast\`)正交——两种模式下需求纪律一致。
|
|
5612
|
+
|
|
5613
|
+
#### 归档与历史读取
|
|
5614
|
+
|
|
5615
|
+
版本收官(该版本全部阶段 done)后,提示用户可执行版本归档(\`openfeel flow archive <version>\`——判据门校验后先写归档文件、再移除活跃条目):归档动作由 CLI 执行,调度侧只提示不代劳。
|
|
5616
|
+
|
|
5617
|
+
- 不主动读归档文件:常规调度不得读取 \`.openfeel/flow-archive/**\`(防上下文污染);活跃集经 \`openfeel flow status\` / \`openfeel flow overview\` 即为全量工作视图。
|
|
5618
|
+
- 按需查询历史:确需历史版本时用 \`openfeel flow archive show <version>\`(单版本只读)或 \`openfeel flow archive list\`(列举版本),不直接读文件。
|
|
5619
|
+
- 与顶层 \`openfeel archive\` 区分:顶层命令是阶段摘要归档;\`flow archive\` 是 flow.json 版本分片归档,二者职责不同。
|
|
5620
|
+
|
|
5346
5621
|
## 小改 vs 大规模规划的阈值
|
|
5347
5622
|
|
|
5348
5623
|
根据变更规模选择适当的流程路径:
|
|
@@ -5410,7 +5685,7 @@ Agent 模型需求对照:
|
|
|
5410
5685
|
|
|
5411
5686
|
### 骨架文件提示
|
|
5412
5687
|
|
|
5413
|
-
关键操作(推进到 exec_running / review_pending / test_pending / archiving
|
|
5688
|
+
关键操作(推进到 exec_running / review_pending / test_pending / archiving)时,流水线会自动在私域日志目录创建带日期前缀的骨架文件(fast 工作流快线下 \`test_pending\` 仍为合法相位、仅不可达(无入边),该相位骨架不再产生;其余骨架规则全量不变)。Feel 无需手动创建日志文件,看到骨架文件时填充内容即可。
|
|
5414
5689
|
|
|
5415
5690
|
### 日志条目格式
|
|
5416
5691
|
|
|
@@ -5671,6 +5946,15 @@ openfeel-feel-tester 通过 → Feel 触发归档 → openfeel-archiver 整理
|
|
|
5671
5946
|
|
|
5672
5947
|
> ⚠️ 注意:归档完成后的阶段状态必须设为 \`"done"\`,**不得**使用 \`"completed"\` 等非标准值。\`VALID_TRANSITIONS\` 中不存在 \`"completed"\`。
|
|
5673
5948
|
|
|
5949
|
+
> **fast 工作流快线下**:上表 15 项相位枚举**不变**(可达 ≠ 合法);可达相位为快线链(\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`)。
|
|
5950
|
+
|
|
5951
|
+
## 工作流模式感知(fast 轻量归档)
|
|
5952
|
+
|
|
5953
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
5954
|
+
|
|
5955
|
+
- **full**:归档全量清单(现状不变)。
|
|
5956
|
+
- **fast(工作流快线)**:**轻量归档**——状态记录与知识暂存判定(含去重检索)**不得省略**;清单过程性叙述可合并精简。(轻量口径:保留 状态记录 / 知识暂存判定 / 知识库快速概览 / 模块手册判定 / 公共日志摘要;总结过程性叙述可合并为要点。)
|
|
5957
|
+
|
|
5674
5958
|
## 模型选择
|
|
5675
5959
|
|
|
5676
5960
|
openfeel-archiver 由**推理模型**(如 DeepSeek V4 Pro)驱动,负责理解上下文并提取有价值的经验。
|
|
@@ -5680,7 +5964,7 @@ description: openfeel-executor 执行官 Agent,快速模型,按操作方案
|
|
|
5680
5964
|
mode: subagent
|
|
5681
5965
|
model: deepseek/deepseek-flash
|
|
5682
5966
|
reasoning_effort: medium
|
|
5683
|
-
color: "#
|
|
5967
|
+
color: "#4CAF50"
|
|
5684
5968
|
permission:
|
|
5685
5969
|
bash: "allow"
|
|
5686
5970
|
read: "allow"
|
|
@@ -5746,9 +6030,10 @@ permission:
|
|
|
5746
6030
|
|
|
5747
6031
|
### 步骤 2:Phase 合法性校验
|
|
5748
6032
|
|
|
5749
|
-
1. 读取 \`.openfeel/flow.json\`,检查 \`pipeline.phase\` 是否为合法枚举值(\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done
|
|
6033
|
+
1. 读取 \`.openfeel/flow.json\`,检查 \`pipeline.phase\` 是否为合法枚举值(\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`),非法则拒绝执行。(fast 工作流快线下可达相位为快线链;合法相位枚举 15 项不变——可达 ≠ 合法)
|
|
5750
6034
|
2. 确认 \`pipeline.current.op\` 与当前 op-id 匹配,不匹配则拒绝执行。
|
|
5751
6035
|
3. 当前 phase 不是 \`exec_running\` 时:若 Feel 已明确指示执行可继续但需注明 phase 偏差;否则拒绝执行。
|
|
6036
|
+
4. **fast 工作流快线下相位路径**:\`plan_pending → plan_review → plan_passed → exec_running\`(计划审查为必经单轮:通过后进入本环节);\`review_failed → exec_running\` 回环(审查不通过时回执行修复;\`review_failed → review_pending\` 重审出口保留)。
|
|
5752
6037
|
|
|
5753
6038
|
### 步骤 3:FlowManager 流转合法性校验
|
|
5754
6039
|
|
|
@@ -5889,7 +6174,7 @@ openfeel-executor 由**快速模型**(如 DeepSeek V4 Flash)驱动,编码
|
|
|
5889
6174
|
description: openfeel-feel-tester 测试官 Agent,推理模型驱动,负责流水线中的正式测试验收。
|
|
5890
6175
|
mode: subagent
|
|
5891
6176
|
reasoning_effort: medium
|
|
5892
|
-
color: "#
|
|
6177
|
+
color: "#22D3EE"
|
|
5893
6178
|
permission:
|
|
5894
6179
|
bash: "allow"
|
|
5895
6180
|
read: "allow"
|
|
@@ -5988,6 +6273,7 @@ high 优先级 Bug 修复后,推荐执行全量测试套件。
|
|
|
5988
6273
|
- 发现问题后通知 openfeel-schemer 制定修复方案
|
|
5989
6274
|
- 修复后重新测试直到通过
|
|
5990
6275
|
- 测试通过后通知 Feel 进入归档阶段
|
|
6276
|
+
- **工作流模式感知**:fast 工作流快线下本 Agent **不被调度**(依据 \`status.md「工作流模式」\` 跳过正式测试环节,\`test_*\` 相位不可达);职责定义不变。
|
|
5991
6277
|
|
|
5992
6278
|
## 模型选择
|
|
5993
6279
|
|
|
@@ -6102,6 +6388,22 @@ openfeel-planner 作为独立子 Agent 由 Feel 按需唤起。Feel 根据规划
|
|
|
6102
6388
|
- 不直接编码,不执行测试
|
|
6103
6389
|
- openfeel-planner 与 openfeel-schemer 的职责边界:openfeel-planner 负责"做什么"(what)和"何时做"(when),openfeel-schemer 负责"怎么做"(how)
|
|
6104
6390
|
|
|
6391
|
+
## 工作流模式感知(fast 快线)
|
|
6392
|
+
|
|
6393
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
6394
|
+
|
|
6395
|
+
- **full**:产出经 openfeel-reviewer 计划审查(\`plan_review\`)后进入 openfeel-schemer(现状不变)。
|
|
6396
|
+
- **fast(工作流快线)**:**本 Agent 产出后必经 openfeel-reviewer 的计划审查(\`plan_review\` 单轮;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`;此后进入 exec)**;产出为轻量计划——任务表 / 依赖声明 / 验收要点**不得省略**,其余过程性描述可精简。(轻量口径:保留 目标 / 依赖 / 任务表 / 验收要点 / 约束 / KB 检索 / 变更点清单 / 风险;背景实测证据明细与修订记录过程可收敛为结论。)
|
|
6397
|
+
|
|
6398
|
+
## 需求感知
|
|
6399
|
+
|
|
6400
|
+
当任务源自需求(\`REQ-NNN\`)时:
|
|
6401
|
+
|
|
6402
|
+
- 读取需求:先以 \`openfeel req show <REQ-NNN>\` 读取需求详情(标题 / 状态 / 认领人 / 关联阶段),作为计划输入。
|
|
6403
|
+
- 计划关联需求:产出的 \`plan.md\` 头部标注「关联需求:REQ-NNN」;无需求来源时省略该标注。
|
|
6404
|
+
- 流转不在本 Agent 职责内:需求状态流转(认领 / 关联 / 推进)经 \`openfeel req\` CLI 执行;本 Agent 只读不写(不直写 flow.json)。
|
|
6405
|
+
- 与「工作流模式感知」正交:\`full\` / \`fast\` 下需求感知口径一致。
|
|
6406
|
+
|
|
6105
6407
|
## 模型选择
|
|
6106
6408
|
|
|
6107
6409
|
openfeel-planner 由**推理模型**(如 DeepSeek V4 Pro)驱动。在 Feel 体系设计中,openfeel-planner 职责可由 Feel 兼任,但作为独立 Agent 定义存在以支持灵活的调度策略。
|
|
@@ -6114,7 +6416,7 @@ description: openfeel-reviewer 审查官 Agent,异种推理模型,负责交
|
|
|
6114
6416
|
mode: subagent
|
|
6115
6417
|
model: zhipuai/glm-5.3-flash
|
|
6116
6418
|
reasoning_effort: medium
|
|
6117
|
-
color: "#
|
|
6419
|
+
color: "#EC4899"
|
|
6118
6420
|
permission:
|
|
6119
6421
|
bash: "allow"
|
|
6120
6422
|
read: "allow"
|
|
@@ -6181,6 +6483,15 @@ permission:
|
|
|
6181
6483
|
|
|
6182
6484
|
若任一条件不满足,跳过快速通道,执行完整审查流程。
|
|
6183
6485
|
|
|
6486
|
+
## 工作流模式感知(fast 单轮)
|
|
6487
|
+
|
|
6488
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
6489
|
+
|
|
6490
|
+
- **full**:计划审查 + 代码审查(多轮位点,现状不变)。
|
|
6491
|
+
- **fast(工作流快线)**:**单轮 ×2,两处均必跑**——① \`plan_review\` **计划审查(fast 下必经**,与代码审查同级;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`);② exec 后代码审查(\`review_failed\` 回环可重审 / 回执行修复);**质量底线不变**(问题照记、阻断照留,REV 条目照常)。
|
|
6492
|
+
|
|
6493
|
+
> **术语消歧**:本节的「**工作流快线**」(\`workflow_mode=fast\`,流程模式)与本模板「**快速通道 / fast track(FAST-PASS)**」(审查深度降级机制)为**不同机制**、同名异义——不得互相引用 / 混用。
|
|
6494
|
+
|
|
6184
6495
|
## REV 模板规范
|
|
6185
6496
|
|
|
6186
6497
|
\`\`\`yaml
|
|
@@ -6222,7 +6533,7 @@ openfeel-reviewer 必须由**异种推理模型**(如 GLM / Qwen)驱动,
|
|
|
6222
6533
|
| 需判定(默认阻塞) | 编码规范严重违反 / 跨模块一致性问题 | \`true\` |
|
|
6223
6534
|
| 非阻塞 | 命名建议 / 注释完善 / 风格微调 / 优化建议 | \`false\` |
|
|
6224
6535
|
|
|
6225
|
-
> 快速通道命中时,REV 默认 \`blocking=false
|
|
6536
|
+
> 快速通道命中时,REV 默认 \`blocking=false\`(安全漏洞除外)。该机制与「工作流快线」无关——见「工作流模式感知」节。
|
|
6226
6537
|
|
|
6227
6538
|
## blocking 与流水线行为
|
|
6228
6539
|
|
|
@@ -6342,6 +6653,7 @@ permission:
|
|
|
6342
6653
|
|
|
6343
6654
|
- 接收 Feel 调度启动,产出方案经 openfeel-reviewer 审查后交 openfeel-executor 执行
|
|
6344
6655
|
- 审查不通过时,根据 openfeel-reviewer 反馈重新制定方案
|
|
6656
|
+
- **工作流模式感知**:fast 工作流快线下本 Agent **不被调度**(依据 \`status.md「工作流模式」\` 跳过方案环节);职责定义不变。
|
|
6345
6657
|
|
|
6346
6658
|
## 注意事项
|
|
6347
6659
|
|
|
@@ -6784,7 +7096,7 @@ Skill 加载后,根据步骤 3 的匹配结果决定是否追加提示:
|
|
|
6784
7096
|
`,
|
|
6785
7097
|
'openfeel-cli-usage': `---
|
|
6786
7098
|
name: openfeel-cli-usage
|
|
6787
|
-
description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15 个 phase 枚举与转移表、stageId 命名与目录映射约定、v1.1.2 新增能力(自描述/可纠错、--json 结构化输出、health --fix、scheme draft、knowledge dedup、纠正清理侧命令面)、v1.1.4 新增能力(checkpoint 选择性恢复 --stage/--dry-run、flow stage reset 精准复位、故障恢复路径)、v1.1.5 新增能力(setup --check [--json] 诊断 / 被动部署提示)、v1.1.6 新增能力(Claude Code 适配器 \`--tools claude\` / settings
|
|
7099
|
+
description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15 个 phase 枚举与转移表、stageId 命名与目录映射约定、v1.1.2 新增能力(自描述/可纠错、--json 结构化输出、health --fix、scheme draft、knowledge dedup、纠正清理侧命令面)、v1.1.4 新增能力(checkpoint 选择性恢复 --stage/--dry-run、flow stage reset 精准复位、故障恢复路径)、v1.1.5 新增能力(setup --check [--json] 诊断 / 被动部署提示)、v1.1.6 新增能力(Claude Code 适配器 \`--tools claude\` / settings 注入)、v1.1.7 新增能力(双模式工作流 workflow_mode:flow mode 只读查询 / flow phases --mode 模式分节 / plan stage add --workflow-mode / stage set --workflow-mode / config set --sync-stages --stage)、v1.2.0 新增能力(需求流转命令组 \`openfeel req\`:需求 7 状态与 10 子命令 / 认领协议;flow.json 版本分片归档 \`flow archive\`:\`<version>\` / \`list\` / \`show\`)。当需要查询 CLI 命令、参数、phase、stageId、阶段命名时加载。
|
|
6788
7100
|
---
|
|
6789
7101
|
|
|
6790
7102
|
# OpenFeel CLI 用法参考
|
|
@@ -6796,7 +7108,7 @@ description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15
|
|
|
6796
7108
|
- 与 \`openfeel-tool-usage\` 协同:工具选择规范见该 skill;本 skill 补充 CLI 命令细节。
|
|
6797
7109
|
- 正文以**能力名**叙述;平台差异见 \`### opencode 适配器\` / \`### Claude Code 适配器\` 两小节。
|
|
6798
7110
|
|
|
6799
|
-
> 本文档为 v1.
|
|
7111
|
+
> 本文档为 v1.2.0 快照;命令/参数细节以 \`openfeel <cmd> --help\`(本仓执行)实时输出为准(CLI 演进后本文档可能滞后)。
|
|
6800
7112
|
>
|
|
6801
7113
|
> ⚠️ **本仓自举**:本仓(openfeel 源码仓库)开发/执行时请用 \`node bin/openfeel.js <cmd>\`;安装后使用 \`openfeel <cmd>\`。
|
|
6802
7114
|
|
|
@@ -6811,29 +7123,42 @@ description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15
|
|
|
6811
7123
|
| \`openfeel flow ...\` | 流水线状态管理 | 见下「flow 子命令」 |
|
|
6812
7124
|
| \`openfeel flow checkpoint restore\` | Checkpoint 恢复(全量 / 选择性 / 预览) | \`<file> [--force] [--stage <id>] [--dry-run]\`(无 \`--stage\`=全量覆盖,最后手段;\`--stage\`=按阶段回退;\`--dry-run\`=零写盘预览) |
|
|
6813
7125
|
| \`openfeel flow stage reset\` | 精准复位阶段 phase(\`flow advance\` 的对称复位,允许回退) | \`<stageId> --to <phase> [--dry-run]\`(受合法值域 + \`to=done\` 阻塞 REV 约束) |
|
|
6814
|
-
| \`openfeel plan stage add\\|list\` | 工作阶段管理 | \`add <name> --deps <ids...> --tasks <items...> --exec-mode <manual\\|auto> --auto-advance <enabled\\|disabled>\`(初值取 \`config.yaml.defaults
|
|
7126
|
+
| \`openfeel plan stage add\\|list\` | 工作阶段管理 | \`add <name> --deps <ids...> --tasks <items...> --exec-mode <manual\\|auto> --auto-advance <enabled\\|disabled> --workflow-mode <full\\|fast>\`(初值取 \`config.yaml.defaults\`;显式选项优先;\`--workflow-mode\` 覆盖 config 默认) |
|
|
6815
7127
|
| \`openfeel plan scheme create\\|publish\\|rename\\|list\\|remove\\|register\` | 操作方案管理 | \`create <stage> <title> [--draft]\`、\`publish <stage> <opId>\`、\`rename <stage> <opId> --title <text>\`、\`remove <stage> <opId> [--force] [--dry-run]\`、\`register <stage> [opId] [--dry-run]\`(补注册 fileOrphans) |
|
|
6816
|
-
| \`openfeel stage status\\|set\\|task\` | \`status.md\` 原子操作 | \`set <id> --status/--exec-mode/--auto-advance/--review-agent\`、\`task <id> [no] --add/--done/--undone\`(\`stage create\` 已弃用) |
|
|
6817
|
-
| \`openfeel config ...\` | 配置管理 | \`get\\|set <key> <value> [--global]\`(支持全量 \`defaults.*\`,且 \`defaults.X ≡ X\`)、\`set ... --sync-stages
|
|
7128
|
+
| \`openfeel stage status\\|set\\|task\` | \`status.md\` 原子操作 | \`set <id> --status/--exec-mode/--auto-advance/--review-agent/--workflow-mode\`、\`task <id> [no] --add/--done/--undone\`(\`stage create\` 已弃用) |
|
|
7129
|
+
| \`openfeel config ...\` | 配置管理 | \`get\\|set <key> <value> [--global]\`(支持全量 \`defaults.*\`,且 \`defaults.X ≡ X\`)、\`set ... --sync-stages [--stage <ids...>]\`(批量写入已注册阶段 \`status.md\` 的 \`自动推进\`/\`执行模式\`/\`工作流模式\`;\`--stage\` 限定作用域,单独使用 / 与 \`--global\` 组合 → exit 1)、\`get-lang\\|set-lang\`、\`list-projects\`、\`effective [key]\` |
|
|
6818
7130
|
| \`openfeel model set\\|get\\|list\` | 模型三层级配置 | \`set <agent> <model>\` |
|
|
6819
7131
|
| \`openfeel lint i18n\\|kb\` | 健康检查(i18n 键一致性 / kb 过期引用) | 发现问题**非 0 退出** |
|
|
6820
7132
|
| \`openfeel knowledge ...\` | 知识库管理 | \`list\` / \`add\` / \`search\` / \`index\` / \`dedup\` |
|
|
6821
7133
|
| \`openfeel archive <stage>\` | 归档指定阶段(汇总产出、生成摘要、提取知识) | \`<stage>\` |
|
|
7134
|
+
| \`openfeel req ...\` | 需求流转(需求管理命令组) | 见「v1.2.0 新增能力(stage-78~84)」节 |
|
|
6822
7135
|
| \`openfeel view list\\|accept\` | 审查条目验收(\`add\` 已移除,改用 \`flow review add\`) | — |
|
|
6823
7136
|
| \`openfeel project overview\` | 项目结构概览 | \`overview\`(无 \`list\`/\`info\` 子命令) |
|
|
6824
7137
|
| \`openfeel roadmap create\\|show\` | 分期大纲管理 | \`create <version>\`、\`show [version]\` |
|
|
6825
7138
|
| \`openfeel instructions <artifactId>\` | 为指定 artifact 生成结构化指令 | \`--change <name>\`、\`--schema <name>\`、\`--json\` |
|
|
6826
7139
|
|
|
6827
|
-
**flow 子命令**:\`status\` / \`current\` / \`overview\` / \`phases\` / \`stage\`(\`add\` / \`remove\` / \`set --deps\` / **\`reset <id> --to <phase> [--dry-run]\`**)/ \`metrics\` / \`advance\`(\`--stage <id> --to <phase>\`、\`--op\`、\`--force\`、\`--dry-run\`、\`--quiet\`)/ \`attempt\` / \`log\` / \`review\` / \`retry\` / \`repair\` / \`ops\` / \`migrate\` / \`checkpoint\`(\`list\` / **\`restore <file> [--force] [--stage <id>] [--dry-run]\`**)/ \`health\` / \`recover\` / \`wizard
|
|
7140
|
+
**flow 子命令**:\`status\` / \`current\` / \`overview\` / \`phases\` / \`mode\`(\`[--stage <id>] [--json]\`,只读) / \`stage\`(\`add\` / \`remove\` / \`set --deps\` / **\`reset <id> --to <phase> [--dry-run]\`**)/ \`metrics\` / \`advance\`(\`--stage <id> --to <phase>\`、\`--op\`、\`--force\`、\`--dry-run\`、\`--quiet\`)/ \`attempt\` / \`log\` / \`review\` / \`retry\` / \`repair\` / \`ops\` / \`migrate\` / \`checkpoint\`(\`list\` / **\`restore <file> [--force] [--stage <id>] [--dry-run]\`**)/ \`health\` / \`recover\` / \`wizard\` / \`archive\`(\`<version>\` / \`list\` / \`show\`)。
|
|
6828
7141
|
|
|
6829
7142
|
**纠错/清理侧补充**:\`flow review add|resolve|update|remove\`;\`flow ops list [--stage <id>] [--json]\`(操作方案视图,draft 分组展示);\`flow repair [--prune-orphans]\`(默认只报告,\`--prune-orphans\` 仅清键孤儿,单向不删文件);\`plan scheme register\`(补注册**文件孤儿**:有 op 文件无注册键 → 写入 flow.json,\`--dry-run\` 零写盘;与 \`flow repair --prune-orphans\`(仅清键孤儿)对称);**\`flow stage reset <id> --to <phase>\`**(\`advance\` 的**对称复位**:允许回退,受合法 phase 值域 + \`to=done\` 阻塞 REV 约束,\`--dry-run\` 零写盘);**\`flow checkpoint restore <file> --stage <id> [--dry-run]\`**(按阶段选择性回退;\`--dry-run\` 差异预览零写盘)。
|
|
6830
7143
|
|
|
6831
7144
|
> 命令职责分层:\`plan stage add\`(完整,推荐)> \`flow stage add\`(仅注册 \`flow.json\`,不建目录)> \`stage create\`(已弃用)。
|
|
6832
7145
|
|
|
7146
|
+
## v1.2.0 新增能力(stage-78~84)
|
|
7147
|
+
|
|
7148
|
+
- **flow.json 版本分片归档(\`flow archive\`)**:按版本号归档已收官历史(判据门:该版本全部阶段 done + 无 blocking open REV;归档文件落 \`.openfeel/flow-archive/{version}.json\`)。三个入口:\`openfeel flow archive <version>\`(执行归档;\`--dry-run\` 预览零写盘、\`--json\` 结构化输出)、\`openfeel flow archive list\`(列举已归档版本,只读)、\`openfeel flow archive show <version>\`(查看指定归档版本,只读)。**与顶层 \`openfeel archive <stage>\` 区分**:顶层命令是**阶段摘要归档**,\`flow archive\` 是 **flow.json 版本分片归档**,二者职责不同;常规命令不读 \`.openfeel/flow-archive/**\`(\`flow health\` 仅目录清单级对账)。
|
|
7149
|
+
- **需求流转(\`openfeel req\`)**:需求层命令组(10 子命令:\`add\` / \`list\` / \`show\` / \`claim\` / \`release\` / \`set\` / \`link\` / \`advance\` / \`board\` / \`next\`)。需求 7 状态(\`draft\` / \`scheduled\` / \`in_progress\` / \`done\` / \`blocked\` / \`cancelled\` / \`rejected\`);**需求进度由关联阶段 phase 聚合**(全部关联阶段 done → 需求自动 done);认领协议 = \`owner\` + \`claimed_at\` 占用校验(无 TTL)。需求正文 \`.openfeel/requirements/REQ-NNN.md\` 为人读副本,**机读权威恒为 flow.json**。用法权威源见 \`openfeel-req\` skill;**v1.2.0 起提供**。
|
|
7150
|
+
|
|
7151
|
+
## v1.1.7 新增能力(stage-74~76)
|
|
7152
|
+
|
|
7153
|
+
- **双模式工作流(\`workflow_mode\`)**:值域 \`full | fast\`(默认 \`fast\`)。三层载体:\`config.yaml defaults.workflow_mode\`(项目默认 / 记忆)→ \`status.md「工作流模式」\`(阶段覆盖,**读取权威**)→ \`flow.json\` 冗余字段(可选、**不参与级联**);级联优先序 \`status.md > config.yaml > builtin\`(\`profile.yaml\` 不承载)。只读查询:\`openfeel flow mode [--stage <id>] [--json]\`(当前模式 + 四源 \`source\`)。
|
|
7154
|
+
- **fast 快线转移表(并列)**:\`transitions\` 共 **9 条目**(8 条流转键 + \`done\` 终止项):\`plan_pending → plan_review\`(**计划审查必经**)、\`plan_review → plan_passed / plan_pending\`、\`plan_passed → exec_running\`、\`exec_running → review_pending\`、\`review_pending → review_failed / review_passed\`、\`review_failed → review_pending / exec_running\`(回环)、\`review_passed → archiving\`、\`archiving → done\`、\`done\`(终态)。**\`phases\` / \`advanceAccepted\` 恒 15 项、模式无关**;fast 下 6 个相位不可达(\`scheme_*\` / \`test_*\`)。
|
|
7155
|
+
- **模式命令面**:\`plan stage add --workflow-mode <full|fast>\`(值域派生、非法 exit 1 不建阶段)、\`stage set <id> --workflow-mode <full|fast>\`(缺失字段插入)、\`flow phases [--mode <full|fast>] [--stage <id>]\`(模式分节;\`--json\` 追加 \`workflowMode\`)、\`config set ... --sync-stages [--stage <ids...>]\`(同步字段含「工作流模式」)。
|
|
7156
|
+
- **\`config effective\` 四键**:\`auto_advance\` / \`execution_mode\` / \`merge_mode\` / \`workflow_mode\`。
|
|
7157
|
+
|
|
6833
7158
|
## v1.1.6 新增能力(stage-68~73)
|
|
6834
7159
|
|
|
6835
7160
|
- **多 harness 并存**:\`openfeel setup\` / \`openfeel update\` 新增 \`--tools <逗号列表>\`(如 \`opencode,claude\`);非法值 **exit 1** 前置校验零写盘;默认仅 \`opencode\`。
|
|
6836
|
-
- **Claude Code 适配器资产**:\`--tools claude\` 部署 \`~/.claude/\`——\`CLAUDE.md\`(全局约束,用户已有内容 append 不覆盖)、\`agents/\`(**9 个**,含 \`feel\`)、\`skills/\`(**
|
|
7161
|
+
- **Claude Code 适配器资产**:\`--tools claude\` 部署 \`~/.claude/\`——\`CLAUDE.md\`(全局约束,用户已有内容 append 不覆盖)、\`agents/\`(**9 个**,含 \`feel\`)、\`skills/\`(**18 个**共享源)、\`settings.json\`(注入 \`"agent":"feel"\` + \`"permissions":{"defaultMode":"auto"}\`,用户既有键逐字保留);默认零触(不带 \`--tools\` 时 \`~/.claude/\` 零变化)。
|
|
6837
7162
|
|
|
6838
7163
|
## v1.1.5 新增能力(stage-67)
|
|
6839
7164
|
|
|
@@ -6867,7 +7192,7 @@ openfeel setup --tools claude # 2. 重跑部署(claude 目标)
|
|
|
6867
7192
|
|
|
6868
7193
|
> 以下为 v1.1.2 相对上版的增量能力(分组摘要,细节以 \`<cmd> --help\` 为准)。
|
|
6869
7194
|
|
|
6870
|
-
- **A. 自描述与可纠错(stage-41)**:\`flow phases [--json]\`(**
|
|
7195
|
+
- **A. 自描述与可纠错(stage-41)**:\`flow phases [--json] [--mode <full|fast>] [--stage <id>]\`(**6 键**:\`schemaVersion\`/\`phases\`/\`transitions\`/\`advanceAccepted\`/\`transitionsDiff\`/\`workflowMode\`(v1.1.7 追加);既有五键语义逐字不变)、\`flow stage remove [--force] [--dry-run] [--purge]\`、stageId 校验/冲突检测(\`validateStageId\` / \`suggestStageId\` / \`findStageDirConflict\`)、\`plan stage add --deps\`。
|
|
6871
7196
|
- **B. 状态与口径(stage-42)**:\`config effective [key]\`(有效值 + 生效来源 \`status.md > config.yaml > profile.yaml > builtin\`)、\`pipeline.phase\` 全量 done 判定、审计日志 \`register_stage\` / \`register_op\`。
|
|
6872
7197
|
- **C. 部署与备份(stage-46)**:覆盖写前自动备份 \`~/.openfeel/backup/{ts}/\` + \`update_infos.md\`「备份」类条目(Agent 按 \`feel.md\` 检查规则核对)。
|
|
6873
7198
|
- **D. 纠正/清理侧命令面(stage-51/52,v1.1.4-stage-64 补 register)**:\`plan scheme remove\`(仅删 \`flow.json\` 注册键,不删 op 文件;done/checkpoint 保护)、\`plan scheme register <stage> [opId] [--dry-run]\`(对称补全:补注册 fileOrphans,\`--dry-run\` 零写盘;**\`create\` 序号基于「ops/ 文件 ∪ flow.json 注册」的最小未用正整数(空位回填),创建后对目标阶段未注册文件输出 stderr 告警并提示 \`plan scheme register\`**)、\`plan scheme rename --title\`(必填,空标题报错)、\`plan scheme publish\` + \`create --draft\`(draft→pending,空模板拒绝)、\`flow stage set --deps\`(覆盖写入;**不带 \`--deps\` 视为清空**)、\`flow review update|remove\`、\`stage set\`(**幂等**:同值 no-op + 同值不生成 \`.bak\`;\`--exec-mode <manual\\|auto>\` / \`--auto-advance <enabled\\|disabled>\` / \`--review-agent <agent>\`)、\`stage task --add|--done|--undone\`、\`plan stage add --tasks\`/\`--exec-mode\`/\`--auto-advance\`(显式覆盖 config 默认)、\`flow repair --prune-orphans\`、\`flow health --fix [--dry-run]\`(默认只报告;\`--fix\` **仅回写 status.md「状态」字段**;\`--dry-run\` 预览零写盘)、\`flow ops list\`、\`flow advance --quiet\` + \`--to <远距 phase>\`(存在唯一路径时自动逐步;\`--dry-run\` 展示完整路径)、\`knowledge dedup\`(检索相似条目,**只读建议,不修改 kb**)。\`flow attempt\` 对 **draft op 拒绝**。
|
|
@@ -6901,7 +7226,23 @@ plan_pending → plan_review → plan_passed → scheme_pending → scheme_revie
|
|
|
6901
7226
|
| \`archiving\` | \`done\` |
|
|
6902
7227
|
| \`done\` | (终态) |
|
|
6903
7228
|
|
|
6904
|
-
|
|
7229
|
+
**fast 快线转移表(\`workflow_mode=fast\`)** —— \`transitions\` 共 **9 条目**(8 条流转键 + \`done\` 终止项),快线链(可达相位序列)为 \`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`:
|
|
7230
|
+
|
|
7231
|
+
| phase | 合法目标 |
|
|
7232
|
+
|-------|----------|
|
|
7233
|
+
| \`plan_pending\` | \`plan_review\` |
|
|
7234
|
+
| \`plan_review\` | \`plan_passed\`, \`plan_pending\` |
|
|
7235
|
+
| \`plan_passed\` | \`exec_running\` |
|
|
7236
|
+
| \`exec_running\` | \`review_pending\` |
|
|
7237
|
+
| \`review_pending\` | \`review_failed\`, \`review_passed\` |
|
|
7238
|
+
| \`review_failed\` | \`review_pending\`, \`exec_running\` |
|
|
7239
|
+
| \`review_passed\` | \`archiving\` |
|
|
7240
|
+
| \`archiving\` | \`done\` |
|
|
7241
|
+
| \`done\` | (终态) |
|
|
7242
|
+
|
|
7243
|
+
> \`phases\` / \`advanceAccepted\` 恒 15 项(模式无关);fast 下 \`scheme_pending\` / \`scheme_review\` / \`scheme_passed\` / \`test_pending\` / \`test_failed\` / \`test_passed\` 共 **6 项**不可达(无入边)。
|
|
7244
|
+
|
|
7245
|
+
- 转移表以**运行时** \`.openfeel/pipeline.yaml\` 为准;\`openfeel flow phases\` 查看当前生效值。(\`--mode <full|fast>\` 显式指定 / \`--stage <id>\` 按阶段派生;\`--json\` 追加 \`workflowMode\`)
|
|
6905
7246
|
- 推进:\`openfeel flow advance --stage <id> --to <phase>\`。**\`advanceAccepted\` = 内置 15 个 phase 的「推进白名单」**(\`flow advance\` 只接受这 15 个值),**不是**组合式条件键的替代品(旧文案曾误述,此处已更正)。**组合式条件差异**(如内置默认含 \`review_passed|test_passed\`,本仓 \`pipeline.yaml\` 未列)经 \`--json.transitionsDiff.missing\` **显式可见**(stage-50 裁定:**不补组合键**,改以 \`transitionsDiff\` 显式化)。
|
|
6906
7247
|
- 参考:\`.openfeel/manual/**\`(CLI/flow 模块文档)。
|
|
6907
7248
|
|
|
@@ -7013,7 +7354,7 @@ description: 读取 .openfeel/plan/{series}/{stage}/status.md,判断当前子
|
|
|
7013
7354
|
|
|
7014
7355
|
### 0. 读取全局配置
|
|
7015
7356
|
|
|
7016
|
-
读取 \`.openfeel/config.yaml\`,解析 \`defaults\` 中的 \`execution_mode\`、\`auto_advance\`、\`merge_mode\`。
|
|
7357
|
+
读取 \`.openfeel/config.yaml\`,解析 \`defaults\` 中的 \`execution_mode\`、\`auto_advance\`、\`merge_mode\`、\`workflow_mode\`。
|
|
7017
7358
|
|
|
7018
7359
|
### 1. 定位状态文件
|
|
7019
7360
|
|
|
@@ -7029,6 +7370,7 @@ description: 读取 .openfeel/plan/{series}/{stage}/status.md,判断当前子
|
|
|
7029
7370
|
|
|
7030
7371
|
- \`执行模式\`
|
|
7031
7372
|
- \`自动推进\`
|
|
7373
|
+
- \`工作流模式\`
|
|
7032
7374
|
- \`状态\`
|
|
7033
7375
|
- \`当前责任 Agent\`
|
|
7034
7376
|
- \`上一责任 Agent\`
|
|
@@ -7089,6 +7431,7 @@ description: 读取 .openfeel/plan/{series}/{stage}/status.md,判断当前子
|
|
|
7089
7431
|
- 阶段:{stage}
|
|
7090
7432
|
- 执行模式:manual | auto
|
|
7091
7433
|
- 自动推进:disabled | enabled
|
|
7434
|
+
- 工作流模式:full | fast
|
|
7092
7435
|
- 状态:{status}
|
|
7093
7436
|
- 当前责任 Agent:{agent}
|
|
7094
7437
|
- 前置依赖:{依赖列表 或 无}
|
|
@@ -7103,6 +7446,8 @@ description: 读取 .openfeel/plan/{series}/{stage}/status.md,判断当前子
|
|
|
7103
7446
|
{根据状态给出下一步,例如:启动 Code、等待用户、启动 openfeel-feel-tester、停止流程;若存在并行候选则建议批量启动}
|
|
7104
7447
|
\`\`\`
|
|
7105
7448
|
|
|
7449
|
+
> **模式感知(fast)**:\`工作流模式\` 为 \`fast\` 时,「下一步建议」不指向方案 / 测试环节(快线链为 计划 → 计划审查 → 执行 → 代码审查 → 归档);\`plan_pending\` 阶段下一步建议 = \`plan_review\`(必经,勿建议直接 \`plan_passed\`);相位口径为「**可达 ≠ 合法**」——合法枚举仍 15 项(fast 下仅 6 项不可达),**不得**表述为相位缩减。
|
|
7450
|
+
|
|
7106
7451
|
## 状态到下一步映射
|
|
7107
7452
|
|
|
7108
7453
|
| 状态 | 下一步建议 |
|
|
@@ -7335,7 +7680,7 @@ models:
|
|
|
7335
7680
|
|
|
7336
7681
|
### opencode 适配器
|
|
7337
7682
|
|
|
7338
|
-
|
|
7683
|
+
读取 \`opencode.jsonc\`(或对应平台的配置文件),确定当前适配器平台:
|
|
7339
7684
|
|
|
7340
7685
|
| 配置文件 | 平台 |
|
|
7341
7686
|
|----------|------|
|
|
@@ -7344,7 +7689,8 @@ models:
|
|
|
7344
7689
|
|
|
7345
7690
|
若无平台配置文件,提示用户当前不在支持的平台中。
|
|
7346
7691
|
|
|
7347
|
-
|
|
7692
|
+
扫描 \`.opencode/agents/\`(或对应平台的 agents/ 目录)下所有 \`.md\` 文件,提取每个 Agent 的模型需求。
|
|
7693
|
+
|
|
7348
7694
|
- 报告/模板中的平台标签:\`**平台**:OpenCode(当前适配器)\`(原文标签,正文已改为中性表述「当前 harness(opencode 适配器 / Claude Code 适配器)」)。
|
|
7349
7695
|
- 向用户提问使用 \`question\` 工具。
|
|
7350
7696
|
|
|
@@ -7480,11 +7826,90 @@ description: 跨会话上下文恢复,供 Agent 在会话启动时重建流水
|
|
|
7480
7826
|
2. 读取**索引** \`.openfeel/users/{username}/dev_last.md\`(「用户偏好」「主题索引」「公共交接区」)→ **按需**再读主题文件(**文件名英文,如 \`decisions.md\`/\`pending.md\`**)恢复详情;**旧格式**(无 \`## 主题索引\` 节)→ 触发惰性迁移(按英文命名映射拆分生成 \`dev_last/\` + 索引,原文保留)
|
|
7481
7827
|
3. 将两者合并为当前会话起点
|
|
7482
7828
|
|
|
7829
|
+
> **模式感知**:恢复后按当前阶段 \`status.md「工作流模式」\` 确认流程模式(\`flow recover\` 输出不含模式字段;fast 工作流快线下按快线链继续)。
|
|
7830
|
+
|
|
7483
7831
|
> **加锁提示(A9)**:恢复流程为**只读**,无需加锁;仅**会话末尾写入**走 \`withFileLock\` 临界区(见 agents-md「并发写加锁协议」)。
|
|
7484
7832
|
|
|
7485
7833
|
## 输出
|
|
7486
7834
|
|
|
7487
7835
|
恢复摘要:流水线状态 + 阻塞项 + 待处理任务列表
|
|
7836
|
+
`,
|
|
7837
|
+
'openfeel-req': `---
|
|
7838
|
+
name: openfeel-req
|
|
7839
|
+
description: OpenFeel 需求流转用法参考:需求(requirement)四层模型与 7 状态生命周期、req 命令组 10 个子命令(add/list/show/claim/release/set/link/advance/board/next)与参数、认领协议、REQ-NNN 正文与人读副本语义(机读权威恒为 flow.json)、与计划(plan.md)的关系、与 workflow_mode 正交。当需要创建/查询/认领/关联/推进需求,或要理解 REQ-NNN 状态与阶段聚合关系时加载。
|
|
7840
|
+
---
|
|
7841
|
+
|
|
7842
|
+
# OpenFeel 需求流转(openfeel req)用法参考
|
|
7843
|
+
|
|
7844
|
+
## 说明
|
|
7845
|
+
|
|
7846
|
+
- 定位:**查询型参考手册**(只读,不自执行)。回答「需求是什么、状态怎么流转、\`req\` 命令怎么用」。
|
|
7847
|
+
- 提供版本:**v1.2.0 起提供**(\`openfeel req\` 命令组);命令/参数细节以 \`openfeel req --help\`(本仓执行)实时输出为准(CLI 演进后本文档可能滞后)。
|
|
7848
|
+
- 本仓自举:本仓(openfeel 源码仓库)开发/执行时请用 \`node bin/openfeel.js req <cmd>\`;安装后使用 \`openfeel req <cmd>\`。
|
|
7849
|
+
- 相关 skill:\`openfeel-cli-usage\`(全量命令速查);本 skill 只承载需求流转专项。
|
|
7850
|
+
|
|
7851
|
+
## 四层模型与需求定位
|
|
7852
|
+
|
|
7853
|
+
需求层位于**「版本 → 需求 REQ-NNN → 计划 stage → 方案 op」**四层模型的第二层:**需求 = 排期与调度层**(回答「做什么、何时做」);**计划 = 对某项明确需求的具体实现**。需求不等于计划——接取需求后仍按既有规划阈值走流水线(\`plan.md\` 头部标注「关联需求:REQ-NNN」)。
|
|
7854
|
+
|
|
7855
|
+
## 需求生命周期(7 状态)
|
|
7856
|
+
|
|
7857
|
+
\`\`\`
|
|
7858
|
+
draft ─→ scheduled ─→ in_progress ─→ done
|
|
7859
|
+
│ │ │
|
|
7860
|
+
└──────────┴────────────┴──→ blocked / cancelled / rejected
|
|
7861
|
+
\`\`\`
|
|
7862
|
+
|
|
7863
|
+
| 状态 | 语义 |
|
|
7864
|
+
|------|------|
|
|
7865
|
+
| \`draft\` | 草稿(\`req add\` 新建初值) |
|
|
7866
|
+
| \`scheduled\` | 已排期(可被 \`req next\` 推荐接取) |
|
|
7867
|
+
| \`in_progress\` | 进行中(认领后推进;**内部进度由关联阶段的 15-phase 聚合**) |
|
|
7868
|
+
| \`done\` | 完成(**全部关联阶段 done 时自动收口**——前置集限定 \`scheduled\` / \`in_progress\`;\`req advance --to done\` 亦须此门) |
|
|
7869
|
+
| \`blocked\` | 阻塞(可回到 \`scheduled\` / \`in_progress\`) |
|
|
7870
|
+
| \`cancelled\` | 已取消(终态) |
|
|
7871
|
+
| \`rejected\` | 已拒绝(终态) |
|
|
7872
|
+
|
|
7873
|
+
- **投影方向单一**:需求状态是关联阶段 phase 的聚合投影(方向:阶段 phase → 需求状态);不得由需求状态前推阶段 phase。
|
|
7874
|
+
- 合法显式流转由引擎流转表判定(\`req advance --to <status>\` / \`req set --status <status>\`);终态(\`done\` / \`cancelled\` / \`rejected\`)不可再流转。
|
|
7875
|
+
|
|
7876
|
+
## 子命令(10 个)
|
|
7877
|
+
|
|
7878
|
+
| 子命令 | 用途 | 关键参数 |
|
|
7879
|
+
|--------|------|----------|
|
|
7880
|
+
| \`req add <title>\` | 创建需求(ID 自动分配 REQ-NNN,max+1 不回收;正文骨架铺到 \`.openfeel/requirements/REQ-NNN.md\`) | \`--target-version <version>\`、\`--priority <P0\\|P1\\|P2>\` |
|
|
7881
|
+
| \`req list\` | 列出需求(可按状态 / 版本 / 认领人过滤) | \`--status <status>\`、\`--target-version <version>\`、\`--owner <owner>\`、\`--json\` |
|
|
7882
|
+
| \`req show <id>\` | 查看需求详情(关联阶段为原始只读枚举) | \`--json\` |
|
|
7883
|
+
| \`req claim <id>\` | 认领需求(占用校验;已被他人认领则拒绝) | \`--owner <owner>\`(缺省 \`.openfeel/.info.json\` user → git config user.name) |
|
|
7884
|
+
| \`req release <id>\` | 释放认领(未认领为 no-op 成功) | — |
|
|
7885
|
+
| \`req set <id>\` | 更新需求字段(白名单;状态流转合法性由引擎判定) | \`--status\`、\`--title\`、\`--target-version\`、\`--priority\` |
|
|
7886
|
+
| \`req link\` | 关联需求到阶段 / 解绑 | \`--stage <stageId>\`、\`--requirement <id>\`、\`--unlink\`(与 \`--requirement\` 二选一) |
|
|
7887
|
+
| \`req advance <id>\` | 显式推进需求状态(合法目标由引擎流转表判定;done 须全部关联阶段 done) | \`--to <status>\` |
|
|
7888
|
+
| \`req board\` | 需求看板(按状态分组;7 组固定顺序) | \`--target-version <version>\`、\`--json\` |
|
|
7889
|
+
| \`req next\` | 推荐下一个可接取需求(\`scheduled\` 且未认领;按预估版本升序) | \`--owner <owner>\`(含该认领人已认领的 scheduled 需求)、\`--json\` |
|
|
7890
|
+
|
|
7891
|
+
> \`--json\` 输出为纯 JSON 单文档(含 \`schemaVersion\`,脚本消费口径);命令细节以 \`openfeel req <sub> --help\` 为准。
|
|
7892
|
+
|
|
7893
|
+
## 认领协议
|
|
7894
|
+
|
|
7895
|
+
- **轻量原子**:\`owner\` + \`claimed_at\` 两字段;\`req claim\` 做**占用校验**(已被他人认领 → 拒绝,exit 非 0 零写盘);**无 TTL / 无心跳**(单机场景足够)。
|
|
7896
|
+
- 认领人缺省解析:\`.openfeel/.info.json\` 的 \`user\` → \`git config user.name\`。
|
|
7897
|
+
- 释放:\`req release <id>\`(未认领为 no-op 成功);终态需求不可认领。
|
|
7898
|
+
|
|
7899
|
+
## REQ-NNN 正文与权威源
|
|
7900
|
+
|
|
7901
|
+
- 正文文件:\`.openfeel/requirements/REQ-NNN.md\`(\`req add\` 机械铺骨架,**人读副本**)。
|
|
7902
|
+
- **机读权威恒为 \`.openfeel/flow.json\` 的 \`requirements\` 条目**;正文与 flow.json 不一致时**以 flow.json 为准**(正文内状态为创建时快照,不追写)。
|
|
7903
|
+
- \`stages[*].requirement_id\` 记录需求↔阶段关联(单值可空;存量阶段缺省 = \`null\`);关联关系以 flow.json 为准。
|
|
7904
|
+
|
|
7905
|
+
## 与计划(plan.md)的关系
|
|
7906
|
+
|
|
7907
|
+
- 需求 = 排期与调度层;**具体实现仍由计划承载**——阶段 \`plan.md\` 头部标注「关联需求:REQ-NNN」。
|
|
7908
|
+
- 需求状态流转(认领 / 关联 / 推进)经 \`openfeel req\` CLI 执行;planner 只读不写(不直写 flow.json)。
|
|
7909
|
+
|
|
7910
|
+
## 与 workflow_mode 正交
|
|
7911
|
+
|
|
7912
|
+
需求层与工作流模式(\`full\` / \`fast\`)**正交**:需求可分别由 full / fast 阶段实现;两种模式下需求纪律一致,\`workflow_mode\` 不影响需求状态机与命令行为。
|
|
7488
7913
|
`,
|
|
7489
7914
|
'openfeel-roadmap': `---
|
|
7490
7915
|
name: openfeel-roadmap
|
|
@@ -7776,7 +8201,7 @@ description: 标准化更新 .openfeel/plan/{series}/{stage}/status.md 的子计
|
|
|
7776
8201
|
|
|
7777
8202
|
### 0. 读取全局配置
|
|
7778
8203
|
|
|
7779
|
-
读取 \`.openfeel/config.yaml\`,获取 \`defaults\` 中的 \`execution_mode\`、\`auto_advance\`、\`merge_mode\`。
|
|
8204
|
+
读取 \`.openfeel/config.yaml\`,获取 \`defaults\` 中的 \`execution_mode\`、\`auto_advance\`、\`merge_mode\`、\`workflow_mode\`。
|
|
7780
8205
|
|
|
7781
8206
|
### 1. 读取状态文件
|
|
7782
8207
|
|
|
@@ -7821,6 +8246,7 @@ planned | ready_for_code | coding | ready_for_review | review_failed | review_pa
|
|
|
7821
8246
|
|
|
7822
8247
|
- \`执行模式\`
|
|
7823
8248
|
- \`自动推进\`
|
|
8249
|
+
- \`工作流模式\`(模式字段**不由**状态更新覆盖)
|
|
7824
8250
|
- \`前置依赖\`(由 Architect 在 Phase 3.5 中声明,运行时不应修改)
|
|
7825
8251
|
|
|
7826
8252
|
### 4. 追加状态记录
|
|
@@ -7882,6 +8308,8 @@ description: 交互式流水线向导,供 Agent 在终端中逐步推进流水
|
|
|
7882
8308
|
2. 按提示选择要推进的阶段和下一步 phase(基于当前阶段的可达 transitions)
|
|
7883
8309
|
3. 确认后执行推进,循环直至阶段 done 或退出
|
|
7884
8310
|
|
|
8311
|
+
> **模式选型**:首次运行时向导会询问工作流模式(\`full\` / \`fast\`),写入 \`config.yaml defaults.workflow_mode\`(项目级记忆);非 TTY 环境沿用既有守卫、不询问。
|
|
8312
|
+
|
|
7885
8313
|
## 输出
|
|
7886
8314
|
|
|
7887
8315
|
向导推进结果:阶段 phase 变化(from → to),结束/退出提示
|
|
@@ -7930,10 +8358,10 @@ description: 会话启动时检查并补齐 .openfeel/ 工作区目录结构与
|
|
|
7930
8358
|
// AUTO-GENERATED-BEGIN: OPENCODE_CONFIG_TEMPLATES
|
|
7931
8359
|
const OPENCODE_CONFIG_TEMPLATES = {
|
|
7932
8360
|
'zh-CN': {
|
|
7933
|
-
adapter: 'IyBPcGVuQ29kZSDlubPlj7DpgILphY3lmagKCui/
|
|
8361
|
+
adapter: 'IyBPcGVuQ29kZSDlubPlj7DpgILphY3lmagKCui/meaYryBPcGVuQ29kZSDlubPlj7DpgILphY3lmajvvIzljIXlkKsgOSDkuKogQWdlbnQg5a6a5LmJ5ZKMIDE4IOS4qiBTa2lsbOOAggoK6YOo572y5ZCO5bCG5Zyo55uu5qCH6aG555uu5Lit55Sf5oiQ77yaCgotIGBvcGVuY29kZS5qc29uY2Ag4oCUIE9wZW5Db2RlIOW5s+WPsOmFjee9ru+8iEFnZW50IOaooeWei+OAgVNraWxscyDliJfooajnrYnvvIkKLSBgLm9wZW5jb2RlL2FnZW50cy9gIOKAlCA5IOS4qiBBZ2VudCDlrprkuYnvvIhmZWVs44CBb3BlbmZlZWwtcGxhbm5lcuOAgW9wZW5mZWVsLXNjaGVtZXLjgIFvcGVuZmVlbC1leGVjdXRvcuOAgW9wZW5mZWVsLXJldmlld2Vy44CBb3BlbmZlZWwtZmVlbC10ZXN0ZXLjgIFvcGVuZmVlbC12aXNpb27jgIFvcGVuZmVlbC1hcmNoaXZlcuOAgW9wZW5mZWVsLXV0aWxpdHnvvIkKLSBgLm9wZW5jb2RlL3NraWxscy9gIOKAlCAxOCDkuKogU2tpbGwg5a6a5LmJ77yIb3BlbmZlZWwtYWdlbnQtbW9kZWwtY2hlY2vjgIFvcGVuZmVlbC1idWctYWNjZXB0YW5jZeOAgW9wZW5mZWVsLWNoZWNrLWti44CBb3BlbmZlZWwtY2xpLXVzYWdl44CBb3BlbmZlZWwtZ2V0LWJ1Z3PjgIFvcGVuZmVlbC1nZXQtc3RhZ2Utc3RhdHVz44CBb3BlbmZlZWwtaGVhbHRo44CBb3BlbmZlZWwtbW9kZWwtY2hlY2vjgIFvcGVuZmVlbC1tb2RlbC1jb25maWfjgIFvcGVuZmVlbC1yZWNvdmVy44CBb3BlbmZlZWwtcmVx44CBb3BlbmZlZWwtcm9hZG1hcOOAgW9wZW5mZWVsLXNlYXJjaC1rYuOAgW9wZW5mZWVsLXN5bmMtc3RhdHVz44CBb3BlbmZlZWwtdG9vbC11c2FnZeOAgW9wZW5mZWVsLXVwZGF0ZS1zdGFnZS1zdGF0dXPjgIFvcGVuZmVlbC13aXphcmTjgIFvcGVuZmVlbC13b3Jrc3BhY2XvvIkKLSBgLm9wZW5jb2RlL0FEQVBURVIubWRgIOKAlCDmnKzpgILphY3lmajor7TmmI4KLSBgLm9wZW5jb2RlLy5naXRpZ25vcmVgIOKAlCDlv73nlaXop4TliJkKCj4g5rOo77ya5pys6aG555uu5LiN6YOo572yIGBwYWNrYWdlLmpzb25g77yI55Sx55So5oi36aG555uu6Ieq6KGM566h55CG77yJ44CCCg==',
|
|
7934
8362
|
},
|
|
7935
8363
|
en: {
|
|
7936
|
-
adapter: '
|
|
8364
|
+
adapter: 'IyBPcGVuQ29kZSBQbGF0Zm9ybSBBZGFwdGVyCgpUaGlzIGlzIHRoZSBPcGVuQ29kZSBwbGF0Zm9ybSBhZGFwdGVyLCBjb250YWluaW5nIDkgQWdlbnQgZGVmaW5pdGlvbnMgYW5kIDE4IFNraWxscy4KCkFmdGVyIGRlcGxveW1lbnQsIHRoZSBmb2xsb3dpbmcgZmlsZXMgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGhlIHRhcmdldCBwcm9qZWN0OgoKLSBgb3BlbmNvZGUuanNvbmNgIOKAlCBPcGVuQ29kZSBwbGF0Zm9ybSBjb25maWd1cmF0aW9uIChBZ2VudCBtb2RlbHMsIFNraWxscyBsaXN0LCBldGMuKQotIGAub3BlbmNvZGUvYWdlbnRzL2Ag4oCUIDkgQWdlbnQgZGVmaW5pdGlvbnMgKGZlZWwsIG9wZW5mZWVsLXBsYW5uZXIsIG9wZW5mZWVsLXNjaGVtZXIsIG9wZW5mZWVsLWV4ZWN1dG9yLCBvcGVuZmVlbC1yZXZpZXdlciwgb3BlbmZlZWwtZmVlbC10ZXN0ZXIsIG9wZW5mZWVsLXZpc2lvbiwgb3BlbmZlZWwtYXJjaGl2ZXIsIG9wZW5mZWVsLXV0aWxpdHkpCi0gYC5vcGVuY29kZS9za2lsbHMvYCDigJQgMTggU2tpbGwgZGVmaW5pdGlvbnMgKG9wZW5mZWVsLWFnZW50LW1vZGVsLWNoZWNrLCBvcGVuZmVlbC1idWctYWNjZXB0YW5jZSwgb3BlbmZlZWwtY2hlY2sta2IsIG9wZW5mZWVsLWNsaS11c2FnZSwgb3BlbmZlZWwtZ2V0LWJ1Z3MsIG9wZW5mZWVsLWdldC1zdGFnZS1zdGF0dXMsIG9wZW5mZWVsLWhlYWx0aCwgb3BlbmZlZWwtbW9kZWwtY2hlY2ssIG9wZW5mZWVsLW1vZGVsLWNvbmZpZywgb3BlbmZlZWwtcmVjb3Zlciwgb3BlbmZlZWwtcmVxLCBvcGVuZmVlbC1yb2FkbWFwLCBvcGVuZmVlbC1zZWFyY2gta2IsIG9wZW5mZWVsLXN5bmMtc3RhdHVzLCBvcGVuZmVlbC10b29sLXVzYWdlLCBvcGVuZmVlbC11cGRhdGUtc3RhZ2Utc3RhdHVzLCBvcGVuZmVlbC13aXphcmQsIG9wZW5mZWVsLXdvcmtzcGFjZSkKLSBgLm9wZW5jb2RlL0FEQVBURVIubWRgIOKAlCBUaGlzIGFkYXB0ZXIgZG9jdW1lbnRhdGlvbgotIGAub3BlbmNvZGUvLmdpdGlnbm9yZWAg4oCUIElnbm9yZSBydWxlcwoKPiBOb3RlOiBUaGlzIHByb2plY3QgZG9lcyBub3QgZGVwbG95IGBwYWNrYWdlLmpzb25gIChtYW5hZ2VkIGJ5IHRoZSB1c2VyJ3MgcHJvamVjdCBpdHNlbGYpLgo=',
|
|
7937
8365
|
}
|
|
7938
8366
|
};
|
|
7939
8367
|
// AUTO-GENERATED-END: OPENCODE_CONFIG_TEMPLATES
|
|
@@ -8125,6 +8553,47 @@ When a stage enters \`plan_passed\` and the project's \`auto_advance\` is set to
|
|
|
8125
8553
|
3. **User declines**: The main session keeps \`auto_advance=disabled\` and requires user confirmation before each stage advance (manual execution mode).
|
|
8126
8554
|
4. **No silent advancement**: When \`auto_advance=disabled\`, the main session must not advance the pipeline without asking the user.
|
|
8127
8555
|
|
|
8556
|
+
#### Workflow Mode (workflow_mode)
|
|
8557
|
+
|
|
8558
|
+
Before dispatching, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`; when the field is absent, fall back per the cascade). Two modes:
|
|
8559
|
+
|
|
8560
|
+
- **full (complete flow)**: planner → plan_review (reviewer) → schemer → executor → reviewer → tester → archiver.
|
|
8561
|
+
- **fast (Workflow Fast Line)**: planner (lightweight) → plan_review (**single mandatory plan review**) → executor → reviewer (single round) → archiver (lightweight); **does not dispatch openfeel-schemer / openfeel-feel-tester**.
|
|
8562
|
+
|
|
8563
|
+
Fast-mode discipline:
|
|
8564
|
+
|
|
8565
|
+
1. **The quality floor cannot be skipped**: under fast the reviewer **runs twice** — ① \`plan_review\` plan review (**mandatory single round**, on par with code review; pass → \`plan_passed\`, issues returned → \`plan_pending\`); ② code review after exec (single round); the \`review_failed\` loop allows re-review or returning to exec for fixes; failures are recorded as usual (REV entries unchanged).
|
|
8566
|
+
2. **Lightweight**: planner / archiver produce lightweight output (**must not** omit the task table / dependencies / acceptance points, or the state record / knowledge-staging decision).
|
|
8567
|
+
3. **Phase semantics**: under fast, reachable phases are the fast-line chain (\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`); the **legal phase enumeration remains at 15** (6 phases are unreachable under fast: \`scheme_*\` / \`test_*\`).
|
|
8568
|
+
4. **Full skeletons unchanged**: fast trims no on-disk structure; it only reduces agent relay steps.
|
|
8569
|
+
5. **Terminology disambiguation**: the flow mode is called the **Workflow Fast Line** (\`workflow_mode=fast\`); the review-depth downgrade is called **Fast Track (FAST-PASS)** — they are different mechanisms and must not be cross-referenced or conflated.
|
|
8570
|
+
|
|
8571
|
+
#### Requirement Lifecycle
|
|
8572
|
+
|
|
8573
|
+
The requirement layer is the second layer of the four-layer model "version → requirement REQ-NNN → plan stage → op": **a requirement is the scheduling layer**, answering "what to do and when"; **implementation still goes through the full pipeline** — a requirement is not a plan; after taking a requirement, delegate to openfeel-planner for plan.md per the "Threshold for Small Changes vs. Large-Scale Planning" as usual.
|
|
8574
|
+
|
|
8575
|
+
A requirement has 7 statuses: \`draft\` → \`scheduled\` → \`in_progress\` → \`done\`, plus three side states \`blocked\` / \`cancelled\` / \`rejected\`. Requirement progress is aggregated from the linked stages' phases (single projection direction: stage phase → requirement status; the requirement is closed as done automatically once all linked stages are done — precondition: only \`scheduled\` / \`in_progress\`; \`draft\` / \`blocked\` / terminal states do not trigger).
|
|
8576
|
+
|
|
8577
|
+
Requirement lifecycle actions (command group \`openfeel req\`, 10 subcommands):
|
|
8578
|
+
|
|
8579
|
+
| Step | Action | Command |
|
|
8580
|
+
|------|--------|---------|
|
|
8581
|
+
| Take | Browse requirement views and pick the next takeable requirement | \`openfeel req board\` / \`openfeel req next\` / \`openfeel req list\` |
|
|
8582
|
+
| Claim | Claim the requirement (rejected if already claimed by another — guards concurrent overwrite; no TTL) | \`openfeel req claim <REQ-NNN>\` |
|
|
8583
|
+
| Link | Link the requirement to the stages implementing it | \`openfeel req link --stage <stageId> --requirement <REQ-NNN>\` |
|
|
8584
|
+
| Advance | Stage advancement drives aggregation; advance explicitly along legal targets | \`openfeel req advance <REQ-NNN> --to <status>\` |
|
|
8585
|
+
| Complete | Auto-done once all linked stages are done; overview and release | \`openfeel req board\` / \`openfeel req release <REQ-NNN>\` |
|
|
8586
|
+
|
|
8587
|
+
> Orthogonality note: requirement flow is orthogonal to the workflow mode (\`full\` / \`fast\`) — the requirement discipline is identical in both modes.
|
|
8588
|
+
|
|
8589
|
+
#### Archiving and History Reading
|
|
8590
|
+
|
|
8591
|
+
Once a version is finalized (all its stages done), prompt the user that version archiving is available (\`openfeel flow archive <version>\` — after the criteria gate passes, the archive file is written first and the active entries removed afterwards): the archiving action is executed by the CLI; dispatch only prompts, never performs it.
|
|
8592
|
+
|
|
8593
|
+
- Never read archive files proactively: regular dispatch must not read \`.openfeel/flow-archive/**\` (to prevent context pollution); the active set via \`openfeel flow status\` / \`openfeel flow overview\` is the full working view.
|
|
8594
|
+
- Query history on demand: when history is genuinely needed, use \`openfeel flow archive show <version>\` (single version, read-only) or \`openfeel flow archive list\` (enumerate versions); do not read the files directly.
|
|
8595
|
+
- Distinct from top-level \`openfeel archive\`: the top-level command is stage-summary archiving; \`flow archive\` is flow.json version-shard archiving — different responsibilities.
|
|
8596
|
+
|
|
8128
8597
|
## Threshold for Small Changes vs. Large-Scale Planning
|
|
8129
8598
|
|
|
8130
8599
|
Choose the appropriate process path based on the change scale:
|
|
@@ -8192,7 +8661,7 @@ A shared log entry (\`.openfeel/log/yyyy-mm-dd-feel-NNN.md\`) must be created wh
|
|
|
8192
8661
|
|
|
8193
8662
|
### Skeleton File Note
|
|
8194
8663
|
|
|
8195
|
-
During critical operations (advancing to exec_running / review_pending / test_pending / archiving), the pipeline automatically creates skeleton files with date prefixes in the private log directory. The main session does not need to manually create log files; simply fill in the content when you see a skeleton file.
|
|
8664
|
+
During critical operations (advancing to exec_running / review_pending / test_pending / archiving), the pipeline automatically creates skeleton files with date prefixes in the private log directory (under the fast Workflow Fast Line, \`test_pending\` remains a legal phase but is unreachable (no inbound edge), so its skeleton is no longer produced; all other skeleton rules are unchanged). The main session does not need to manually create log files; simply fill in the content when you see a skeleton file.
|
|
8196
8665
|
|
|
8197
8666
|
### Log Entry Format
|
|
8198
8667
|
|
|
@@ -8450,6 +8919,15 @@ After archiving is complete, the stage's pipeline phase must be set to one of th
|
|
|
8450
8919
|
|
|
8451
8920
|
> ⚠️ Note: After archiving is complete, the stage status must be set to \`"done"\`, **do not** use non-standard values like \`"completed"\`. \`"completed"\` does not exist in \`VALID_TRANSITIONS\`.
|
|
8452
8921
|
|
|
8922
|
+
> **Under the fast Workflow Fast Line**: the 15-phase enumeration above is **unchanged** (reachable ≠ legal); reachable phases are the fast-line chain (\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`).
|
|
8923
|
+
|
|
8924
|
+
## Workflow Mode Awareness (fast lightweight archiving)
|
|
8925
|
+
|
|
8926
|
+
Before archiving, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
8927
|
+
|
|
8928
|
+
- **full**: full archiving checklist (unchanged).
|
|
8929
|
+
- **fast (Workflow Fast Line)**: **lightweight archiving** — the state record and the knowledge-staging decision (including the dedup lookup) **must not be omitted**; checklist process narrative may be merged and condensed. (Lightweight scope: keep the state record / knowledge-staging decision / kb index quick overview / manual update decision / shared log summary; summary process narrative may be merged into bullet points.)
|
|
8930
|
+
|
|
8453
8931
|
## Model Selection
|
|
8454
8932
|
|
|
8455
8933
|
openfeel-archiver is decided by the **Claude-side model** (default \`model: inherit\`); archiving and knowledge extraction require understanding of context, and the framework does not hard-code vendor model IDs in templates.
|
|
@@ -8461,7 +8939,7 @@ name: openfeel-executor
|
|
|
8461
8939
|
description: "Executor: implements code strictly per the op scheme and self-tests (Edit/Write/TodoWrite); does not expand scope."
|
|
8462
8940
|
tools: Bash, Read, Glob, Grep, Edit, Write, TodoWrite
|
|
8463
8941
|
effort: medium
|
|
8464
|
-
color:
|
|
8942
|
+
color: green
|
|
8465
8943
|
model: inherit
|
|
8466
8944
|
---
|
|
8467
8945
|
|
|
@@ -8521,9 +8999,10 @@ Confirm that the following 6 required fields are present. If any is missing, ret
|
|
|
8521
8999
|
|
|
8522
9000
|
### Step 2: Phase Legitimacy Check
|
|
8523
9001
|
|
|
8524
|
-
1. Read \`.openfeel/flow.json\`, check if \`pipeline.phase\` is a valid enum value (\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`); refuse to execute if invalid.
|
|
9002
|
+
1. Read \`.openfeel/flow.json\`, check if \`pipeline.phase\` is a valid enum value (\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`); refuse to execute if invalid. (under the fast Workflow Fast Line, reachable phases are the fast-line chain; the legal phase enumeration remains at 15 — reachable ≠ legal)
|
|
8525
9003
|
2. Confirm \`pipeline.current.op\` matches the current op-id; refuse to execute if mismatched.
|
|
8526
9004
|
3. When the current phase is not \`exec_running\`: if the **main session** explicitly instructs execution, it may proceed but must note the phase deviation; otherwise, refuse to execute.
|
|
9005
|
+
4. **Fast-mode phase paths**: \`plan_pending → plan_review → plan_passed → exec_running\` (the plan review is a mandatory single round; the step is entered only after it passes); the \`review_failed → exec_running\` loop (review failure returns to exec for fixes; the \`review_failed → review_pending\` re-review exit is retained).
|
|
8527
9006
|
|
|
8528
9007
|
### Step 3: FlowManager Transition Legitimacy Check
|
|
8529
9008
|
|
|
@@ -8667,7 +9146,7 @@ name: openfeel-feel-tester
|
|
|
8667
9146
|
description: "Tester: performs formal test acceptance of pipeline outputs and files BUG entries (Edit/Write/Skill)."
|
|
8668
9147
|
tools: Bash, Read, Glob, Grep, Edit, Write, Skill
|
|
8669
9148
|
effort: medium
|
|
8670
|
-
color:
|
|
9149
|
+
color: cyan
|
|
8671
9150
|
model: inherit
|
|
8672
9151
|
---
|
|
8673
9152
|
|
|
@@ -8758,6 +9237,7 @@ Write regression verification results into the Bug file's "Acceptance Record" ta
|
|
|
8758
9237
|
- When issues are found, **return to the main session**, which dispatches openfeel-schemer to formulate a revision
|
|
8759
9238
|
- Re-test after fixes until passing
|
|
8760
9239
|
- When tests pass, notify the **main session** to enter the archiving phase
|
|
9240
|
+
- **Workflow Mode Awareness**: under the fast Workflow Fast Line this agent is **not dispatched** (the formal test step is skipped per \`status.md\` "Workflow Mode"; the \`test_*\` phases are unreachable); the role definition is unchanged.
|
|
8761
9241
|
|
|
8762
9242
|
## Model Selection
|
|
8763
9243
|
|
|
@@ -8776,7 +9256,7 @@ name: openfeel-planner
|
|
|
8776
9256
|
description: "Planning officer: transforms user requirements into structured development plans, authoring roadmap/plan.md/deps.yaml; read-only, does not edit source."
|
|
8777
9257
|
tools: Bash, Read, Glob, Grep, Skill
|
|
8778
9258
|
effort: max
|
|
8779
|
-
color:
|
|
9259
|
+
color: blue
|
|
8780
9260
|
model: inherit
|
|
8781
9261
|
---
|
|
8782
9262
|
|
|
@@ -8870,6 +9350,22 @@ This step ensures openfeel-planner absorbs existing project knowledge before mak
|
|
|
8870
9350
|
- Does not directly code or execute tests
|
|
8871
9351
|
- openfeel-planner and openfeel-schemer responsibility boundary: openfeel-planner is responsible for "what" (what) and "when" (when), openfeel-schemer is responsible for "how" (how)
|
|
8872
9352
|
|
|
9353
|
+
## Workflow Mode Awareness (fast)
|
|
9354
|
+
|
|
9355
|
+
Before planning, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
9356
|
+
|
|
9357
|
+
- **full**: the output goes through openfeel-reviewer plan review (\`plan_review\`) before openfeel-schemer (unchanged).
|
|
9358
|
+
- **fast (Workflow Fast Line)**: **this agent's output must pass openfeel-reviewer's plan review (\`plan_review\`, single round; pass → \`plan_passed\`, issues returned → \`plan_pending\`; only then does it enter exec)**; produce a lightweight plan — the task table / dependencies / acceptance points **must not be omitted**; other process narrative may be trimmed. (Lightweight scope: keep goals / dependencies / task table / acceptance points / constraints / KB retrieval / change-point list / risks; background evidence details and revision history may be condensed.)
|
|
9359
|
+
|
|
9360
|
+
## Requirement Awareness
|
|
9361
|
+
|
|
9362
|
+
When a task originates from a requirement (\`REQ-NNN\`):
|
|
9363
|
+
|
|
9364
|
+
- Read the requirement: first read the requirement details (title / status / owner / linked stages) via \`openfeel req show <REQ-NNN>\` as plan input.
|
|
9365
|
+
- Link the plan to the requirement: annotate the header of the produced \`plan.md\` with "Linked requirement: REQ-NNN"; omit the annotation when there is no requirement source.
|
|
9366
|
+
- Flow is not this agent's duty: requirement status transitions (claim / link / advance) are executed via the \`openfeel req\` CLI; this agent is read-only (no direct flow.json writes).
|
|
9367
|
+
- Orthogonal to "Workflow Mode Awareness": requirement awareness is identical under \`full\` / \`fast\`.
|
|
9368
|
+
|
|
8873
9369
|
## Model Selection
|
|
8874
9370
|
|
|
8875
9371
|
openfeel-planner is decided by the **Claude-side model** (default \`model: inherit\`); plan formulation requires strong reasoning capability, and the framework does not hard-code vendor model IDs in templates.
|
|
@@ -8884,7 +9380,7 @@ name: openfeel-reviewer
|
|
|
8884
9380
|
description: "Reviewer: cross-reviews plans/schemes/code and files REV entries; reviews only, does not modify."
|
|
8885
9381
|
tools: Bash, Read, Glob, Grep
|
|
8886
9382
|
effort: medium
|
|
8887
|
-
color:
|
|
9383
|
+
color: pink
|
|
8888
9384
|
model: inherit
|
|
8889
9385
|
---
|
|
8890
9386
|
|
|
@@ -8946,6 +9442,15 @@ When **all three** of the following conditions are met, openfeel-reviewer enters
|
|
|
8946
9442
|
|
|
8947
9443
|
If any condition is not met, skip fast track and execute full review process.
|
|
8948
9444
|
|
|
9445
|
+
## Workflow Mode Awareness (fast single round)
|
|
9446
|
+
|
|
9447
|
+
Before reviewing, read the current stage's \`status.md\` "Workflow Mode" field (authoritative query: \`openfeel flow mode [--stage <id>]\`):
|
|
9448
|
+
|
|
9449
|
+
- **full**: plan review + code review (multiple points, unchanged).
|
|
9450
|
+
- **fast (Workflow Fast Line)**: **single round ×2, both mandatory** — ① \`plan_review\` **plan review (mandatory under fast**, on par with code review; pass → \`plan_passed\`, issues returned → \`plan_pending\`); ② code review after exec (the \`review_failed\` loop allows re-review / returning to exec for fixes); the **quality floor is unchanged** (issues are still recorded and blockers still raised; REV entries as usual).
|
|
9451
|
+
|
|
9452
|
+
> **Terminology disambiguation**: the **Workflow Fast Line** (\`workflow_mode=fast\`, the flow mode) and **Fast Track (FAST-PASS)** (the review-depth downgrade mechanism defined in this template) are **different mechanisms** with similar names — do not cross-reference or conflate them.
|
|
9453
|
+
|
|
8949
9454
|
## REV Template Specification
|
|
8950
9455
|
|
|
8951
9456
|
\`\`\`yaml
|
|
@@ -8989,7 +9494,7 @@ openfeel-reviewer is decided by the **Claude-side model** (default \`model: inhe
|
|
|
8989
9494
|
| Requires judgment (default blocking) | Serious coding convention violations / Cross-module consistency issues | \`true\` |
|
|
8990
9495
|
| Non-blocking | Naming suggestions / Comment improvements / Style tweaks / Optimization suggestions | \`false\` |
|
|
8991
9496
|
|
|
8992
|
-
> When fast track is hit, REV defaults to \`blocking=false\` (except for security vulnerabilities).
|
|
9497
|
+
> When fast track is hit, REV defaults to \`blocking=false\` (except for security vulnerabilities). This mechanism is unrelated to the Workflow Fast Line — see "Workflow Mode Awareness".
|
|
8993
9498
|
|
|
8994
9499
|
## blocking and Pipeline Behavior
|
|
8995
9500
|
|
|
@@ -9105,6 +9610,7 @@ When third-party dependencies are involved:
|
|
|
9105
9610
|
|
|
9106
9611
|
- Receives dispatch from the **main session** to start; outputs are reviewed by openfeel-reviewer before being handed to openfeel-executor
|
|
9107
9612
|
- When review fails, re-formulate the scheme based on openfeel-reviewer feedback
|
|
9613
|
+
- **Workflow Mode Awareness**: under the fast Workflow Fast Line this agent is **not dispatched** (the scheme step is skipped per \`status.md\` "Workflow Mode"); the role definition is unchanged.
|
|
9108
9614
|
|
|
9109
9615
|
## Notes
|
|
9110
9616
|
|
|
@@ -9432,6 +9938,47 @@ openfeel-reviewer 审查发现的 REV,**即使是白名单操作(如文档
|
|
|
9432
9938
|
3. **用户拒绝**:主会话保持 \`auto_advance=disabled\`,每次阶段推进前均需向用户确认(手动执行模式)。
|
|
9433
9939
|
4. **禁止静默推进**:\`auto_advance=disabled\` 时禁止主会话不询问用户直接推进流水线。
|
|
9434
9940
|
|
|
9941
|
+
#### 工作流模式(workflow_mode)
|
|
9942
|
+
|
|
9943
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询:\`openfeel flow mode [--stage <id>]\`;字段缺失时按级联口径回落)。两种模式:
|
|
9944
|
+
|
|
9945
|
+
- **full(完整流程)**:planner → plan_review(reviewer)→ schemer → executor → reviewer → tester → archiver。
|
|
9946
|
+
- **fast(工作流快线)**:planner(轻量)→ plan_review(**计划审查单轮,必经**)→ executor → reviewer(单轮)→ archiver(轻量);**不派发 schemer / tester**。
|
|
9947
|
+
|
|
9948
|
+
fast 调度纪律:
|
|
9949
|
+
|
|
9950
|
+
1. **质量底线不可跳**:reviewer 在 fast 下**必跑两处**——① \`plan_review\` 计划审查(**必经单轮**,与代码审查同级;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`);② exec 后代码审查(单轮);\`review_failed\` 回环可重审或回执行修复;失败留痕照常(REV 条目照常)。
|
|
9951
|
+
2. **轻量化**:planner / archiver 轻量产出(**不得**省略任务表 / 依赖 / 验收要点与状态记录 / 知识暂存判定)。
|
|
9952
|
+
3. **相位口径**:fast 下可达相位为快线链(\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`);**合法相位枚举 15 项不变**(fast 下 6 项不可达:\`scheme_*\` / \`test_*\`)。
|
|
9953
|
+
4. **骨架全量不变**:fast 不裁剪任何落盘结构,仅减少 Agent 接力环节。
|
|
9954
|
+
5. **术语消歧**:流程模式称「**工作流快线**」(\`workflow_mode=fast\`);审查深度降级称「**快速通道 / fast track(FAST-PASS)**」——二者为不同机制,不得互相引用 / 混用。
|
|
9955
|
+
|
|
9956
|
+
#### 需求流转(requirement lifecycle)
|
|
9957
|
+
|
|
9958
|
+
需求层位于「版本 → 需求 REQ-NNN → 计划 stage → 方案 op」四层模型的第二层:**需求 = 排期与调度层**,回答「做什么、何时做」;**实现仍走完整流水线**——需求不等于计划,接取需求后按「小改 vs 大规模规划的阈值」照常委托 openfeel-planner 产出 plan.md。
|
|
9959
|
+
|
|
9960
|
+
需求共 7 个状态:\`draft\` → \`scheduled\` → \`in_progress\` → \`done\`,另有 \`blocked\` / \`cancelled\` / \`rejected\` 三个旁路状态。需求进度由关联阶段的 phase 聚合(投影方向单一:阶段 phase → 需求状态;全部关联阶段 done 时需求自动收口 done——前置集限定:仅 \`scheduled\` / \`in_progress\`;\`draft\` / \`blocked\` / 终态不触发)。
|
|
9961
|
+
|
|
9962
|
+
需求生命周期动作(命令组 \`openfeel req\`,共 10 个子命令):
|
|
9963
|
+
|
|
9964
|
+
| 步骤 | 动作 | 命令 |
|
|
9965
|
+
|------|------|------|
|
|
9966
|
+
| 接取 | 浏览需求视图,挑选下一个可接取需求 | \`openfeel req board\` / \`openfeel req next\` / \`openfeel req list\` |
|
|
9967
|
+
| 认领 | 占用需求(已被他人认领则拒绝——防并发覆盖,无 TTL) | \`openfeel req claim <REQ-NNN>\` |
|
|
9968
|
+
| 关联 | 把需求关联到实现它的阶段 | \`openfeel req link --stage <stageId> --requirement <REQ-NNN>\` |
|
|
9969
|
+
| 流转 | 阶段推进驱动聚合;显式流转按合法目标推进 | \`openfeel req advance <REQ-NNN> --to <status>\` |
|
|
9970
|
+
| 完成 | 全部关联阶段 done 后需求自动 done;总览与释放 | \`openfeel req board\` / \`openfeel req release <REQ-NNN>\` |
|
|
9971
|
+
|
|
9972
|
+
> 正交注记:需求流转与工作流模式(\`full\` / \`fast\`)正交——两种模式下需求纪律一致。
|
|
9973
|
+
|
|
9974
|
+
#### 归档与历史读取
|
|
9975
|
+
|
|
9976
|
+
版本收官(该版本全部阶段 done)后,提示用户可执行版本归档(\`openfeel flow archive <version>\`——判据门校验后先写归档文件、再移除活跃条目):归档动作由 CLI 执行,调度侧只提示不代劳。
|
|
9977
|
+
|
|
9978
|
+
- 不主动读归档文件:常规调度不得读取 \`.openfeel/flow-archive/**\`(防上下文污染);活跃集经 \`openfeel flow status\` / \`openfeel flow overview\` 即为全量工作视图。
|
|
9979
|
+
- 按需查询历史:确需历史版本时用 \`openfeel flow archive show <version>\`(单版本只读)或 \`openfeel flow archive list\`(列举版本),不直接读文件。
|
|
9980
|
+
- 与顶层 \`openfeel archive\` 区分:顶层命令是阶段摘要归档;\`flow archive\` 是 flow.json 版本分片归档,二者职责不同。
|
|
9981
|
+
|
|
9435
9982
|
## 小改 vs 大规模规划的阈值
|
|
9436
9983
|
|
|
9437
9984
|
根据变更规模选择适当的流程路径:
|
|
@@ -9499,7 +10046,7 @@ openfeel-reviewer 审查发现的 REV,**即使是白名单操作(如文档
|
|
|
9499
10046
|
|
|
9500
10047
|
### 骨架文件提示
|
|
9501
10048
|
|
|
9502
|
-
关键操作(推进到 exec_running / review_pending / test_pending / archiving
|
|
10049
|
+
关键操作(推进到 exec_running / review_pending / test_pending / archiving)时,流水线会自动在私域日志目录创建带日期前缀的骨架文件(fast 工作流快线下 \`test_pending\` 仍为合法相位、仅不可达(无入边),该相位骨架不再产生;其余骨架规则全量不变)。主会话无需手动创建日志文件,看到骨架文件时填充内容即可。
|
|
9503
10050
|
|
|
9504
10051
|
### 日志条目格式
|
|
9505
10052
|
|
|
@@ -9756,6 +10303,15 @@ openfeel-feel-tester 通过 → 主会话触发归档 → openfeel-archiver 整
|
|
|
9756
10303
|
|
|
9757
10304
|
> ⚠️ 注意:归档完成后的阶段状态必须设为 \`"done"\`,**不得**使用 \`"completed"\` 等非标准值。\`VALID_TRANSITIONS\` 中不存在 \`"completed"\`。
|
|
9758
10305
|
|
|
10306
|
+
> **fast 工作流快线下**:上表 15 项相位枚举**不变**(可达 ≠ 合法);可达相位为快线链(\`plan_pending → plan_review → plan_passed → exec_running → review_pending → review_failed → review_passed → archiving → done\`)。
|
|
10307
|
+
|
|
10308
|
+
## 工作流模式感知(fast 轻量归档)
|
|
10309
|
+
|
|
10310
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
10311
|
+
|
|
10312
|
+
- **full**:归档全量清单(现状不变)。
|
|
10313
|
+
- **fast(工作流快线)**:**轻量归档**——状态记录与知识暂存判定(含去重检索)**不得省略**;清单过程性叙述可合并精简。(轻量口径:保留 状态记录 / 知识暂存判定 / 知识库快速概览 / 模块手册判定 / 公共日志摘要;总结过程性叙述可合并为要点。)
|
|
10314
|
+
|
|
9759
10315
|
## 模型选择
|
|
9760
10316
|
|
|
9761
10317
|
openfeel-archiver 由 **Claude 侧模型**决定(默认 \`model: inherit\`);归档与知识提取需要理解上下文,框架不在模板内硬编码厂商模型 ID。
|
|
@@ -9767,7 +10323,7 @@ name: openfeel-executor
|
|
|
9767
10323
|
description: 执行官:严格按 op 操作方案编码实现并自测(Edit/Write/TodoWrite);不擅自扩大范围。
|
|
9768
10324
|
tools: Bash, Read, Glob, Grep, Edit, Write, TodoWrite
|
|
9769
10325
|
effort: medium
|
|
9770
|
-
color:
|
|
10326
|
+
color: green
|
|
9771
10327
|
model: inherit
|
|
9772
10328
|
---
|
|
9773
10329
|
|
|
@@ -9827,9 +10383,10 @@ model: inherit
|
|
|
9827
10383
|
|
|
9828
10384
|
### 步骤 2:Phase 合法性校验
|
|
9829
10385
|
|
|
9830
|
-
1. 读取 \`.openfeel/flow.json\`,检查 \`pipeline.phase\` 是否为合法枚举值(\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done
|
|
10386
|
+
1. 读取 \`.openfeel/flow.json\`,检查 \`pipeline.phase\` 是否为合法枚举值(\`plan_pending | plan_review | plan_passed | scheme_pending | scheme_review | scheme_passed | exec_running | review_pending | review_failed | review_passed | test_pending | test_failed | test_passed | archiving | done\`),非法则拒绝执行。(fast 工作流快线下可达相位为快线链;合法相位枚举 15 项不变——可达 ≠ 合法)
|
|
9831
10387
|
2. 确认 \`pipeline.current.op\` 与当前 op-id 匹配,不匹配则拒绝执行。
|
|
9832
10388
|
3. 当前 phase 不是 \`exec_running\` 时:若**主会话**已明确指示执行可继续但需注明 phase 偏差;否则拒绝执行。
|
|
10389
|
+
4. **fast 工作流快线下相位路径**:\`plan_pending → plan_review → plan_passed → exec_running\`(计划审查为必经单轮:通过后进入本环节);\`review_failed → exec_running\` 回环(审查不通过时回执行修复;\`review_failed → review_pending\` 重审出口保留)。
|
|
9833
10390
|
|
|
9834
10391
|
### 步骤 3:FlowManager 流转合法性校验
|
|
9835
10392
|
|
|
@@ -9973,7 +10530,7 @@ name: openfeel-feel-tester
|
|
|
9973
10530
|
description: 测试官:对流水线产出做正式测试验收,记录 BUG 条目(Edit/Write/Skill)。
|
|
9974
10531
|
tools: Bash, Read, Glob, Grep, Edit, Write, Skill
|
|
9975
10532
|
effort: medium
|
|
9976
|
-
color:
|
|
10533
|
+
color: cyan
|
|
9977
10534
|
model: inherit
|
|
9978
10535
|
---
|
|
9979
10536
|
|
|
@@ -10064,6 +10621,7 @@ high 优先级 Bug 修复后,推荐执行全量测试套件。
|
|
|
10064
10621
|
- 发现问题后**返回主会话**,由主会话调度 openfeel-schemer 制定修复方案
|
|
10065
10622
|
- 修复后重新测试直到通过
|
|
10066
10623
|
- 测试通过后通知**主会话**进入归档阶段
|
|
10624
|
+
- **工作流模式感知**:fast 工作流快线下本 Agent **不被调度**(依据 \`status.md「工作流模式」\` 跳过正式测试环节,\`test_*\` 相位不可达);职责定义不变。
|
|
10067
10625
|
|
|
10068
10626
|
## 模型选择
|
|
10069
10627
|
|
|
@@ -10082,7 +10640,7 @@ name: openfeel-planner
|
|
|
10082
10640
|
description: 计划官:将用户需求转化为结构化开发计划,制定 roadmap/plan.md/deps.yaml;只读,不写源码。
|
|
10083
10641
|
tools: Bash, Read, Glob, Grep, Skill
|
|
10084
10642
|
effort: max
|
|
10085
|
-
color:
|
|
10643
|
+
color: blue
|
|
10086
10644
|
model: inherit
|
|
10087
10645
|
---
|
|
10088
10646
|
|
|
@@ -10176,6 +10734,22 @@ openfeel-planner 作为独立 subagent,由**主会话(Feel 角色)**经 **
|
|
|
10176
10734
|
- 不直接编码,不执行测试
|
|
10177
10735
|
- openfeel-planner 与 openfeel-schemer 的职责边界:openfeel-planner 负责"做什么"(what)和"何时做"(when),openfeel-schemer 负责"怎么做"(how)
|
|
10178
10736
|
|
|
10737
|
+
## 工作流模式感知(fast 快线)
|
|
10738
|
+
|
|
10739
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
10740
|
+
|
|
10741
|
+
- **full**:产出经 openfeel-reviewer 计划审查(\`plan_review\`)后进入 openfeel-schemer(现状不变)。
|
|
10742
|
+
- **fast(工作流快线)**:**本 Agent 产出后必经 openfeel-reviewer 的计划审查(\`plan_review\` 单轮;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`;此后进入 exec)**;产出为轻量计划——任务表 / 依赖声明 / 验收要点**不得省略**,其余过程性描述可精简。(轻量口径:保留 目标 / 依赖 / 任务表 / 验收要点 / 约束 / KB 检索 / 变更点清单 / 风险;背景实测证据明细与修订记录过程可收敛为结论。)
|
|
10743
|
+
|
|
10744
|
+
## 需求感知
|
|
10745
|
+
|
|
10746
|
+
当任务源自需求(\`REQ-NNN\`)时:
|
|
10747
|
+
|
|
10748
|
+
- 读取需求:先以 \`openfeel req show <REQ-NNN>\` 读取需求详情(标题 / 状态 / 认领人 / 关联阶段),作为计划输入。
|
|
10749
|
+
- 计划关联需求:产出的 \`plan.md\` 头部标注「关联需求:REQ-NNN」;无需求来源时省略该标注。
|
|
10750
|
+
- 流转不在本 Agent 职责内:需求状态流转(认领 / 关联 / 推进)经 \`openfeel req\` CLI 执行;本 Agent 只读不写(不直写 flow.json)。
|
|
10751
|
+
- 与「工作流模式感知」正交:\`full\` / \`fast\` 下需求感知口径一致。
|
|
10752
|
+
|
|
10179
10753
|
## 模型选择
|
|
10180
10754
|
|
|
10181
10755
|
openfeel-planner 由 **Claude 侧模型**决定(默认 \`model: inherit\`);计划制定需要较强推理能力,框架不在模板内硬编码厂商模型 ID。
|
|
@@ -10190,7 +10764,7 @@ name: openfeel-reviewer
|
|
|
10190
10764
|
description: 审查官:交叉审查计划/方案/代码并提交 REV 条目;只审不改。
|
|
10191
10765
|
tools: Bash, Read, Glob, Grep
|
|
10192
10766
|
effort: medium
|
|
10193
|
-
color:
|
|
10767
|
+
color: pink
|
|
10194
10768
|
model: inherit
|
|
10195
10769
|
---
|
|
10196
10770
|
|
|
@@ -10252,6 +10826,15 @@ model: inherit
|
|
|
10252
10826
|
|
|
10253
10827
|
若任一条件不满足,跳过快速通道,执行完整审查流程。
|
|
10254
10828
|
|
|
10829
|
+
## 工作流模式感知(fast 单轮)
|
|
10830
|
+
|
|
10831
|
+
调度前读取当前阶段 \`status.md「工作流模式」\`(权威查询 \`openfeel flow mode [--stage <id>]\`):
|
|
10832
|
+
|
|
10833
|
+
- **full**:计划审查 + 代码审查(多轮位点,现状不变)。
|
|
10834
|
+
- **fast(工作流快线)**:**单轮 ×2,两处均必跑**——① \`plan_review\` **计划审查(fast 下必经**,与代码审查同级;通过 → \`plan_passed\`,问题退回 → \`plan_pending\`);② exec 后代码审查(\`review_failed\` 回环可重审 / 回执行修复);**质量底线不变**(问题照记、阻断照留,REV 条目照常)。
|
|
10835
|
+
|
|
10836
|
+
> **术语消歧**:本节的「**工作流快线**」(\`workflow_mode=fast\`,流程模式)与本模板「**快速通道 / fast track(FAST-PASS)**」(审查深度降级机制)为**不同机制**、同名异义——不得互相引用 / 混用。
|
|
10837
|
+
|
|
10255
10838
|
## REV 模板规范
|
|
10256
10839
|
|
|
10257
10840
|
\`\`\`yaml
|
|
@@ -10295,7 +10878,7 @@ openfeel-reviewer 由 **Claude 侧模型**决定(默认 \`model: inherit\`)
|
|
|
10295
10878
|
| 需判定(默认阻塞) | 编码规范严重违反 / 跨模块一致性问题 | \`true\` |
|
|
10296
10879
|
| 非阻塞 | 命名建议 / 注释完善 / 风格微调 / 优化建议 | \`false\` |
|
|
10297
10880
|
|
|
10298
|
-
> 快速通道命中时,REV 默认 \`blocking=false
|
|
10881
|
+
> 快速通道命中时,REV 默认 \`blocking=false\`(安全漏洞除外)。该机制与「工作流快线」无关——见「工作流模式感知」节。
|
|
10299
10882
|
|
|
10300
10883
|
## blocking 与流水线行为
|
|
10301
10884
|
|
|
@@ -10411,6 +10994,7 @@ model: inherit
|
|
|
10411
10994
|
|
|
10412
10995
|
- 接收**主会话**调度启动,产出方案经 openfeel-reviewer 审查后交 openfeel-executor 执行
|
|
10413
10996
|
- 审查不通过时,根据 openfeel-reviewer 反馈重新制定方案
|
|
10997
|
+
- **工作流模式感知**:fast 工作流快线下本 Agent **不被调度**(依据 \`status.md「工作流模式」\` 跳过方案环节);职责定义不变。
|
|
10414
10998
|
|
|
10415
10999
|
## 注意事项
|
|
10416
11000
|
|
|
@@ -10573,7 +11157,7 @@ Not all tasks must go through the full pipeline. Non-coding tasks and coding tas
|
|
|
10573
11157
|
| Task Type | Handling Path | Notes |
|
|
10574
11158
|
|-----------|---------------|-------|
|
|
10575
11159
|
| Research/exploration (reading code, consulting references, locating issues) | The main session (Feel role) → research (\`general\` / \`Explore\` subagent) | Read-only exploration, no source code changes; flow.json need not spin up for this |
|
|
10576
|
-
| Coding implementation (adding/modifying source code) | Full pipeline (openfeel-planner → openfeel-schemer → openfeel-executor → openfeel-reviewer → openfeel-feel-tester) | Involves source changes, must go through the full audit chain |
|
|
11160
|
+
| Coding implementation (adding/modifying source code) | Full pipeline (openfeel-planner → openfeel-schemer → openfeel-executor → openfeel-reviewer → openfeel-feel-tester) (full); in fast mode: planner → plan review (reviewer, single mandatory round) → executor → code review (reviewer) → archiver (see status.md "Workflow Mode" / openfeel flow mode) | Involves source changes, must go through the full audit chain (fast-line audit chain in fast mode) |
|
|
10577
11161
|
| Selection discussion (settling a technical approach / design trade-off) | The main session (Feel role) and the user + the \`AskUserQuestion\` tool | Conversational decision, produces a conclusion, no plan.md |
|
|
10578
11162
|
|
|
10579
11163
|
> Non-coding tasks (research, selection discussion) do not require creating a plan or advancing the pipeline; the pipeline is engaged only when source changes or a formal plan document is produced.
|
|
@@ -10636,7 +11220,7 @@ When encountering technical issues, **the first action MUST be to consult the kn
|
|
|
10636
11220
|
- openfeel-utility Agent performs mechanical file operations, does not participate in design decisions
|
|
10637
11221
|
- openfeel-archiver archives and distills knowledge, does not modify source code; does not write flow.json directly (written via the **main session**)
|
|
10638
11222
|
|
|
10639
|
-
3. **Main session orchestration constraint**: The **main session (Feel role)**, as the overall commander, uniformly orchestrates downstream subagents (openfeel-planner / openfeel-schemer / openfeel-executor / openfeel-reviewer / openfeel-feel-tester / openfeel-utility Agent / openfeel-vision / openfeel-archiver), advancing serially via the **Task** tool according to pipeline phases (plan → scheme → execute → review → test → archive). Each Agent operates only within its own responsibility boundary and must not start other Agents beyond its scope or modify flow.json state on its own.
|
|
11223
|
+
3. **Main session orchestration constraint**: The **main session (Feel role)**, as the overall commander, uniformly orchestrates downstream subagents (openfeel-planner / openfeel-schemer / openfeel-executor / openfeel-reviewer / openfeel-feel-tester / openfeel-utility Agent / openfeel-vision / openfeel-archiver), advancing serially via the **Task** tool according to pipeline phases (plan → scheme → execute → review → test → archive) (full); in fast mode: plan → plan review → execute → code review → archive (see status.md "Workflow Mode" / openfeel flow mode). Each Agent operates only within its own responsibility boundary and must not start other Agents beyond its scope or modify flow.json state on its own.
|
|
10640
11224
|
|
|
10641
11225
|
4. **Lightweight decision boundary**: Conversational selections (the **main session** and the user settle a technical direction or design trade-off via the \`AskUserQuestion\` tool, producing a conclusion but no plan.md) are handled by the **main session** directly, without delegating to openfeel-planner; only when a **formal plan document** (plan.md, including stage division, task table, constraint table) is needed, or the planning scale threshold is reached, should openfeel-planner be delegated. Avoid the extremes of "handle everything personally" or "delegate everything".
|
|
10642
11226
|
|
|
@@ -10692,7 +11276,7 @@ Version progression must be prudent, using the four-level X.Y.Z.W version number
|
|
|
10692
11276
|
| Level 4 (W) | Feature detail | Independently committed feature or submodule |
|
|
10693
11277
|
|
|
10694
11278
|
When Feel starts a new version, it defaults to incrementing the fourth level (W+1), unless the user explicitly specifies otherwise.
|
|
10695
|
-
The OpenFeel framework has released the official v1.0.x (currently v1.
|
|
11279
|
+
The OpenFeel framework has released the official v1.0.x (currently v1.2.0). After deploying the global constraints via openfeel setup, new projects set their own starting version number as needed.
|
|
10696
11280
|
|
|
10697
11281
|
### Module Manuals
|
|
10698
11282
|
|
|
@@ -11085,7 +11669,7 @@ AI Agent 行为约束与编码规范。本文件为永久性约束,适用于
|
|
|
11085
11669
|
| 任务类型 | 处理路径 | 说明 |
|
|
11086
11670
|
|----------|----------|------|
|
|
11087
11671
|
| 调研/探索(读代码、查资料、定位问题) | 主会话(Feel 角色)→ research(\`general\` / \`Explore\` subagent) | 只读探索,不产出源码变更,flow.json 不必为此空转 |
|
|
11088
|
-
| 编码实现(新增/修改源码) | 完整流水线(openfeel-planner → openfeel-schemer → openfeel-executor → openfeel-reviewer → openfeel-feel-tester
|
|
11672
|
+
| 编码实现(新增/修改源码) | 完整流水线(openfeel-planner → openfeel-schemer → openfeel-executor → openfeel-reviewer → openfeel-feel-tester)(full);fast 工作流快线(workflow_mode=fast)下为 planner → 计划审查(reviewer,单轮必经)→ executor → 代码审查(reviewer)→ archiver——见 status.md「工作流模式」 / openfeel flow mode | 有源码变更,须走完整审计链(fast 走快线审计链) |
|
|
11089
11673
|
| 选型讨论(敲定技术方案/设计取舍) | 主会话(Feel 角色)与用户 + \`AskUserQuestion\` 工具 | 对话式决策,产出结论,不产出 plan.md |
|
|
11090
11674
|
|
|
11091
11675
|
> 非编码任务(调研、选型讨论)不强制创建计划或推进流水线;仅当产生源码变更或正式计划文档时才接入流水线。
|
|
@@ -11148,7 +11732,7 @@ AI Agent 行为约束与编码规范。本文件为永久性约束,适用于
|
|
|
11148
11732
|
- 事务官 执行文件机械操作,不参与设计决策
|
|
11149
11733
|
- openfeel-archiver 归档和沉淀知识,不修改源码;不直写 flow.json(通过**主会话**写入)
|
|
11150
11734
|
|
|
11151
|
-
3. **主会话调度约束**:**主会话(Feel 角色)**统一调度下游 subagent(openfeel-planner / openfeel-schemer / openfeel-executor / openfeel-reviewer / openfeel-feel-tester / 事务官 / openfeel-vision / openfeel-archiver),通过 **Task**
|
|
11735
|
+
3. **主会话调度约束**:**主会话(Feel 角色)**统一调度下游 subagent(openfeel-planner / openfeel-schemer / openfeel-executor / openfeel-reviewer / openfeel-feel-tester / 事务官 / openfeel-vision / openfeel-archiver),通过 **Task** 工具按流水线阶段(计划→方案→执行→审查→测试→归档)串行推进(full);fast 工作流快线下为 计划 → 计划审查 → 执行 → 代码审查 → 归档(见 status.md「工作流模式」 / openfeel flow mode)。各 Agent 仅在自己的职责边界内操作,不得越界启动其他 Agent 或自行修改 flow.json 状态。
|
|
11152
11736
|
|
|
11153
11737
|
4. **轻量决策边界**:对话式选型(**主会话**与用户通过 \`AskUserQuestion\` 工具敲定技术方向/设计取舍,产出结论不产出 plan.md)由**主会话**直接处理,不委托 openfeel-planner;仅当需要**产出正式计划文档**(plan.md,含阶段划分、任务表、约束表)或达到规划规模阈值时,才委托 openfeel-planner。避免"要么全亲为、要么全委托"的极端。
|
|
11154
11738
|
|
|
@@ -11204,7 +11788,7 @@ Claude Code 的权限与工具可用性由 subagent 的 \`tools\` 白名单与 \
|
|
|
11204
11788
|
| 四级(W) | 功能细节 | 独立提交的功能或子模块 |
|
|
11205
11789
|
|
|
11206
11790
|
Feel 启动新版本时默认使用四级版本递增(W+1),除非用户明确指定。
|
|
11207
|
-
OpenFeel 框架已发布正式版 v1.0.x(当前 v1.
|
|
11791
|
+
OpenFeel 框架已发布正式版 v1.0.x(当前 v1.2.0)。新项目经 openfeel setup 部署全局约束后,按自身需求设定起始版本号。
|
|
11208
11792
|
|
|
11209
11793
|
### 模块手册
|
|
11210
11794
|
|