Skip to content

Commit 182b6e9

Browse files
ci: add markdownlint infrastructure (awslabs#159)
* ci: add markdownlint infrastructure (config, CI workflow, pre-commit) Add .markdownlint-cli2.yaml with all current violations temporarily disabled and tiered for incremental re-enablement by prompt impact. Add ci.yml workflow with markdownlint-cli2-action on pull_request, push to main, and workflow_dispatch. Add .pre-commit-config.yaml for optional local pre-commit linting. No markdown content changes — violation fixes planned for follow-up PRs. * ci: fix MD041 in CODE_OF_CONDUCT.md, re-enable rule Change `## Code of Conduct` to `# Code of Conduct` (H2 → H1) to satisfy MD041/first-line-heading. Only violation was outside aidlc-rules/ — zero LLM prompt impact. Rule re-enabled in config. * fix: resolve all markdownlint violations outside aidlc-rules/ Fix 585 violations across 25 non-LLM-prompt files: - MD028: fix 4 blank lines in blockquotes (WORKING-WITH-AIDLC.md) - MD040: add language specifiers to 84 fenced code blocks - MD060: normalize table pipe spacing across 13 files (322 fixes) - Auto-fix: MD009, MD012, MD022, MD029, MD031, MD032, MD047, MD049 Re-enable 3 rules now at zero violations: MD049, MD034, MD028. Update remaining violation counts to aidlc-rules/-only totals. No files under aidlc-rules/ were modified — zero LLM prompt impact. * style: enforce MD060 aligned table style, fix 1645 violations Set MD060 to "aligned" style in project config — all table columns are now width-padded with vertically aligned pipes. Add aidlc-rules/.markdownlint-cli2.yaml to suppress MD060 in LLM prompt files pending separate review. Aligned tables in 14 files outside aidlc-rules/ using automated formatter. Zero aidlc-rules/ content files modified. * chore: improve cliff.toml template for markdownlint compliance Update git-cliff body template: - Add blank line after ### group headings (MD022/MD032) - Add postprocessor to collapse triple+ blank lines (MD012) - Set trim = false so leading \n creates inter-body separators Add CHANGELOG.md to markdownlint ignores since git-cliff postprocessors run per-body and cannot control inter-body spacing or trailing whitespace. Regenerate CHANGELOG.md with improved template. * refactor: move aidlc-rules/ exceptions to per-directory config Move all temporarily disabled rules from the top-level config into aidlc-rules/.markdownlint-cli2.yaml since violations exist only in that directory. The top-level config now contains only permanently disabled rules and global style settings. * fix: align table pipes in ADMINISTRATIVE_GUIDE.md for MD060 Four tables had misaligned trailing pipes due to rows with longer content or multi-byte characters (em dash). Padded shorter rows so all pipes in each column align vertically. * fix: resolve markdownlint violations in DEVELOPERS_GUIDE security scanner section Add blank lines around fenced code blocks (MD031), align table pipes (MD060), and remove double blank line (MD012) in the security scanner documentation added by awslabs#161. * fix: add event_name to concurrency group key for consistency Aligns ci.yml concurrency group with the {workflow}-{event_name}-{ref} pattern used across all other workflows. * fix: add event_name to concurrency group keys for all workflows Aligns codebuild.yml and pull-request-lint.yml concurrency groups with the {workflow}-{event_name}-{ref} pattern for consistency and to prevent schedule triggers from cancelling push events if added later. * fix: replace verbose deny-all permissions with permissions: {} Uses the documented shorthand `permissions: {}` which is functionally equivalent and future-proof against new permission scopes. Job-level permissions that grant specific access are preserved. --------- Co-authored-by: Scott Schreckengaust <345885+scottschreckengaust@users.noreply.github.com> Co-authored-by: Sam Castro <scoropeza@gmail.com>
1 parent 98788e2 commit 182b6e9

35 files changed

Lines changed: 975 additions & 836 deletions

.github/workflows/ci.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches: [ "main" ]
6+
push:
7+
branches: [ "main" ]
8+
workflow_dispatch:
9+
10+
permissions: {}
11+
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
markdownlint:
18+
name: Markdown Lint
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
steps:
23+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1
24+
- uses: DavidAnson/markdownlint-cli2-action@ce4853d43830c74c1753b39f3cf40f71c2031eb9 #v23.0.0
25+
with:
26+
globs: "**/*.md"

.github/workflows/codebuild.yml

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,14 @@ on:
2121
- 'v*'
2222

2323
concurrency:
24-
group: ${{ github.workflow }}-${{ github.ref }}
24+
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
2525
cancel-in-progress: true
2626

2727
env:
2828
CODEBUILD_PROJECT_NAME: ${{ vars.CODEBUILD_PROJECT_NAME || 'codebuild-project' }}
2929
LABEL_REMINDER_MARKER: rules-label-reminder
3030

31-
permissions:
32-
actions: none
33-
attestations: none
34-
checks: none
35-
contents: none
36-
deployments: none
37-
discussions: none
38-
id-token: none
39-
issues: none
40-
models: none
41-
packages: none
42-
pages: none
43-
pull-requests: none
44-
repository-projects: none
45-
security-events: none
46-
statuses: none
31+
permissions: {}
4732

4833
jobs:
4934
label-reminder:

.github/workflows/pull-request-lint.yml

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,10 @@ on:
1515
types:
1616
- checks_requested
1717

18-
permissions:
19-
actions: none
20-
attestations: none
21-
checks: none
22-
contents: none
23-
deployments: none
24-
discussions: none
25-
id-token: none
26-
issues: none
27-
models: none
28-
packages: none
29-
pages: none
30-
pull-requests: none
31-
repository-projects: none
32-
security-events: none
33-
statuses: none
18+
permissions: {}
3419

3520
concurrency:
36-
group: ${{ github.workflow }}-${{ github.ref }}
21+
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
3722
cancel-in-progress: true
3823

3924
env:

.github/workflows/release-pr.yml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,7 @@ on:
2121
required: false
2222
type: string
2323

24-
permissions:
25-
actions: none
26-
attestations: none
27-
checks: none
28-
contents: none
29-
deployments: none
30-
discussions: none
31-
id-token: none
32-
issues: none
33-
models: none
34-
packages: none
35-
pages: none
36-
pull-requests: none
37-
repository-projects: none
38-
security-events: none
39-
statuses: none
24+
permissions: {}
4025

4126
jobs:
4227
release-pr:

.github/workflows/release.yml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,7 @@ on:
2323
tags:
2424
- 'v*'
2525

26-
permissions:
27-
actions: none
28-
attestations: none
29-
checks: none
30-
contents: none
31-
deployments: none
32-
discussions: none
33-
id-token: none
34-
issues: none
35-
models: none
36-
packages: none
37-
pages: none
38-
pull-requests: none
39-
repository-projects: none
40-
security-events: none
41-
statuses: none
26+
permissions: {}
4227

4328
jobs:
4429
release:

.github/workflows/security-scanners.yml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,7 @@ on:
1010
pull_request:
1111
branches: [main]
1212

13-
permissions:
14-
actions: none
15-
attestations: none
16-
checks: none
17-
contents: none
18-
deployments: none
19-
discussions: none
20-
id-token: none
21-
issues: none
22-
models: none
23-
packages: none
24-
pages: none
25-
pull-requests: none
26-
repository-projects: none
27-
security-events: none
28-
statuses: none
13+
permissions: {}
2914

3015
concurrency:
3116
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}

.github/workflows/tag-on-merge.yml

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,7 @@ on:
1616
pull_request:
1717
types: [closed]
1818

19-
permissions:
20-
actions: none
21-
attestations: none
22-
checks: none
23-
contents: none
24-
deployments: none
25-
discussions: none
26-
id-token: none
27-
issues: none
28-
models: none
29-
packages: none
30-
pages: none
31-
pull-requests: none
32-
repository-projects: none
33-
security-events: none
34-
statuses: none
19+
permissions: {}
3520

3621
jobs:
3722
tag:

.markdownlint-cli2.yaml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# markdownlint-cli2 configuration
2+
# https://github.com/DavidAnson/markdownlint-cli2
3+
# Run: npx markdownlint-cli2 "**/*.md"
4+
# Fix: npx markdownlint-cli2 --fix "**/*.md"
5+
6+
config:
7+
# ============================================================
8+
# PERMANENTLY DISABLED — conflict with project documentation style
9+
# ============================================================
10+
11+
# Line-length — long URLs, tables, code examples, ASCII diagrams
12+
MD013: false
13+
14+
# Inline HTML — <img> tags for screenshots/badges in README
15+
MD033: false
16+
17+
# Duplicate headings — section names repeat across platform guides
18+
MD024: false
19+
20+
# Emphasis as heading — bold text used as sub-labels in lists
21+
MD036: false
22+
23+
# ============================================================
24+
# STYLE SETTINGS
25+
# ============================================================
26+
27+
# Tables must use aligned column style (pipes vertically aligned)
28+
MD060:
29+
style: "aligned"
30+
31+
# Ignore generated/vendored/test fixture files
32+
ignores:
33+
- "node_modules/**"
34+
- ".claude/**"
35+
- "scripts/aidlc-evaluator/test_cases/**"
36+
# CHANGELOG.md is auto-generated by git-cliff (cliff.toml controls its format).
37+
# git-cliff postprocessors run per-body so inter-body spacing and trailing
38+
# whitespace cannot be fully controlled via template alone.
39+
- "CHANGELOG.md"

.pre-commit-config.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
repos:
2+
- repo: https://github.com/DavidAnson/markdownlint-cli2
3+
rev: v0.22.0
4+
hooks:
5+
- id: markdownlint-cli2

CHANGELOG.md

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# Changelog
22

33
All notable changes to this project will be documented in this file.
4-
## [0.1.7] - 2026-04-02
54

5+
## [Unreleased]
6+
7+
## [0.1.7] - 2026-04-02
68

79
### Bug Fixes
810

@@ -17,13 +19,25 @@ All notable changes to this project will be documented in this file.
1719
- use PR head branch for rules-ref instead of merge ref (#168)
1820
- write aidlc-rules/VERSION in release PR to trigger CodeBuild (#169)
1921

22+
### CI/CD
23+
24+
- add markdownlint infrastructure (config, CI workflow, pre-commit)
25+
- fix MD041 in CODE_OF_CONDUCT.md, re-enable rule
2026

2127
### Documentation
2228

2329
- add developer's guide for running CodeBuild locally (#94)
2430
- add working-with-aidlc interaction guide and writing-inputs documents (#121)
2531
- comprehensive documentation review and remediation (#113)
2632

33+
- enforce MD060 aligned table style, fix 1645 violations
34+
35+
## [0.1.6] - 2026-03-05
36+
37+
### Bug Fixes
38+
39+
- codebuild cache and download fix (#93)
40+
- correct copy-paste error in error-handling.md (#96)
2741

2842
### Features
2943

@@ -36,7 +50,6 @@ All notable changes to this project will be documented in this file.
3650
- gate CodeBuild on 'codebuild' label + aidlc-rules paths (#150)
3751
- auto-label PRs touching aidlc-rules/ with codebuild label (#158)
3852

39-
4053
### Miscellaneous
4154

4255
- bump pyjwt in /scripts/aidlc-evaluator (#129)
@@ -45,77 +58,65 @@ All notable changes to this project will be documented in this file.
4558
- bump cryptography in /scripts/aidlc-evaluator (#148)
4659
- bump pygments in /scripts/aidlc-evaluator (#151)
4760
- bump aiohttp in /scripts/aidlc-evaluator (#163)
48-
## [0.1.6] - 2026-03-05
49-
50-
51-
### Bug Fixes
52-
53-
- codebuild cache and download fix (#93)
54-
- correct copy-paste error in error-handling.md (#96)
5561

62+
## [0.1.5] - 2026-02-24
5663

5764
### Features
5865

5966
- add CodeBuild workflow (#92)
6067

61-
6268
### Miscellaneous
6369

6470
- add templates for github issues (#97)
65-
## [0.1.4] - 2026-02-24
6671

72+
## [0.1.4] - 2026-02-24
6773

6874
### Bug Fixes
6975

7076
- correct GitHub Copilot instructions and Kiro CLI rule-details path resolution (#82, #84) (#87)
71-
## [0.1.3] - 2026-02-11
7277

78+
## [0.1.3] - 2026-02-11
7379

7480
### Bug Fixes
7581

7682
- require actual system time for audit timestamps (#56)
7783

78-
7984
### Documentation
8085

8186
- clarify ZIP download location and consolidate notes (#70)
82-
## [0.1.2] - 2026-02-08
8387

88+
## [0.1.2] - 2026-02-08
8489

8590
### Bug Fixes
8691

8792
- typo in core-workflow.md
8893
- rename rule and move to bottom of Critical Rules section
8994

90-
9195
### Documentation
9296

9397
- update README to direct users to GitHub Releases (#61)
9498
- add Windows CMD setup instructions and ZIP note (#68)
9599

96-
97100
### Features
98101

99102
- add test automation friendly code generation rules
100103
- add frontend design coverage in Construction phase
101-
## [0.1.1] - 2026-01-22
102104

105+
## [0.1.1] - 2026-01-22
103106

104107
### Features
105108

106109
- adding AIDLC skill to work with IDEs such as Claude, OpenCode and others
107110
- addin
108111
- add leo file
109112

110-
111113
### Miscellaneous
112114

113115
- removing wrong files
114116
- removing wrong files
115-
## [0.1.0] - 2026-01-22
116117

118+
## [0.1.0] - 2026-01-22
117119

118120
### Features
119121

120122
- add Kiro CLI support and multi-platform architecture
121-

0 commit comments

Comments
 (0)