ADR-001: basecoat vs base-coat Naming Convention¶
Date: 2026-05-09
Status: Accepted
Context¶
The project uses two visually similar names that serve different roles:
basecoat— the GitHub repository name (IBuySpy-Shared/basecoat), the npm package identifier, release artifact names (basecoat-ghcp.zip), and all internal scripts and environment variable references (e.g.,BASECOAT_REPO).base-coat— the local installation directory inside consumer repositories where synced assets land (.github/base-coat/).
Contributors and tooling authors have independently used both forms interchangeably, causing inconsistent paths, broken sync scripts, and ambiguous documentation.
Decision¶
We will use basecoat (no hyphen) for all of the following:
- The repository slug and any URL component referencing the repo
- Release asset file names (e.g.,
basecoat-ghcp.zip) - Environment variables (e.g.,
BASECOAT_REPO,BASECOAT_REF) - Script identifiers, workflow names, and job names
- Human-readable prose referring to the project as a product
We will use base-coat (hyphen) exclusively for:
- The local directory path inside consumer repos:
.github/base-coat/
No other usage of the hyphenated form is permitted.
Consequences¶
Positive¶
- A single rule covers 95 % of usages — everything is
basecoatexcept the one sync directory path. - Documentation, scripts, and workflow files are consistent and grep-friendly.
- New contributors have an unambiguous rule to follow.
Negative¶
- Existing consumer repos that installed assets into an incorrectly named directory will need a one-time migration.
Risks¶
- Tooling that pattern-matches on the hyphenated name may miss references to
the product. Mitigation: add both forms to
.gitleaks.tomlallow-lists if needed.