Skip to content

docs: match the shared CONTRIBUTING skeleton - #484

Merged
retr0h merged 3 commits into
mainfrom
docs/unify-contributing-conventions
Sep 7, 2026
Merged

retr0h merged 3 commits into
mainfrom
docs/unify-contributing-conventions

Conversation

@retr0h

@retr0h retr0h commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

All five osapi-io repos carry the same CONTRIBUTING sections in the same order,
with project-specific material inserted between them. I compared them section by
section; the skeleton was already consistent, with a few holes.

This repo

Adds ### File headers, and splits ### Documentation out of ## Code style's prose so the section sits where every other repo has it. Code style
keeps the UI tooling; the ## Documentation section further down now covers
running and building the site and points back for formatting.

Across the org

Repo Change
nats-client + ## Project structure, + ### File headers
nats-server + ## Project structure, + ### File headers
osapi + ### File headers, ### Documentation split out of Code style
osapi-orchestrator + ### File headers, just ready comment dropped
gohai just ready comment dropped
swamp-golang-starter template adopts the shared text; ## FAQ added

All six now share the same 22-section skeleton in the same order.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FuKUsHFG1EqZXamffh9M2c

Every osapi-io repo carries the same CONTRIBUTING sections in the same
order, with project-specific material inserted between them. Comparing
all five showed a few places where that skeleton had holes.

Add File headers, which states the licence header rule this repo already
enforces in source but never wrote down.

Add Documentation under Code style, moving the markdown paragraph there
from Code style's prose so the section exists where every other repo has
it. Code style keeps the UI tooling. The Documentation section further
down now covers running and building the site, and points at Code style
for formatting rather than repeating the commands.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FuKUsHFG1EqZXamffh9M2c
@codecov

codecov Bot commented Sep 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #484   +/-   ##
=======================================
  Coverage   99.94%   99.94%           
=======================================
  Files         484      484           
  Lines       22877    22877           
=======================================
  Hits        22865    22865           
  Misses         12       12           

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 79a60b1...5fd61fc. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The other repositories that share this skeleton end the test conventions
with a sentence naming the external test package and the validateFunc
callback. OSAPI had no such sentence, though it is the heaviest user of
the convention anywhere: 241 of its 407 public test files already carry
validateFunc, 524 uses in total.

So the rule was invented here and documented everywhere else. State it,
and the repositories that copied it stop being the only ones that can
point at it.

The setter form is deliberately left out. gohai documents
SetXFn(fn) func() returning a restore func; OSAPI pairs SetXFn(fn) with
a separate ResetXFn(). Writing one sentence over two different shapes
would document a convention neither repository follows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CM5qrNtYQvdKcemkS5YpiP
Test helpers said to expose a symbol through export_test.go and to reset
swapped variables in TearDownSubTest, but never named the shape those
setters take. There are twenty-one of them, each a SetXFn paired with a
ResetXFn, and forty-five of the fifty-one reset calls come from
TearDownSubTest exactly as the next bullet asks.

gohai documents its own form, which returns a restore func the caller
defers. OSAPI's is the pair, so this says the pair rather than borrowing
a sentence that would be wrong here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CM5qrNtYQvdKcemkS5YpiP
@retr0h
retr0h merged commit 6bab583 into main Sep 7, 2026
12 checks passed
@retr0h
retr0h deleted the docs/unify-contributing-conventions branch September 7, 2026 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant