Skip to content

Commit 5b394f4

Browse files
authored
docs: add README badges and reusable-workflow call-graph diagram (#29)
## Summary - Adds a two-badge row to `README.md` (Repo CI workflow status, License MIT), matching the `packer-framework-template` badge style (`[![CI](…)](…)` then `[![License: MIT](…)](LICENSE)`). - Adds the first Mermaid diagram to this repo: `docs/diagrams/reusable-workflow-call-graph.mmd` — a flowchart showing a consumer repo calling all seven universal reusables by SHA, with the drift-gate relationship between `reusable-repo-hygiene` ↔ `baseline-manifest.json` and `reusable-org-adr-auto-sync` ↔ `org-adr-manifest.json`. - Embeds the diagram inline in `docs/explanation/repo-type-taxonomy-and-ci-focus.md` with a source link per `docs/reference/diagram-conventions.md`. - Allowlists `docs/diagrams/reusable-workflow-call-graph.mmd` in `.gitignore` (deny-all strategy requires explicit per-file entries). ## Ruleset note (no change in this PR) The "Default Branch Protection" ruleset on this repo is currently active but empty — no rules are configured inside it. It is vestigial and should be removed via terraform in a follow-on infrastructure change. This PR does not touch rulesets. ## Validation - `python tools/check_docs_layout.py` — passes - `python tools/check_adr_schema.py` — passes - `python tools/check_baseline_manifest.py` — passes - `npx markdownlint-cli2 "**/*.md"` — 0 errors - `git status --short` after staging — all 4 changed files tracked (none ignored) present ## Test plan - [ ] Repo CI workflow passes (actionlint, markdownlint, docs-layout, adr-schema, baseline-manifest, attribution-residue, smoke tests) - [ ] README badges render correctly on the repo landing page - [ ] Mermaid diagram renders in `docs/explanation/repo-type-taxonomy-and-ci-focus.md` on GitHub
1 parent 7ef45c4 commit 5b394f4

4 files changed

Lines changed: 72 additions & 0 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
!/docs/explanation/repo-type-taxonomy-and-ci-focus.md
114114
!/docs/diagrams/
115115
!/docs/diagrams/.gitkeep
116+
!/docs/diagrams/reusable-workflow-call-graph.mmd
116117
!/docs/runbooks/
117118
!/docs/runbooks/.gitkeep
118119
!/docs/runbooks/purge-ai-attributed-history.md

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# .github
22

3+
[![Repo CI](https://github.com/NWarila/.github/actions/workflows/repo-ci.yml/badge.svg)](https://github.com/NWarila/.github/actions/workflows/repo-ci.yml)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5+
36
Default GitHub metadata for repositories owned by
47
[NWarila](https://github.com/NWarila).
58

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
flowchart TD
2+
Consumer["Consumer repo\n(caller workflow)"]
3+
4+
subgraph NWarila_github ["NWarila/.github — pinned by SHA"]
5+
codeql["reusable-codeql.yaml"]
6+
iac["reusable-iac-security.yaml"]
7+
scorecard["reusable-scorecard.yaml"]
8+
release["reusable-release-please.yaml"]
9+
automerge["reusable-auto-merge.yaml"]
10+
hygiene["reusable-repo-hygiene.yaml"]
11+
adrsync["reusable-org-adr-auto-sync.yaml"]
12+
end
13+
14+
subgraph Drift_gates ["Drift-gate artefacts (NWarila/.github)"]
15+
baseline["baseline-manifest.json\n(byte-identical file list)"]
16+
adrmanifest["org-adr-manifest.json\n(ADR source-of-truth list)"]
17+
end
18+
19+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-codeql.yaml@SHA"| codeql
20+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-iac-security.yaml@SHA"| iac
21+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-scorecard.yaml@SHA"| scorecard
22+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-release-please.yaml@SHA"| release
23+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-auto-merge.yaml@SHA"| automerge
24+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-repo-hygiene.yaml@SHA"| hygiene
25+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-org-adr-auto-sync.yaml@SHA"| adrsync
26+
27+
hygiene -->|"fetches + evaluates"| baseline
28+
adrsync -->|"reads manifest to detect drift"| adrmanifest

docs/explanation/repo-type-taxonomy-and-ci-focus.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,46 @@ CI focus:
5656
- Does repo-hygiene pass against the control plane itself?
5757
- Is public source-control hygiene clean?
5858

59+
## Reusable-Workflow Call Graph
60+
61+
The diagram below shows how a consumer repo calls the seven universal reusables
62+
hosted in `NWarila/.github`, and how the drift-gate artefacts (`baseline-manifest.json`
63+
and `org-adr-manifest.json`) relate to `reusable-repo-hygiene` and
64+
`reusable-org-adr-auto-sync`.
65+
66+
Source: [docs/diagrams/reusable-workflow-call-graph.mmd](../diagrams/reusable-workflow-call-graph.mmd)
67+
68+
```mermaid
69+
flowchart TD
70+
Consumer["Consumer repo\n(caller workflow)"]
71+
72+
subgraph NWarila_github ["NWarila/.github — pinned by SHA"]
73+
codeql["reusable-codeql.yaml"]
74+
iac["reusable-iac-security.yaml"]
75+
scorecard["reusable-scorecard.yaml"]
76+
release["reusable-release-please.yaml"]
77+
automerge["reusable-auto-merge.yaml"]
78+
hygiene["reusable-repo-hygiene.yaml"]
79+
adrsync["reusable-org-adr-auto-sync.yaml"]
80+
end
81+
82+
subgraph Drift_gates ["Drift-gate artefacts (NWarila/.github)"]
83+
baseline["baseline-manifest.json\n(byte-identical file list)"]
84+
adrmanifest["org-adr-manifest.json\n(ADR source-of-truth list)"]
85+
end
86+
87+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-codeql.yaml@SHA"| codeql
88+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-iac-security.yaml@SHA"| iac
89+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-scorecard.yaml@SHA"| scorecard
90+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-release-please.yaml@SHA"| release
91+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-auto-merge.yaml@SHA"| automerge
92+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-repo-hygiene.yaml@SHA"| hygiene
93+
Consumer -->|"uses: NWarila/.github/.github/workflows/reusable-org-adr-auto-sync.yaml@SHA"| adrsync
94+
95+
hygiene -->|"fetches + evaluates"| baseline
96+
adrsync -->|"reads manifest to detect drift"| adrmanifest
97+
```
98+
5999
## Practical Consequence
60100

61101
The same governance doctrine can produce different visible file shapes. A framework template may enforce repo hygiene through `make ci`; a data-only runner may use a standalone caller. A control plane may own reusable workflow bodies; a consumer may only own thin callers. That variation is intentional when it follows repository responsibility.

0 commit comments

Comments
 (0)