Skip to content

docs: establish repository maintenance baseline - #2

Merged
gaelic-ghost merged 5 commits into
mainfrom
docs/repository-maintenance
Jul 17, 2026
Merged

docs: establish repository maintenance baseline#2
gaelic-ghost merged 5 commits into
mainfrom
docs/repository-maintenance

Conversation

@gaelic-ghost

@gaelic-ghost gaelic-ghost commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • establish canonical repository documentation for the public research boundary
  • add the SwiftPM repo-maintenance toolkit, CI validation, and Dependabot configuration
  • add Swift build, test, Markdown link, and PII safety checks to the repo-owned validation path
  • redact personal machine and signing identifiers while preserving the research conclusions

Verification

  • scripts/repo-maintenance/validate-all.sh
  • all five documentation owner audits report no findings
  • tracked repository text passes the PII safety check

Summary by CodeRabbit

  • New Features

    • Added automated release tooling with tag, branch, CI, review, and release readiness checks.
    • Added repository maintenance validation for Swift packages, Markdown links, required guidance, and workflow configuration.
    • Added automatic weekly monitoring for GitHub Actions updates.
    • Added pre-commit Swift formatting support.
  • Documentation

    • Expanded contribution, accessibility, development guidance, project overview, and roadmap documentation.
  • Chores

    • Added standardized SwiftFormat, SwiftLint, validation, release, and maintenance configuration.

@gaelic-ghost gaelic-ghost added the documentation Improvements or additions to documentation label Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@gaelic-ghost, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 46 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 99a8e526-8e21-4502-95f2-dc1afbf8c1d2

📥 Commits

Reviewing files that changed from the base of the PR and between f65759e and abcd46e.

📒 Files selected for processing (17)
  • .github/workflows/validate-repo-maintenance.yml
  • AGENTS.md
  • CONTRIBUTING.md
  • Sources/MRInternalProbe/main.m
  • Sources/MRNowPlayingProbe/SPKMRNowPlayingProbe.swift
  • docs/frameworks/MediaRemote/README.md
  • docs/frameworks/MediaRemote/experiments.md
  • docs/frameworks/MediaRemote/permissions-policy.md
  • scripts/repo-maintenance/lib/common.sh
  • scripts/repo-maintenance/release.sh
  • scripts/repo-maintenance/release/10-preflight.sh
  • scripts/repo-maintenance/release/20-tag-release.sh
  • scripts/repo-maintenance/release/40-github-release.sh
  • scripts/repo-maintenance/syncing/README.md
  • scripts/repo-maintenance/validations/35-shell-toolkit.sh
  • scripts/repo-maintenance/validations/50-markdown-links.sh
  • scripts/repo-maintenance/validations/60-pii-safety.sh
📝 Walkthrough

Walkthrough

The change establishes repository guidance and accessibility documentation, adds Swift tooling and CI maintenance validation, introduces shared shell maintenance utilities, and implements synchronization and standard/submodule release workflows with GitHub gating and publishing steps.

Changes

Repository Maintenance

Layer / File(s) Summary
Repository guidance and planning
ACCESSIBILITY.md, AGENTS.md, CONTRIBUTING.md, README.md, ROADMAP.md
Documents repository scope, contribution workflow, accessibility expectations, project structure, and milestone planning.
Maintenance configuration and validation
.github/*, .swiftformat, .swiftlint.yml, scripts/repo-maintenance/config/*, scripts/repo-maintenance/hooks/*, scripts/repo-maintenance/lib/*, scripts/repo-maintenance/validate-all.sh, scripts/repo-maintenance/validations/*
Adds Swift tooling configuration, CI maintenance checks, shared shell helpers, environment defaults, pre-commit formatting, and validation scripts for repository layout, guidance, Swift, CI wiring, and Markdown links.
Release orchestration and publishing
scripts/repo-maintenance/release.sh, scripts/repo-maintenance/release/*
Adds standard and submodule release modes with preflight checks, version bumping, PR review and CI gates, merging, tagging, GitHub release creation, remote-readiness waits, and branch cleanup.
Shared synchronization entrypoint
scripts/repo-maintenance/sync-shared.sh, scripts/repo-maintenance/syncing/README.md
Adds the shared sync command and documents lexical dispatch of repository-specific synchronization hooks.

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

Sequence Diagram(s)

sequenceDiagram
  participant Maintainer
  participant release.sh
  participant GitHub
  participant Git
  Maintainer->>release.sh: start standard release with version
  release.sh->>Git: validate worktree, bump version, push branch
  release.sh->>GitHub: create or update pull request
  GitHub-->>release.sh: expose checks and review state
  release.sh->>GitHub: merge approved pull request
  release.sh->>Git: fast-forward base and push release tag
  release.sh->>GitHub: create and verify GitHub release
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately reflects the main change: establishing a repository maintenance baseline.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/repository-maintenance

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

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

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

ℹ️ 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/repo-maintenance/release.sh Outdated
Comment thread scripts/repo-maintenance/release.sh
Comment thread scripts/repo-maintenance/release/20-tag-release.sh Outdated
Comment thread scripts/repo-maintenance/release.sh Outdated

@coderabbitai coderabbitai 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.

Actionable comments posted: 7

🧹 Nitpick comments (1)
.github/workflows/validate-repo-maintenance.yml (1)

18-18: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Disable credential persistence in checkout action.

By default, actions/checkout persists the GITHUB_TOKEN in the local Git configuration. It is a security best practice to disable this unless subsequent steps require it to push changes.

🔒️ Proposed fix to prevent credential persistence
       # This is a validated floor, not a ceiling; update to newer stable official versions when validated.
-      - uses: actions/checkout@v6.0.2
+      - uses: actions/checkout@v6.0.2
+        with:
+          persist-credentials: false
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/validate-repo-maintenance.yml at line 18, Update the
actions/checkout step in the repository maintenance workflow to set
persist-credentials to false, while preserving the existing checkout action
version and behavior.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/repo-maintenance/release.sh`:
- Around line 95-103: The release tag checks in ensure_semver_tag and
release/10-preflight.sh use permissive duplicated globs instead of strict
validation. Add or reuse one shared, anchored SemVer validator in
scripts/repo-maintenance/release.sh, update ensure_semver_tag to call it, and
make scripts/repo-maintenance/release/10-preflight.sh call the same validator
rather than maintaining its own pattern; preserve the existing failure behavior
for invalid tags.
- Around line 434-443: Restrict the merged-branch cleanup after remote pruning
to deleting only the local branch identified by release_branch_name. Replace the
loop over all branches merged into base_branch with a targeted deletion while
preserving the existing warning behavior for branches that cannot be deleted.
- Around line 352-363: The review-comments acknowledgement must not bypass newly
added feedback on the current PR. Update the review gate around review_decision
and comment_count to validate unresolved review threads or bind
review_comments_addressed to the current PR head SHA, while preserving the
existing CHANGES_REQUESTED handling and failure messages.

In `@scripts/repo-maintenance/release/20-tag-release.sh`:
- Around line 8-14: Update the tag SHA lookup in the release script to
dereference refs/tags/$RELEASE_TAG to the tagged commit before comparing it with
head_sha. Keep the existing idempotent behavior in the tag-exists branch,
including logging and exiting when the dereferenced commit matches HEAD.

In `@scripts/repo-maintenance/release/40-github-release.sh`:
- Around line 13-16: Update the gh availability check in the release flow so a
missing gh command exits with failure when GitHub publication is requested,
rather than returning success after only warning. Preserve the successful skip
behavior exclusively through the --skip-gh-release path.

In `@scripts/repo-maintenance/syncing/README.md`:
- Line 15: Update the setup guidance in README.md to remove “executable” from
the description of repo-specific .sh files, since run_dispatch_dir() executes
matching scripts via sh without checking execute permissions. Keep the guidance
focused on adding scripts only when deterministic shared-sync follow-up steps
are required.

In `@scripts/repo-maintenance/validations/50-markdown-links.sh`:
- Line 43: Update the Markdown link target resolution around target so
root-relative path_text values beginning with “/” are resolved against
repo_root, while preserving markdown_path.parent resolution for
non-root-relative paths.

---

Nitpick comments:
In @.github/workflows/validate-repo-maintenance.yml:
- Line 18: Update the actions/checkout step in the repository maintenance
workflow to set persist-credentials to false, while preserving the existing
checkout action version and behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a887b013-9375-49ba-b043-67c00e81fb3a

📥 Commits

Reviewing files that changed from the base of the PR and between 0896189 and f65759e.

📒 Files selected for processing (27)
  • .github/dependabot.yml
  • .github/workflows/validate-repo-maintenance.yml
  • .swiftformat
  • .swiftlint.yml
  • ACCESSIBILITY.md
  • AGENTS.md
  • CONTRIBUTING.md
  • README.md
  • ROADMAP.md
  • scripts/repo-maintenance/config/profile.env
  • scripts/repo-maintenance/config/release.env
  • scripts/repo-maintenance/config/validation.env
  • scripts/repo-maintenance/hooks/pre-commit.sample
  • scripts/repo-maintenance/lib/common.sh
  • scripts/repo-maintenance/release.sh
  • scripts/repo-maintenance/release/10-preflight.sh
  • scripts/repo-maintenance/release/20-tag-release.sh
  • scripts/repo-maintenance/release/30-push-release.sh
  • scripts/repo-maintenance/release/40-github-release.sh
  • scripts/repo-maintenance/sync-shared.sh
  • scripts/repo-maintenance/syncing/README.md
  • scripts/repo-maintenance/validate-all.sh
  • scripts/repo-maintenance/validations/10-toolkit-layout.sh
  • scripts/repo-maintenance/validations/20-agents-guidance.sh
  • scripts/repo-maintenance/validations/30-ci-wrapper.sh
  • scripts/repo-maintenance/validations/40-swift-package.sh
  • scripts/repo-maintenance/validations/50-markdown-links.sh

Comment thread scripts/repo-maintenance/release.sh
Comment thread scripts/repo-maintenance/release.sh
Comment thread scripts/repo-maintenance/release.sh Outdated
Comment thread scripts/repo-maintenance/release/20-tag-release.sh
Comment thread scripts/repo-maintenance/release/40-github-release.sh
Comment thread scripts/repo-maintenance/syncing/README.md Outdated
Comment thread scripts/repo-maintenance/validations/50-markdown-links.sh Outdated

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

ℹ️ 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/repo-maintenance/release.sh Outdated
Comment thread scripts/repo-maintenance/release.sh
@gaelic-ghost
gaelic-ghost merged commit 37ec6d1 into main Jul 17, 2026
2 checks passed
@gaelic-ghost
gaelic-ghost deleted the docs/repository-maintenance branch July 17, 2026 23:34

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

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

return 0
fi

gh pr merge "$pr_number" --merge --delete-branch

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 Pin the reviewed PR head before merging

If a collaborator or bot pushes to the release branch after watch_ci and check_pr_comments complete but before this command runs, this merges that newer, unreviewed head and the later tag publishes it. Branch protection may mitigate this only when configured to require fresh checks/approvals, but the script neither verifies that policy nor ties its review gate to a revision. Capture the PR headRefOid before the gates and pass it through --match-head-commit; the GitHub CLI manual describes that option as requiring the PR head to match the supplied commit SHA before merging.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant