Skip to content

Commit 97733ca

Browse files
committed
docs(spec)!: reorganize repository and simplify date handling
BREAKING CHANGE: Multiple breaking changes to spec format Date handling changes: - Remove positional dates (bare YYYY-MM-DD after priority) - All dates now require key:value syntax (planned:, due:, done:) - Rename frontmatter field: date_format → datetime_format - Add bracket syntax for optional time: %d/%m/%Y[ %H:%M] Repository reorganization: - Move specification from docs/ to spec/ - Move implementation docs (compatibility, libraries) to docs/ - Flatten tests/golden/ to tests/ - Remove examples/ (converted to golden tests T12-T15) New content: - Add golden test suite T01-T15 with full conformance coverage - Add TESTING.md with test harness documentation - Add CATALOG.md with detailed coverage matrix Config updates: - Update CI, pre-commit, and release configs for new paths - Add docs(spec) scope rule for semantic release - Exclude tests/ from linting (intentional edge cases)
1 parent 97aebe4 commit 97733ca

110 files changed

Lines changed: 5615 additions & 1671 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ jobs:
1818
- name: Lint Markdown files
1919
uses: DavidAnson/markdownlint-cli2-action@v14
2020
with:
21-
globs: "**/*.md"
21+
globs: "**/*.md !tests/**/*.md"
2222

2323
- name: Check spelling
2424
uses: streetsidesoftware/cspell-action@v5
2525
with:
26-
files: "**/*.md"
26+
files: "**/*.md !tests/**/*.md"
2727
config: "./cspell.json"
2828

2929
- name: Check links
@@ -35,10 +35,10 @@ jobs:
3535
- name: AISD forbidden words check
3636
run: |
3737
echo "Checking for forbidden words (should/might/could/typically/usually/often)..."
38-
# Exclude README.md, CHANGELOG.md, and AGENTS.md from this check
39-
if find . -name "*.md" ! -name "README.md" ! -name "CHANGELOG.md" ! -name "AGENTS.md" -exec grep -l -E "\b(should|might|could|typically|usually|often)\b" {} \; | grep -q .; then
38+
# Exclude README.md, CHANGELOG.md, AGENTS.md, and tests/ from this check
39+
if find . -name "*.md" ! -path "./tests/*" ! -name "README.md" ! -name "CHANGELOG.md" ! -name "AGENTS.md" -exec grep -l -E "\b(should|might|could|typically|usually|often)\b" {} \; | grep -q .; then
4040
echo "❌ Found forbidden words in the following files:"
41-
find . -name "*.md" ! -name "README.md" ! -name "CHANGELOG.md" ! -name "AGENTS.md" -exec grep -Hn -E "\b(should|might|could|typically|usually|often)\b" {} \;
41+
find . -name "*.md" ! -path "./tests/*" ! -name "README.md" ! -name "CHANGELOG.md" ! -name "AGENTS.md" -exec grep -Hn -E "\b(should|might|could|typically|usually|often)\b" {} \;
4242
echo ""
4343
echo "Use MUST/REQUIRED/FORBIDDEN instead per AISD style guide."
4444
exit 1
@@ -47,9 +47,9 @@ jobs:
4747
4848
- name: AISD line count check
4949
run: |
50-
echo "Checking docs/ files for line count (max 600)..."
50+
echo "Checking docs/ and spec/ files for line count (max 600)..."
5151
failed=0
52-
for file in docs/*.md docs/**/*.md; do
52+
for file in docs/*.md docs/**/*.md spec/*.md; do
5353
[ -f "$file" ] || continue
5454
lines=$(wc -l < "$file")
5555
if [ "$lines" -gt 600 ]; then
@@ -61,7 +61,7 @@ jobs:
6161
echo "Consider splitting large files."
6262
exit 1
6363
fi
64-
echo "✅ All docs files within line limit"
64+
echo "✅ All docs and spec files within line limit"
6565
6666
commitlint:
6767
name: Commit Messages

.pre-commit-config.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ repos:
1717
hooks:
1818
- id: markdownlint
1919
args: ["--fix"]
20+
exclude: ^tests/
2021

2122
- repo: https://github.com/streetsidesoftware/cspell-cli
2223
rev: v8.6.0
2324
hooks:
2425
- id: cspell
2526
args: ["--no-progress", "--no-summary"]
27+
exclude: ^tests/
2628

2729
# Conventional commits for semver
2830
- repo: https://github.com/compilerla/conventional-pre-commit
@@ -39,10 +41,10 @@ repos:
3941
entry: bash -c 'if grep -rn -E "\b(should|might|could|typically|usually|often)\b" "$@" 2>/dev/null; then echo "❌ Found forbidden words. Use MUST/REQUIRED/FORBIDDEN instead."; exit 1; fi' --
4042
language: system
4143
files: \.(md)$
42-
exclude: ^(README\.md|CHANGELOG\.md|AGENTS\.md)$
44+
exclude: ^(README\.md|CHANGELOG\.md|AGENTS\.md|tests/)
4345

4446
- id: aisd-line-count
4547
name: AISD line count check (max 600)
4648
entry: bash -c 'for file in "$@"; do lines=$(wc -l < "$file"); if [ $lines -gt 600 ]; then echo "❌ $file has $lines lines (max 600). Consider splitting."; exit 1; fi; done' --
4749
language: system
48-
files: ^docs/.*\.md$
50+
files: ^(docs|spec)/.*\.md$

.releaserc.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
{
77
"preset": "conventionalcommits",
88
"releaseRules": [
9-
{ "type": "docs", "release": "minor" },
9+
{ "type": "docs", "scope": "spec", "release": "minor" },
10+
{ "type": "docs", "release": false },
1011
{ "type": "fix", "release": "patch" },
1112
{ "type": "refactor", "release": "patch" },
1213
{ "type": "style", "release": "patch" },
@@ -25,13 +26,13 @@
2526
[
2627
"@semantic-release/exec",
2728
{
28-
"prepareCmd": "sed -i 's/\\*\\*Version:\\*\\* [0-9]*\\.[0-9]*\\.[0-9]*/\\*\\*Version:\\*\\* ${nextRelease.version}/' docs/specification.md && sed -i 's/Draft v[0-9]*\\.[0-9]*\\.[0-9]*/Draft v${nextRelease.version}/g' README.md AGENTS.md"
29+
"prepareCmd": "sed -i 's/\\*\\*Version:\\*\\* [0-9]*\\.[0-9]*\\.[0-9]*/\\*\\*Version:\\*\\* ${nextRelease.version}/' spec/specification.md && sed -i 's/Draft v[0-9]*\\.[0-9]*\\.[0-9]*/Draft v${nextRelease.version}/g' README.md AGENTS.md"
2930
}
3031
],
3132
[
3233
"@semantic-release/git",
3334
{
34-
"assets": ["CHANGELOG.md", "docs/specification.md", "README.md", "AGENTS.md"],
35+
"assets": ["CHANGELOG.md", "spec/specification.md", "README.md", "AGENTS.md"],
3536
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
3637
}
3738
],

0 commit comments

Comments
 (0)