Skip to content

chore(sync): develop → main — GT-654 and GT-655 closed - #434

Merged
beyondnetPeru merged 1 commit into
mainfrom
develop
Aug 4, 2026
Merged

chore(sync): develop → main — GT-654 and GT-655 closed#434
beyondnetPeru merged 1 commit into
mainfrom
develop

Conversation

@beyondnetPeru

Copy link
Copy Markdown
Contributor

Brings #433 to main.

GT-654 — the three surfaces now answer /health in the ADR-0073 envelope with OK. The row was registered as a decision, and measuring who reads the body collapsed it: the Helm probes use httpGet, the Dockerfiles curl -f, k6 checks r.status, RoboSoft checks hr.ok. Guard 62 keeps a fourth shape from landing.

GT-655pattern-list, pattern-get and pattern-list-by-topology are bound and invoked on all three surfaces (executed 48 → 51, invocations 66 → 75). satellite-create stays exempt with its reason in bindings.ts: it provisions a live GitHub repository, so binding it would have CI create real repos on every run.

Two corrections CI forced, both recorded in the catalog rather than quietly fixed: the "nothing reads the body" claim missed examples/mcp-test.js, and GT-655's closure listed a gitignored evidence path that cannot resolve on a clean checkout.

Board 637 → 639 done, 6 → 4 pending.

🤖 Generated with Claude Code

…bound (#433)

* feat(core): every surface answers /health in one shape, and three orphan operations get bound

GT-654. The three services of one product answered /health in three
shapes, and the verdict literal differed in case as well. The row was
registered as a decision — and measuring it collapsed the decision:
NOTHING reads the body. Helm probes use httpGet, the Dockerfiles use
`curl -f`, k6 checks `r.status === 200`, RoboSoft checks `hr.ok`. The
caution the row carried, "the probes are configured against a shape", was
wrong. All three now emit the ADR-0073 envelope with `OK`.

mcp routes its three probes through `success()` from `common/envelopes` —
the helper every tool result on that surface already used, with only
health outside it. agent-runtime builds the envelope in its controller.
core-api was already enveloped by its global interceptor.

Guard 62 keeps a fourth shape from landing, with 8 unit tests, watched
failing on a bare object, a missing schemaVersion, and a lowercase
verdict inside an otherwise correct envelope. Its first version scanned
raw text and flagged the handler's own header, which documents the shape
it replaced — the second time this wave a guard fired on its own
documentation, so comments are stripped and a test pins it.

GT-655. `pattern-list`, `pattern-get` and `pattern-list-by-topology` are
declared on all three surfaces and were invoked by nothing; they now
carry bindings. Executed operations 48 -> 51, surface invocations
66 -> 75, and `uncoveredTriangleOps` drops from four entries to one.

Binding them reported two divergences and BOTH were the instrument: the
first run had `pattern-get` failing on all three surfaces with three
different error codes and `pattern-list-by-topology` disagreeing with
MCP. Both were defects in the bindings just written — `cqrs` is not a
pattern id (they are `PAT-0001`…) and the MCP tool takes `topology`, not
`topologyId`. Corrected against the real catalog and the real tool
schema, the suite reports zero findings. Fourth time in this wave that a
reported divergence belonged to the measuring instrument.

`satellite-create` stays unbound ON PURPOSE, with the reason where the
next reader looks: it provisions a live GitHub repository and writes the
local registry, so binding it as-is would have CI create real
repositories on every run — a test that damages the world it measures.
`uncoveredTriangleOps` keeps listing it rather than the exemption being
silent.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(gaps): close GT-654 and GT-655 with their evidence

Closure records stamped with the commit that carries the change, plus the
derived chain regenerated: maturity reconciled, executive summary at a
fixed point, and the E2E scenario board re-rendered — it now shows one
uncovered operation instead of four, and zero findings.

Both rows carry what the wave taught rather than only what it did:

GT-654 records that the caution it was registered with was wrong.
Measuring who reads /health turned an open decision into a forced one —
nothing reads the body, so unifying on the envelope broke no consumer.

GT-655 records that binding three orphan operations produced two
divergences that were both defects in the bindings themselves, and that
`satellite-create` stays exempt with its reason in `bindings.ts` rather
than silently absent.

Board 637 -> 639 done, 6 -> 4 pending, both languages. Guards: 08 (653
gaps, 629/629 sections, 621 closure records), 42 (75 classified), 43
(51/51 red on the empty fixture), 46 fixed point, governance 17/17.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(gaps): CI found a consumer this survey had missed, and an evidence path that cannot resolve

Two failures, both mine, both the kind a local green cannot show.

The claim "nothing reads the /health body" was checked against the Helm
probes, the Dockerfiles, k6 and RoboSoft — and missed
`src/sdk/cli/examples/mcp-test.js`, which asserted a bare
`body.status === 'ok'`. CI failed with exactly that: `/health: body.status
was undefined`. The decision stands, because a test asserting a shape is
what gets updated when the shape changes deliberately, and it now asserts
`data.status === 'OK'` plus `success === true`. What does not stand is
the strength of the claim, so the catalog now says "almost nothing" and
names both consumers, including the one this survey missed.

GT-655's closure listed `src/tests/exploration/.out/coverage.json` as
evidence. That path is GITIGNORED — it exists on this laptop and in no
clean checkout, so `08-validate-tracking` failed on a fresh runner while
passing here. Evidence is now the tracked `bindings.ts` and the parity
matrix; the coverage numbers stay checkable because the validationCommand
regenerates the file and then asserts 51 executed and one uncovered.

That is the second time this session a local green came from gitignored
state, and it is written in this repository's own feedback that it would.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@beyondnetPeru
beyondnetPeru requested a review from a team as a code owner August 4, 2026 22:34
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

📊 Bilingual Coverage Impact

PR Changes

  • Paired EN/ES files modified: 4
  • New EN files needing ES translation: 0

Repository Coverage

Metric Value
Total EN files 527
Total ES files 501
Paired files 0
Coverage 0%

Good: All EN changes have ES counterparts.


Generated by GitHub Actions

@beyondnetPeru
beyondnetPeru merged commit b95144c into main Aug 4, 2026
69 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant