From 9790afe69e3859543a9a912c443befca807c217e Mon Sep 17 00:00:00 2001 From: Gaubee Date: Tue, 6 Oct 2026 12:54:04 +0800 Subject: [PATCH] docs(spec): archive update-openspec-cli-1141 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge the delta into the main opsx-workflow-ui spec (Pinned Workflow Fixtures requirement rotated to the 1.14.1 executable; the two new patch-rotation fixture-proof requirements added) and move the change to archive/2026-10-06-update-openspec-cli-1141 after PR #300 merged (affa059e). Loop-schema archive path: 'instructions specs' structurally reports no specs artifact for opsx-collab-pr-loop, so the merge is driven by the validate-verified delta file — the same path the 114-line archive took. --- .../.openspec.yaml | 0 .../loop/checkpoints.md | 12 ++++-- .../loop/implementation.md | 0 .../loop/intake.md | 0 .../loop/research-plan.md | 0 .../specs/opsx-workflow-ui/spec.md | 0 openspec/specs/opsx-workflow-ui/spec.md | 41 ++++++++++++++++--- 7 files changed, 44 insertions(+), 9 deletions(-) rename openspec/changes/{update-openspec-cli-1141 => archive/2026-10-06-update-openspec-cli-1141}/.openspec.yaml (100%) rename openspec/changes/{update-openspec-cli-1141 => archive/2026-10-06-update-openspec-cli-1141}/loop/checkpoints.md (87%) rename openspec/changes/{update-openspec-cli-1141 => archive/2026-10-06-update-openspec-cli-1141}/loop/implementation.md (100%) rename openspec/changes/{update-openspec-cli-1141 => archive/2026-10-06-update-openspec-cli-1141}/loop/intake.md (100%) rename openspec/changes/{update-openspec-cli-1141 => archive/2026-10-06-update-openspec-cli-1141}/loop/research-plan.md (100%) rename openspec/changes/{update-openspec-cli-1141 => archive/2026-10-06-update-openspec-cli-1141}/specs/opsx-workflow-ui/spec.md (100%) diff --git a/openspec/changes/update-openspec-cli-1141/.openspec.yaml b/openspec/changes/archive/2026-10-06-update-openspec-cli-1141/.openspec.yaml similarity index 100% rename from openspec/changes/update-openspec-cli-1141/.openspec.yaml rename to openspec/changes/archive/2026-10-06-update-openspec-cli-1141/.openspec.yaml diff --git a/openspec/changes/update-openspec-cli-1141/loop/checkpoints.md b/openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/checkpoints.md similarity index 87% rename from openspec/changes/update-openspec-cli-1141/loop/checkpoints.md rename to openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/checkpoints.md index 807ffa81..5cc3f1a9 100644 --- a/openspec/changes/update-openspec-cli-1141/loop/checkpoints.md +++ b/openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/checkpoints.md @@ -71,9 +71,13 @@ Original request (2026-10-06): "官方发布了 v1.14.1,请按照规范更新 4 delivery-discipline blockers (changeset, format, stale AGENTS clean-build pin, frozen full-gate evidence) all folded and re-verified; Round-B recorded in the implementation log. -- [ ] PR opened from `target/openspec-cli-1141-patch`, `pr-quality.yml` green (the CI pin guard - proves the repaired gitlink against `EXPECTED_COMMIT` for the first time since the - regression), merged per Manager Mode; change archived after merge; herdr resources - released; worktree retained for follow-up iterations until the Owner's cleanup instruction. +- [x] PR #300 opened from `target/openspec-cli-1141-patch` (commits `7f484842` rotation + + `246789c0` CI settlement budget); all `pr-quality.yml` checks green on the fourth run + (the first three runs hit the ubuntu tool-subscription settlement budget — diagnosis + and fix recorded in the implementation log; the CI pin guard validated the repaired + gitlink against `EXPECTED_COMMIT` for the first time since the regression); merged + per Manager Mode as `affa059e`; change archived after merge on + `docs/archive-update-openspec-cli-1141`; herdr resources released; worktree retained + for follow-up iterations until the Owner's cleanup instruction. - [x] Owner final browser walkthrough boundary unchanged (2026-07-20 law); no UI change ships, so no additional agent E2E walkthrough is required beyond the existing browser suites. diff --git a/openspec/changes/update-openspec-cli-1141/loop/implementation.md b/openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/implementation.md similarity index 100% rename from openspec/changes/update-openspec-cli-1141/loop/implementation.md rename to openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/implementation.md diff --git a/openspec/changes/update-openspec-cli-1141/loop/intake.md b/openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/intake.md similarity index 100% rename from openspec/changes/update-openspec-cli-1141/loop/intake.md rename to openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/intake.md diff --git a/openspec/changes/update-openspec-cli-1141/loop/research-plan.md b/openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/research-plan.md similarity index 100% rename from openspec/changes/update-openspec-cli-1141/loop/research-plan.md rename to openspec/changes/archive/2026-10-06-update-openspec-cli-1141/loop/research-plan.md diff --git a/openspec/changes/update-openspec-cli-1141/specs/opsx-workflow-ui/spec.md b/openspec/changes/archive/2026-10-06-update-openspec-cli-1141/specs/opsx-workflow-ui/spec.md similarity index 100% rename from openspec/changes/update-openspec-cli-1141/specs/opsx-workflow-ui/spec.md rename to openspec/changes/archive/2026-10-06-update-openspec-cli-1141/specs/opsx-workflow-ui/spec.md diff --git a/openspec/specs/opsx-workflow-ui/spec.md b/openspec/specs/opsx-workflow-ui/spec.md index 6f013575..f54f60a6 100644 --- a/openspec/specs/opsx-workflow-ui/spec.md +++ b/openspec/specs/opsx-workflow-ui/spec.md @@ -492,7 +492,7 @@ CLI progress denominator or phase. ### Requirement: Pinned Workflow Fixtures Are Executable -OpenSpecUI SHALL prove each accepted workflow contract against the pinned OpenSpec 1.14.0 executable, and +OpenSpecUI SHALL prove each accepted workflow contract against the pinned OpenSpec 1.14.1 executable, and SHALL prove capability-boundary rejections with a retained pinned retired executable. A hand-authored payload alone SHALL NOT establish support for the CLI line, and a fixture for a retired line SHALL NOT be reused as positive evidence for the current line. @@ -500,9 +500,9 @@ reused as positive evidence for the current line. #### Scenario: Both supported lines preserve planning/task separation - **GIVEN** the pinned workflow fixture matrix runs against the retained pair of pinned executables - (OpenSpec 1.14.0 as the positive line and a retired executable as the boundary line) + (OpenSpec 1.14.1 as the positive line and a retired executable as the boundary line) - **WHEN** it evaluates Status and Apply Instructions on the positive line -- **THEN** the 1.14.0 executable SHALL satisfy the typed planning-completion and progress contracts +- **THEN** the 1.14.1 executable SHALL satisfy the typed planning-completion and progress contracts - **AND** the boundary executable SHALL NOT be consulted for positive contract evidence #### Scenario: Capability boundaries are executable facts @@ -510,15 +510,46 @@ reused as positive evidence for the current line. - **GIVEN** the retained pinned retired executable is evaluated against the OpenSpecUI 14 admission gate - **WHEN** the fixture matrix asserts the capability boundary - **THEN** the retired line SHALL be recorded as below-admitted for the v14 window -- **AND** the 1.14.0 executable SHALL prove the accepted payloads +- **AND** the 1.14.1 executable SHALL prove the accepted payloads #### Scenario: Positive identity is proven, not assumed -- **GIVEN** the pinned bins map names an installed npm alias for the 1.14.0 executable +- **GIVEN** the pinned bins map names an installed npm alias for the 1.14.1 executable - **WHEN** the fixture matrix runs - **THEN** the executable's `--version` identity SHALL be asserted before contract assertions - **AND** a bins-map entry pointing at another alias SHALL fail that identity assertion +### Requirement: Apply Completion Archive-Separation Fixture Proof + +The pinned fixture matrix SHALL prove the OpenSpec 1.14.1 apply `all_done` semantics as an executable +fact: the state value and chain stay unchanged while the instruction reports tracked-task completion and +asks for review or verification before archiving, and the retired archive-readiness phrasing never +appears in the payload. + +#### Scenario: all_done reports completion without archive readiness + +- **GIVEN** a change whose tracked tasks are all complete on the pinned 1.14.1 executable +- **WHEN** `instructions apply --change --json` is executed +- **THEN** the payload SHALL carry `state: "all_done"` with the CLI's own progress counts +- **AND** the `instruction` SHALL report that all tracked tasks are complete and ask for review or + verification before archiving +- **AND** the serialized payload SHALL NOT contain the retired `ready to be archived` phrasing + +### Requirement: Overlength Requirement Strict-Escalation Fixture Proof + +The pinned fixture matrix SHALL prove the OpenSpec 1.14.1 overlength severity as an executable fact: a +requirement description over 500 characters, including an ADDED requirement inside a change, is a +WARNING-level validation issue that leaves non-strict validation green while `--strict` fails. + +#### Scenario: Overlength requirements fail strict validation only + +- **GIVEN** a change whose ADDED requirement description exceeds 500 characters +- **WHEN** change-scope validation runs without `--strict` +- **THEN** the item SHALL stay valid with the overlength advisory carried as a WARNING-level issue + naming the delta spec path +- **WHEN** the same validation runs with `--strict` +- **THEN** the exit code SHALL be non-zero and the item SHALL fail on that WARNING + ### Requirement: MODIFIED Delta Diff Evidence Surface Change Detail SHALL present the CLI-provided per-requirement `diff` and `warning` fields for MODIFIED deltas as