docs(l0): parameterize hard gates on the project's integration trunk
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Per Jason's Option-A ruling on #1216: the constitution supplies the general framework; the project declares its own flow. Defines the integration trunk once in CONSTITUTION.md Hard Gates — declared by exactly one 'Integration trunk: <branch>' line in the project's root AGENTS.md, default 'main', value bound by git check-ref-format --branch semantics, malformed or multiple declarations are a hard stop, one trunk only, no gate relaxation — and binds gates 5/15, E2E-DELIVERY, CODE-REVIEW, ORCHESTRATOR(-PROTOCOL), BOOTSTRAP provisioning, and the defaults AGENTS session closure to that term. CI-CD-PIPELINES YAML examples stay on the default trunk with a substitution note. Known mechanized consumer left as tracked follow-up on #1216: pr-merge.sh:133 hardcodes a {main,next} base allowlist — fail-closed (refuses exotic trunks, cannot misroute), to be parameterized with red-first tests separately. Refs #1216 Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01WYgWocp36goy8hj2ui6ps1
This commit is contained in:
co-authored by
Claude Fable 5
parent
7a6fb024b4
commit
18f960d3e1
@@ -4,6 +4,11 @@
|
||||
|
||||
## Overview
|
||||
|
||||
> **Integration trunk:** the YAML examples in this guide use the default integration trunk `main`
|
||||
> in branch conditions and version rules. A project that declares a different trunk in its root
|
||||
> `AGENTS.md` (see `CONSTITUTION.md` Hard Gates) substitutes its declared trunk wherever `main`
|
||||
> appears as the trunk branch.
|
||||
|
||||
This guide covers the canonical CI/CD pattern used across projects. The pipeline runs in Woodpecker CI and follows this flow:
|
||||
|
||||
```
|
||||
@@ -865,7 +870,7 @@ steps:
|
||||
```yaml
|
||||
image: git.example.com/org/service@${IMAGE_DIGEST}
|
||||
```
|
||||
7. **Test on a short-lived non-main branch first** — open a PR and verify quality gates before merging to `main`
|
||||
7. **Test on a short-lived non-trunk branch first** — open a PR and verify quality gates before merging to the integration trunk
|
||||
8. **Verify images appear** in Gitea Packages tab after successful pipeline
|
||||
|
||||
## Terminal-Green Full-Step Contract
|
||||
@@ -906,7 +911,7 @@ For source-code delivery, completion is not allowed at "PR opened" stage.
|
||||
|
||||
Required sequence:
|
||||
|
||||
1. Merge PR to `main` (squash) via Mosaic wrapper.
|
||||
1. Merge PR to the integration trunk (squash) via Mosaic wrapper.
|
||||
2. Monitor CI to terminal status:
|
||||
```bash
|
||||
~/.config/mosaic/tools/git/pr-ci-wait.sh -n <PR_NUMBER>
|
||||
@@ -1112,5 +1117,5 @@ If a project currently uses Verdaccio (e.g., U-Connect at `npm.uscllc.net`), fol
|
||||
|
||||
### Pipeline runs Docker builds on pull requests
|
||||
|
||||
- Verify `when` clause on Docker build steps restricts to `branch: [main]`
|
||||
- Verify `when` clause on Docker build steps restricts to the integration trunk (`branch: [main]` by default)
|
||||
- Pull requests should only run quality gates, not build/push images
|
||||
|
||||
Reference in New Issue
Block a user