Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
12 changes: 10 additions & 2 deletions .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@
"CodeQL",
"SonarMark",
"SarifMark",
"buildnotes"
"buildnotes",
"slnx"
],
"ignorePaths": [
"node_modules",
Expand All @@ -43,7 +44,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 @@ ReqStream/
- **`.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)
- **`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