Skip to content

research: five post-certificate improvements with executed evidence - #31

Merged
CompleteDotTech merged 21 commits into
mainfrom
research/post-certificate-improvements-final-20260918
Sep 18, 2026
Merged

CompleteDotTech merged 21 commits into
mainfrom
research/post-certificate-improvements-final-20260918

Conversation

@CompleteDotTech

Copy link
Copy Markdown
Owner

Summary

Extends the merged PR #20 certificate study with five additional pre-execution-frozen hypotheses derived from its asymmetric evidence: source-contamination calibration remained weak, while dependence/structural certificate mechanisms were strong.

Frozen protocol commit: f923e8d41ca5953d9793fadcc3730cfe9fc70b3a
Baseline main: 9d2e4a60a6c79e616ab1d352cd5da9fe414e6c98
Generator seed: 20260923
Fresh Jev service calls: 0

Hypothesis Outcome Headline evidence
H1 — exposure-stratified source-risk stacking Not met Development selected feature weight 1.0 globally/singleton/multi; stacked Brier 0.128923, random effects 0.131444, bias -0.072629. Frozen conjunction fails.
H2 — greedy dependence-constraint acquisition Met Mean certified width 0.326563 marginal-only → 0.176527 lexicographic budget → 0.096687 greedy budget; 0 containment/widening failures.
H3 — separator-conditioned near-bipartite optimization Met 0/128 small oracle failures; exact 512/1024/2048 residual cases at 258/514/1026 while the prior generic solver stages 513/1025/2049 vertices.
H4 — reusable repair-margin query index Met 0 mismatches and 0 witness failures across 2,653 singleton queries; 77.21% fewer frozen-accounting top-level solves (74.41% using realized baseline early exits).
H5 — interval-marginal dependence certificates Met 0/128 containment failures; 20/20 designed biased-point false admissions prevented; 0 malformed certifying results.

Numerical certificate review

The first H5 implementation used padded primal LP optima as reported endpoints. Pre-PR review rejected that as insufficient for an outer numerical certificate. Commit 29debb5fc8df3fd4bc62f1505e50788a78ed8f3d replaced it with independently checked, outward-padded dual outer bounds plus primal-feasibility and dual-vs-primal consistency checks. No hypothesis, seed, generator, comparator, threshold, population, or pass/fail rule changed. The corrected suite was rerun from scratch and retained the same target outcomes/headline metrics. See graph_synthesis/post_certificates/EXECUTION_NOTES.md.

Artifacts

  • complete machine-readable results.json
  • summary.csv
  • detailed RESULTS.md
  • five evidence-derived SVG/PNG figure pairs
  • additive CURRENT_RESULTS.md section
  • regenerated manuscript/paper-current.md, HTML and PDF
  • adversarial/unit coverage
  • read-only CI that replays results and rejects generated-artifact drift

The one-time write-enabled publisher used to create committed evidence was removed before this PR. Final publisher execution run 35358502661 completed successfully.

Evidence boundary

H1 reuses already inspected saved responses. H2–H5 are controlled algorithmic experiments over supplied graph/probability fixtures. These results do not establish new semantic extraction accuracy, external-system superiority, real-world source calibration, end-to-end database latency, production policy changes, or worldwide algorithmic novelty. The strongest remaining test is still a prospectively frozen, source-disjoint, independently adjudicated corpus with external baselines.

Reproduction

python -m pip install -r graph_synthesis/post_certificates/requirements.txt
python -B -m unittest discover -s graph_synthesis/post_certificates/tests -v
python -B -m graph_synthesis.post_certificates.run --check
python -B -m graph_synthesis.post_certificates.report --figures --update-paper
python -B -m graph_synthesis.render_current_paper --output manuscript/paper-current.pdf

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-18T15:09:23.810385Z 9dbc743 Manual request
🔒 Security Review ✅ Completed 2026-09-18T14:55:07.472402Z 0ab886b PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@CompleteDotTech CompleteDotTech self-assigned this Sep 18, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0ab886b211

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/post-certificates.yml
Comment thread graph_synthesis/post_certificates/methods.py Outdated
Comment thread .github/workflows/post-certificates.yml Outdated
Comment thread graph_synthesis/post_certificates/report.py Outdated

Copy link
Copy Markdown
Owner Author

@codex review

Please review the current head 9dbc743b1207995d95f76da42421b65f5c954926. The prior four findings were addressed or verified, including the zero-atom LP edge case, temporary PDF rendering, deterministic SVG generation, and frozen-protocol ancestry.

@CompleteDotTech
CompleteDotTech merged commit 2cf11d2 into main Sep 18, 2026
51 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9dbc743b12

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

graph_synthesis/post_certificates/RESULTS.md \
graph_synthesis/post_certificates/results.json \
graph_synthesis/post_certificates/summary.csv \
graph_synthesis/post_certificates/figures/*.png \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include deterministic SVGs in the drift gate

When a committed SVG is stale or edited without changing its PNG counterpart, the workflow regenerates the SVGs during the --figures step but this diff gate checks only *.png, so the job still passes and leaves the five committed SVG artifacts inconsistent with the recorded results. The fresh evidence at this head is that report.save now fixes both the SVG hash salt and date metadata, making these outputs suitable for inclusion in this stability check.

Useful? React with 👍 / 👎.

Comment on lines +5 to +9
paths:
- "graph_synthesis/post_certificates/**"
- "CURRENT_RESULTS.md"
- "manuscript/paper-current.*"
- ".github/workflows/post-certificates.yml"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Trigger replay for changes to imported research dependencies

When a PR changes shared implementations such as certificates/{risk,lineage,graphs}.py, reliability/run.py, or adaptive/run.py, this path filter skips the post-certificate job even though post_certificates/run.py imports those modules and its committed results depend on their behavior. Such a change can therefore merge with stale results.json and narrative artifacts; include the imported dependency paths (and the archived H1 input paths) in both trigger lists.

Useful? React with 👍 / 👎.

Comment on lines +158 to +160
if residual["staged"]:
branches.append({"chosen_separator": sorted(chosen), "status": "residual_staged"})
continue

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Stage the whole optimization when any separator branch stages

When only some separator branches exceed the residual solver's capacity, this continue discards those unknown branches and the function later returns the best completed branch as fully solved, even though a skipped branch may have greater utility. For example, a zero-weight separator attached to one end of a 2,049-vertex unit-weight path makes the empty branch stage at VERTEX_CAP, while selecting the separator leaves a solvable 2,048-vertex path; the method then reports utility 1,024 as exact although excluding the separator achieves 1,025. Unless an upper bound proves a staged branch cannot win, any such branch must make the overall result staged.

Useful? React with 👍 / 👎.

Comment on lines +177 to +178
def build_margin_index(weights, edges):
base = graphs.solve(weights, edges)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Materialize edge iterables before constructing the margin index

When edges is a one-shot iterable, the initial graphs.solve consumes it while converting it to a list, so every subsequent forced-in and forced-out solve sees an empty conflict graph and the index can return incorrect classifications and witnesses. For example, passing a generator containing the conflict a-b makes the base optimum use that edge but computes b's margins as if both vertices could coexist; convert edges to a list once before the base solve and reuse that list.

Useful? React with 👍 / 👎.

Comment on lines +172 to +174
except (TypeError, ValueError, KeyError, ArithmeticError):
return {"selected": [], "staged": sorted(weights) if isinstance(weights, dict) else [], "utility": 0,
"status": "invalid_input", "branches": []}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Make malformed graph inputs return the staged result

When graph validation fails for malformed weights, this exception handler can itself raise instead of returning the advertised invalid_input stage. For example, weights={"a": 1, 2: 1} reaches this path after graph_input rejects the integer key, but sorted(weights) then raises because str and int are incomparable; a non-mapping such as ["a"] can also leak an uncaught AttributeError before this handler. Construct the failure response without sorting unvalidated keys and cover the input-shape exception so malformed hints fail closed.

Useful? React with 👍 / 👎.

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