Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,14 @@
"*.min.css",
".git",
"package-lock.json",
"yarn.lock",
"*.csproj",
"*.sln"
"*.sln",
"*.slnx",
"*.dll",
"*.exe",
"*.trx",
"*.spdx.json",
"AGENT_REPORT_*.md"
]
}
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ bld/
.vs/

# Visual Studio Code directory
.vscode/
.vscode/*
!.vscode/tasks.json

# Rider directory
.idea/
Expand Down Expand Up @@ -125,3 +126,6 @@ docs/requirements/requirements.md
docs/tracematrix/*.html
docs/tracematrix/tracematrix.md
docs/*.pdf

# Agent-generated reports (should not be committed)
AGENT_REPORT_*.md
14 changes: 14 additions & 0 deletions .markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"config": {
"default": true,
"MD003": { "style": "atx" },
"MD007": { "indent": 2 },
"MD013": { "line_length": 120 },
"MD033": false,
"MD041": false
},
"ignores": [
"node_modules/**",
"AGENT_REPORT_*.md"
]
}
8 changes: 0 additions & 8 deletions .markdownlint.json

This file was deleted.

126 changes: 126 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/DemaConsulting.ReqStream.slnx",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary;ForceNoAlign"
],
"problemMatcher": "$msCompile",
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "test",
"command": "dotnet",
"type": "process",
"args": [
"test",
"${workspaceFolder}/DemaConsulting.ReqStream.slnx",
"--no-build",
"--verbosity",
"normal"
],
"problemMatcher": "$msCompile",
"group": {
"kind": "test",
"isDefault": true
},
"dependsOn": "build"
},
{
"label": "clean",
"command": "dotnet",
"type": "process",
"args": [
"clean",
"${workspaceFolder}/DemaConsulting.ReqStream.slnx"
],
"problemMatcher": "$msCompile"
},
{
"label": "restore",
"command": "dotnet",
"type": "process",
"args": [
"restore",
"${workspaceFolder}/DemaConsulting.ReqStream.slnx"
],
"problemMatcher": "$msCompile"
},
{
"label": "format",
"command": "dotnet",
"type": "process",
"args": [
"format",
"${workspaceFolder}/DemaConsulting.ReqStream.slnx"
],
"problemMatcher": []
},
{
"label": "lint",
"command": "bash",
"type": "shell",
"args": [
"${workspaceFolder}/lint.sh"
],
"windows": {
"command": "${workspaceFolder}/lint.bat"
},
"problemMatcher": []
},
{
"label": "validate",
"command": "dotnet",
"type": "process",
"args": [
"run",
"--project",
"${workspaceFolder}/src/DemaConsulting.ReqStream/DemaConsulting.ReqStream.csproj",
"--no-build",
"--",
"--validate"
],
"problemMatcher": [],
"dependsOn": "build"
},
{
"label": "verify-requirements",
"command": "dotnet",
"type": "process",
"args": [
"run",
"--project",
"${workspaceFolder}/src/DemaConsulting.ReqStream/DemaConsulting.ReqStream.csproj",
"--no-build",
"--",
"--requirements",
"${workspaceFolder}/requirements.yaml",
"--tests",
"${workspaceFolder}/test/**/TestResults/*.trx",
"--enforce"
],
"problemMatcher": [],
"dependsOn": "test"
},
{
"label": "build-all",
"dependsOn": [
"restore",
"build",
"test",
"format",
"lint"
],
"problemMatcher": []
}
]
}
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
- **`.cspell.json`**: Contains spell-checking configuration and custom dictionary
- **`.markdownlint.json`**: Markdown linting rules
- **`.yamllint.yaml`**: YAML linting rules
- **`DemaConsulting.ReqStream.sln`**: Solution file containing all projects
- **`DemaConsulting.ReqStream.slnx`**: Solution file containing all projects (XML format)

Check warning on line 58 in AGENTS.md

View workflow job for this annotation

GitHub Actions / Build / Quality Checks

Unknown word (slnx)
- **`ARCHITECTURE.md`**: Comprehensive guide to the tool's architecture and internal design

## Testing Guidelines
Expand Down
4 changes: 0 additions & 4 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -973,8 +973,4 @@ private void ReadFile(string path)

---

**Document Version**: 1.0

**Last Updated**: 2026-01-11

For questions or suggestions about this architecture document, please open an issue or submit a pull request.
28 changes: 0 additions & 28 deletions DemaConsulting.ReqStream.sln

This file was deleted.

12 changes: 12 additions & 0 deletions DemaConsulting.ReqStream.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<Solution>
<Folder Name="/src/">
<Project Path="src\DemaConsulting.ReqStream\DemaConsulting.ReqStream.csproj" />
</Folder>
<Folder Name="/test/">
<Project Path="test\DemaConsulting.ReqStream.Tests\DemaConsulting.ReqStream.Tests.csproj" />
</Folder>
<Properties>
<Configuration Name="Debug|Any CPU" />
<Configuration Name="Release|Any CPU" />
</Properties>
</Solution>
16 changes: 16 additions & 0 deletions build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
@echo off
REM Build and test ReqStream (Windows)

echo Building ReqStream...
dotnet build --configuration Release
if %errorlevel% neq 0 exit /b %errorlevel%

echo Running unit tests...
dotnet test --configuration Release
if %errorlevel% neq 0 exit /b %errorlevel%

echo Running self-validation...
dotnet run --project src/DemaConsulting.ReqStream --configuration Release --framework net10.0 --no-build -- --validate
if %errorlevel% neq 0 exit /b %errorlevel%

echo Build, tests, and validation completed successfully!
15 changes: 15 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
# Build and test ReqStream

set -e # Exit on error

echo "🔧 Building ReqStream..."
dotnet build --configuration Release

echo "🧪 Running unit tests..."
dotnet test --configuration Release

echo "✅ Running self-validation..."
dotnet run --project src/DemaConsulting.ReqStream --configuration Release --framework net10.0 --no-build -- --validate

echo "✨ Build, tests, and validation completed successfully!"
20 changes: 20 additions & 0 deletions lint.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
@echo off
REM Run all linters for ReqStream (Windows)

echo Checking markdown...
call npx markdownlint-cli2 "**/*.md"
if %errorlevel% neq 0 exit /b %errorlevel%

echo Checking spelling...
call npx cspell "**/*.{cs,md,json,yaml,yml}" --no-progress
if %errorlevel% neq 0 exit /b %errorlevel%

echo Checking YAML...
call yamllint -c .yamllint.yaml .
if %errorlevel% neq 0 exit /b %errorlevel%

echo Checking code formatting...
dotnet format --verify-no-changes
if %errorlevel% neq 0 exit /b %errorlevel%

echo All linting passed!
18 changes: 18 additions & 0 deletions lint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Run all linters for ReqStream

set -e # Exit on error

echo "📝 Checking markdown..."
npx markdownlint-cli2 "**/*.md"

echo "🔤 Checking spelling..."
npx cspell "**/*.{cs,md,json,yaml,yml}" --no-progress

echo "📋 Checking YAML..."
yamllint -c .yamllint.yaml .

echo "🎨 Checking code formatting..."
dotnet format --verify-no-changes

echo "✨ All linting passed!"
14 changes: 7 additions & 7 deletions src/DemaConsulting.ReqStream/Program.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2026 DEMA Consulting
// Copyright (c) 2026 DEMA Consulting
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
Expand Down Expand Up @@ -51,12 +51,12 @@ private static int Main(string[] args)
try
{
// Create context from arguments
using var context = Context.Create(args);
// Run the program logic
Run(context);
// Return the exit code from the context
using var context = Context.Create(args);

// Run the program logic
Run(context);

// Return the exit code from the context
return context.ExitCode;
}
catch (ArgumentException ex)
Expand Down
4 changes: 2 additions & 2 deletions src/DemaConsulting.ReqStream/TraceMatrix.cs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ public IReadOnlyDictionary<string, TestMetrics> GetAllTestResults()
var results = new Dictionary<string, TestMetrics>();
var requiredTests = new HashSet<string>();
CollectRequiredTestNames(_requirements, requiredTests);

foreach (var testName in requiredTests)
{
var result = GetTestResult(testName);
Expand All @@ -124,7 +124,7 @@ public IReadOnlyDictionary<string, TestMetrics> GetAllTestResults()
results[testName] = result;
}
}

return results;
}

Expand Down
Loading
Loading