Skip to content

docs: add Signed commits section to CONTRIBUTING - #3

Merged
hyperpolymath merged 1 commit into
mainfrom
docs/signing-policy-d218
Oct 1, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
docs/signing-policy-d218

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Adds a Signed commits section to this repo's CONTRIBUTING, per owner ruling D218. The estate policy is docs/SIGNING-POLICY.adoc in hyperpolymath/standards.

This repo's default branch is covered by the zero-bypass Require-Signed-Commits ruleset, and rebase-merge is off. The section tells contributors what that requires:

  • People and interactive agents sign with an SSH signing key.
  • Apps, bots and workflows write through the API, so GitHub signs their commits.
  • PRs are merged with squash.

If the file already had its own signing section, that section is replaced in place instead of adding a second one. Lines elsewhere that told people to sign with GPG are changed to match the policy (SSH for people).

This is a docs-only change. The commit was created through createCommitOnBranch, so GitHub signs it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WRvDivYwLSeVCJUrfjic3f

Owner ruling D218. See docs/SIGNING-POLICY.adoc in hyperpolymath/standards.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WRvDivYwLSeVCJUrfjic3f
Copilot AI balanced review requested due to automatic review settings October 1, 2026 05:54

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 458ae86e-daf1-4658-9818-a0f89d6401fb

📥 Commits

Reviewing files that changed from the base of the PR and between 14ff7d1 and 705493b.

📒 Files selected for processing (2)
  • .github/CONTRIBUTING.md
  • CONTRIBUTING.adoc

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

📜 Recent review details
⏰ Context from checks skipped due to timeout. (28)
  • GitHub Check: hypatia / Hypatia Neurosymbolic Analysis
  • GitHub Check: call-estate-audit / estate-audit
  • GitHub Check: scan / rust-secrets
  • GitHub Check: scan / shell-secrets
  • GitHub Check: scan / gitleaks
  • GitHub Check: check
  • GitHub Check: actions.lock is in sync with the workflow YAML
  • GitHub Check: 🟡 CHECK: Groove manifest check
  • GitHub Check: Validate eclexiaiser manifest
  • GitHub Check: RSR oracle — dogfood this repo
  • GitHub Check: Validate K9 contracts
  • GitHub Check: Canon lockstep
  • GitHub Check: openssf-compliance
  • GitHub Check: Validate DEED manifests
  • GitHub Check: 🔴 GATE: Empty-linter (invisible characters)
  • GitHub Check: 🟡 CHECK: Validate K9 contracts
  • GitHub Check: Patch Bridge CVE triage
  • GitHub Check: 🟡 CHECK: Validate eclexiaiser manifest
  • GitHub Check: Runtime Policy
  • GitHub Check: Hypatia neurosymbolic scan
  • GitHub Check: panic-attack assail
  • GitHub Check: Dogfooding compliance summary
  • GitHub Check: check
  • GitHub Check: 🟡 CHECK: Groove manifest check
  • GitHub Check: 🔴 GATE: Empty-linter (invisible characters)
  • GitHub Check: Validate DEED manifests
  • GitHub Check: estate-rules
  • GitHub Check: SonarQube
⚠️ CI failures not shown inline (2)

GitHub Actions: Lock Sync Gate / 0_actions.lock is in sync with the workflow YAML.txt: docs: add Signed commits section to CONTRIBUTING

Conclusion: failure

View job details

##[group]Run set -euo pipefail
 �[36;1mset -euo pipefail�[0m
 �[36;1mtest -x scripts/check-lock-sync.sh \�[0m
 �[36;1m  || { echo "::error::scripts/check-lock-sync.sh missing or not executable"; exit 1; }�[0m

GitHub Actions: Lock Sync Gate / actions.lock is in sync with the workflow YAML: docs: add Signed commits section to CONTRIBUTING

Conclusion: failure

View job details

##[group]Run set -euo pipefail
 �[36;1mset -euo pipefail�[0m
 �[36;1mtest -x scripts/check-lock-sync.sh \�[0m
 �[36;1m  || { echo "::error::scripts/check-lock-sync.sh missing or not executable"; exit 1; }�[0m
🔇 Additional comments (3)
.github/CONTRIBUTING.md (3)

120-120: 🎯 Functional Correctness

The repository settings and ruleset configuration required to assess the documented rebase-merge statement were not available. The finding cannot be decided from the supplied evidence.


107-108: 🔒 Security & Privacy | 🛡️ Detected with Advanced Tier

Qualify the signature-enforcement claim unless live ruleset coverage is established. The checked-in base.json declares required_signatures for the default branch, but the ruleset README states that a checked-in ruleset does not prove deployment. The two statements are therefore not established by repository files alone. If the deployed ruleset does not enforce signatures for pull-request merges, revise both statements.


114-116: 🗄️ Data Integrity & Integration

The signed-push action is referenced in both contributing guides, but its implementation and signing contract are not present in this repository. The linked estate repository did not provide the action implementation in the available search results. The claim that the action signs every commit and has no unsigned git push fallback cannot be decided from the available evidence.


📝 Summary

Summary by CodeRabbit

  • Documentation
    • Updated the contribution guides with the requirement that commits reaching the default branch are signed. Contributors must use a GitHub-registered SSH signing key and verified committer email; apps, bots and workflows must use the GitHub API or the approved signed-push action.
    • Clarified that pull requests must be squash-merged, unsigned commits block merging, and rebase merging is unavailable. Added guidance for recreating an unsigned branch with signed cherry-picks and opening a new pull request.

Walkthrough

The contribution guides now describe signed-commit requirements, signing methods, commit methods for apps and workflows, squash merging, and the handling of unsigned commits on PR branches.

Changes

Signed-commit contribution policy

Layer / File(s) Summary
Document the signed-commit workflow
.github/CONTRIBUTING.md, CONTRIBUTING.adoc
Both guides describe signing requirements, API-based commits for apps and workflows, squash merging, and steps for unsigned PR branches.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Suggested reviewers: {{owner}}

Merge Risk: ⚪ Minimal · up to 70549

This documentation-only change adds signed-commit contribution guidance. It does not alter runtime behavior. Maintainers may want to confirm that the live ruleset matches the documented merge rules.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 70549

The changes add contribution instructions without modifying enforcement configuration. However, the stated signing and merge guarantees cannot be confirmed from the repository files alone. No exploitable bypass is established.

Retained concerns

  • Low · architecture · inferred: The new contributor contract presents unsigned-commit rejection and disabled rebase merging as guarantees, but effective enforcement is unresolved. Existing settings enable rebase merging, while the checked-in ruleset restricts merging to squash and declares bypass actors. Separate deployed controls could reconcile these declarations. This is an assurance gap, not a demonstrated bypass or a PR-introduced weakening of enforcement.
Security review details

Security Blast Radius

  • inferred — The evidenced scope is this repository’s default-branch commit provenance and contribution eligibility for people, interactive agents, and automation. Whether any configured privileged actor can bypass signing is unknown; the evidence does not establish a broader downstream exposure.

Security Findings and Attack Paths

  • observed — The supplied security assessment retains no verified findings. Its candidate remains deferred because deployed ruleset state and effective pull-request bypass behavior are unavailable. It therefore does not establish an attacker-reachable unsigned-commit path or a PR-introduced increase in privileges.

Trust Boundaries and Controls

  • observed — The documented signing responsibility differs by actor: people and interactive agents use their registered SSH signing identity, while automation delegates commit signing to GitHub through API-based creation. The guide does not grant additional credentials or repository permissions.

Hardening Proposals

  • proposed — Confirm the effective default-branch rulesets, including any separate Require-Signed-Commits rule, their bypass actors, and allowed merge methods before treating the contribution guide’s guarantees as verified. Establish the signing and recovery behavior of the referenced API/action separately from the documentation.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the purpose and main changes, but it does not use the required template sections for the RSR Quality Checklist, Testing, or Screenshots. Add the required template sections. Complete the RSR Quality Checklist, describe validation performed, and state whether screenshots or terminal output are applicable.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the documentation change and names the affected CONTRIBUTING file.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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

A rabbit signs beneath the moon,
Then checks each commit, neat and soon.
With SSH keys tucked away,
The branch takes squash upon its way.
Fresh carrots mark the merge of day.

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath
hyperpolymath merged commit 1ffd7bd into main Oct 1, 2026
31 of 35 checks passed
@hyperpolymath
hyperpolymath deleted the docs/signing-policy-d218 branch October 1, 2026 20:15
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.

2 participants