Skip to content

fix(preservation): qualify the imported source and retire obsolete effects - #3

Merged
hyperpolymath merged 8 commits into
mainfrom
docs/import-provenance-qualification
Nov 5, 2026
Merged

hyperpolymath merged 8 commits into
mainfrom
docs/import-provenance-qualification

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Scope

Preserve the private Poly SSG history, retain useful design material, and make the staging repository's real CI evidence reviewable before closure. The extracted import 9302dfcc3aedb7c52edf2867a2fcbf2c735878b4 has the exact original subtree 6a8aa93222c8261c3e81b37acd7d1bd59f42bdc4 from Polystack e1af43bb102106b08cb694402bd1c04b96f1677c. Preservation verifies ancestry, tree identity and connectivity; it does not claim runtime parity or security qualification.

Changes

  • Activate a real preservation gate, repair the output validator, and separate historical README claims from current evidence.
  • Keep full CodeQL, Semgrep and Scorecard analysis with complete SARIF artifacts. Hosted code-scanning upload is unavailable for this private repository. Classify historical findings only when every location matches the exact imported path, blob and mode in an enumerated unsupported area. New/current/unlocated findings still fail, and historical findings remain recorded as unremediated.
  • Restore canonical Hypatia and bounded full-history secret scanning. Secrets receive no historical-source exception. Add meaningful negative policy and workflow-parser controls and a security reporting policy.
  • Preserve four obsolete deployment/propagation workflows byte-for-byte under docs/legacy-workflows/ and remove their active effect entrypoints. No forge dispatch, remote history rewriting or repository archival has been performed.
  • Record finite dispositions in docs/RETENTION-PLAN.adoc and docs/WORKFLOW-DISPOSITION.adoc. The public, original comparison notes are separately merged in docs: retain a practical method for comparing SSGs stuff-of-awe/awesome-ssgs#2; private code and results remain private.

Validation and closure

Local verification includes 18 preservation/SARIF scenarios, parser controls against floating and spoofed action refs, all 15 remaining workflow contracts, actionlint for modified workflows, Bash syntax and exact archival byte comparisons. Final hosted scans and substantive bot review are required at the current head; prior Semgrep's 313 findings are retained pending actual final disposition, not declared fixed.

Tracked by qualification issue #2 and Polystack preservation blocker #30. This is a preservation and retirement qualification, not a release. Do not merge while CI is disabled or required evidence/reviews remain unresolved.

@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Explain Change →

Caution

Review failed

The pull request is closed.

Summary

Summary by CodeRabbit

  • Workflow
    • CI now checks source preservation and output validation on pull requests, pushes to main and manual runs; build, runtime and deployment qualification remain outstanding.
    • Security scans retain reports as downloadable artefacts and classify findings, with current findings blocking checks.
    • Workflow checks now enforce language and workflow configuration policies.
  • Documentation
    • Added guidance on source preservation, retention, retirement, workflow findings and security reporting.
    • Clarified that preservation does not establish runtime qualification or imply deployment or release approval.
  • Validation
    • Output checks now handle unreadable, empty and binary files, and report when no HTML files are found.

The PR replaces the multi-job CI workflow with preservation checks. It adds Git-object and finding-disposition controls, revises scanner and policy workflows, and updates repository records to describe preservation status, provenance, and proposed retention steps.

Changes: Preservation staging and verification

Layer / File(s) Summary
Preservation and output-validation controls
scripts/verify-preservation.sh, scripts/preservation-scope.sh, scripts/review-preservation-sarif.sh, scripts/preservation-sarif-locations.jq, scripts/validate-output.sh, scripts/check-preserved-language-policy.sh, scripts/verify-archived-workflows.sh, tests/*controls.sh
The scripts verify imported Git objects and preserved source objects, classify SARIF findings, check archived workflow bytes, and validate output files heuristically. Control tests exercise accepted, rejected, and malformed cases.
Preservation CI wiring
.github/workflows/ci.yml
CI checks out the selected commit with full history, runs preservation and output-validation controls, and adds a receipt to the step summary.
Scanner and language-policy workflows
.github/workflows/codeql.yml, .github/workflows/scorecard.yml, .github/workflows/semgrep.yml, .github/workflows/hypatia-scan.yml, .github/workflows/secret-scanner.yml, .github/workflows/language-policy.yml, .github/workflows/rsr-antipattern.yml
The workflows revise permissions, runners, timeouts, checkout, and scanner execution. CodeQL, Semgrep, and Scorecard classify findings and retain reports as artifacts. Language-policy workflows invoke preservation-policy scripts.
Workflow contract checks
.github/workflows/workflow-linter.yml, scripts/lint-workflow-contracts.sh, tests/workflow-contract-controls.sh
The linter checks workflow structure, permissions, SPDX headers, and pinned action or container references. Its controls test valid and rejected references.
Status, provenance, and retention records
README.adoc, docs/PRESERVATION.adoc, docs/RETENTION-PLAN.adoc, docs/WORKFLOW-DISPOSITION.adoc, SECURITY.md, docs/legacy-workflows/*, .github/dependabot.yml
The records describe historical or unqualified repository material, source provenance, scanner evidence handling, proposed retention and completion steps, and outstanding decisions. Former workflow text is retained as inert documentation. Dependabot adds seven-day cooldowns.

Estimated code review effort: 4 (Complex) | ~60 minutes

Change: Other

Merge Risk: Moderate · up to cb772

Restore Gitleaks pull-request access before merging: private pull requests currently fail before that scan runs. Correct Scorecard permissions, the narrow validation gaps and the misleading Semgrep publication receipt as well.

- [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Free
  • Run ID: 0fc6bd9d-5987-43f4-814d-df1d6776f129
Commits

Reviewing files that changed from the base of the PR and between f82227b and d15c5d0.

Files selected for processing: 21

  • .github/dependabot.yml
  • .github/workflows/codeql.yml
  • .github/workflows/hypatia-scan.yml
  • .github/workflows/language-policy.yml
  • .github/workflows/rsr-antipattern.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/secret-scanner.yml
  • .github/workflows/semgrep.yml
  • .github/workflows/workflow-linter.yml
  • SECURITY.md
  • docs/WORKFLOW-DISPOSITION.adoc
  • docs/legacy-workflows/deploy-casket.yml.txt
  • docs/legacy-workflows/deploy-ddraig.yml.txt
  • docs/legacy-workflows/instant-sync.yml.txt
  • docs/legacy-workflows/mirror.yml.txt
  • scripts/check-preserved-language-policy.sh
  • scripts/lint-workflow-contracts.sh
  • scripts/preservation-scope.sh
  • scripts/review-preservation-sarif.sh
  • tests/preservation-policy-controls.sh
  • tests/workflow-contract-controls.sh

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 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-11-05T19:47:38.492309Z cb7721c New commits
ℹ️ 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.

@coderabbitai

coderabbitai Bot commented Nov 3, 2026

Copy link
Copy Markdown

Add Carrot credits or activate Agent usage billing to use Autofix

@coderabbitai

coderabbitai Bot commented Nov 3, 2026

Copy link
Copy Markdown

CodeRabbit Verify cannot start because this repository is not enabled for PR Verify. Enable PR testing in Verify settings.

CodeRabbit Verify can be triggered again using the @coderabbitai verify command.

Bind preservation checks to the retained source tree and current head. Add independent provenance and output-validation controls, repair Semgrep upload permissions and Scorecard provisioning, and record finite retention destinations without claiming runtime qualification.
Keep complete security analyses and bind historical findings to exact imported objects. Replace broken policy and scanner callers with checked contracts, document unsupported source honestly, and preserve four obsolete deployment/propagation workflows byte-for-byte as inert records. No forge dispatch, remote history rewrite, or repository archival is performed by this commit.
@hyperpolymath hyperpolymath changed the title docs: record history-preserving extraction and staging qualification gate fix(preservation): qualify the imported source and retire obsolete effects Nov 4, 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: da16d4c163

ℹ️ 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".

Remove a duplicate TruffleHog --fail argument because the pinned upstream action already supplies it. Scope Hypatia security-events write to its scan job, preserving required read grants. Add seven-day cooldowns to the existing four Dependabot version-update entries. Preserve all historical raw findings and exact-source qualification; no classifier broadening.

Validation: actionlint and existing workflow-parser controls; parsed YAML comparison; actual retained SARIF/receipt equality and original import location qualification. Hosted new-head reruns remain required.

@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: d15c5d0805

ℹ️ 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 scripts/review-preservation-sarif.sh Resolved
Comment thread scripts/lint-workflow-contracts.sh Resolved
…rchives

Check secondary SARIF evidence and reject unresolved references before granting a historical disposition. Require immutable job and service container images, state the source-object language boundary precisely, and restore all five archived workflows to their original Git blobs with regression controls.
Use one named constant for the observed Scorecard placeholder while retaining all missing-location and mixed-source rejection controls.
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
@sonarqubecloud

sonarqubecloud Bot commented Nov 5, 2026

Copy link
Copy Markdown

❌ The last analysis has failed.

See analysis details on SonarQube Cloud

@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@hyperpolymath
hyperpolymath merged commit ddb786b into main Nov 5, 2026
23 of 25 checks passed
@hyperpolymath
hyperpolymath deleted the docs/import-provenance-qualification branch November 5, 2026 19:39

@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: cb7721c7e5

ℹ️ 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 on lines +11 to +13
permissions:
contents: read
actions: read

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 Grant Scorecard the private-repository read permissions

On the newly added pull_request runs for this documented private repository, this permissions block makes issues, pull-requests, and checks unavailable to the default token. The Scorecard action's private-repository guidance says to grant those reads so it can query commits and detect configured SAST tools, otherwise API calls can fail with Resource not accessible by integration; add the documented read permissions so the new PR check produces a complete Scorecard report rather than failing or reporting gaps.

Useful? React with 👍 / 👎.

# Only this observed repository-level condition has a staging disposition.
# Missing security policy and every other Scorecard rule remain actionable.
if [[ "$reporter" == scorecard && "$rule" == FuzzingID ]] &&
jq -e '(.message.text | startswith("score is 0: project is not fuzzed:")) and

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 Match the actual Scorecard fuzzing message

When Scorecard reports the expected unfuzzed-repository result, its SARIF message starts with score is 0: project is not fuzzed followed by a newline and remediation text, not the colon required here, as shown in the published Scorecard SARIF output. Consequently the sole permitted FuzzingID advisory is always counted as actionable and the Scorecard workflow fails for this intentionally unfuzzed preservation repository; match the actual message boundary and add that real form to the fixture.

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.

3 participants