Skip to content

docs: one contributor pattern across the four projects - #51

Merged
vyncint merged 1 commit into
mainfrom
docs/one-contributor-pattern
Aug 22, 2026
Merged

docs: one contributor pattern across the four projects#51
vyncint merged 1 commit into
mainfrom
docs/one-contributor-pattern

Conversation

@vyncint

@vyncint vyncint commented Aug 22, 2026

Copy link
Copy Markdown
Owner

One pattern across termlens, mossaic, launchbound and reconverge, so a contributor learns the rules once.

AGENTS.md + CLAUDE.md

New in all four. AGENTS.md is the canonical brief — layout, the exact build and test commands, the things that bite in this repo, and the three rules that fail CI. CLAUDE.md points at it rather than duplicating it, so per-tool instructions cannot drift apart.

Generated, not copied

The shared halves are produced from one string and are byte-identical in all four repos — verified by hash:

  • AGENTS.md from "The rules that will fail CI" to the end
  • CONTRIBUTING.md sections 4 Commit conventions, 5 DCO, 6 AI tooling policy, 7 PR flow, 8 Release process

Copying prose four times is how four projects end up with four subtly different rules. Sections 1–3 and anything after 8 stay each repository's own.

The AI policy, stated properly

It is the rule an agent is most likely to break, so it now says the whole thing in every repo:

AI assistance is welcome — use whatever helps. Every one of these projects was built with it.

AI attribution is not. No Co-Authored-By naming an assistant, no "Generated with" footer, no bot identity. The human who opens the PR is the author of record and takes responsibility under the DCO — which is precisely why a tool cannot be credited: a tool cannot certify it.

.claude/settings.json (now in all four) turns co-author trailers off for agents that read repository settings; the CI check is the boundary. The docs give the exact recovery commands, because the fix is to rewrite the message, not to argue with the check.

Also standardized

  • DCO everywhere. mossaic was the only repo without it and now has it, using the same script. It runs over a PR's own range, so pre-policy history is not retroactively failed.
  • Identical policy scriptscheck-dco.sh and check-no-ai-attribution.sh, byte-identical, both in .github/scripts/, both taking a commit range.
  • docs/RELEASING.md in all four, same shape, honest about where the processes genuinely differ.
  • MAINTAINERS.md in all four, so a contributor sees who reviews and how fast before they open a PR.
  • A "what good work looks like here" section: evidence over assertion, every change lands with a test that can fail, comments say why, and say what you did not do.

mossaic was the only one of the four projects without a DCO sign-off, so
standardizing meant picking one rule. It now requires one, like termlens,
launchbound and reconverge: git commit -s, checked by the same script they
use, wired into commit-policy.yml beside the attribution check.

The check runs over a pull request's own range, not the full history, so
commits made before the policy existed are not retroactively failed — only
what is proposed from here.

AGENTS.md is new: a brief for coding agents, and useful to humans. CLAUDE.md
points at it rather than duplicating it. Its second half, and CONTRIBUTING's
sections 4 through 8, are generated from one string shared with the sibling
projects and are byte-identical in all four — a contributor moving between
them should meet one set of rules, and generating them is the only way to be
sure they stay that way.

The repo-specific sections keep their content and move down: terminal
compatibility reports, adding a glyph, and code style are now 9, 10 and 11.
The two links to the glyph section are updated, anchors included.

Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
@vyncint
vyncint merged commit 74de106 into main Aug 22, 2026
11 checks passed
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