Single-page reference for installing CoherenceOps as a CI tool in your repository.
Your workflows need these permissions in their permissions: block:
| Permission | Used By | Why |
|---|---|---|
contents: read |
coherence-gates | Read files, assumptions, drift |
contents: write |
coherence-score, weekly-rollup | Commit telemetry JSON to repo |
pull-requests: write |
coherence-gates | Post summary comment on PRs |
checks: write |
coherence-gates | Report gate pass/fail status |
issues: write |
coherence-score, drift-auto-detect | Create/update dashboard issue, open drift issues |
If your org uses a restricted GITHUB_TOKEN, ensure these permissions are allowed at the org or repo level under Settings > Actions > General > Workflow permissions.
All workflows use the default GITHUB_TOKEN. No personal access token (PAT) is required unless:
- You have branch protection rules that block pushes from
github-actions[bot]— in this case, setcommit_results: 'false'(see Scheduled Commits) or create a PAT withcontents: writeand pass it as a secret.
CoherenceOps gates and workflows check for these labels:
| Label | Used By | Purpose |
|---|---|---|
major |
Gate 1 (DLR Required) | Marks a PR as major (DLR required) |
assumption-waiver |
Gate 2 (Assumption Expiry) | Waives expired-assumption gate failure |
coherence:waiver |
Gate 5 (Waiver Validation) | General coherence waiver (requires reason + expiry in PR body) |
coherence-dashboard |
coherence-score | Identifies the pinned dashboard issue |
drift |
drift-auto-detect | Tags auto-opened drift issues |
auto-detected |
drift-auto-detect | Tags auto-opened drift issues |
Run the label bootstrap workflow:
gh workflow run label-bootstrap.ymlOr create labels manually:
gh label create "major" --color "D93F0B" --description "Major PR — DLR required"
gh label create "assumption-waiver" --color "FBCA04" --description "Waive expired assumption gate"
gh label create "coherence:waiver" --color "FBCA04" --description "General coherence waiver"
gh label create "coherence-dashboard" --color "0E8A16" --description "Coherence dashboard issue"
gh label create "drift" --color "E4E669" --description "Drift signal"
gh label create "auto-detected" --color "C5DEF5" --description "Auto-detected by CI"Under Settings > Branches > Branch protection rules for your default branch:
| Setting | Recommended | Notes |
|---|---|---|
| Require pull request reviews | Yes | Ensures DLR gate runs before merge |
| Require status checks to pass | Yes | Add Coherence Gates as required |
| Require branches to be up to date | Optional | Useful but slows merge queue |
| Restrict who can push | Optional | If enabled, allow github-actions[bot] for telemetry commits |
CoherenceOps ships a CODEOWNERS file requiring maintainer review for:
coherence/canon/**— canon changes need sign-offcoherence/intel/**— assumption/claim changes need sign-off.github/workflows/**— workflow changes need sign-offbin/**— tool changes need sign-off
The coherence-score and coherence-weekly-rollup workflows commit telemetry JSON directly to the default branch on their schedule (Monday 9:00 UTC by default).
- Commits come from
github-actions[bot]— they bypass PR requirements - Commits include
[skip ci]in the message — they don't trigger other workflows - If branch protection blocks pushes from bots, the commit step will fail silently
Set commit_results: 'false' when triggering manually:
gh workflow run coherence-score.yml -f commit_results=falseFor scheduled runs, fork the workflow and change the default:
inputs:
commit_results:
default: 'false'When commits are disabled, telemetry is still calculated and output to workflow logs. The dashboard issue is still updated (it uses the GitHub API, not a commit).
Run this checklist after installation:
-
coherence/intel/assumptions.yamlexists (runbin/coherence-initif not) -
coherence/drift/directory exists -
coherence/decisions/directory exists -
coherence/canon/directory exists - Labels created (run
gh workflow run label-bootstrap.yml) -
bin/coherence-checkpasses locally:./bin/coherence-check - Open a test PR touching >10 files — verify
Coherence Gatescheck appears - Run
gh workflow run coherence-score.yml— verify dashboard issue created - If using branch protection: verify
Coherence Gatesis listed as a required check