@ckanner/flywheel 0.31.0 → 0.31.1
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/CHANGELOG.md +48 -5
- package/CONTRIBUTING.md +19 -0
- package/LICENSE +21 -0
- package/README.en.md +4 -171
- package/README.md +152 -269
- package/README.zh-CN.md +116 -0
- package/bin/flywheel-claude-code-pro-worker.js +1 -1
- package/bin/flywheel-codex-pro-worker.js +1 -1
- package/bin/flywheel-dsh-worker.js +1 -1
- package/bin/flywheel.js +1 -1
- package/bin/runtime.js +1 -1
- package/docs/README.md +84 -0
- package/docs/README.zh-CN.md +64 -0
- package/docs/archive/README.md +13 -0
- package/docs/archive/codex-pro-adapter-handoff.md +197 -0
- package/docs/archive/design-v0.24.md +540 -0
- package/docs/design.md +681 -0
- package/docs/en/claude-code-pro.md +25 -16
- package/docs/en/configuration.md +306 -141
- package/docs/en/contributing.md +303 -0
- package/docs/en/flow-console.md +67 -13
- package/docs/en/getting-started.md +232 -126
- package/docs/en/investigation.md +219 -0
- package/docs/en/jev-shadow.md +67 -0
- package/docs/en/model-policy.md +147 -62
- package/docs/en/releasing.md +207 -0
- package/docs/en/session-evaluation.md +4 -2
- package/docs/en/session-recovery.md +49 -6
- package/docs/en/workflow.md +222 -114
- package/docs/evaluation/README.md +12 -0
- package/docs/evaluation/jev-historical-provisional.json +138 -0
- package/docs/evaluation/jev-historical-result-2026-11-10.json +174 -0
- package/docs/plans/2026-11-01-dsh-integration.md +67 -0
- package/docs/plans/2026-11-01-model-profiles-preflight.md +29 -0
- package/docs/plans/2026-11-01-npm-installation.md +19 -0
- package/docs/plans/2026-11-03-codex-pro-default.md +28 -0
- package/docs/plans/2026-11-06-adaptive-workflow.md +365 -0
- package/docs/plans/2026-11-07-session-lifecycle.en.md +424 -0
- package/docs/plans/2026-11-07-session-lifecycle.md +337 -0
- package/docs/plans/2026-11-08-flow-console.md +271 -0
- package/docs/plans/2026-11-10-jev-shadow.md +32 -0
- package/docs/plans/2026-11-10-task-discovery.md +17 -0
- package/docs/plans/2026-11-10-workbench-redesign.md +19 -0
- package/docs/plans/2026-11-12-feedback-driven-workflows.md +739 -0
- package/docs/plans/README.md +22 -0
- package/docs/reviews/2026-08-24-v0.18-review-fixplan.md +265 -0
- package/docs/reviews/2026-09-12-pr4-pr5-review.md +70 -0
- package/docs/reviews/README.md +12 -0
- package/docs/validation/2026-11-01-npm-installation.md +105 -0
- package/docs/validation/2026-11-01-profiles-preflight.md +67 -0
- package/docs/validation/2026-11-01-results.md +114 -0
- package/docs/validation/2026-11-03-codex-pro-default.md +90 -0
- package/docs/validation/2026-11-04-dsh-native-view.md +85 -0
- package/docs/validation/2026-11-04-release-0.28.1.md +33 -0
- package/docs/validation/2026-11-04-release-0.28.2.md +35 -0
- package/docs/validation/2026-11-05-dsh-0.2.2-compatibility.md +26 -0
- package/docs/validation/2026-11-05-registry-smoke-recovery.md +26 -0
- package/docs/validation/2026-11-05-release-0.28.3.md +32 -0
- package/docs/validation/2026-11-05-subscription-model-access.md +60 -0
- package/docs/validation/2026-11-05-view-order.md +14 -0
- package/docs/validation/2026-11-07-adaptive-workflow.md +79 -0
- package/docs/validation/2026-11-07-claude-code-pro.md +144 -0
- package/docs/validation/2026-11-07-session-lifecycle.md +136 -0
- package/docs/validation/2026-11-08-session-p3-p4.md +99 -0
- package/docs/validation/2026-11-09-flow-console.md +81 -0
- package/docs/validation/2026-11-10-jev-shadow.md +50 -0
- package/docs/validation/2026-11-10-task-discovery.md +45 -0
- package/docs/validation/2026-11-10-workbench-redesign.md +54 -0
- package/docs/validation/2026-11-11-release-0.30.2.md +65 -0
- package/docs/validation/2026-11-11-release-0.31.0.md +46 -0
- package/docs/validation/2026-11-12-dsh-0.2.2-rc.2.md +58 -0
- package/docs/validation/2026-11-12-feedback-driven-workflows.md +187 -0
- package/docs/validation/README.md +41 -0
- package/docs/validation/evidence/2026-11-08-session-p3-p4.json +5430 -0
- package/docs/validation/evidence/claude-node-bridges.txt +118 -0
- package/docs/validation/evidence/claude-npm-build.txt +15 -0
- package/docs/validation/evidence/claude-npm-candidate.json +54 -0
- package/docs/validation/evidence/claude-npm-install.txt +21 -0
- package/docs/validation/evidence/claude-npm-tests.txt +145 -0
- package/docs/validation/evidence/claude-plugin-tests.txt +205 -0
- package/docs/validation/evidence/claude-quality-gate.txt +29 -0
- package/docs/validation/evidence/claude-race.txt +7 -0
- package/docs/validation/evidence/codex-pro-070-probes.txt +4 -0
- package/docs/validation/evidence/dsh-bridge.txt +4 -0
- package/docs/validation/evidence/dsh-native-view-bridge-tests.txt +1 -0
- package/docs/validation/evidence/dsh-native-view-build.txt +15 -0
- package/docs/validation/evidence/dsh-native-view-candidate.json +54 -0
- package/docs/validation/evidence/dsh-native-view-inspect.txt +27 -0
- package/docs/validation/evidence/dsh-native-view-install-tests.txt +19 -0
- package/docs/validation/evidence/dsh-native-view-npm-tests.txt +143 -0
- package/docs/validation/evidence/dsh-native-view-plugin-tests.txt +99 -0
- package/docs/validation/evidence/dsh-native-view-quality-gate.txt +29 -0
- package/docs/validation/evidence/dsh-plugin-tests.txt +48 -0
- package/docs/validation/evidence/function-coverage.txt +378 -0
- package/docs/validation/evidence/npm-build.txt +13 -0
- package/docs/validation/evidence/npm-contract-tests.txt +65 -0
- package/docs/validation/evidence/npm-dsh-bridge.txt +18 -0
- package/docs/validation/evidence/npm-dsh-plugin-tests.txt +62 -0
- package/docs/validation/evidence/npm-function-coverage.txt +420 -0
- package/docs/validation/evidence/npm-install-tests.txt +20 -0
- package/docs/validation/evidence/npm-quality-gate.txt +29 -0
- package/docs/validation/evidence/npm-race.txt +7 -0
- package/docs/validation/evidence/pr-dsh-bridge.txt +4 -0
- package/docs/validation/evidence/pr-dsh-plugin-tests.txt +48 -0
- package/docs/validation/evidence/pr-function-coverage.txt +379 -0
- package/docs/validation/evidence/pr-quality-gate.txt +28 -0
- package/docs/validation/evidence/pr-race.txt +6 -0
- package/docs/validation/evidence/profiles-control-smoke.json +1 -0
- package/docs/validation/evidence/profiles-dsh-bridge.txt +18 -0
- package/docs/validation/evidence/profiles-dsh-plugin-tests.txt +59 -0
- package/docs/validation/evidence/profiles-function-coverage.txt +411 -0
- package/docs/validation/evidence/profiles-quality-gate.txt +29 -0
- package/docs/validation/evidence/profiles-race.txt +7 -0
- package/docs/validation/evidence/quality-gate.txt +28 -0
- package/docs/validation/evidence/race.txt +6 -0
- package/docs/validation/evidence/watchdog-startup-after.txt +2 -0
- package/docs/validation/evidence/watchdog-startup-before.txt +6 -0
- package/docs/validation/evidence/watchdog-startup-quality-gate.txt +29 -0
- package/docs/validation/evidence/watchdog-startup-race.txt +7 -0
- package/docs/{claude-code-pro.md → zh-CN/claude-code-pro.md} +23 -17
- package/docs/{configuration.md → zh-CN/configuration.md} +323 -139
- package/docs/zh-CN/contributing.md +240 -0
- package/docs/{flow-console.md → zh-CN/flow-console.md} +55 -12
- package/docs/zh-CN/getting-started.md +352 -0
- package/docs/zh-CN/investigation.md +182 -0
- package/docs/zh-CN/jev-shadow.md +79 -0
- package/docs/zh-CN/model-policy.md +123 -0
- package/docs/zh-CN/releasing.md +120 -0
- package/docs/{session-evaluation.md → zh-CN/session-evaluation.md} +4 -2
- package/docs/{session-recovery.md → zh-CN/session-recovery.md} +46 -12
- package/docs/zh-CN/workflow.md +270 -0
- package/npm/install.js +1 -1
- package/package.json +12 -25
- package/docs/getting-started.md +0 -418
- package/docs/model-policy.md +0 -65
- package/docs/workflow.md +0 -314
package/docs/en/workflow.md
CHANGED
|
@@ -1,54 +1,103 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Workflow: from a goal to a pull request
|
|
2
2
|
|
|
3
|
-
[
|
|
3
|
+
[Documentation](../README.md) · English · [简体中文](../zh-CN/workflow.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Flywheel turns a reviewed task contract into verified local Git changes. The host
|
|
6
|
+
assistant prepares the task; the Go engine owns scheduling, verification, recovery,
|
|
7
|
+
and delivery. The workflow console can also create and merge a PR when those remote
|
|
8
|
+
operations are explicitly authorized.
|
|
9
|
+
|
|
10
|
+
Use this guide for an existing repository. For installation and a disposable first
|
|
11
|
+
run, start with [Getting started](getting-started.md).
|
|
6
12
|
|
|
7
13
|
## 0. Normal entry: describe a goal and launch
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
In DSH Chat, describe the requirement with the task skill:
|
|
10
16
|
|
|
11
17
|
```text
|
|
12
|
-
/flywheel-task Fix the identified
|
|
18
|
+
/flywheel-task Fix the identified issue, add regression coverage, and complete verification. mode=auto
|
|
13
19
|
```
|
|
14
20
|
|
|
15
|
-
The
|
|
21
|
+
The host researches the code, selects or reuses the task execution directory,
|
|
22
|
+
prepares the Spec, packets, executable acceptance checks, and workflow evidence,
|
|
23
|
+
then calls `flywheel_launch` within the authorized scope. The plugin associates the
|
|
24
|
+
actual task with the conversation. Loading a skill or receiving a proposal alone
|
|
25
|
+
does not mean the engine started; check the launch result and task status.
|
|
16
26
|
|
|
17
|
-
|
|
|
27
|
+
| Mode | Selection and execution |
|
|
18
28
|
|---|---|
|
|
19
|
-
| Auto, the
|
|
20
|
-
| Quick | One milestone and packet
|
|
21
|
-
| Full | Plan, packet execution
|
|
22
|
-
|
|
23
|
-
Quick
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
| Auto, the default | Go selects Quick when recorded qualification facts are sufficient; otherwise Full |
|
|
30
|
+
| Quick, also labelled ultraWork in the console | One milestone and packet; Execute, required checks, independent final Review, and Git delivery |
|
|
31
|
+
| Full | Plan, packet execution and review, integrated L2/L3 checks, and Judge |
|
|
32
|
+
|
|
33
|
+
Quick needs clear scope, a known implementation approach, complete requirement
|
|
34
|
+
coverage, and a final review that can assess the whole task. Missing L2/L3 checks
|
|
35
|
+
need explicit reasons. Authentication, permissions, payments, migrations,
|
|
36
|
+
concurrency, or unresolved design risks select Full. An explicit Quick request
|
|
37
|
+
still has to qualify; file count alone is not a risk assessment.
|
|
38
|
+
|
|
39
|
+
A first-success Quick run has two stage-agent calls: Execute and final Review.
|
|
40
|
+
Preparation, internal tool turns, retries, and upgrades are additional work. Required
|
|
41
|
+
tests, coverage, applicable L2/L3, defect sampling, budgets, and cleanup remain in
|
|
42
|
+
force. Plan/Judge are marked not applicable with reasons. A newly discovered risk or
|
|
43
|
+
verification gap saves a one-way Quick → Full upgrade, preserving work and budgets.
|
|
44
|
+
|
|
45
|
+
Use `/flywheel-new <goal>` for preparation without launching, and
|
|
46
|
+
`/flywheel-run <absolute-task-directory>` for an existing task. Kimi uses
|
|
47
|
+
`/skill:flywheel-task` and the corresponding `/skill:` names.
|
|
48
|
+
|
|
49
|
+
## 0.1 Investigation and direct controls
|
|
50
|
+
|
|
51
|
+
Task can accept “diagnose this and explain the cause” directly, prepare its contract
|
|
52
|
+
and enter the Go-owned investigation. Calling New first is not required. Report-only
|
|
53
|
+
goals stop at the report; authorized repair continues within the original scope
|
|
54
|
+
when the evidence supports a conclusion. See [Investigation](investigation.md) for
|
|
55
|
+
contracts, evidence, JEV and recovery. New → review → Run remains appropriate when
|
|
56
|
+
proposal review is requested. Plan / Exec / Verify / Review / Status / Stop remain.
|
|
57
|
+
|
|
58
|
+
Full reuses a confirmed, persisted Plan checkpoint when its inputs and baseline stay
|
|
59
|
+
valid. Explicit Plan, verification gaps, changed contracts or untrusted baselines
|
|
60
|
+
still replan. Targeted executor checks complement the complete Go gate and independent
|
|
61
|
+
Review. Default model bindings remain; execution allowlists and verified incremental
|
|
62
|
+
context are independent opt-ins described in [Configuration](configuration.md).
|
|
28
63
|
|
|
29
64
|
## 1. Choose a model for preparation
|
|
30
65
|
|
|
31
|
-
|
|
66
|
+
`flywheel-task` and `flywheel-new` run in the host's current conversation. The
|
|
67
|
+
`loops.plan` binding controls planning **after the engine starts**; it does not
|
|
68
|
+
change that host conversation's model.
|
|
32
69
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
| Requirement | Preparation model and effort | Reason for the recommendation |
|
|
70
|
+
| Preparation work | Suggested DSH provider / model | Effort |
|
|
36
71
|
|---|---|---|
|
|
37
|
-
|
|
|
38
|
-
| A
|
|
39
|
-
|
|
|
72
|
+
| Architecture, protocols, lifecycle, or uncertain acceptance | `chatgpt` / `gpt-6-astra` | `high` |
|
|
73
|
+
| A bounded feature with established implementation patterns | `chatgpt` / `gpt-6.1-sol` | `high` |
|
|
74
|
+
| An explicit small fix or documentation update | `deepseek-account` / `deepseek-flash` | `high` |
|
|
40
75
|
|
|
41
|
-
These are engineering
|
|
76
|
+
These are engineering starting points, not project benchmark results. Check exact
|
|
77
|
+
model IDs and supported effort in the selected account. Raising effort does not
|
|
78
|
+
repair missing requirements or an invalid test oracle. Runtime defaults and the
|
|
79
|
+
separate account channels are described in [Model policy](model-policy.md) and
|
|
80
|
+
[Configuration](configuration.md).
|
|
42
81
|
|
|
43
|
-
|
|
82
|
+
## 2. Choose the task execution directory
|
|
44
83
|
|
|
45
|
-
|
|
84
|
+
Keep these locations distinct:
|
|
46
85
|
|
|
47
|
-
|
|
86
|
+
| Location | Purpose |
|
|
87
|
+
|---|---|
|
|
88
|
+
| Project workspace | Stable repository identity for Provider sessions; normally the original checkout |
|
|
89
|
+
| Task integration directory | Checkout and branch where contracts are prepared and verified packets are integrated |
|
|
90
|
+
| Task files directory | `docs/<slug>` inside that checkout; contains Spec, packets, state, and reports |
|
|
91
|
+
| Packet execution directory | Candidate checkout used by Execute, verification, and Review; usually an engine-managed worktree |
|
|
48
92
|
|
|
49
|
-
|
|
93
|
+
The project workspace and execution directory may differ. Provider project
|
|
94
|
+
membership does not redirect file operations: prompts and evidence identify the
|
|
95
|
+
actual execution directory. A backend that cannot represent the selected split
|
|
96
|
+
`workspace-write` sandbox rejects that combination before dispatch.
|
|
50
97
|
|
|
51
|
-
For
|
|
98
|
+
For a repository using the default worktree policy, create or deliberately reuse a
|
|
99
|
+
task branch and worktree before preparation. Inspect existing changes first, use
|
|
100
|
+
unused names, and substitute the repository's actual base branch:
|
|
52
101
|
|
|
53
102
|
```sh
|
|
54
103
|
git status --short
|
|
@@ -58,50 +107,63 @@ cd ../repo-my-feature
|
|
|
58
107
|
git branch --show-current
|
|
59
108
|
```
|
|
60
109
|
|
|
61
|
-
|
|
110
|
+
Keep this task's files at `docs/my-feature` inside the selected checkout. The
|
|
111
|
+
integration branch is the branch checked out in the supplied `cwd`; it is not
|
|
112
|
+
hardcoded to `main`. Do not pair task files from one checkout with another
|
|
113
|
+
checkout's `cwd`, or switch its branch during a run.
|
|
62
114
|
|
|
63
|
-
|
|
115
|
+
`worktree.enabled` controls automatic **packet** worktree management, independently
|
|
116
|
+
of scheduling. With it disabled, the selected task checkout can be shared or an
|
|
117
|
+
external worktree can be registered before implementation. External directories
|
|
118
|
+
must satisfy the engine's baseline, branch, cleanliness, and ownership checks; see
|
|
119
|
+
[Parallel execution](flow-console.md#parallel-execution).
|
|
64
120
|
|
|
65
|
-
|
|
121
|
+
### Isolation and failure behavior
|
|
66
122
|
|
|
67
|
-
|
|
123
|
+
Worktrees separate working directories and indexes; they are not security sandboxes.
|
|
124
|
+
The legacy serial path can record a worktree-creation failure and fall back to
|
|
125
|
+
in-place execution. Parallel execution with automatic worktree management requires
|
|
126
|
+
isolated directories and fails if they cannot be created. Disabling automatic
|
|
127
|
+
management explicitly permits shared-checkout execution, with different validation
|
|
128
|
+
and batch-delivery rules.
|
|
68
129
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
130
|
+
If isolation is required, inspect the recorded workspace mode and stop on an
|
|
131
|
+
unexpected fallback. Preserve existing work and resolve the failure; do not edit
|
|
132
|
+
`state.json` or force-reset a branch to manufacture an isolated state.
|
|
72
133
|
|
|
73
134
|
## 3. Prepare and review the contracts
|
|
74
135
|
|
|
75
|
-
|
|
136
|
+
From the task integration directory, use the preparation skill or inspect the
|
|
137
|
+
bundled templates:
|
|
76
138
|
|
|
77
139
|
```sh
|
|
78
140
|
flywheel template --list
|
|
79
141
|
flywheel skills read flywheel-new
|
|
80
142
|
```
|
|
81
143
|
|
|
82
|
-
In DSH's conversation input, select the skill from the `/` menu or send:
|
|
83
|
-
|
|
84
144
|
```text
|
|
85
|
-
/flywheel-new Prepare docs/my-feature for this requirement.
|
|
145
|
+
/flywheel-new Prepare docs/my-feature for this requirement. Inspect the code, define bounded packets and executable acceptance checks, run the baseline checks, and present the contracts for review.
|
|
86
146
|
```
|
|
87
147
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
A runnable task needs a reviewed `spec.md` and at least one legal `task-packet-*.md`, using the bundled schemas. The preparation should establish:
|
|
148
|
+
No initial console form is required. Preparation should report the actual task
|
|
149
|
+
execution root and task files path, while retaining the original project identity.
|
|
150
|
+
A repository can contain several tasks; a repository path alone does not select one.
|
|
93
151
|
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
152
|
+
A runnable task needs a reviewed `spec.md` and at least one legal
|
|
153
|
+
`task-packet-*.md`. Establish requirement IDs, exclusions, routes, editable and
|
|
154
|
+
protected paths, L1 commands, milestone L2/L3 commands, and actual baseline results.
|
|
155
|
+
Keep frozen acceptance separate from implementation tests. Executors may add normal
|
|
156
|
+
unit/regression tests; they may not weaken protected acceptance to obtain a pass.
|
|
99
157
|
|
|
100
|
-
The
|
|
158
|
+
The Spec's `workflow` records qualification facts, risks, and reasons for inapplicable
|
|
159
|
+
checks. Parallel packets also need explicit `schedule.after` and `schedule.writes`.
|
|
160
|
+
See [Workflow policy](configuration.md#workflow-policy-and-recovery) and
|
|
161
|
+
[Scheduling and worktrees](configuration.md#scheduling-and-worktrees) for field
|
|
162
|
+
examples. Contracts without workflow remain Full; packets without scheduling
|
|
163
|
+
independence remain serial.
|
|
101
164
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
Review the files, then commit the substantive initial contracts so packet worktrees can obtain them from Git. The following assumes the index has been checked for unrelated staged work:
|
|
165
|
+
Commit the reviewed contracts so packet worktrees can obtain them from Git. Inspect
|
|
166
|
+
the index for unrelated changes first:
|
|
105
167
|
|
|
106
168
|
```sh
|
|
107
169
|
git diff -- docs/my-feature
|
|
@@ -111,77 +173,111 @@ git diff --cached
|
|
|
111
173
|
git commit -m "docs: prepare my-feature contracts"
|
|
112
174
|
```
|
|
113
175
|
|
|
114
|
-
Stage any additional acceptance fixtures separately after review.
|
|
176
|
+
Stage any additional acceptance fixtures separately after review. The engine creates
|
|
177
|
+
and maintains `state.json`; neither preparation skills nor models write it.
|
|
115
178
|
|
|
116
|
-
## 4.
|
|
179
|
+
## 4. Use a task-level Draft PR when useful
|
|
117
180
|
|
|
118
|
-
|
|
181
|
+
A Draft PR can provide a review location once the initial contracts are committed.
|
|
182
|
+
The authorized host or user can open it before execution:
|
|
119
183
|
|
|
120
184
|
```sh
|
|
121
185
|
git push -u origin task/my-feature
|
|
122
186
|
gh pr create --draft --base main --head task/my-feature
|
|
123
187
|
```
|
|
124
188
|
|
|
125
|
-
Describe the problem, expected outcome, acceptance
|
|
126
|
-
|
|
127
|
-
|
|
189
|
+
Describe the problem, expected outcome, acceptance, and remaining work. Usually one
|
|
190
|
+
independently deliverable requirement or milestone belongs in one PR. Packets are
|
|
191
|
+
internal execution units, not automatically separate PRs. An early Draft PR does not
|
|
192
|
+
authorize merge. The console's later PR operation re-queries an existing PR after
|
|
193
|
+
push, avoiding duplicate creation.
|
|
128
194
|
|
|
129
|
-
## 5. Run from the same task
|
|
195
|
+
## 5. Run from the same task execution directory
|
|
130
196
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
```text
|
|
134
|
-
/flywheel-run /absolute/path/to/repo-my-feature/docs/my-feature
|
|
135
|
-
/flywheel-status /absolute/path/to/repo-my-feature/docs/my-feature
|
|
136
|
-
/flywheel-stop /absolute/path/to/repo-my-feature/docs/my-feature
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
The skills resolve the project root from that existing task directory and invoke the CLI. They do not require opening or filling in the view. For direct terminal use, keep the current directory at the same task worktree root:
|
|
197
|
+
For an existing prepared task, run these commands from its integration checkout:
|
|
140
198
|
|
|
141
199
|
```sh
|
|
142
200
|
flywheel config inspect --cwd "$PWD" --task-dir "$PWD/docs/my-feature" --json
|
|
143
201
|
flywheel doctor --cwd "$PWD" --task-dir "$PWD/docs/my-feature" --probe --json
|
|
144
|
-
flywheel control
|
|
202
|
+
flywheel control launch --cwd "$PWD" --task-dir "$PWD/docs/my-feature" --mode auto
|
|
145
203
|
flywheel control status --cwd "$PWD" --task-dir "$PWD/docs/my-feature"
|
|
146
204
|
```
|
|
147
205
|
|
|
148
|
-
Preflight
|
|
206
|
+
Preflight sends no inference prompt and runs no acceptance command. Starting the
|
|
207
|
+
real task invokes the configured models. A control response's `ok` describes that
|
|
208
|
+
operation; overall completion is reported by `state.status`.
|
|
149
209
|
|
|
150
|
-
|
|
210
|
+
`launch` defaults to Auto. `start` and foreground `run` accept
|
|
211
|
+
`--mode auto|quick|full`; omission preserves the contract or persisted selection.
|
|
212
|
+
Status/stop never switch modes. Restarting or selecting Auto cannot downgrade an
|
|
213
|
+
established Full task.
|
|
151
214
|
|
|
152
|
-
DSH
|
|
215
|
+
DSH equivalents are `/flywheel-run <absolute-task-directory>` and
|
|
216
|
+
`/flywheel-status <same-path>`. Starts and read-only status association make the task
|
|
217
|
+
available in the console. The console selects registered tasks and has no editable
|
|
218
|
+
task/project path fields. CLI runs with a DSH host ID can be matched to that session;
|
|
219
|
+
other runs remain selectable in Recent tasks. Discovery does not scan directories.
|
|
153
220
|
|
|
154
221
|
### Working directory by stage
|
|
155
222
|
|
|
156
|
-
| Stage
|
|
157
|
-
|
|
158
|
-
|
|
|
159
|
-
|
|
|
160
|
-
|
|
|
161
|
-
|
|
|
162
|
-
|
|
|
163
|
-
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
223
|
+
| Stage | Execution directory |
|
|
224
|
+
|---|---|
|
|
225
|
+
| Preparation; Full Plan and permitted contract revision | Task integration checkout |
|
|
226
|
+
| Execute, L1, independent Review | Current packet candidate directory |
|
|
227
|
+
| Quick's applicable L2/L3 | The same packet candidate, before final Review |
|
|
228
|
+
| Full L2/L3 and Judge | Task integration checkout after packet delivery |
|
|
229
|
+
| Intake and Garden | Selected task execution root |
|
|
230
|
+
| Status and Stop | Original task files and execution root; no new branch or worktree required |
|
|
231
|
+
|
|
232
|
+
These are execution locations. Provider sessions retain the separately recorded
|
|
233
|
+
project workspace. The task checkout spans the deliverable; each packet directory
|
|
234
|
+
spans implementation, checks, review, and delivery. A new loop does not imply a new
|
|
235
|
+
worktree or a permanently running parent model.
|
|
236
|
+
|
|
237
|
+
### Scheduling and role history
|
|
238
|
+
|
|
239
|
+
The embedded installation default selects `scheduler.mode=parallel` with a maximum of two.
|
|
240
|
+
Existing complete configuration files that omit `scheduler` remain serial, as do
|
|
241
|
+
explicit serial settings. Only ready packets with explicit dependencies and
|
|
242
|
+
nonoverlapping declared write scopes qualify. Independent worktrees permit
|
|
243
|
+
concurrent Execute/L1. Shared-checkout batches run Execute concurrently, then
|
|
244
|
+
validate and review the combined candidate. Review, integration, and final gates
|
|
245
|
+
remain serial. Hard budgets allow one model call in flight until its accounting is
|
|
246
|
+
durable. See the [console guide](flow-console.md#parallel-execution).
|
|
247
|
+
|
|
248
|
+
`scoped` history can reuse an eligible packet Executor session for repairs. Review
|
|
249
|
+
uses its own independent history and always evaluates the complete current candidate.
|
|
250
|
+
Plan is task/milestone scoped; Judge and second opinions remain separate. Old
|
|
251
|
+
configuration without `sessions` retains fresh behavior. Both modes preserve
|
|
252
|
+
invocation-safety records and block on unknown dispatch, outcome, or cleanup.
|
|
253
|
+
[Recovery](session-recovery.md) explains trusted receipts, durable checkpoints, and
|
|
254
|
+
bounded context rebuilding.
|
|
255
|
+
|
|
256
|
+
### Partial stages and permissions
|
|
257
|
+
|
|
258
|
+
`flywheel-verify` runs deterministic acceptance without Review/Judge or Git delivery.
|
|
259
|
+
`--only execute` is a bounded Execute/L1 loop. Quick's `--only review` performs final
|
|
260
|
+
Review without delivery and saves a required Full upgrade without starting Plan.
|
|
261
|
+
`--only plan` requires Full. Resume the complete run for remaining stages and delivery.
|
|
262
|
+
The console offers the same managed stage operations with revision checks.
|
|
263
|
+
|
|
264
|
+
Model permissions follow the effective global policy and per-binding overrides.
|
|
265
|
+
Full access does not remove frozen boundaries or reviewer candidate checks. Kimi
|
|
266
|
+
print does not provide an OS sandbox guarantee. Skills also check the chosen task
|
|
267
|
+
location before development; direct CLI/GUI calls do not execute `SKILL.md` or create
|
|
268
|
+
the outer task branch. Read-only status and stopping remain available independently.
|
|
179
269
|
|
|
180
270
|
## 6. Understand local completion before merging the PR
|
|
181
271
|
|
|
182
|
-
|
|
272
|
+
Local delivery requires current checks, independent Review, and verified Git
|
|
273
|
+
persistence of the same candidate. Packet worktrees are integrated into the task
|
|
274
|
+
checkout; failed delivery preserves work. Shared-checkout batches complete only
|
|
275
|
+
after every member passes on the combined candidate and the batch is durably saved.
|
|
276
|
+
Full also requires integrated L2/L3 and Judge. Quick requires a final Review covering
|
|
277
|
+
all requirements, acceptance sufficiency, and continued eligibility.
|
|
183
278
|
|
|
184
|
-
|
|
279
|
+
Remote delivery is a separate operation. You can inspect and push the task branch
|
|
280
|
+
manually:
|
|
185
281
|
|
|
186
282
|
```sh
|
|
187
283
|
git status --short
|
|
@@ -191,9 +287,17 @@ gh pr ready
|
|
|
191
287
|
gh pr checks
|
|
192
288
|
```
|
|
193
289
|
|
|
194
|
-
|
|
290
|
+
Or use the console's PR/Merge nodes after explicitly authorizing the repository,
|
|
291
|
+
source HEAD, task branch, and target branch. These operations require normal GitHub
|
|
292
|
+
CLI authentication and current local acceptance. Merge rechecks PR/head/base/checks
|
|
293
|
+
and binds the request to the approved head; it does not use admin bypass or enable
|
|
294
|
+
auto-merge implicitly. An accepted merge-queue request is not a confirmed merge.
|
|
295
|
+
See [PR and Merge](flow-console.md#pr-and-merge).
|
|
195
296
|
|
|
196
|
-
|
|
297
|
+
Review the current diff, required CI, and current base branch before merging. Changes
|
|
298
|
+
after a green run may require renewed evidence. An unavailable check must be recorded
|
|
299
|
+
as unavailable and handled through the repository's authorized process. Publication
|
|
300
|
+
or deployment has its own validation and is not triggered merely by clicking Merge.
|
|
197
301
|
|
|
198
302
|
## 7. Stop and recover without losing evidence
|
|
199
303
|
|
|
@@ -201,20 +305,24 @@ Manual merge after those gates is the recommended default. Auto-merge can be app
|
|
|
201
305
|
flywheel control stop --cwd "$PWD" --task-dir "$PWD/docs/my-feature"
|
|
202
306
|
```
|
|
203
307
|
|
|
204
|
-
Check the stop
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
For a delivery conflict, preserve the packet worktree, inspect Git state, resolve the conflict deliberately, then resume and let the engine revalidate evidence. Do not use forced cleanup or manual state edits as a recovery shortcut. Configuration changes require restarting the engine.
|
|
209
|
-
|
|
210
|
-
## Reference boundaries
|
|
211
|
-
|
|
212
|
-
The engine owns local state, bounded loops, verification, and Git delivery. The authorized host/user owns task-branch setup, GitHub pushes and PRs, remote CI policy, PR merge, and publication. Repository visibility and licensing are separate decisions.
|
|
308
|
+
Check the stop receipt and actual failure before resuming from the same paths with
|
|
309
|
+
`control start` or `/flywheel-run`. A readiness timeout or disconnected request calls
|
|
310
|
+
for reconciliation, not a duplicate launch. Closing a view does not stop the engine.
|
|
213
311
|
|
|
214
|
-
|
|
312
|
+
Unknown dispatch, model outcome, or cleanup blocks further execution in both session
|
|
313
|
+
modes. Process exit alone does not prove a known model result. Go must reconcile a
|
|
314
|
+
trusted receipt against its original identity and evidence; switching to fresh,
|
|
315
|
+
changing backends, or resetting state cannot bypass an unresolved invocation.
|
|
215
316
|
|
|
216
|
-
|
|
317
|
+
Preserve worktrees and reports when delivery conflicts. Resolve the actual Git
|
|
318
|
+
conflict and let the engine revalidate. Configuration changes require an engine
|
|
319
|
+
restart. Controlled human interaction with an eligible existing session is described
|
|
320
|
+
in [Provider session interaction](flow-console.md#controlled-provider-session-interaction).
|
|
217
321
|
|
|
218
|
-
|
|
322
|
+
## Related guides
|
|
219
323
|
|
|
220
|
-
|
|
324
|
+
- [Configuration](configuration.md): model bindings, permissions, budgets, and policies.
|
|
325
|
+
- [Workflow console](flow-console.md): tasks, stages, sessions, run comparison, and remote delivery.
|
|
326
|
+
- [Recovery and context quality](session-recovery.md): interrupted calls and safe continuation.
|
|
327
|
+
- [JEV shadow evaluation](jev-shadow.md): optional, default-off advice that does not change workflow selection.
|
|
328
|
+
- [System design](../design.md): authoritative implementation contracts, in Chinese.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Evaluation data
|
|
2
|
+
|
|
3
|
+
[Documentation](../README.md) · [中文文档](../README.zh-CN.md)
|
|
4
|
+
|
|
5
|
+
These files are fixed experiment inputs and recorded outputs, not live
|
|
6
|
+
benchmarks. Read the [session evaluation guide](../en/session-evaluation.md)
|
|
7
|
+
or [JEV shadow guide](../en/jev-shadow.md) before interpreting them.
|
|
8
|
+
|
|
9
|
+
| File | Purpose |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| [jev-historical-provisional.json](jev-historical-provisional.json) | Provisional historical inputs; not a production routing policy. |
|
|
12
|
+
| [jev-historical-result-2026-11-10.json](jev-historical-result-2026-11-10.json) | Recorded results for the named experiment. |
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"mode": "shadow",
|
|
4
|
+
"cases": [
|
|
5
|
+
{
|
|
6
|
+
"id": "view-order",
|
|
7
|
+
"source": {
|
|
8
|
+
"kind": "historical",
|
|
9
|
+
"reference": "git:f6272907a5e9fdc891bec0394a593636a5bb8214"
|
|
10
|
+
},
|
|
11
|
+
"task": "把 Flywheel 自定义会话视图移到统计之后",
|
|
12
|
+
"evidence": [
|
|
13
|
+
"只修改公开 conversation.view 注册的 order 为 1000,保留内置标签和 Provider 行为;现有宿主挂载测试断言顺序。"
|
|
14
|
+
],
|
|
15
|
+
"baseline": {
|
|
16
|
+
"mode": "unknown",
|
|
17
|
+
"reason": "完成工作项的回溯摘要;没有当时运行选择的证据,不冒充真实 Auto 基线。"
|
|
18
|
+
},
|
|
19
|
+
"hard-blockers": [],
|
|
20
|
+
"label": {
|
|
21
|
+
"mode": "quick",
|
|
22
|
+
"status": "provisional",
|
|
23
|
+
"reason": "依据已合并源码范围的临时标签,尚未由独立人工确认;不能据此报告生产误放率。",
|
|
24
|
+
"author": "retrospective-source-review"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "install-guide",
|
|
29
|
+
"source": {
|
|
30
|
+
"kind": "historical",
|
|
31
|
+
"reference": "git:161a37ebec45a156344c3b8805e23b341ceea215"
|
|
32
|
+
},
|
|
33
|
+
"task": "补充已经验证的安装升级操作说明",
|
|
34
|
+
"evidence": [
|
|
35
|
+
"只改中英文指南,说明源码目录 npx 命中旧全局入口的现象、精确 prefix 的安装命令及版本核对;现有安装回执是文字依据,不改变安装器代码。"
|
|
36
|
+
],
|
|
37
|
+
"baseline": {
|
|
38
|
+
"mode": "unknown",
|
|
39
|
+
"reason": "完成工作项的回溯摘要;没有当时运行选择的证据,不冒充真实 Auto 基线。"
|
|
40
|
+
},
|
|
41
|
+
"hard-blockers": [],
|
|
42
|
+
"label": {
|
|
43
|
+
"mode": "quick",
|
|
44
|
+
"status": "provisional",
|
|
45
|
+
"reason": "依据已合并源码范围的临时标签,尚未由独立人工确认;不能据此报告生产误放率。",
|
|
46
|
+
"author": "retrospective-source-review"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "desktop-guide",
|
|
51
|
+
"source": {
|
|
52
|
+
"kind": "historical",
|
|
53
|
+
"reference": "git:5d682291e39c46c4e5e7c275f3d195ffce7e5d6c"
|
|
54
|
+
},
|
|
55
|
+
"task": "纠正控制台在空白会话首页不可见的说明",
|
|
56
|
+
"evidence": [
|
|
57
|
+
"只改中英文指南和验收记录:已有会话显示 Flywheel,空白新会话页还不显示;根据已取得桌面验证回执校对文案。"
|
|
58
|
+
],
|
|
59
|
+
"baseline": {
|
|
60
|
+
"mode": "unknown",
|
|
61
|
+
"reason": "完成工作项的回溯摘要;没有当时运行选择的证据,不冒充真实 Auto 基线。"
|
|
62
|
+
},
|
|
63
|
+
"hard-blockers": [],
|
|
64
|
+
"label": {
|
|
65
|
+
"mode": "quick",
|
|
66
|
+
"status": "provisional",
|
|
67
|
+
"reason": "依据已合并源码范围的临时标签,尚未由独立人工确认;不能据此报告生产误放率。",
|
|
68
|
+
"author": "retrospective-source-review"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "role-sessions",
|
|
73
|
+
"source": {
|
|
74
|
+
"kind": "historical",
|
|
75
|
+
"reference": "git:93cb6b81dbe2242e620905d34b0c33560da6cc96"
|
|
76
|
+
},
|
|
77
|
+
"task": "实现按任务、角色、作用域隔离的会话复用与持久化回执核对",
|
|
78
|
+
"evidence": [
|
|
79
|
+
"涉及引擎状态格式、多个 Provider 的 session 绑定、未知派发与结果恢复、调用预算去重。需要状态机测试、驱动桥接及故障恢复验证。"
|
|
80
|
+
],
|
|
81
|
+
"baseline": {
|
|
82
|
+
"mode": "unknown",
|
|
83
|
+
"reason": "完成工作项的回溯摘要;没有当时运行选择的证据,不冒充真实 Auto 基线。"
|
|
84
|
+
},
|
|
85
|
+
"hard-blockers": [],
|
|
86
|
+
"label": {
|
|
87
|
+
"mode": "full",
|
|
88
|
+
"status": "provisional",
|
|
89
|
+
"reason": "依据已合并源码范围的临时标签,尚未由独立人工确认;不能据此报告生产误放率。",
|
|
90
|
+
"author": "retrospective-source-review"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "lifecycle-recovery",
|
|
95
|
+
"source": {
|
|
96
|
+
"kind": "historical",
|
|
97
|
+
"reference": "git:26008e3e56f038f7b4729c6494b4b926d287f171"
|
|
98
|
+
},
|
|
99
|
+
"task": "实现公开会话 lifecycle、持久 ACK、supervisor journal 和质量重建",
|
|
100
|
+
"evidence": [
|
|
101
|
+
"涉及跨进程取消、未知结果只读恢复、token/cost 记账、Claude 与 Codex 后端协议兼容。需要分层集成测试与对照实验,不能只改一个孤立显示字段。"
|
|
102
|
+
],
|
|
103
|
+
"baseline": {
|
|
104
|
+
"mode": "unknown",
|
|
105
|
+
"reason": "完成工作项的回溯摘要;没有当时运行选择的证据,不冒充真实 Auto 基线。"
|
|
106
|
+
},
|
|
107
|
+
"hard-blockers": [],
|
|
108
|
+
"label": {
|
|
109
|
+
"mode": "full",
|
|
110
|
+
"status": "provisional",
|
|
111
|
+
"reason": "依据已合并源码范围的临时标签,尚未由独立人工确认;不能据此报告生产误放率。",
|
|
112
|
+
"author": "retrospective-source-review"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": "workflow-console",
|
|
117
|
+
"source": {
|
|
118
|
+
"kind": "historical",
|
|
119
|
+
"reference": "git:c24cb0e62042dfe3378bc9c06b0e6951159a7b25"
|
|
120
|
+
},
|
|
121
|
+
"task": "实现交互式流程控制台、按节点运行和会话人工接管",
|
|
122
|
+
"evidence": [
|
|
123
|
+
"新增状态 revision 绑定控制、配置备份及原子保存、权限覆盖、并行工作区调度、远端 PR 交付。涉及权限、并发、持久化状态和多个模块;需要端到端离线与桌面验证。"
|
|
124
|
+
],
|
|
125
|
+
"baseline": {
|
|
126
|
+
"mode": "unknown",
|
|
127
|
+
"reason": "完成工作项的回溯摘要;没有当时运行选择的证据,不冒充真实 Auto 基线。"
|
|
128
|
+
},
|
|
129
|
+
"hard-blockers": [],
|
|
130
|
+
"label": {
|
|
131
|
+
"mode": "full",
|
|
132
|
+
"status": "provisional",
|
|
133
|
+
"reason": "依据已合并源码范围的临时标签,尚未由独立人工确认;不能据此报告生产误放率。",
|
|
134
|
+
"author": "retrospective-source-review"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|