feature-factory 0.8.5 → 0.8.6
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/WORKFLOW.md +21 -9
- package/package.json +1 -1
package/WORKFLOW.md
CHANGED
|
@@ -295,8 +295,12 @@ fresh run; an existing run follows these rules solely because its manifest alrea
|
|
|
295
295
|
every acceptance criterion maps to a slice, and same-wave slices are file-disjoint.
|
|
296
296
|
- **Gate 3 (pre-PR)**: approve only on a GO or GO-WITH-NITS validator verdict with `review_ready`
|
|
297
297
|
observed evidence for the integrated branch. A NO-GO is a NO-GO.
|
|
298
|
-
- **Never auto-merge.**
|
|
299
|
-
may perform.
|
|
298
|
+
- **Never auto-merge.** Recording the pull request is the last externally publishing side effect an
|
|
299
|
+
autonomous run may perform. Whether that PR is a draft is the repository's `pr_draft` choice and is
|
|
300
|
+
independent of the run mode: autonomous does not imply draft, and `pr_draft: false` is a supported
|
|
301
|
+
configuration that publishes ready-for-review in every mode. The constraint here is about stopping
|
|
302
|
+
after publication, not about draft-ness.
|
|
303
|
+
After it is recorded, the mandatory local completed handoff in Step 7 still follows and
|
|
300
304
|
is required in every mode: terminalize, fetch the permitted local refs, archive and verify the control
|
|
301
305
|
plane, and remove only the guarded sandbox. Autonomous mode never merges an external PR or performs
|
|
302
306
|
unrelated work after PR recording.
|
|
@@ -562,7 +566,7 @@ After derivation, `O` is the physically resolved operator checkout. During boots
|
|
|
562
566
|
execution, do not switch, reset, clean, stash, create a branch or worktree, write Git configuration, or
|
|
563
567
|
initialize factory state directly in `O`. The only operator-checkout operations before the completed
|
|
564
568
|
handoff are reads and the Step 6 forge command. The explicit Step 7 exclusion applies only after the
|
|
565
|
-
|
|
569
|
+
pull request is recorded: its guarded local-ref fetch, archive, verification, and deterministic sandbox
|
|
566
570
|
removal remain the sole completed-handoff exception to bootstrap/refusal state preservation.
|
|
567
571
|
|
|
568
572
|
### Resume or collision
|
|
@@ -1816,10 +1820,10 @@ command; never move it earlier or present stale evidence.
|
|
|
1816
1820
|
The compatibility transition name is `factory gate <run-id> pre_pr pending`; the runnable form is the
|
|
1817
1821
|
repository-qualified command above.
|
|
1818
1822
|
|
|
1819
|
-
The draft publication signature is `gh pr create --draft --base "<pr_base>" --head "<branch>" --title "<title>" --body-file "<body-file>"`.
|
|
1820
|
-
The ready-for-review publication signature is `gh pr create --base "<pr_base>" --head "<branch>" --title "<title>" --body-file "<body-file>"`.
|
|
1823
|
+
The `PR_DRAFT=true` draft publication signature is `gh pr create --draft --base "<pr_base>" --head "<branch>" --title "<title>" --body-file "<body-file>"`.
|
|
1824
|
+
The `PR_DRAFT=false` ready-for-review publication signature is `gh pr create --base "<pr_base>" --head "<branch>" --title "<title>" --body-file "<body-file>"`.
|
|
1821
1825
|
|
|
1822
|
-
## Step 6 — Draft PR
|
|
1826
|
+
## Step 6 — Draft PR (ready-for-review when `pr_draft` is false)
|
|
1823
1827
|
|
|
1824
1828
|
Immediately before any publication effect, read the delivery intent from the selected run repository,
|
|
1825
1829
|
then, for a sandbox-selected run, repeat the operator exact-ref-absent and sandbox
|
|
@@ -1951,12 +1955,13 @@ whatever mapping the repository documents, and update the tracker only through *
|
|
|
1951
1955
|
|
|
1952
1956
|
## Step 7 — Summary and completed sandbox handoff
|
|
1953
1957
|
|
|
1954
|
-
After
|
|
1958
|
+
After the pull request is recorded -- draft or ready for review, as `pr_draft`
|
|
1959
|
+
selected -- `interactive`, `headless`, and `autonomous` modes all enter this same mandatory
|
|
1955
1960
|
local completed handoff. In autonomous mode this is the sole narrow exception to the external-side-effect
|
|
1956
1961
|
stop: perform only the terminalize, local-ref fetch, archive, verification, and guarded sandbox-removal
|
|
1957
1962
|
sequence below, with no external PR merge or unrelated work after PR recording.
|
|
1958
1963
|
|
|
1959
|
-
After `factory pr` records the
|
|
1964
|
+
After `factory pr` records the pull request, stop the heartbeat loop and wait for any heartbeat call already
|
|
1960
1965
|
in flight to return. Before terminalization or any filesystem or Git side effect, require that the loop
|
|
1961
1966
|
is no longer active and no dispatched agent call remains in flight, directly read and validate exactly
|
|
1962
1967
|
`RUN_MANIFEST`, and require no step with status `running` and no slice with status `running` or `review`.
|
|
@@ -1975,6 +1980,12 @@ Terminalize before any housekeeping, through the repository selected in Step 0:
|
|
|
1975
1980
|
factory terminal "$R" completed --reason "draft-pr-recorded" --repo "$RUN_REPO"
|
|
1976
1981
|
```
|
|
1977
1982
|
|
|
1983
|
+
`draft-pr-recorded` is a fixed protocol token meaning this run's pull request was created and recorded.
|
|
1984
|
+
It does not assert the PR is a draft: a `pr_draft: false` run records a ready-for-review PR and
|
|
1985
|
+
terminalizes with this same reason. Never vary it by mode or by `pr_draft`; downstream consumers match
|
|
1986
|
+
it exactly.
|
|
1987
|
+
|
|
1988
|
+
|
|
1978
1989
|
Do not replay or retry any handoff phase. A later invocation that finds a completed sandbox reports its
|
|
1979
1990
|
path for manual recovery and leaves it intact. For the same reason, do not invent durable phase state or
|
|
1980
1991
|
infer that an interrupted effect is safe to repeat.
|
|
@@ -2118,7 +2129,8 @@ Never re-do a side effect the manifest shows already done — ticket creation, p
|
|
|
2118
2129
|
Qualified status reports the run's `max_retries`, so the budget a run is actually bounded by is
|
|
2119
2130
|
observable rather than assumed: a forwarded `--max-retries` that never reached the manifest is visible
|
|
2120
2131
|
as a different number instead of silently running at the default.
|
|
2121
|
-
- **
|
|
2132
|
+
- **Publish a PR and stop.** Never merge, force-push, or close tickets. Humans merge. Draft or
|
|
2133
|
+
ready-for-review is `pr_draft`'s decision, not this rule's.
|
|
2122
2134
|
- **Scope discipline and no fabrication.** Flag out-of-scope work at the next gate. Never invent paths,
|
|
2123
2135
|
keys, versions, or test passes — if the evidence is thin, say so and ask.
|
|
2124
2136
|
- **A repository may lock its own scope, and a lock is not a defect.** A check whose assertion *is* a
|