|
Bootstrap
Bash-based bootstrap engine reference documentation
|
Accepted
bootstrap already has repository-specific governance in its README, agent guidance, specifications where applicable, and Architecture Decision Records. Related repositories also share reusable coding, documentation, architecture, release, and development-workflow standards through wesley-dean/coding_standards.
Maintaining independent repository-local copies of reusable standards creates a drift risk and makes it harder for contributors and automated agents to determine which rule is current. Fetching standards dynamically during ordinary development or CI would create the opposite problem: the effective governance could change without a reviewed repository change and could become unavailable offline.
The repository therefore needs a versioned, inspectable adoption model that keeps shared standards locally available while preserving the authority of accepted repository-specific decisions.
This decision is made with the following conditions and assumptions:
wesley-dean/coding_standards publishes immutable versioned release artifacts;coding_standards@v1.0.9 is the release selected for this adoption;coding_standards.tar.gz archive has been verified against its published checksum and expected SHA-256 digest before materialization;The decision prioritizes:
The repository SHALL commit the complete released coding_standards@v1.0.9 snapshot beneath doc/standards/.
The project-root .codingstandardrc SHALL record:
https://github.com/wesley-dean/coding_standards.git;coding_standards@v1.0.9;86e91725f30dc5d91a3c7f7158e17d6a8538519b3be10709440e179027c37a03; anddoc/standards.The release tag resolves to upstream commit 22e42d2583cc98d4a7db8c48e1ab0c459f76946e.
Applicable imported standards are repository governance. Presence in the complete snapshot does not itself make a standard applicable, and content beneath doc/standards/examples/ remains illustrative unless a governing standard explicitly promotes it.
Imported files SHALL NOT be edited locally. Shared changes belong upstream in wesley-dean/coding_standards; repository-specific exceptions or refinements belong in this repository's normal governance.
A future standards upgrade SHALL replace the complete managed snapshot, update .codingstandardrc, and be reviewed as an ordinary repository change. The repository SHALL NOT add a permanent standards downloader, background updater, Make synchronization target, dependency-manifest entry, or automatic standards upgrade workflow as part of this adoption.
Rejected because independently maintained copies predictably drift and leave contributors to infer which repository contains the canonical wording. This approach also multiplies maintenance work when a shared rule changes.
Rejected because a partial snapshot weakens provenance, makes upgrades harder to audit, and can silently omit a new cross-cutting standard introduced by the selected release. Applicability is determined by subject matter and local governance, not by deleting files from the released snapshot.
Rejected because a moving network dependency would allow effective governance to change without a repository diff, would reduce reproducibility, and would make normal development dependent on upstream availability.
Rejected because the expected update frequency does not justify another maintained repository mechanism. A standards upgrade should remain an intentional reviewable maintenance event.
The repository gains a deterministic, locally inspectable standards library and a clear provenance record. Humans and automated agents can read the same governing material without network access, and shared-standard changes appear as ordinary reviewable diffs.
The repository accepts additional tracked documentation volume, including standards for languages that may not currently apply. That is intentional: complete snapshot provenance is preferred over minimizing file count. Contributors must still use judgment about applicability and must follow higher-precedence accepted local ADRs where an intentional refinement exists.
Future shared-standard changes require a deliberate snapshot replacement and .codingstandardrc update rather than an in-place local edit.
After adoption:
.codingstandardrc;doc/standards/;This decision changes repository governance and maintained documentation only. It does not intentionally change runtime behavior, public interfaces, supported input or output formats, portability commitments, generated product artifacts, or release semantics.
Where a duplicate repository-local documentation-standard path existed, references to that live path are migrated to the corresponding file beneath doc/standards/. Historical ADR text remains historical evidence and is not rewritten merely to make old decisions use the new path.
Existing accepted ADRs remain authoritative for bootstrap architecture, public behavior, compatibility, security boundaries, build and release contracts, and other repository-specific decisions. This ADR establishes a reusable shared-standards governance layer beneath those decisions; it does not supersede them merely because an imported standard discusses the same general subject.