Configure professional Release Please wording and native release-note categories, retain complete package notes, and reject emoji in PR titles and descriptions. Update contributor and agent guidance and remove the decorative IDE symbol. Fixes: #21 Validation: all nine required PR checks passed in CI run 38074586698. Recorded AI review: https://github.com/KofTwentyTwo/standards/pull/23#pullrequestreview-5480239702 Co-Authored-By: OpenAI GPT-6 Codex <noreply@openai.com> Signed-off-by: James Maes <james@kof22.com>
3.0 KiB
Contributing
Proposals, corrections, and new language profiles are welcome. These standards follow themselves: everything below comes from the SDLC policy.
Before you start
- For a new requirement or a change to an existing one, open an issue first so the idea can be discussed in public before anyone writes it up.
- Typos, broken links, and clarifications can go straight to a pull request.
Making a change
- Fork the repository and create a topic branch:
<type>/<short-description>, for exampledocs/clarify-dcoorfeat/rust-profile. - Commit with a Conventional Commit
message and a DCO sign-off:
git commit -s -m "docs(sdlc): clarify hotfix path". The sign-off certifies the Developer Certificate of Origin. - Sign your commits (SSH or GPG) so they show as Verified.
- Open a pull request to
main. The title must also be a Conventional Commit, because it becomes the squash commit message.
What a good change looks like
- Use professional wording in code comments, documentation, commit/PR messages, release notes and automation output. No emojis, joke copy or bot sound effects.
- A new or changed requirement follows the format in policies/README.md: an ID that has never been used, a level, the rule, Why, and Verified by. A requirement nobody can verify is not accepted.
- If it maps to a framework control, the crosswalk in
compliance/is updated in the same pull request. - A new MUST that existing repositories do not meet is labeled
breakingand ships in a MAJOR release. - Configs and workflows pass their own checks: zizmor, actionlint, gitleaks, and the conformance checker.
Running the checks locally
Documentation and package checks:
npx markdownlint-cli2 "**/*.md"
lychee --offline --include-fragments --no-progress './**/*.md'
pwsh tools/Test-RepoConformance.ps1 -SelfTest
pwsh tools/Test-RepoConformance.Fuzz.ps1 -Seed 22023 -Iterations 1000
pwsh tools/Test-StandardsPackage.ps1
pwsh tools/Test-RepoConformance.ps1 -LocalPath . -StaticOnly
Package tests use an isolated temporary Git fixture; they do not commit changes in this repository. For version proposals and release bundles, see bundle releases.
Workflow and security checks:
zizmor .github/workflows
actionlint
gitleaks detect --source . --no-banner
pwsh tools/Test-RepoConformance.ps1 -Repository KofTwentyTwo/standards -LocalPath .
The same checks run in CI on every pull request and must pass before merging. Parser changes must pass both CI seeds and retain any discovered failure as a deterministic regression test. See fuzzing for extended campaigns and badge assessment for enrollment evidence.
License of contributions
Documentation contributions are licensed under CC BY 4.0; configuration, workflows, scripts, and templates under MIT.