Skip to content

chore: adopt the standard docs, editor config and SDK pin - #11

Merged
StuartMeeks merged 1 commit into
mainfrom
chore/adopt-standard-docs
Aug 20, 2026
Merged

chore: adopt the standard docs, editor config and SDK pin#11
StuartMeeks merged 1 commit into
mainfrom
chore/adopt-standard-docs

Conversation

@StuartMeeks

Copy link
Copy Markdown
Owner

What changed

PR B of the NextIteration.Standards adoption sequence — docs and config. Closes §1.9, §4.11, §5.2, §5.4 and §5.7. Touches no CI and no ruleset.

  • SECURITY.md, CONTRIBUTING.md, .github/PULL_REQUEST_TEMPLATE.md, CLAUDE.md added.
  • .gitignore and .editorconfig replaced with the canonical copies.
  • global.json gains the SDK pin.

Why

SECURITY.md and CLAUDE.md are written for this repo, not copied. The template's SECURITY.md scope section describes Auth's credential encryption, which is not what this library does. It writes plain-text JSON, so the useful thing to state is that settings are explicitly not a place for secrets (that is what Auth is for), that the consumer owns the directory it chooses, and that atomic writes are a crash-consistency guarantee rather than a concurrency one. CLAUDE.md's "easy to get wrong here" list names four traps this codebase actually has: the inert-until-Bind rule that stops load from triggering a write; the debounced fire-and-forget path no test may sleep against; AtomicFile's deliberately per-platform replace primitive; and tolerant deserialisation being the on-disk contract rather than a convenience. A generic CLAUDE.md would be worth nothing.

The SDK pin closes a real asymmetry. global.json previously set only the test runner, leaving the SDK floating — so a contributor on an older SDK gets different analyzer results from CI, and TreatWarningsAsErrors turns that into a build that fails for them and passes for everyone else.

EnforceCodeStyleInBuild is not enabled. §1.2.1 is blocked; it produced 490 build errors in Auth.

The .editorconfig change scopes the private-field naming rule to instance fields — a const is a field, so the old rule demanded _nonceSize for private const int NonceSize.

Consumer impact

None. No public API, target framework, dependency floor or on-disk format change. Verified that no currently tracked file becomes ignored by the canonical .gitignore.

Checklist

  • Build is clean — no new warnings (TreatWarningsAsErrors is on)
  • Tests pass on every shipped target framework — 64/64 on net8.0 and net10.0 with the pinned SDK (10.0.111, resolved via latestFeature from the 10.0.100 band)
  • Public API changes carry XML docs — no code changes
  • CHANGELOG.md updated under [Unreleased]
  • Dependency floors unchanged

🤖 Generated with Claude Code

PR B of the NextIteration.Standards adoption sequence. Closes 1.9, 4.11,
5.2, 5.4 and 5.7 for this repo. Touches no CI and no ruleset.

SECURITY.md and CLAUDE.md are written for this repo rather than copied.
The template's SECURITY.md scope section describes Auth's credential
encryption, which is not what this library does: it writes plain-text
JSON, so the useful thing to state is that settings are not secrets and
that atomic writes are a crash-consistency guarantee rather than a
concurrency one. CLAUDE.md's "easy to get wrong here" list names the
four traps this codebase actually has -- the inert-until-Bind rule that
stops load from triggering a write, the debounced fire-and-forget path
that no test may sleep against, AtomicFile's deliberately per-platform
replace primitive, and tolerant deserialisation being the on-disk
contract rather than a convenience.

global.json gains the SDK pin. It previously set only the test runner,
which left the SDK floating, so a contributor on an older SDK gets
different analyzer results from CI and TreatWarningsAsErrors turns that
into a build that fails for them and passes for everyone else.

The canonical .editorconfig scopes the private-field naming rule to
instance fields; a const is a field, so the old rule wanted _nonceSize
for `private const int NonceSize`. EnforceCodeStyleInBuild is NOT
enabled -- 1.2.1 is blocked.

No tracked file becomes ignored by the canonical .gitignore. Build clean
at zero warnings and 64/64 tests pass on net8.0 and net10.0 with the
pinned SDK (10.0.111, via latestFeature from the 10.0.100 band).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@StuartMeeks
StuartMeeks merged commit 638666e into main Aug 20, 2026
10 checks passed
@StuartMeeks
StuartMeeks deleted the chore/adopt-standard-docs branch August 20, 2026 12:50
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.

1 participant