Skip to content

docs(standards): add CI/CD Standards document [OMN-2224] - #511

Merged
jonahgabriel merged 2 commits into
mainfrom
jonahgabriel/omn-2224-phase-1-cicd-standards-document
Feb 15, 2026
Merged

jonahgabriel merged 2 commits into
mainfrom
jonahgabriel/omn-2224-phase-1-cicd-standards-document

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Feb 14, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Create docs/standards/CI_CD_STANDARDS.md — the org's CI/CD normative spec
  • Tier system: A-Org (universal), A-Runtime (per technology), B (conditional), C (profiles)
  • Repo classifications: library-core, toolchain, deployable-service, infrastructure-as-code
  • Gate check_name contract: "Quality Gate", "Tests Gate", "Security Gate", "CI Summary" (API-stable)
  • required-checks.yaml v2 schema with gates as only operational contract
  • All four invariants documented (check name stability, single source of truth, path-filtered checks, CI Summary semantics)
  • Branch protection migration safety procedure
  • Updated docs/INDEX.md to include new standards entry

Documentation only — no CI workflow changes.

Closes OMN-2224

Test plan

  • All pre-commit hooks pass (43 hooks)
  • Markdown link validation passes
  • Local review: 0 blocking issues
  • CI passes
  • CodeRabbit review

Summary by CodeRabbit

  • Documentation
    • Added comprehensive CI/CD standards covering gate/check models, repository classifications, API-stable gate naming, and a v2 required-checks schema. Includes migration guidance from v1 to v2, branch protection migration safety, workflow examples, invariants, and a changelog-like footer. Updated the standards reference index and bumped the Document Status count of normative specifications.

Create docs/standards/CI_CD_STANDARDS.md with:
- Tier system (A-Org, A-Runtime, B, C)
- Repo classifications (library-core, toolchain, deployable-service, infrastructure-as-code)
- Gate check_name contract (Quality Gate, Tests Gate, Security Gate, CI Summary)
- required-checks.yaml v2 schema with gates as only operational contract
- All four invariants (check name stability, single source of truth,
  path-filtered checks, CI Summary requirement condition)
- Branch protection migration safety procedure
@coderabbitai

coderabbitai Bot commented Feb 14, 2026 •

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

Two documentation files were updated: docs/INDEX.md now references a new CI/CD Standards specification, and a new docs/standards/CI_CD_STANDARDS.md document was added describing gates/checks models, repository classifications, migration procedures, and implementation examples.

Changes

Cohort / File(s) Summary
Index update
docs/INDEX.md
Inserted a new CI/CD Standards entry in the Standards table and incremented the normative specifications count (+2/-1).
New CI/CD specification
docs/standards/CI_CD_STANDARDS.md
Added a ~700-line specification describing a four-tier gate/check model, repository classifications, API-stable gate name contract, v2 required-checks.yaml schema (separating operational gates from documentary checks), invariants, CI Summary semantics, branch protection migration safety, v1→v2 migration path, workflow examples, and a changelog-like footer.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 Hop, hop — a standard's born today,
Gates aligned in tidy array,
Checks that guide each branch and PR,
Safer builds both near and far,
I nibble carrots, then I say hooray! 🥕

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and specifically describes the main change: adding a new CI/CD Standards document. It is concise, directly related to the changeset (which introduces docs/standards/CI_CD_STANDARDS.md and updates docs/INDEX.md), and provides meaningful context about what was added.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Merge Conflict Detection ✅ Passed ✅ No merge conflicts detected when merging into main

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch jonahgabriel/omn-2224-phase-1-cicd-standards-document

No actionable comments were generated in the recent review. 🎉

🧹 Recent nitpick comments
docs/standards/CI_CD_STANDARDS.md (1)

187-187: Clarify the schema notation for the classification field.

The current notation library-core | toolchain | deployable-service | infrastructure-as-code uses pipe symbols to indicate options, but in the context of a YAML example, this could be misinterpreted as literal YAML syntax (which would be invalid).

Consider using a clearer notation to indicate that exactly one value should be selected.

📝 Suggested alternative notations

Option 1: Use angle brackets with description

-classification: library-core | toolchain | deployable-service | infrastructure-as-code
+classification: <one of: library-core, toolchain, deployable-service, infrastructure-as-code>

Option 2: Show as comment

-classification: library-core | toolchain | deployable-service | infrastructure-as-code
+classification: library-core  # One of: library-core, toolchain, deployable-service, infrastructure-as-code

Option 3: Reference the field table

-classification: library-core | toolchain | deployable-service | infrastructure-as-code
+classification: library-core  # See field reference table below for valid values

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@docs/standards/CI_CD_STANDARDS.md`:
- Around line 297-312: The table cell for checks[].gate is being incorrectly
split because the pipe in "string | null" is interpreted as a column delimiter;
update the table row for checks[].gate to prevent Markdown splitting by either
wrapping the entire type in code ticks (e.g., `string | null`) or escaping the
pipe as "string \| null" so the pipe is rendered literally and the table columns
remain correct.
- Around line 160-167: The fenced diagram block uses an unlabeled
triple-backtick fence; update the opening fence to include the language label
"text" (i.e., change ``` to ```text) so markdownlint stops flagging it and
rendering remains identical—modify the diagram block that begins with the triple
backticks and the lines "Branch Protection          Gate (aggregator)          
Individual Checks" / "requires: "Tests Gate" --> tests-gate job" to use ```text.
- Around line 454-474: The CI Summary pseudo-code block uses an unlabeled fenced
code block which triggers MD040; update the fence to specify a language by
changing the opening fence from ``` to ```text for the block starting with "For
each gate in required-checks.yaml.gates:" so the snippet is labeled and
preserves formatting; ensure only the fence is changed (no other content edits)
so the block becomes ```text ... ``` and commit that change.

Comment thread docs/standards/CI_CD_STANDARDS.md Outdated
Comment thread docs/standards/CI_CD_STANDARDS.md
Comment thread docs/standards/CI_CD_STANDARDS.md Outdated
…languages [OMN-2224]

- Escape pipe in `checks[].gate` table cell (`string \| null`) to fix column overflow
- Add `text` language label to diagram fenced code block (line 160)
- Add `text` language label to CI Summary pseudo-code block (line 454)
@jonahgabriel
jonahgabriel merged commit 0f25c18 into main Feb 15, 2026
31 checks passed
@jonahgabriel jonahgabriel mentioned this pull request Feb 15, 2026
2 tasks
@jonahgabriel
jonahgabriel deleted the jonahgabriel/omn-2224-phase-1-cicd-standards-document branch April 4, 2026 02:04
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