In-place E/I: G2 needs a changed seed contract object, G4 skips it; regenerate G0009/G0013/G0016/G0023 as G0188-G0191

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
Kral
2026-10-03 06:33:33 +02:00
parent 3550f0b651
commit fb576b0954
7 changed files with 33 additions and 11 deletions

View File

@@ -267,12 +267,21 @@ class Runner:
if missing:
g2 = False
g2_detail.append(f"{c['name']}: CDS elements missing: {sorted(missing)}")
# Categories E and I: the contract object is a seed object (refactor or fix in place). It must
# change (else the null agent passes on the legacy code), and it is not out of scope.
contract_upper = {c["name"].upper() for c in contract}
for c in contract:
if c["name"].upper() in seed_src and c["type"] != "FUGR":
now = self._source(mcp, c["type"], c["name"], c.get("functionGroup"))
if _norm(now) == _norm(seed_src[c["name"].upper()]):
g2 = False
g2_detail.append(f"{c['name']}: the seed object is not changed")
g["G2_contract"] = g2 and g["G1_active"]
rep["contract_check"] = {"g1": g1, "g2": g2_detail}
g["G4_out_of_scope"] = all(
_norm(self._source(mcp, o["type"], o["name"], o.get("functionGroup")))
== _norm(seed_src[o["name"].upper()])
for o in seed)
for o in seed if o["name"].upper() not in contract_upper)
atc = []
for c in contract:
if g["G1_active"]: