Skip to content

Commit 48fa31a

Browse files
Document main branch ruleset evidence
Adds audit-ready governance evidence for the manually configured main branch ruleset. Records the intended controls for main branch protection, including required pull requests, required Static Defensive Validation status check, empty bypass list, deletion restriction, linear history, and deferred deployment or signed-commit requirements. This documents repository governance only and does not modify runtime app behavior.
1 parent 9b6619c commit 48fa31a

1 file changed

Lines changed: 102 additions & 0 deletions

File tree

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Main Branch Ruleset Evidence
2+
3+
Date: 2026-06-13
4+
Scope: repository governance evidence
5+
Mode: defensive, audit-ready documentation
6+
7+
## Purpose
8+
9+
This document records the repository governance state after the static defensive validation workflow was added and the main branch ruleset was manually configured in GitHub.
10+
11+
Rulesets are repository settings and are not stored directly as versioned source files. This document provides a public sanitized evidence record for reviewers.
12+
13+
## Repository Control Objective
14+
15+
The `main` branch should only change through a controlled review path:
16+
17+
1. A pull request is opened against `main`.
18+
2. The static defensive validation workflow runs.
19+
3. Required checks pass.
20+
4. Review conversations are resolved.
21+
5. The change is merged through the GitHub pull request flow.
22+
23+
## Ruleset Configuration Recorded
24+
25+
Ruleset name:
26+
27+
```text
28+
main-defensive-ci-protection
29+
```
30+
31+
Target branch:
32+
33+
```text
34+
main
35+
```
36+
37+
Observed intended controls:
38+
39+
| Control | Expected state | Reason |
40+
| --- | --- | --- |
41+
| Enforcement status | Active | The rule must apply to `main`. |
42+
| Bypass list | Empty | Avoid silent exceptions in the public lab. |
43+
| Restrict creations | Off | Branch creation does not need to be blocked for this lab. |
44+
| Restrict updates | Off | Normal pull request merges must be allowed. |
45+
| Restrict deletions | On | Prevent accidental or unauthorized deletion of `main`. |
46+
| Require linear history | On | Keep history clean and easier to audit. |
47+
| Require pull request before merging | On | Prevent direct changes to `main`. |
48+
| Required approvals | 0 | Single-maintainer lab; evidence is in PR trail and CI. |
49+
| Require conversation resolution | On | Ensure review comments are resolved before merge. |
50+
| Require status checks to pass | On | Require automated validation before merge. |
51+
| Required status check | `Static Defensive Validation` | Bind branch protection to the repository CI workflow. |
52+
| Require deployments to succeed | Off | No deployment environment is part of this lab yet. |
53+
| Require signed commits | Off | Deferred until signing is configured consistently. |
54+
55+
## Required Workflow Evidence
56+
57+
The required workflow is defined at:
58+
59+
```text
60+
.github/workflows/static-validation.yml
61+
```
62+
63+
The workflow name is:
64+
65+
```text
66+
Static Defensive Validation
67+
```
68+
69+
It runs on:
70+
71+
- pull requests targeting `main`
72+
- pushes to `main`
73+
- manual workflow dispatch
74+
75+
## Workflow Checks
76+
77+
The workflow validates:
78+
79+
- required repository files exist
80+
- `app.js` passes `node --check app.js`
81+
- runtime files do not contain unsafe rendering or dynamic execution patterns
82+
- runtime files do not contain obvious secret patterns
83+
- local state and generated archive artifacts are not committed
84+
- bounded public-claim language remains present
85+
86+
## Security Boundary
87+
88+
This governance setup does not perform offensive testing. It does not scan external targets, install application dependencies, probe third-party systems, or claim production security coverage.
89+
90+
The value of the setup is repeatability: every future PR can produce automatic validation evidence before reaching `main`.
91+
92+
## Review Notes
93+
94+
This document is an evidence record based on manual GitHub settings configuration plus repository workflow state. If the ruleset is changed in the GitHub UI, this document should be updated in the same pull request cycle.
95+
96+
## Current Follow-Up
97+
98+
Recommended next hardening steps:
99+
100+
1. Verify that future PRs are blocked until `Static Defensive Validation` succeeds.
101+
2. Remove or disable redundant rulesets after confirming there is no loss of control.
102+
3. Add release notes after the governance evidence is merged.

0 commit comments

Comments
 (0)