Skip to content

Commit 4f9e4fc

Browse files
Apply relevant updates from TemplateDotNetTool template (#105)
* Initial plan * Apply relevant updates from TemplateDotNetTool template Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Apply updates from template PRs #31-#51 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Fix validation output to use test names; update requirements to semantic IDs Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Remove duplicate self-validation section from guide.md Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Shorten requirement ID prefixes in requirements.yaml Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
1 parent d7ded5f commit 4f9e4fc

File tree

23 files changed

+469
-212
lines changed

23 files changed

+469
-212
lines changed

.cspell.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,38 @@
22
"version": "0.2",
33
"language": "en",
44
"words": [
5+
"Anson",
6+
"Blockquotes",
57
"buildmark",
68
"BuildMark",
79
"buildnotes",
10+
"camelcase",
11+
"Checkmarx",
812
"codeql",
913
"CodeQL",
1014
"copilot",
1115
"creatordate",
1216
"cspell",
1317
"csproj",
18+
"dbproj",
19+
"dcterms",
1420
"Dema",
1521
"demaconsulting",
1622
"DEMACONSULTINGNUGETKEY",
1723
"Dependabot",
1824
"dependabot",
25+
"doctitle",
1926
"dotnet",
2027
"editorconfig",
28+
"filepart",
29+
"fsproj",
30+
"Gidget",
31+
"gitattributes",
2132
"ibiqlik",
33+
"LINQ",
34+
"maintainer",
2235
"markdownlint",
36+
"mermaid",
2337
"mstest",
2438
"myterm",
2539
"ncipollo",
@@ -28,14 +42,29 @@
2842
"oneline",
2943
"opencover",
3044
"pandoc",
45+
"pagetitle",
46+
"Pylint",
47+
"Qube",
3148
"reqstream",
49+
"SarifMark",
3250
"SBOM",
3351
"sbom",
52+
"Semgrep",
3453
"semver",
3554
"slnx",
3655
"snupkg",
56+
"sonarmark",
57+
"SonarMark",
58+
"SonarQube",
59+
"spdx",
60+
"streetsidesoftware",
61+
"TMPL",
3762
"tracematrix",
63+
"triaging",
64+
"Trivy",
3865
"trx",
66+
"vbproj",
67+
"vcxproj",
3968
"versionmark",
4069
"Weasyprint",
4170
"yamllint"

.github/pull_request_template.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ Before submitting this pull request, ensure you have completed the following:
2828

2929
- [ ] Code builds successfully: `dotnet build --configuration Release`
3030
- [ ] All tests pass: `dotnet test --configuration Release`
31+
- [ ] Self-validation tests pass:
32+
`dotnet run --project src/DemaConsulting.BuildMark --configuration Release --framework net10.0`
33+
`--no-build -- --validate`
3134
- [ ] Code produces zero warnings
3235

3336
### Code Quality

.github/workflows/build.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,7 @@ jobs:
325325
contents: read
326326

327327
steps:
328+
# === CHECKOUT AND INSTALL DEPENDENCIES ===
328329
- name: Checkout
329330
uses: actions/checkout@v6
330331

@@ -379,6 +380,7 @@ jobs:
379380
pattern: 'version-capture-*'
380381
continue-on-error: true
381382

383+
# === GENERATE MARKDOWN REPORTS ===
382384
- name: Generate Requirements Report and Trace Matrix
383385
run: >
384386
dotnet reqstream
@@ -462,6 +464,7 @@ jobs:
462464
echo "=== Build Notes Report ==="
463465
cat docs/buildnotes.md
464466
467+
# === GENERATE HTML AND PDF DOCUMENTS ===
465468
- name: Generate Build Notes HTML with Pandoc
466469
shell: bash
467470
run: >
@@ -475,6 +478,7 @@ jobs:
475478
- name: Convert Build Notes HTML to PDF with Weasyprint
476479
run: >
477480
dotnet weasyprint
481+
--pdf-variant pdf/a-3u
478482
docs/buildnotes/buildnotes.html
479483
"docs/BuildMark Build Notes.pdf"
480484
@@ -491,6 +495,7 @@ jobs:
491495
- name: Convert User Guide HTML to PDF with Weasyprint
492496
run: >
493497
dotnet weasyprint
498+
--pdf-variant pdf/a-3u
494499
docs/guide/guide.html
495500
"docs/BuildMark User Guide.pdf"
496501
@@ -507,6 +512,7 @@ jobs:
507512
- name: Generate Requirements PDF with Weasyprint
508513
run: >
509514
dotnet weasyprint
515+
--pdf-variant pdf/a-3u
510516
docs/requirements/requirements.html
511517
"docs/BuildMark Requirements.pdf"
512518
@@ -523,6 +529,7 @@ jobs:
523529
- name: Generate Trace Matrix PDF with Weasyprint
524530
run: >
525531
dotnet weasyprint
532+
--pdf-variant pdf/a-3u
526533
docs/tracematrix/tracematrix.html
527534
"docs/BuildMark Trace Matrix.pdf"
528535
@@ -539,6 +546,7 @@ jobs:
539546
- name: Convert Requirements Justifications HTML to PDF with Weasyprint
540547
run: >
541548
dotnet weasyprint
549+
--pdf-variant pdf/a-3u
542550
docs/justifications/justifications.html
543551
"docs/BuildMark Requirements Justifications.pdf"
544552
@@ -555,9 +563,11 @@ jobs:
555563
- name: Convert Code Quality HTML to PDF with Weasyprint
556564
run: >
557565
dotnet weasyprint
566+
--pdf-variant pdf/a-3u
558567
docs/quality/quality.html
559568
"docs/BuildMark Code Quality.pdf"
560569
570+
# === UPLOAD ARTIFACTS ===
561571
- name: Upload Document Artifacts
562572
uses: actions/upload-artifact@v7
563573
with:

.gitignore

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,37 @@
11
.vs
22
*.bak
33
*.user
4+
*.suo
5+
*.userosscache
6+
*.sln.docstates
7+
mono_crash.*
48

9+
# Build results
10+
[Dd]ebug/
11+
[Dd]ebugPublic/
12+
[Rr]elease/
13+
[Xx]64/
14+
[Xx]86/
15+
[Ww]in32/
16+
[Aa][Rr][Mm]/
17+
[Aa][Rr][Mm]64/
18+
bld/
519
bin/
620
obj/
7-
TestResults/
21+
22+
# ReSharper
23+
_ReSharper*/
24+
*.[Rr]e[Ss]harper
25+
*.DotSettings.user
26+
27+
# JetBrains Rider
28+
.idea/
29+
*.sln.iml
30+
31+
# NuGet packages
32+
*.nupkg
33+
*.snupkg
34+
**/packages/*
835

936
# Code coverage reports
1037
coverage/
@@ -13,6 +40,8 @@ coverage/
1340
*.opencover.xml
1441

1542
# Test results
43+
[Tt]est[Rr]esult*/
44+
[Bb]uild[Ll]og.*
1645
*.trx
1746
test-results/
1847
*.log
@@ -25,21 +54,21 @@ test-results/
2554
node_modules/
2655
package-lock.json
2756

57+
# Python
58+
__pycache__/
59+
*.py[cod]
60+
2861
# Generated documentation
29-
docs/*.pdf
30-
docs/guide/*.html
62+
docs/**/*.html
63+
docs/**/*.pdf
64+
!docs/template/**
3165
docs/requirements/requirements.md
32-
docs/requirements/*.html
3366
docs/tracematrix/tracematrix.md
34-
docs/tracematrix/*.html
3567
docs/justifications/justifications.md
36-
docs/justifications/*.html
3768
docs/quality/sonar-quality.md
3869
docs/quality/codeql-quality.md
39-
docs/quality/*.html
4070
docs/buildnotes.md
4171
docs/buildnotes/versions.md
42-
docs/buildnotes/*.html
4372

4473
# VersionMark captures (generated during CI/CD)
4574
versionmark-*.json

.vscode/tasks.json

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"label": "build",
6+
"type": "shell",
7+
"command": "dotnet build --configuration Release",
8+
"group": {
9+
"kind": "build",
10+
"isDefault": true
11+
},
12+
"presentation": {
13+
"reveal": "always",
14+
"panel": "shared"
15+
},
16+
"problemMatcher": "$msCompile"
17+
},
18+
{
19+
"label": "validate",
20+
"type": "shell",
21+
"command": "dotnet run --project src/DemaConsulting.BuildMark --configuration Release --framework net10.0 --no-build -- --validate",
22+
"group": {
23+
"kind": "test",
24+
"isDefault": true
25+
},
26+
"presentation": {
27+
"reveal": "always",
28+
"panel": "shared"
29+
}
30+
},
31+
{
32+
"label": "build and validate",
33+
"dependsOn": ["build", "validate"],
34+
"dependsOrder": "sequence",
35+
"group": "build",
36+
"presentation": {
37+
"reveal": "always",
38+
"panel": "shared"
39+
}
40+
},
41+
{
42+
"label": "format",
43+
"type": "shell",
44+
"command": "dotnet format",
45+
"group": "none",
46+
"presentation": {
47+
"reveal": "always",
48+
"panel": "shared"
49+
}
50+
},
51+
{
52+
"label": "lint markdown",
53+
"type": "shell",
54+
"command": "npx markdownlint-cli2 \"**/*.md\"",
55+
"group": "none",
56+
"presentation": {
57+
"reveal": "always",
58+
"panel": "shared"
59+
}
60+
},
61+
{
62+
"label": "spell check",
63+
"type": "shell",
64+
"command": "npx cspell \"**/*.{md,cs}\"",
65+
"group": "none",
66+
"presentation": {
67+
"reveal": "always",
68+
"panel": "shared"
69+
}
70+
},
71+
{
72+
"label": "lint yaml",
73+
"type": "shell",
74+
"command": "yamllint .",
75+
"group": "none",
76+
"presentation": {
77+
"reveal": "always",
78+
"panel": "shared"
79+
}
80+
},
81+
{
82+
"label": "lint all",
83+
"dependsOn": ["format", "lint markdown", "spell check", "lint yaml"],
84+
"dependsOrder": "parallel",
85+
"group": "none",
86+
"presentation": {
87+
"reveal": "always",
88+
"panel": "shared"
89+
}
90+
},
91+
{
92+
"label": "verify requirements",
93+
"type": "shell",
94+
"command": "dotnet reqstream --requirements requirements.yaml --tests \"test-results/**/*.trx\" --enforce",
95+
"group": "none",
96+
"presentation": {
97+
"reveal": "always",
98+
"panel": "shared"
99+
}
100+
}
101+
]
102+
}

AGENTS.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ Project-specific guidance for agents working on BuildMark - a .NET CLI tool for
1313

1414
## Tech Stack
1515

16-
- C# 12, .NET 8.0/9.0/10.0, MSTest, dotnet CLI, NuGet
16+
- C# (latest), .NET 8.0/9.0/10.0, MSTest, dotnet CLI, NuGet
1717

1818
## Key Files
1919

2020
- **`requirements.yaml`** - All requirements with test linkage (enforced via `dotnet reqstream --enforce`)
21-
- **`.editorconfig`** - Code style (file-scoped namespaces, 4-space indent, UTF-8+BOM, LF endings)
22-
- **`.cspell.json`, `.markdownlint.json`, `.yamllint.yaml`** - Linting configs
21+
- **`.editorconfig`** - Code style (file-scoped namespaces, 4-space indent, UTF-8, LF endings)
22+
- **`.cspell.json`, `.markdownlint-cli2.jsonc`, `.yamllint.yaml`** - Linting configs
2323

2424
## Requirements
2525

@@ -107,3 +107,13 @@ When agents need to write report files to communicate with each other or the use
107107
- Excluded from git (via .gitignore)
108108
- Excluded from markdown linting
109109
- Excluded from spell checking
110+
111+
## Markdown Link Style
112+
113+
- **AI agent markdown files** (`.github/agents/*.md`): Use inline links `[text](url)` so URLs are visible in agent context
114+
- **README.md**: Use absolute URLs (shipped in NuGet package)
115+
- **All other markdown files**: Use reference-style links `[text][ref]` with `[ref]: url` at document end
116+
117+
## Notable Absent Files
118+
119+
- **CHANGELOG.md**: Not present - changes are captured in the auto-generated build notes

0 commit comments

Comments
 (0)