You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Gate phase 1 of plan 034: ARC_BASE, the re-measure and analyze round 1a (T003, T005, T006) - #1167
Phase 1's gate for plan 034 (#1155 → c415c3d1): T003, T005 and T006, as
one bookkeeping PR. Their evidence is under specs/034-opendox-standalone-operation/evidence/, and the re-plans they
cause are in the feature's own files.
Besides the feature directory, it changes one line: the feature's entry in
the README's Documentation index, which now links the three evidence notes.
That entry sits outside the OpenSpec Records block, so the PR needs no Rule 6
window.
It is bookkeeping, so none of its five commits carries an Arc: trailer
(R1Q20 (a), 5817152735).
The holder lands it, on Brett Heap's word as the holder relays it: "land #1155 when green and fan out phase 1".
T003: ARC_BASE (evidence/arc-base.md)
No repository holds an arc landing yet, so each base is that repository's main at 13:34:54Z. All seven were read again at 14:02:10Z, with the same
answers.
repository
ARC_BASE
openDox-code
1e4a57fb3c550339e25bb2fcc8da8e3a7817650f
openXdox-code
e28930bf052febff0c7bdd0463a72ce3c4f5e8fe
openDox
36ded1cd97ca8f23b0eb9ea03d1d9def79a40d3c
openXdox
069fe471f2ef5d23ea4461c0e0abd9f2768b6a31
openxFactory
c415c3d16663a8b17da5ae4f5e599f0971bf552f
openDox-spec
8fe8c4c71c4da8d363394441ad9e2c9547e540a3
openXdox-spec
f088b09732e236279898b53ab9fb0f5ebc89509a
The trailer count is 0 in every repository, on the first-parent line and over
all history. PACKET_MERGE is 94b6f7f13b45c351b9142345738965c974b7dd37
(#1144), which lies on openxFactory main's first-parent line.
T005: the re-measure (evidence/remeasure-2026-09-25.md)
Research R1–R15 were re-run at the then-current mains, and openXdox-code's
WHOLE suite was run for the first time. openDox-code, the openDox root and both
spec legs are unchanged, and so is every figure the openDox-code slices use.
R10, R11, R12 and R13 moved.
tests/test_snapshot.py after C3. One of research R11's three failures
cleared. The other two still fail, because C3's validator reaches its
schemas only through CONTRACTS_DIR. So T061's contingency applies, and 7.3
moves into phase 1.
5.4a's glob now selects seven suites. C3's test_snapshot_validator_home.py is one of them, which R1Q14's answer has to
take into account.
The whole suite (Group 2 simulated, rfc3339-validator installed) has
292 red results. A classifier puts each in one of eleven classes. Six are
carve residue, which T040 clears (four of them new to it). Two reach
openxFactory without doc_health, and they became R1Q24.
T019 is a new holder round that applies those answers before T061 or
T043 starts.
The prerequisite check ran in a fresh clone. Without SPECIFY_FEATURE_DIRECTORY
it refuses (exit 1). With it, it prints this feature's FEATURE_DIR (exit 0). /speckit-analyze ran twice: once by the author, and once by an independent
read-only verifier over a copy of the same commit. A second verifier then
re-ran it over 5192201c, the commit that carried the first dispositions, and
checked that each was carried.
CRITICAL: 0, in both passes.
The first pass found 7 HIGH, 20 MEDIUM and 8 LOW findings. The second
commit carries their fixes.
The second pass found 2 HIGH, 1 MEDIUM and 12 LOW (V1–V15). Copilot's first
review found 1 MEDIUM (CP1), and the author 1 LOW (U5). The third commit
carries their fixes, and the fourth corrects V2's third caller against a
measurement (below).
Copilot's review of 88a43004 found 2 MEDIUM. The fifth commit carries
their fixes.
CP2: the plan checks read T007 (batches C and F) as all of T007, so a
batch-level cycle could hide in prose. T007's After is now given by
batch, and the checks read each batch as its own node.
CP3: the spec's acceptance lines now carry R1Q25's possible exclusion of tests/test_snapshot.py, without answering it.
Each finding is dispositioned in the note. The ones that change the phase-1
fan-out:
Four falsifiers could not pass at their own task's landing: T015's
F3.1, T020's F4.1 block and named test, T035's F9.1, and T041's F9.1. Each
moves to the task that makes it reachable, and each of the four gets a
falsifier it can pass.
Until T011 lands, opendox.serve and opendox.cli do not import in a
lone checkout, and any run with the root conftest in play fails.
Tests that can land earlier import neither module, and their PRs quote a --noconftest run.
T010's test drives the facet in src/route_extension.py, and T011 adds a build_server case.
No slice edits openDox-code's validate.yml before T036.
T015 carries RuntimeSubcommand from its first landing, so main never
builds an empty default between T016 and T038.
T025 lists the scope the host registers. At c415c3d1, the host's
adapter lists 794 documents under all, and exactly the session notebook's
398 under documents. Listing all would have changed the hosted set.
T011's PR moves opendox.cli and opendox.serve into tests/test_consumer_reach.py's NEUTRAL_MODULES (V1). openDox-code's
required validate job runs that file by name, and the file fails as soon
as the two modules import. T034 re-derives the rest of it.
T021 waits on T011 (V7), because its named test runs with the root
conftest in play.
The ones that change phase 1's openXdox-code tail and its close:
It recommends (b): 7.3 stays in phase 2 (V2). Narrowing the consumer's
validator to its three schemas reaches phase-1 callers that validate
other kinds through it. Two do today: openxFactory's doxbench_contracts.delegated_semantic_validation, and the conftest
helper test_lens.py uses. The third, openDox-code's workbench.py:442,
gets no validator today, because find_validator answers None from a
start outside the product (measured at openXdox-code e28930bf). It
would get the narrowed one once T061's lookup resolves the installed
distribution. openDox's own validator arrives in phase 2.
R1Q25 blocks T043 as well as T019 and T061 (U5), since under (b) T043's
exclusion declares tests/test_snapshot.py.
Under (b), T019 restores T061 to phase 2 and F7.1 to T063 (CP1).
R1Q12 no longer holds T061. T061 packages the three schemas where they
stand. R1Q24 now holds T061, because F7.1's second named test goes into a
contract-family file.
openxFactory's nightly and refresh lanes read the lookup T061 changes.
None of their files is an 11.1 surface. R1Q14's text and T019 now weigh
that.
T007 gains two batches. Batch E adds composition tests before T047, and
batch F carries T019's amendments before T061 and T043. Batch B amends 9.2
too.
Files
file
change
evidence/arc-base.md
new (T003)
evidence/remeasure-2026-09-25.md
new (T005), with the classifier in full
evidence/analyze-round-1a.md
new (T006), with both passes
tasks.md
T003, T005 and T006 ticked; T019; T061 in phase 1; the dispositions
OPENSPEC_TELEMETRY=0 openspec validate --all --strict: 111 passed, 1 failed (112 items). The failure is add-chain-attestation, an accepted
disposition, and scripts/validate-openspec-cli-pin.py --all prints 0 UNDISPOSITIONED failures.
scripts/validate-document-catalog.py and scripts/validate-pin-registrations.py pass.
The plan-consistency tools pass:
0 question-header mismatches;
no cycle in the After: graph, and none with the Lands-with groups
merged (88 tasks; 94 nodes, since T007's six batches are nodes of their
own; 186 edges);
0 arrow mismatches of 54, now including the two that break across a
line;
T005's classifier, classify_whole_suite.py, and the updated plan-consistency
checks (qmap.py to R1Q25, and the widened chains in chaincheck.py and chaindirect.py) are persisted to the lane's workspace repository, opensoft/brett-wip, in its lane-4 tool directory. They landed at c3c69e9c. 2ed71007 widened qmap.py to R1Q25, and 805c6688 added tests/test_consumer_reach.py's chain (T011 → T034) for the second pass. 8874a361 gave the six checks one batch-aware parser, aftergraph.py (CP2).
…T003, T005)
T003 records ARC_BASE for all seven repositories. No repository holds an
arc landing yet, so each base is its main at the time. It also confirms
PACKET_MERGE 94b6f7f on openxFactory main's first-parent line.
T005 re-runs research R1-R15 at the current mains, and runs openXdox-code's
whole suite for the first time. openDox-code and the openDox root are
unchanged, and so is every figure the openDox-code slices use. Three
findings re-plan phase 1's openXdox-code tail.
- tests/test_snapshot.py still fails two of the three cases after C3's
PR 2. The schemas are reached only through CONTRACTS_DIR. So T061's
contingency applies, and 7.3 moves into phase 1. T061 now names R1Q12
as well as R1Q14, because R1Q12 (b) re-homes two of the schemas that
T061 packages.
- 5.4a's glob now selects seven suites. C3's test lives in one of them,
which R1Q14's answer has to take into account.
- The whole suite shows six causes that no task named. T040 takes the
four that are carve residue. The two that reach openxFactory without
doc_health become R1Q24.
T019 is the round that applies R1Q14, R1Q24 and R1Q12's part before T061
or T043 starts. Every other phase-1 task stays planned on answers.
This is bookkeeping, so it carries no Arc: trailer (R1Q20 (a)).
Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
T006 runs /speckit-analyze over spec, plan and tasks after T005's
re-plan, from a fresh clone with the feature context set. An
independent read-only verifier ran it a second time. No finding is
CRITICAL. The 7 HIGH, 20 MEDIUM and 8 LOW findings are dispositioned in
evidence/analyze-round-1a.md, and this commit carries the fixes.
- Four falsifiers could not pass at their own task's landing (T015,
T020, T035, T041). Each moves to the task that makes it reachable,
and each of the four gets a falsifier it can pass.
- Until T011 lands, opendox.serve and opendox.cli do not import in a
lone checkout. Tests that can land earlier import neither, and no
slice edits openDox-code's validate.yml before T036.
- T015 carries RuntimeSubcommand from its first landing, so no build
meets an empty default.
- T025 lists the scope the host registers. At c415c3d the host's
adapter lists 794 documents under all, and exactly the session
notebook's 398 under documents.
- 7.3's move into phase 1 departs from #1144's RULED release map, so
R1Q25 puts it to Brett. R1Q12 no longer holds T061, and R1Q24 now
does. openxFactory's readers of the validator lookup are named for
T019.
- T007 gains batch E (composition tests, before T047) and batch F
(T019's amendments, before T061 and T043). Batch B amends 9.2 as well.
This is bookkeeping, so it carries no Arc: trailer (R1Q20 (a)).
Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A second independent verifier re-ran /speckit-analyze, read-only, over
5192201, and checked that each first-pass disposition was carried. It
found no CRITICAL: 2 HIGH, 1 MEDIUM and 12 LOW (V1-V15). Copilot's
first review added one MEDIUM (CP1), and the author one LOW (U5). All
are dispositioned in evidence/analyze-round-1a.md, section "Second
pass", and this commit carries the fixes.
- V1: T011 could not pass openDox-code's required validate job, whose
test_consumer_reach.py fails as soon as opendox.cli and opendox.serve
import. T011's PR moves both into NEUTRAL_MODULES, and T034 does the
rest of the file.
- V2: narrowing the consumer's validator to its three schemas reaches
three phase-1 callers that validate other kinds through it. T061 and
T019 name them, and R1Q25 now recommends (b), keeping 7.3 in phase 2
beside openDox's own validator.
- CP1: T064's note is conditional on R1Q25. Under (b), T019 restores
T061 to phase 2 and F7.1 to T063.
- U5: T043 is blocked by R1Q25 too, since (b) decides its exclusion.
- V3-V15: how the tools read "T007 (batch X)"; stale batch lists;
T045's run at both new pins; P1-K lists only tests; T021 after T011;
the note's edge count and unmapped list; the lane map; "no Arc:
trailer" wherever the plan meant it; R1Q25 (b) amends F9.1 through
batch F; R1Q25 caveats; T015's no-extra check moves to T038; "raised
or brought in".
This is bookkeeping, so it carries no Arc: trailer (R1Q20 (a)).
Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The second pass named three phase-1 callers that validate other kinds
through the consumer's validator. Measured at openXdox-code e28930bf:
snapshot.find_validator answers None from a start outside the
product, so openDox-code's workbench.py:442 gets no validator today.
It would get the narrowed one once T061's lookup resolves the
installed distribution. doxbench_contracts and the conftest helper
run the script today.
T061, R1Q25's second fact, plan.md and the analyze note now say so.
R1Q25's recommendation stays (b).
This is bookkeeping, so it carries no Arc: trailer (R1Q20 (a)).
Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The phase-1 acceptance scenario still describes openXdox-code as running only less the doc_health exclusion plus R1Q24's decision, but R1Q25 option (b) explicitly adds tests/test_snapshot.py to the exclusion. This makes the stated acceptance condition incomplete for one of the currently supported rulings; include R1Q25 and its possible exclusion in this scenario.
Copilot's review of 88a4300 found two more items.
- CP2: T061 waits on T007 (batches C and F), but the plan checks read
that as all of T007, batch E included. Batch E needs P1-K's run at
the new pins, which follows T061, so the checks could hide a
batch-level cycle in prose. T007's After is now given by batch,
batch E's run inputs T039 and T044 are edges, and the checks read
each batch as its own node (aftergraph.py, persisted as brett-wip
8874a361). The batch reading has no cycle, with or without the
Lands-with groups merged. Folding the batches back into one T007
node gives two cycles, the finding.
- CP3: US1's fourth scenario, and the spec lines like it, now say that
R1Q25 decides whether tests/test_snapshot.py runs in phase 1 or
joins the exclusion with its own reason. They do not answer it.
This is bookkeeping, so it carries no Arc: trailer (R1Q20 (a)).
Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Answer to Copilot's "previously missed" item at 88a43004 ("Include R1Q25's possible snapshot exclusion in acceptance", spec.md:181). It is fixed in 42f34ab7.
US1's fourth acceptance scenario now says that R1Q25 decides whether tests/test_snapshot.py runs in phase 1, with 7.3, or joins the declared exclusion with a reason of its own until 7.3 lands (its option (b)). The same condition now also appears in five other places:
the story's summary;
the edge cases;
FR-006's openXdox-code bullet;
the declared-exclusion entity;
SC-001.
None of them answers R1Q25. R1Q24 and R1Q25 stay open for Brett Heap. The fix is recorded as CP3 in evidence/analyze-round-1a.md.
Checks at the head: every check run is green. pytest-suite passed (21:15:20Z to 21:34:40Z), as did openxdox-consumer-gate, openspec-cli-pin, merge-master-approval, both lane-line runs, SonarCloud, clearing-dispatch-gate, former-id-arrival-gate, openreposhape-pin, release-tag-gate, signed-execution-chain-gate and wallet-validation. Sourcery skipped its review, because the diff is over its 150,000-character limit.
Copilot at the exact head: review 5327487765 at 42f34ab7 (2026-09-26T21:19:23Z).
It reports Findings: None and "Resolved since last review (1)", and lists nothing as previously missed.
Its headline is "Needs a closer look", not "Changes recommended", and it names no finding.
Threads: both threads have a reply and are resolved. Copilot's one "previously missed" item (spec.md:181) is answered in comment 5849949415.
Analyze (T006): no CRITICAL finding in either pass (evidence/analyze-round-1a.md), and every finding is dispositioned.
Process:
No Rule 6 window is needed. The PR touches no openspec/ path, and its one README line is in the Documentation index.
None of its five commits carries an Arc: trailer (R1Q20 (a)). No commit message, and not the PR body, carries a closing keyword.
… the default only before a build, refuse after (T007 batch D) (#1170)
Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
Refs #656 (CLAIMED `5850209491`)
## What
T007 **batch D** of plan 034 (`specs/034-opendox-standalone-operation/tasks.md` T007): the RN-1 amendment to the ratified `add-neutral-product-standalone-operability` (#1144, ratified in `#656` comment `5815412869`). It is made on Brett Heap's ruling RN-1 (a), `#656` comment [`5850003126`](#656 (comment)), verbatim *"go with recommendations on all the open questions"*. RN-1 as it was put is `specs/034-opendox-standalone-operation/plan.md` § "Ruling needed".
**One file moves**, the change's spec delta: `openspec/changes/add-neutral-product-standalone-operability/specs/neutral-product-standalone-operability/spec.md`, requirement 3 only.
**Before** (as ratified at `19237b91`):
> #### Scenario: A host registers its own profile
> - **WHEN** a host, consumer layer or domain descendant registers a profile
> - **THEN** the registered profile replaces the default for that process, so the default is a fallback and never a privileged path
**After:**
> #### Scenario: A host registers its own profile
> - **WHEN** a host, consumer layer or domain descendant registers a profile before the product's parser or server has been built from the default in that process
> - **THEN** the registered profile replaces the default for that process, so the default is a fallback and never a privileged path
>
> #### Scenario: A host registers a profile after a build from the default
> - **WHEN** a host, consumer layer or domain descendant registers a profile after the product's parser or server has been built from the default in that process
> - **THEN** the registration is refused rather than swapped in silently, because what was already built would keep the default while later readers took the new profile, and one process would then answer from two profiles
The WHEN's added words are RN-1 (a)'s wording, unchanged. The added scenario states R1Q3 (ii)'s refusal (`#656` comment `5817152735`).
**The record.** A dated `**AMENDED 2026-09-26 ON BRETT HEAP'S RULING RN-1 (a), AFTER RATIFICATION, BY ITS OWN RATIFIER.**` note sits in requirement 3's body, above its scenarios. It cites `5850003126`, names both amended lines, and says what did not move. This follows the precedent form for an amendment inside a spec delta: `add-requirement-ref-resolution-integrity`'s `**AMENDED 2026-09-01 ON BRETT HEAP'S RULING …**` notes, and the `**AMENDED 2026-08-25 ON BRETT'S RULING …**` note now in `openspec/specs/doc-health/spec.md`. No scenario bullet carries a citation inline. The corpus has no precedent for that, and a citation inside a WHEN would read as part of its condition.
## What does not move
- Requirement 3's first paragraph, including its SHALL sentences, stays as ratified. So do its first three scenarios and the fourth scenario's title and THEN.
- No other requirement or scenario moves, and no other file. Requirement 3 now has five scenarios, and the capability has 76. It was ratified with 75.
- By the holder's direction, this batch keeps to the spec delta. The T007 batch A and C writer holds `tasks.md` and `design.md` (claim file linked from `#656` comment `5850185859`). So the packet's other prose is not edited here. That includes the scenario counts in `proposal.md` § What Changes and § Capabilities, `design.md` § D3, and the README entry, as well as `design.md` § D5's quote of the fourth scenario and `tasks.md` 3.2's wording.
## Gates
All of these ran from this clone's root, at head `92c82564`, which is `a65230f6` (#1167) plus this commit. The baseline is a same-kind clone of `main` at `a65230f6`, with its submodules materialized in both clones:
| gate | `main` `a65230f6` | this branch |
|---|---|---|
| `OPENSPEC_TELEMETRY=0 openspec validate add-neutral-product-standalone-operability --strict` (1.13.1 on PATH) | `Change '…' is valid` | `Change 'add-neutral-product-standalone-operability' is valid`, rc 0 |
| `OPENSPEC_TELEMETRY=0 openspec validate --all --strict` | `111 passed, 1 failed (112 items)` | `111 passed, 1 failed (112 items)`, the same single failure, `add-chain-attestation` |
| `python3 scripts/validate-openspec-cli-pin.py --all` (pinned `@fission-ai/openspec@1.12.0`, content address verified) | rc 0, `0 UNDISPOSITIONED failures` | rc 0, `111 passed, 1 failed (112 items)`, `0 UNDISPOSITIONED failures`, 1 accepted exception (`add-chain-attestation`, Brett Heap 2026-09-05 "take exit 2") |
| `python3 scripts/validate-openspec-cli-pin.py --change add-neutral-product-standalone-operability` | — | rc 0, `1 passed, 0 failed (1 items)`, clean |
| `python3 scripts/doc-health.py --single-repo . --as-of 2026-09-26` | 31 critical, 26 error, 55 warning, 20 info | 31 critical, 26 error, 55 warning, 20 info. The 132 `- severity=` finding lines are IDENTICAL in both directions, and none names this change |
| `python3 scripts/proposal-support.py . verify add-neutral-product-standalone-operability` | — | `proposal support verification ok` |
| `python3 scripts/validate-sequenced-after.py . --ledger-diff` | — | `per-change sweep ledger consistent with the corpus (229 rows)`. This change's row does not move |
| `python3 scripts/validate-code-surface.py .` / `validate-target-release.py .` | — | passed / passed |
| `pytest -q tests/doc-health/test_modified_block_currency_self_gate.py tests/sequenced_after` | — | 306 passed |
| `pytest -q tests/proposal-support tests/packet_reference tests/code_surface tests/target_release` | — | 481 passed, 304 subtests passed |
`main` has since moved to `b5ec3899` (#1165), which touches only `admit-code-leg-under-pinned-root`'s `proposal.md` and spec delta, and no file of this change. CI runs on the merge ref.
The parser reads requirement 3's first line as `A neutral product whose entry points require a registered domain profile SHALL`, and it reads 5 scenarios in requirement 3 and 76 in the capability (`openspec show … --json --deltas-only`).
## Landing
This is bookkeeping, so it carries no `Arc:` trailer (R1Q20 (a)) and no closing keyword. It touches `openspec/changes/`, so it lands under a Rule 6 `LANDING` / `LANDED` window, through the holder's lander. It opens as a DRAFT.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Lane: openxfactory-4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
What this is
Phase 1's gate for plan 034 (#1155 →
c415c3d1): T003, T005 and T006, asone bookkeeping PR. Their evidence is under
specs/034-opendox-standalone-operation/evidence/, and the re-plans theycause are in the feature's own files.
openspec/path:git diff --stat c415c3d1 -- openspec/is empty. No file of File add-neutral-product-standalone-operability: open the BUILD arc, recording ten rulings #1144 changes.the README's Documentation index, which now links the three evidence notes.
That entry sits outside the OpenSpec Records block, so the PR needs no Rule 6
window.
Arc:trailer(R1Q20 (a),
5817152735).The holder lands it, on Brett Heap's word as the holder relays it: "land
#1155 when green and fan out phase 1".
T003: ARC_BASE (
evidence/arc-base.md)No repository holds an arc landing yet, so each base is that repository's
mainat 13:34:54Z. All seven were read again at 14:02:10Z, with the sameanswers.
1e4a57fb3c550339e25bb2fcc8da8e3a7817650fe28930bf052febff0c7bdd0463a72ce3c4f5e8fe36ded1cd97ca8f23b0eb9ea03d1d9def79a40d3c069fe471f2ef5d23ea4461c0e0abd9f2768b6a31c415c3d16663a8b17da5ae4f5e599f0971bf552f8fe8c4c71c4da8d363394441ad9e2c9547e540a3f088b09732e236279898b53ab9fb0f5ebc89509aThe trailer count is 0 in every repository, on the first-parent line and over
all history.
PACKET_MERGEis94b6f7f13b45c351b9142345738965c974b7dd37(#1144), which lies on openxFactory
main's first-parent line.T005: the re-measure (
evidence/remeasure-2026-09-25.md)Research R1–R15 were re-run at the then-current
mains, and openXdox-code'sWHOLE suite was run for the first time. openDox-code, the openDox root and both
spec legs are unchanged, and so is every figure the openDox-code slices use.
R10, R11, R12 and R13 moved.
tests/test_snapshot.pyafter C3. One of research R11's three failurescleared. The other two still fail, because C3's validator reaches its
schemas only through
CONTRACTS_DIR. So T061's contingency applies, and 7.3moves into phase 1.
test_snapshot_validator_home.pyis one of them, which R1Q14's answer has totake into account.
rfc3339-validatorinstalled) has292 red results. A classifier puts each in one of eleven classes. Six are
carve residue, which T040 clears (four of them new to it). Two reach
openxFactory without
doc_health, and they became R1Q24.T043 starts.
T006: analyze round 1a (
evidence/analyze-round-1a.md)The prerequisite check ran in a fresh clone. Without
SPECIFY_FEATURE_DIRECTORYit refuses (exit 1). With it, it prints this feature's
FEATURE_DIR(exit 0)./speckit-analyzeran twice: once by the author, and once by an independentread-only verifier over a copy of the same commit. A second verifier then
re-ran it over
5192201c, the commit that carried the first dispositions, andchecked that each was carried.
CRITICAL: 0, in both passes.
commit carries their fixes.
review found 1 MEDIUM (CP1), and the author 1 LOW (U5). The third commit
carries their fixes, and the fourth corrects V2's third caller against a
measurement (below).
88a43004found 2 MEDIUM. The fifth commit carriestheir fixes.
T007 (batches C and F)as all of T007, so abatch-level cycle could hide in prose. T007's
Afteris now given bybatch, and the checks read each batch as its own node.
tests/test_snapshot.py, without answering it.Each finding is dispositioned in the note. The ones that change the phase-1
fan-out:
F3.1, T020's F4.1 block and named test, T035's F9.1, and T041's F9.1. Each
moves to the task that makes it reachable, and each of the four gets a
falsifier it can pass.
opendox.serveandopendox.clido not import in alone checkout, and any run with the root conftest in play fails.
--noconftestrun.src/route_extension.py, and T011 adds abuild_servercase.validate.ymlbefore T036.RuntimeSubcommandfrom its first landing, so main neverbuilds an empty default between T016 and T038.
c415c3d1, the host'sadapter lists 794 documents under
all, and exactly the session notebook's398 under
documents. Listingallwould have changed the hosted set.opendox.cliandopendox.serveintotests/test_consumer_reach.py'sNEUTRAL_MODULES(V1). openDox-code'srequired
validatejob runs that file by name, and the file fails as soonas the two modules import. T034 re-derives the rest of it.
conftest in play.
The ones that change phase 1's openXdox-code tail and its close:
map, which puts Group 7 in phase 2. So R1Q25 puts the move to Brett.
validator to its three schemas reaches phase-1 callers that validate
other kinds through it. Two do today: openxFactory's
doxbench_contracts.delegated_semantic_validation, and the conftesthelper
test_lens.pyuses. The third, openDox-code'sworkbench.py:442,gets no validator today, because
find_validatoranswersNonefrom astart outside the product (measured at openXdox-code
e28930bf). Itwould get the narrowed one once T061's lookup resolves the installed
distribution. openDox's own validator arrives in phase 2.
exclusion declares
tests/test_snapshot.py.stand. R1Q24 now holds T061, because F7.1's second named test goes into a
contract-family file.
None of their files is an 11.1 surface. R1Q14's text and T019 now weigh
that.
batch F carries T019's amendments before T061 and T043. Batch B amends 9.2
too.
Files
evidence/arc-base.mdevidence/remeasure-2026-09-25.mdevidence/analyze-round-1a.mdtasks.mdplan.md,spec.md,clarify-questions.md,research.md,checklists/requirements.mdREADME.mdChecks run on the head
OPENSPEC_TELEMETRY=0 openspec validate --all --strict:111 passed, 1 failed (112 items). The failure isadd-chain-attestation, an accepteddisposition, and
scripts/validate-openspec-cli-pin.py --allprints0 UNDISPOSITIONED failures.scripts/validate-document-catalog.pyandscripts/validate-pin-registrations.pypass.After:graph, and none with the Lands-with groupsmerged (88 tasks; 94 nodes, since T007's six batches are nodes of their
own; 186 edges);
line;
mainhas gained only Realize admit-code-leg-under-pinned-root § 3: the widened gitlink carrier, its pinned-commit re-check, and the four legs #1163 sincec415c3d1. It touches none of this PR'spaths, and the branch merges cleanly.
Persisted tools
T005's classifier,
classify_whole_suite.py, and the updated plan-consistencychecks (
qmap.pyto R1Q25, and the widened chains inchaincheck.pyandchaindirect.py) are persisted to the lane's workspace repository,opensoft/brett-wip, in its lane-4 tool directory. They landed atc3c69e9c.2ed71007widenedqmap.pyto R1Q25, and805c6688addedtests/test_consumer_reach.py's chain (T011 → T034) for the second pass.8874a361gave the six checks one batch-aware parser,aftergraph.py(CP2).🤖 Generated with Claude Code