Repository navigation
Standardize shared documentation and maintenance policies - #196
Merged
Merged
Conversation
id774
force-pushed
the
docs/standardize-shared-boilerplate-20261112
branch
from
November 12, 2026 01:56
78a7e17 to
36af2b3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background and Purpose
A cross-repository review identified inconsistencies in the wording,
formatting, and line wrapping of shared documentation and boilerplate.
Previous formatting changes were made independently, allowing text intended
to remain consistent across repositories to diverge.
This pull request aligns the shared wording, formatting, and maintenance
policies with the common standard. Repository-specific requirements,
behavior, licensing conditions, and historical records remain unchanged
unless a change to them has been explicitly approved.
The purpose is not another independent prose-formatting pass. It is to make
shared text and maintenance decisions consistent, to keep applicable rules
self-contained, and to distinguish common standards from legitimate local
requirements. The full standard below records the cross-repository decision,
including provisions that do not apply to the repository containing this pull
request. The repository-specific results appear separately.
The common rules are integrated into the existing policy by subject and
responsibility. Consistency of wording does not require identical document
structures. A general rule is stated once in its appropriate existing section,
and repository-specific constraints remain with the responsibility they govern.
A README remains an overview, not a second implementation policy.
Cross-Repository Unification Guidelines
masteras the branch identifier, not a political or social statement. Preserve existing section numbering and place the branch section before License where both exist.doc/LICENSEvariant changes only that link's displayed path and destination. Do not rename license files. Add the standard section where the maintained software README lacks it.Thank you for using and contributing to this repository!.doc/LICENSEordoc/LICENSE.mdpaths. Apply only to repositories with an established GPLv3/LGPLv3 dual license.Simplicity is robustness.in the applicable existing implementation or maintenance policy. Avoid unnecessary complexity, redundant checks, speculative layers, and unnecessary operational assumptions while satisfying all actual requirements.masterrequires specific explicit maintainer authorization. Merge and auto-merge require their own explicit authorization.--force-with-leaseon the reviewed branch only when explicitly authorized; check the complete base-to-head change. Merge remains a maintainer decision.Initial release.. Remove obsolete project-specific generic initial-release wording.(Release Date: TBD). Replacing TBD with the actual date is the release, not a new change item.doc/DATA_CONTRACT.mdin the same commit.major.minor, rollover from.9to the next major.0, maintainer decision for other major changes, and explicit incompatible-change wording.Canonical Wording
The following reference blocks record the exact shared wording and formatting.
They are the same in each pull request. A repository-specific heading number,
comment syntax, license path, project name, copyright notice, or other stated
local value is substituted only where the corresponding guideline permits it.
A block that is not applicable is still included here as part of the common
standard; its inclusion does not mean it was installed in this repository.
R1 — Primary Branch
R2 — Standard README License
R3 — README License Opening for Third-Party Exclusions
R4 — Market Data README License
L1 — Standard License Document
L2 — License Opening for Third-Party Exclusions
L3 — Third-Party Software
P1 — Governing Principle
P2 — Agent Authorization
P3 — Pull Request Scope and History
P4 — English Prose and Shared Boilerplate
P5 — Wording Strength
P6 — Risk Assessment
P7 — Safety and Complexity
P8 — Established Behavior
P9 — Implementation Scope and Validation
P10 — Scope Separation
P11 — Change Acceptance
P12 — Specification Authority
P13 — Policy Self-Containment
P14 — Implementation and Specification
P15 — Third-Party Attribution
P16 — Comments
P17 — Browser Extension Design Principles
V1 — Version History Guidelines
V2 — Shared Data Contract
V3 — Revised-System First Entry
S1 — Source Header Metadata
S2 — Source Header Structure
S3 — Source File Version Numbering
README License Reference Variants
For a repository with the extensionless license document, the standard
license block is identical to R2 except for this link:
For a repository with a maintainer-owned license and third-party exclusions,
the local README may retain this explicit reference:
A README that explicitly describes bundled third-party material keeps the
actual local path and existing distinction between bundled code and files
containing third-party derived code. The following parameterized form
records the wording without naming another repository or its paths:
The collective-authorship variant retains the following pattern, with the
existing actual project name, copyright notice, and contributor references:
The local market-data license additions retain the following facts wherever
already applicable. These are not interchangeable across different software:
The following repository-specific content is preserved rather than replicated
across repositories: actual collective copyright notices and authors-file
references, specific third-party exclusion explanations in a README, mixed
content licensing, and the accurate local source-code or market-data facts.
The common license document replaces individual third-party file lists with
L3 but retains original notices within the affected material. The source-file
version rule is conditional on existing file-level version management.
The policy blocks above define wording, not a new document hierarchy. They
belong to the existing sections responsible for design principles, change
discipline, documentation authority, validation, licensing, comments, or
versioning, as applicable. Retain the existing section hierarchy and the local
conditions that make the rules operational. Do not collect those blocks in an
additional cross-repository maintenance section. In particular, a general
policy rule does not replace a project-specific compatibility, privacy,
validation, release, or integration constraint.
For release-history formatting, the Version History Guidelines in the
repository history are the authority. A settled existing form has priority
over the ordinary two-line, 80-column limit. A policy that describes the
history follows that same rule. V3 is the explicit exception to V1 for an
existing history whose first recorded version is a substantially revised
system rather than its initial release. A historical First Commit record is
not itself a release version and is not rewritten. Source-file history rules
do not create new file-level version management.
Changed
doc/LICENSE.md(L01, L02, L04): replaced with the complete L1 text. Thecopyright line keeps the collective notice
Copyright (c) 2012-2026 Automatic Ruby Developers., and the Contact lineis unchanged.
doc/POLICY.md: each shared rule is placed in the existing section thatowns its subject (G04). Where a rule sits inside an existing list, only the
list's structural indentation is added.
on comments and wording strength. The three-layer statement is kept.
paragraph and replace the improvement-opportunity paragraph. The
paragraphs on layered evaluation, safety mechanisms in trusted single-user
tooling, long-running operational history and composition-model changes
are kept.
smallest-change question. The other questions are kept.
100-column code guideline is kept.
Ruby files. The Ruby header labels and alignment are unchanged.
introduction now reads "The documents divide as follows:". P14 and P15
follow the table.
guidelines, so a settled form takes priority over the two-line, 80-column
limit.
that it applies to the versioned shell build script, not to Ruby files.
doc/VERSIONS(V01): the text fromVersion History Guidelinesto the endof the file is V1.
script/build(S01): the header labelSource Code::is corrected toSource Code:.already matched. There is no contribution section and no closing thanks
sentence (R07, R08). The README stays an overview (R09). R02, R03, R05, R06,
L03, P17, V11 and V12 do not apply. The Ruby files use the header syntax
defined in section 2.3, so S01 and S02 do not apply to them.
Preserved behavior
changed. The only change outside documentation is one comment line in
script/build.README.md,doc/COPYING,doc/COPYING.LESSERanddoc/AUTHORSarebyte-identical to the base.
doc/POLICY.mdare kept. The only added heading is section 10.6. Nocatch-all section exists.
plugin contract checks, network-free test rule, single-user safety
conditions, linear composition model, Ruby header convention and
repository-level versioning are unchanged.
Version History
VERSION,lib/automatic/version.rband all version numbers are unchanged.In
doc/VERSIONS, every release record beforeVersion History Guidelinesis byte-identical to the base, and only the guidelines at the foot changed.
No release entry was added. The file-level history in
script/buildisunchanged, and no file-level history was introduced for Ruby files.
Validation
3ec8ba9, head78a7e17, merge base equals base, 1 commit, clean worktreedoc/POLICY.mdheadings before and after, and located each rule.Shared Maintenance Rulesoccurs 0 timesREADME.mdwith the base.COPYING,COPYING.LESSERandAUTHORSare byte-identicaldoc/VERSIONSbefore the guidelines with the base, and checked the history rules in the policy against V1.doc/LICENSE.md,doc/POLICY.md,doc/VERSIONS,script/buildgit diff --checkand compared links, fences and separators.3ec8ba9. Message unchangedSmoke test
No runtime or deployment smoke test was run. Executable code and configuration
are byte-identical to the base, and runtime tests are outside the scope of
this documentation change. The existing CI ran automatically on the updated
head. The Ruby 3.3, 3.4 and 4.0 jobs and the optional-plugin workflow all
succeeded.
Exit status
git diff --check: 0. All 8 CI check runs concluded with success. The byteand placement comparisons have no exit status.
Diff
4 files changed, 200 insertions, 66 deletions:
doc/LICENSE.md,doc/POLICY.md,doc/VERSIONSandscript/build.Branch and Commit
masterat3ec8ba90d310382cabcfc2217646683f954203d6docs/standardize-shared-boilerplate-2026111236af2b34bd94483bc66bf1fca0cb7418def361a3, "Standardize shareddocumentation and maintenance policies"
approved scope.
Pull Request Verification
Read back after the update: base
master(3ec8ba9), headdocs/standardize-shared-boilerplate-20261112(36af2b3), and the title asspecified. The shared section from
## Background and Purposethrough the endof the Canonical Wording is byte-identical to the common standard. No private
information is included. 1 commit and 4 changed files. The pull request is
open, non-draft and unmerged. Auto-merge was never enabled. The available
interface does not report the auto-merge state directly.