Skip to content

Commit 2a73a3d

Browse files
sir-sigurdclaude
andcommitted
Add markdownlint CI job and fix broken doc links
Add a markdownlint job to CI that lints the top-level Markdown docs with markdownlint-cli2, configured via .markdownlint-cli2.yaml. The config disables noisy/stylistic rules (line-length, bold-as-heading, table-pipe-spacing), sets MD024 to siblings-only for the CHANGELOG, and globs *.{md,markdown} (non-recursive) so spec/ working notes and .github/ are excluded. Fix the existing violations to establish a green baseline: - README: repair the stale table of contents (drop entries with no in-doc target, add the real sections), demote stray H1s to H2 with subsections bumped one level, add languages to bare code fences. - OPERATIONS: fix cross-reference anchors that omitted the heading's "(N minutes)" suffix. - Normalize blank lines around headings, fences, and lists. Two OPERATIONS checklist links (#capacity-monitoring, #security-audit) point to sections that do not exist yet; they are left in place with an inline markdownlint-disable and a TODO referencing the issue. Fixes #95 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 9b7e4b1 commit 2a73a3d

6 files changed

Lines changed: 184 additions & 56 deletions

File tree

.github/workflows/ci.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ jobs:
1919
terraform_wrapper: false
2020
- run: terraform fmt -check -recursive -diff
2121

22+
markdownlint:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- uses: actions/checkout@v6
26+
# Globs and rules come from .markdownlint-cli2.yaml in the repo root.
27+
- uses: DavidAnson/markdownlint-cli2-action@v23
28+
2229
validate:
2330
runs-on: ubuntu-latest
2431
strategy:

.markdownlint-cli2.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# markdownlint-cli2 configuration. See https://github.com/DavidAnson/markdownlint
2+
# for the full rule reference.
3+
config:
4+
# Line length: prose, tables, and long links routinely exceed any fixed width.
5+
MD013: false
6+
# Bold-as-heading: the docs deliberately use bold text as inline labels.
7+
MD036: false
8+
# Table pipe spacing: cosmetic; tables render correctly either way.
9+
MD060: false
10+
# Duplicate headings: the CHANGELOG repeats Added/Changed/Fixed per release,
11+
# which is the Keep a Changelog convention. Only flag duplicates under the
12+
# same parent heading.
13+
MD024:
14+
siblings_only: true
15+
# Lint top-level docs only; spec/ holds working notes and is intentionally
16+
# excluded. A non-recursive glob naturally skips spec/ and .github/. This
17+
# matches the default globs of markdownlint-cli2-action, so local runs and CI
18+
# lint the same files.
19+
globs:
20+
- "*.{md,markdown}"

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ Optional release notice.
1818

1919
## [Unreleased] - YYYY-MM-DD
2020

21+
- [Added] CI job that lints top-level Markdown docs with markdownlint-cli2, configured via `.markdownlint-cli2.yaml` ([#PR](https://github.com/quiltdata/iac/pull/PR))
22+
- [Fixed] Broken table-of-contents and cross-reference links in README and OPERATIONS docs ([#95](https://github.com/quiltdata/iac/issues/95))
23+
2124
## [1.8.0] - 2026-06-09
2225

2326
- [Added] Transit Gateway egress mode for new VPCs: set `enable_transit_gateway = true` (+ `transit_gateway_id`) to route private-subnet egress through a Transit Gateway instead of NAT gateways; IPv6 egress is opt-in via `transit_gateway_ipv6_egress`. See [Transit Gateway egress](README.md#transit-gateway-egress) ([#115](https://github.com/quiltdata/iac/pull/115))
@@ -38,6 +41,7 @@ Optional release notice.
3841
## [1.6.0] - 2026-02-24
3942

4043
If you rely on the default `search_instance_type` / `search_dedicated_master_type`:
44+
4145
- Upgrading from a version prior to 1.5.0 will fail on `terraform apply`. Upgrade to 1.5.0 first.
4246
- If you have reserved m5 instances, pin the instance types explicitly to keep using them.
4347

OPERATIONS.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,24 @@ This document provides comprehensive operational procedures for cloud teams mana
1212

1313
### Daily Checklist
1414

15-
- [ ] Health check (5 min) - [Instructions](#daily-health-checks)
15+
- [ ] Health check (5 min) - [Instructions](#daily-health-checks-5-minutes)
1616
- [ ] Monitor alerts - [Dashboard Links](#monitoring-dashboards)
1717
- [ ] Review logs - [Log Locations](#log-management)
1818

1919
### Weekly Checklist
2020

21-
- [ ] Backup verification (10 min) - [Instructions](#backup-verification)
22-
- [ ] Security updates (15 min) - [Instructions](#security-updates)
21+
- [ ] Backup verification (10 min) - [Instructions](#backup-verification-10-minutes)
22+
- [ ] Security updates (15 min) - [Instructions](#security-updates-15-minutes)
23+
<!-- TODO: no "Capacity review" section exists yet; see https://github.com/quiltdata/iac/issues/95 -->
24+
<!-- markdownlint-disable-next-line MD051 -->
2325
- [ ] Capacity review (10 min) - [Instructions](#capacity-monitoring)
2426

2527
### Monthly Checklist
2628

27-
- [ ] Capacity planning (20 min) - [Instructions](#capacity-planning)
28-
- [ ] Cost review (15 min) - [Instructions](#cost-optimization)
29+
- [ ] Capacity planning (20 min) - [Instructions](#capacity-planning-20-minutes)
30+
- [ ] Cost review (15 min) - [Instructions](#cost-optimization-recommendations)
31+
<!-- TODO: no "Security audit" section exists yet; see https://github.com/quiltdata/iac/issues/95 -->
32+
<!-- markdownlint-disable-next-line MD051 -->
2933
- [ ] Security audit (30 min) - [Instructions](#security-audit)
3034

3135
## Installation Procedures

0 commit comments

Comments
 (0)