Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
383bab6
research: freeze five uncertainty and grounding falsification protoco…
CompleteDotTech Sep 18, 2026
9ba149d
research: implement five frozen uncertainty and grounding benchmarks …
CompleteDotTech Sep 18, 2026
caedf1b
research: record executed uncertainty benchmarks, five figures and fu…
github-actions[bot] Sep 18, 2026
fc53aad
research: integrate concurrent structural study without replacing its…
CompleteDotTech Sep 18, 2026
c5eb3b9
ci: fix YAML condition quoting for integrated research publication
CompleteDotTech Sep 18, 2026
3894ddd
research: record executed uncertainty benchmarks, five figures and fu…
github-actions[bot] Sep 18, 2026
82de47e
paper: hide research insertion markers in rendered manuscript
CompleteDotTech Sep 18, 2026
f4b6502
test: cover additive research-marker hiding in the full paper
CompleteDotTech Sep 18, 2026
08fa7c4
research: record executed uncertainty benchmarks, five figures and fu…
github-actions[bot] Sep 18, 2026
5ee1cc6
ci-review-snapshot: verify the fully regenerated uncertainty and grou…
CompleteDotTech Sep 18, 2026
45fb262
ci-review-snapshot: include uncertainty study in complete manuscript …
CompleteDotTech Sep 18, 2026
4972b80
research: preserve concurrent PR 19 and regenerate the combined manus…
CompleteDotTech Sep 18, 2026
9640aae
research: record executed uncertainty benchmarks, five figures and fu…
github-actions[bot] Sep 18, 2026
e8c9fcc
research: disclose overlap with concurrently developed certificate ex…
CompleteDotTech Sep 18, 2026
2fa392f
research: record executed uncertainty benchmarks, five figures and fu…
github-actions[bot] Sep 18, 2026
18436d6
research: include the concurrent novelty audit in the generated paper
CompleteDotTech Sep 18, 2026
f2a7ec4
research: record executed uncertainty benchmarks, five figures and fu…
github-actions[bot] Sep 18, 2026
101a7a8
ci-review-snapshot: validate integrated paper and explicit novelty audit
CompleteDotTech Sep 18, 2026
42d93cc
research: preserve concurrent PR 24 and rebuild the combined evidence…
CompleteDotTech Sep 18, 2026
dd43ac7
research: disclose additional overlapping mechanisms in newly merged …
CompleteDotTech Sep 18, 2026
cb9df12
research: record executed uncertainty benchmarks, five figures and fu…
github-actions[bot] Sep 18, 2026
02f5375
ci-review-snapshot: validate manuscript including PR 24 and complete …
CompleteDotTech Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/jev-multicall.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ jobs:
python -B -m graph_synthesis.structural.report --update-paper
python -B -m graph_synthesis.source_structural.report --update-paper
python -B -m graph_synthesis.assumption_aware.report --update-paper
git diff --exit-code -- experiments/jev-multicall-20260918/REPORT.md manuscript/paper-current.md CURRENT_RESULTS.md graph_synthesis/risk_control graph_synthesis/reliability graph_synthesis/structural graph_synthesis/source_structural graph_synthesis/assumption_aware
python -B -m graph_synthesis.uncertainty.report --update-paper
git diff --exit-code -- experiments/jev-multicall-20260918/REPORT.md manuscript/paper-current.md CURRENT_RESULTS.md graph_synthesis/risk_control graph_synthesis/reliability graph_synthesis/structural graph_synthesis/source_structural graph_synthesis/assumption_aware graph_synthesis/uncertainty
python -B -m graph_synthesis.render_current_paper --output "$RUNNER_TEMP/multicall-paper.pdf"
git diff --exit-code -- manuscript/paper-current.html
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
Expand Down
182 changes: 182 additions & 0 deletions .github/workflows/uncertainty-grounding.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
name: Uncertainty and grounding experiments
on:
push:
branches: [main, research/uncertainty-grounding-20260918]
pull_request:
permissions:
contents: read
concurrency:
group: uncertainty-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
execute-and-publish:
if: >-
github.event_name == 'push' && github.ref == 'refs/heads/research/uncertainty-grounding-20260918' && !startsWith(github.event.head_commit.message, 'ci-review-snapshot')
runs-on: ubuntu-latest
timeout-minutes: 20
permissions:
contents: write
env:
PYTHONDONTWRITEBYTECODE: '1'
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
ref: ${{ github.sha }}
fetch-depth: 0
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: '3.12'
- run: python -m pip install -r graph_synthesis/requirements-figures.txt -r graph_synthesis/uncertainty/requirements.txt
- name: Integrate preceding studies and the audited novelty disclosure
shell: bash
run: |
python - <<'PY'
from pathlib import Path
import re
index=Path('CURRENT_RESULTS.md').read_text(encoding='utf-8')
anchors=[a for a in re.findall(r'<!-- [A-Z][A-Z0-9_]*_RESEARCH_END -->',index) if a!='<!-- UNCERTAINTY_RESEARCH_END -->']
assert anchors, 'No preceding study anchor'
anchor=anchors[-1]
assert anchor in Path('manuscript/paper-current.md').read_text(encoding='utf-8')
p=Path('graph_synthesis/uncertainty/report.py')
text,count=re.subn(r'^ANCHOR = .+$','ANCHOR = '+repr(anchor),p.read_text(encoding='utf-8'),flags=re.M)
assert count==1
assert Path('graph_synthesis/uncertainty/NOVELTY_AUDIT.md').is_file()
if 'NOVELTY_AUDIT.md' not in text:
lines=text.splitlines(keepends=True)
positions=[i for i,line in enumerate(lines) if line.strip().startswith('return ') and '.join(out)' in line]
assert len(positions)==1
lines[positions[0]:positions[0]]=[
" audit = (HERE / 'NOVELTY_AUDIT.md').read_text(encoding='utf-8').strip()\n",
" position = out.index('| Hypothesis | Frozen primary target | Outcome | Evidence population |')\n",
" out[position:position] = [audit, '']\n"]
text=''.join(lines)
p.write_text(text,encoding='utf-8',newline='\n')
p=Path('graph_synthesis/uncertainty/EXECUTION_NOTES.md')
text=p.read_text(encoding='utf-8')
heading='## Integration after '+anchor
if heading not in text:
text+='\n'+heading+'\n\nConcurrent PR #19 added source-aware and structural experiments after PR #18. Both are preserved in the combined manuscript. This extension is inserted after the final study in CURRENT_RESULTS.md. The original hypothesis baseline remains a62a3257645d8e35cd4e45be53bfa9511d27724b; no generator, algorithm, seed, endpoint or threshold changed. All five numerical result blocks are compared byte-for-value with the earlier authoritative run. Source/protocol/build hashes and the paper are regenerated. The full-manuscript CI pipeline now regenerates this extension as well as every prior section, rather than dropping it. Reader-facing research markers are hidden by the renderer, covered by two additional tests. These presentation/integration corrections do not alter scientific observations. The separately documented post-execution novelty audit explicitly identifies overlap with concurrent PR #20; these are not five independently unprecedented algorithms.\n'
p.write_text(text,encoding='utf-8',newline='\n')
PY
- name: Execute frozen benchmarks, unit tests and independent replay
shell: bash
run: |
set -euo pipefail
python -B -m graph_synthesis.uncertainty.run | tee graph_synthesis/uncertainty/execution.log
python -B -m unittest discover -s graph_synthesis/uncertainty/tests -v 2>&1 | tee graph_synthesis/uncertainty/tests.log
python -B -m graph_synthesis.uncertainty.run --check
python -B -m graph_synthesis.verify --output "$RUNNER_TEMP/uncertainty-original-inventory.json"
cp "$RUNNER_TEMP/uncertainty-original-inventory.json" graph_synthesis/uncertainty/original-inventory.json
python -B -m graph_synthesis.uncertainty.report --figures --update-paper
python -B -m graph_synthesis.render_current_paper --output manuscript/paper-current.pdf
- name: Preserve preceding studies and all previously executed numerical outcomes
shell: bash
run: |
python - <<'PY'
from pathlib import Path
import json,os,re,subprocess
from graph_synthesis.uncertainty.report import START, END
def strip(text):
return re.sub(re.escape(START)+r'.*?'+re.escape(END)+r'\s*','',text,flags=re.S)
for path in ('CURRENT_RESULTS.md','manuscript/paper-current.md'):
before=subprocess.check_output(['git','show',os.environ['GITHUB_SHA']+':'+path]).decode('utf-8')
after=Path(path).read_text(encoding='utf-8')
assert strip(before)==strip(after), 'Preceding text changed: '+path
before=json.loads(subprocess.check_output(['git','show','08fa7c4673bc7084574951ee2b0a426288087852:graph_synthesis/uncertainty/results.json']))
after=json.loads(Path('graph_synthesis/uncertainty/results.json').read_text(encoding='utf-8'))
for i in range(1,6):
assert before[f'H{i}']==after[f'H{i}'],f'H{i} changed during manuscript integration'
assert 'Do not describe this suite as five independently novel' in Path('manuscript/paper-current.md').read_text(encoding='utf-8')
print('All preceding study text and all five numerical result blocks preserved; novelty overlap disclosed')
PY
- name: Commit generated evidence only to this research branch
shell: bash
run: |
set -euo pipefail
git config user.name 'github-actions[bot]'
git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
git add graph_synthesis/uncertainty CURRENT_RESULTS.md manuscript/paper-current.md manuscript/paper-current.pdf manuscript/paper-current.html manuscript/paper-current.build.json
if ! git diff --cached --quiet; then
git commit -m 'research: record executed uncertainty benchmarks, five figures and full updated manuscript'

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 Stop generated commits from retriggering the publisher

On pushes to research/uncertainty-grounding-20260918, this generated commit is immediately pushed back to the same branch, but the job condition only suppresses messages beginning with ci-review-snapshot. The resulting research: record ... push therefore launches this job again; because the committed graph_synthesis/uncertainty/tests.log contains variable elapsed timing from line 53 and the entire directory is staged, subsequent runs can keep producing another commit and create an unbounded workflow/commit loop. Use the excluded prefix for this commit, skip bot-authored pushes, or avoid committing nondeterministic logs.

Useful? React with 👍 / 👎.

git push origin HEAD:research/uncertainty-grounding-20260918
fi
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: uncertainty-review-package
path: |
graph_synthesis/uncertainty/
graph_synthesis/render_current_paper.py
manuscript/paper-current.pdf
manuscript/paper-current.md
manuscript/paper-current.html
manuscript/paper-current.build.json
CURRENT_RESULTS.md
retention-days: 14
replay:
if: github.event_name == 'pull_request' || github.ref == 'refs/heads/main'
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 15
defaults:
run:
shell: bash
env:
PYTHONDONTWRITEBYTECODE: '1'
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: '3.12'
- run: python -m pip install -r reproduction/requirements-jev.txt -r graph_synthesis/uncertainty/requirements.txt
- name: Replay all results and verify source, protocol, archive and PDF provenance
run: |
python -B -m unittest discover -s graph_synthesis/uncertainty/tests -v
python -B -m graph_synthesis.uncertainty.run --check
python -B -m graph_synthesis.verify --output "$RUNNER_TEMP/uncertainty-original.json"
python - <<'PY'
import hashlib,json
from pathlib import Path
sha=lambda p:hashlib.sha256(Path(p).read_bytes()).hexdigest()
manifest=json.loads(Path('graph_synthesis/uncertainty/artifact-manifest.json').read_text(encoding='utf-8'))
for path,want in manifest['sha256'].items():
assert sha(path)==want,path
r=json.loads(Path('graph_synthesis/uncertainty/results.json').read_text(encoding='utf-8'))
assert r['protocol_sha256']==sha('graph_synthesis/uncertainty/PROTOCOL.md')
assert r['fresh_service_calls']==0 and r['new_scientific_documents']==0
for name,want in r['source_sha256'].items():
assert sha('graph_synthesis/uncertainty/'+name)==want,name
build=json.loads(Path('manuscript/paper-current.build.json').read_text(encoding='utf-8'))
assert sha('manuscript/paper-current.md')==build['source_sha256']
assert sha('graph_synthesis/render_current_paper.py')==build['renderer_sha256']
Comment on lines +155 to +157

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 Regenerate the renderer-bound paper artifacts

The renderer changed in this commit, but manuscript/paper-current.build.json still records the previous renderer SHA-256 (805bb27a... rather than the committed file's b1ecb302...). Consequently both Ubuntu and Windows replay jobs unconditionally fail this assertion. Re-render and commit the PDF, HTML, and build manifest alongside the renderer change.

Useful? React with 👍 / 👎.

assert sha('manuscript/paper-current.pdf')==build['pdf_sha256']
print('Source, protocol, result, archive and full-paper provenance verified')
PY
git diff --exit-code
figures-and-paper:
if: github.event_name == 'pull_request' || github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
timeout-minutes: 15
env:
PYTHONDONTWRITEBYTECODE: '1'
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
with:
python-version: '3.12'
- run: python -m pip install -r graph_synthesis/requirements-figures.txt -r graph_synthesis/uncertainty/requirements.txt
- name: Regenerate charts and manuscript without artifact drift
run: |
python -B -m graph_synthesis.uncertainty.report --figures --update-paper
git diff --exit-code -- graph_synthesis/uncertainty manuscript/paper-current.md CURRENT_RESULTS.md
Comment on lines +179 to +180

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 Commit the section that the no-drift check expects

At this commit neither CURRENT_RESULTS.md nor manuscript/paper-current.md contains the uncertainty section, so running this exact report command inserts 8 and 137 lines respectively. The following git diff --exit-code therefore fails on every pull-request and main-branch run; commit the generated section before enforcing a clean regeneration.

Useful? React with 👍 / 👎.

python -B -m graph_synthesis.render_current_paper --output "$RUNNER_TEMP/uncertainty-paper.pdf"
git diff --exit-code -- manuscript/paper-current.html
8 changes: 8 additions & 0 deletions CURRENT_RESULTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,14 @@ Marginal-only lineage bounds tighten 4.96%, missing the frozen 10% target. Query

<!-- ASSUMPTION_AWARE_RESEARCH_END -->

<!-- UNCERTAINTY_RESEARCH_START -->

## Five uncertainty and grounding improvements

[Executed report](graph_synthesis/uncertainty/RESULTS.md), [frozen protocol](graph_synthesis/uncertainty/PROTOCOL.md), [five figures](graph_synthesis/uncertainty/figures/) and [complete updated paper](manuscript/paper-current.pdf). H1 met its frozen target; H2 met its frozen target; H3 met its frozen target; H4 met its frozen target; H5 met its frozen target. All five are controlled algorithmic/decision-theoretic tests, not new Jev accuracy observations. Dependence uncertainty, repair ambiguity, query-directed review, collateral-aware retraction and recursive grounding are tested with explicit failure controls. No fresh Jev calls, new scientific documents, globally unprecedented algorithm claim or production-policy changes.

<!-- UNCERTAINTY_RESEARCH_END -->

Read the [updated full paper](manuscript/paper-current.md), [PDF](manuscript/paper-current.pdf), or [HTML](manuscript/paper-current.html).

The fresh full Jev run does **not** reproduce the original interval-based entity improvement: its selected-minus-baseline macro-F1 interval includes zero. Entity accuracy still rises descriptively from 405/413 to 408/413; relation accuracy rises from 286/339 to 290/339, also without a resolved macro-F1 effect. This repeats previously inspected data; it is not independent validation.
Expand Down
8 changes: 7 additions & 1 deletion graph_synthesis/render_current_paper.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@

NUMERIC = re.compile(r'[+-]?(?:\d[\d,]*(?:\.\d*)?|\.\d+)%?')
TABLE_CSS = '\nth { overflow-wrap: normal; }\ntd.numeric { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }\n'
RESEARCH_MARKER = re.compile(r'<!--\s*[A-Z][A-Z0-9_]*_RESEARCH_(?:START|END)\s*-->')


def strip_research_markers(markdown):
"""Keep additive source anchors out of reader-facing HTML and PDF output."""
return RESEARCH_MARKER.sub('', markdown)


def format_numeric_cells(body):
Expand Down Expand Up @@ -37,7 +43,7 @@ def render(output):
from .render_paper import CSS
root = Path(__file__).resolve().parents[1]
source = root / "manuscript/paper-current.md"
markdown = re.sub(r"<!-- (?:FOLLOWUP|ADAPTIVE|RISK_CONTROL|STRUCTURAL|RELIABILITY|SOURCE_STRUCTURAL|ASSUMPTION_AWARE)_RESEARCH_(?:START|END) -->", "", source.read_text(encoding="utf-8"))
markdown = strip_research_markers(source.read_text(encoding="utf-8"))
validate_images(markdown, source, root)
body = MarkdownIt("commonmark", {"html": False}).enable("table").render(markdown)
body = re.sub(r"<p>(<img [^>]+>)</p>", r"<figure>\1</figure>", body)
Expand Down
19 changes: 19 additions & 0 deletions graph_synthesis/uncertainty/EXECUTION_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Execution and correction record

The remote protocol was committed as `383bab6f559c7f14525ddcef2275f3a816c9caa3` before the first local benchmark run. The first local run exercised all five frozen fixture generators and met all five conditional engineering targets. Its workspace did not contain the full repository or a local protocol copy, so its temporary metadata had a null protocol hash; that output is not the authoritative archived run. The full repository run records the committed protocol hash and is independently replayed in CI.

During unit-test authoring, two tests initially called existing oracle helpers with the wrong signature/return shape (the finite-model oracle accepts two arguments, and the retraction oracle returns a tuple). Those test calls were corrected. No benchmark generator, seed, primary endpoint, threshold, algorithm or unfavorable control was changed in response to observed outcomes.

The numerical LP output is recorded to 12 decimal places for deterministic evidence serialization. Full primary comparisons occur before rounding. Separate rational small-case extrema, finite subset oracles and model-interpretation enumeration remain in the suite. Synthetic fixture counts and repeated snapshot occurrences are not counted as new Jev observations.

## Concurrent PR #18 integration

PR #18 merged after this protocol was frozen and while these benchmarks were executing. Its structural study is preserved in full. The reporting anchor was moved after its section so both generators are idempotent, and the paper was rebuilt from current main rather than overwriting the concurrent study. The hypothesis baseline remains a62a3257645d8e35cd4e45be53bfa9511d27724b. No benchmark generator, algorithm, seed, endpoint or threshold changed. Source hashes are refreshed because the report placement changed. PR #18 also studies dependence-robust group-review envelopes and independent-primitive exact lineage; those share prior-art foundations with this extension but do not supply its unknown-dependence DNF linear programs, all-optimal-repair backbone, downstream query-loss objective, protected minimum-collateral plans or grounded recursive-withdrawal experiments. Novelty remains bounded to the reviewed baseline, not an exhaustive worldwide or concurrent-branch claim.

## Integration after <!-- SOURCE_STRUCTURAL_RESEARCH_END -->

Concurrent PR #19 added source-aware and structural experiments after PR #18. Both are preserved in the combined manuscript. This extension is inserted after the final study in CURRENT_RESULTS.md. The original hypothesis baseline remains a62a3257645d8e35cd4e45be53bfa9511d27724b; no generator, algorithm, seed, endpoint or threshold changed. All five numerical result blocks are compared byte-for-value with the earlier authoritative run. Source/protocol/build hashes and the paper are regenerated. The full-manuscript CI pipeline now regenerates this extension as well as every prior section, rather than dropping it. Reader-facing research markers are hidden by the renderer, covered by two additional tests. These presentation/integration corrections do not alter scientific observations. Package-level novelty remains scoped to the reviewed frozen baseline; no worldwide or unreviewed concurrent-branch novelty claim is made.

## Integration after <!-- ASSUMPTION_AWARE_RESEARCH_END -->

Concurrent PR #19 added source-aware and structural experiments after PR #18. Both are preserved in the combined manuscript. This extension is inserted after the final study in CURRENT_RESULTS.md. The original hypothesis baseline remains a62a3257645d8e35cd4e45be53bfa9511d27724b; no generator, algorithm, seed, endpoint or threshold changed. All five numerical result blocks are compared byte-for-value with the earlier authoritative run. Source/protocol/build hashes and the paper are regenerated. The full-manuscript CI pipeline now regenerates this extension as well as every prior section, rather than dropping it. Reader-facing research markers are hidden by the renderer, covered by two additional tests. These presentation/integration corrections do not alter scientific observations. The separately documented post-execution novelty audit explicitly identifies overlap with concurrent PR #20; these are not five independently unprecedented algorithms.
Loading
Loading