Skip to content

docs: record h2 output-cloud geometry boundary#308

Merged
DeliciousBuding merged 1 commit into
mainfrom
docs/h2-output-cloud-geometry-20260525
May 24, 2026
Merged

docs: record h2 output-cloud geometry boundary#308
DeliciousBuding merged 1 commit into
mainfrom
docs/h2-output-cloud-geometry-20260525

Conversation

@DeliciousBuding
Copy link
Copy Markdown
Owner

Summary

  • add a CPU-only H2 output-cloud geometry scorer over the existing response cache
  • record main, seed-stability, and label-shuffle artifacts as candidate-only evidence
  • document the class-ordered sample-offset caveat and keep Platform/Runtime admitted bundle unchanged

Verification

  • C:\Users\Ding\miniforge3\envs\diffaudit-research\python.exe -X utf8 -m pytest tests/test_review_h2_output_cloud_geometry_script.py -q
  • C:\Users\Ding\miniforge3\envs\diffaudit-research\python.exe -X utf8 scripts/check_markdown_links.py
  • C:\Users\Ding\miniforge3\envs\diffaudit-research\python.exe -X utf8 scripts/check_public_surface.py
  • C:\Users\Ding\miniforge3\envs\diffaudit-research\python.exe -X utf8 scripts/export_admitted_evidence_bundle.py --check
  • C:\Users\Ding\miniforge3\envs\diffaudit-research\python.exe -X utf8 scripts/run_pr_checks.py

Copilot AI review requested due to automatic review settings May 24, 2026 21:35
@DeliciousBuding DeliciousBuding merged commit 414d368 into main May 24, 2026
2 of 3 checks passed
@DeliciousBuding DeliciousBuding deleted the docs/h2-output-cloud-geometry-20260525 branch May 24, 2026 21:37
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces the H2 output-cloud geometry candidate signal, adding a new evaluation script, unit tests, and extensive documentation updates across the roadmap and evidence logs. The changes include several result artifacts and update the project's operating state to reflect this new research-side candidate. Feedback for the new script focuses on improving robustness by adding validation to ensure at least two timesteps are present to prevent runtime errors and implementing safer dictionary access when parsing summary JSON files to handle potential null values.

if responses_f32.shape[2] < 2:
raise ValueError("output-cloud geometry needs at least two repeats per timestep")

sample_count, timestep_count, repeat_count = responses_f32.shape[:3]
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The function should validate that timestep_count is at least 2. If a cache with only one timestep is provided, the script will crash at line 92 when attempting to np.stack an empty list of centroid_pairs (since the nested loops starting at line 85 will not find any pairs). Additionally, features like within_timestep_pair_rmse_slope require at least two points to be meaningful.

Suggested change
sample_count, timestep_count, repeat_count = responses_f32.shape[:3]
sample_count, timestep_count, repeat_count = responses_f32.shape[:3]
if timestep_count < 2:
raise ValueError("output-cloud geometry needs at least two timesteps")

Comment on lines +183 to +184
raw_h2_metrics = summary.get("raw_h2", {}).get("logistic", {}).get("aggregate_metrics")
lowpass_h2_metrics = summary.get("lowpass_h2", {}).get("logistic", {}).get("aggregate_metrics")
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The current chaining of .get() calls is susceptible to an AttributeError if any intermediate key (like "raw_h2" or "logistic") exists in the JSON but has a null value. In Python, dict.get(key, default) returns None if the key is present with a null value, which causes the subsequent .get() call to fail. Using the (summary.get("key") or {}) pattern provides better robustness against such cases.

Suggested change
raw_h2_metrics = summary.get("raw_h2", {}).get("logistic", {}).get("aggregate_metrics")
lowpass_h2_metrics = summary.get("lowpass_h2", {}).get("logistic", {}).get("aggregate_metrics")
raw_h2_metrics = (summary.get("raw_h2") or {}).get("logistic", {}).get("aggregate_metrics")
lowpass_h2_metrics = (summary.get("lowpass_h2") or {}).get("logistic", {}).get("aggregate_metrics")

@DeliciousBuding DeliciousBuding review requested due to automatic review settings May 24, 2026 21:59
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