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
88 changes: 63 additions & 25 deletions .reviewmark.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# Processed in order; prefix a pattern with '!' to exclude.
needs-review:
- "**/*.cs" # All C# source and test files
- "requirements.yaml" # Root requirements file
- "docs/reqstream/**/*.yaml" # Requirements files
- "docs/design/**/*.md" # Design documents
- "!**/obj/**" # Exclude build output
Expand All @@ -24,49 +25,86 @@ evidence-source:
# Each review-set groups requirements, source, and tests for a coherent software unit
# so that an AI-assisted review can verify consistency across the full evidence chain.
reviews:
# Software unit reviews - one per class
- id: TemplateTool-Context
title: Review of Template DotNet Tool Context Unit
paths:
- "docs/reqstream/cli/unit-context.yaml"
- "src/**/Context.cs"
- "test/**/ContextTests.cs"

# Software unit reviews - one per unit
- id: TemplateTool-Program
title: Review of Template DotNet Tool Program Unit
paths:
- "docs/reqstream/unit-program.yaml"
- "src/**/Program.cs"
- "test/**/ProgramTests.cs"
- "test/**/IntegrationTests.cs"
- "test/**/Runner.cs"
- "test/**/AssemblyInfo.cs"
- "docs/reqstream/unit-program.yaml" # requirements
- "docs/design/program.md" # design
- "src/**/Program.cs" # implementation
- "test/**/ProgramTests.cs" # unit tests

- id: TemplateTool-Context
title: Review of Template DotNet Tool Context Unit
paths:
- "docs/reqstream/cli/unit-context.yaml" # requirements
- "docs/design/cli/context.md" # design
- "src/**/Cli/Context.cs" # implementation
- "test/**/Cli/ContextTests.cs" # unit tests

- id: TemplateTool-Validation
title: Review of Template DotNet Tool Validation Unit
paths:
- "docs/reqstream/self-test/unit-validation.yaml"
- "src/**/Validation.cs"
- "test/**/ValidationTests.cs"
- "docs/reqstream/self-test/unit-validation.yaml" # requirements
- "docs/design/self-test/validation.md" # design
- "src/**/SelfTest/Validation.cs" # implementation
- "test/**/SelfTest/ValidationTests.cs" # unit tests

- id: TemplateTool-PathHelpers
title: Review of Template DotNet Tool PathHelpers Unit
paths:
- "docs/reqstream/utilities/unit-path-helpers.yaml"
- "src/**/PathHelpers.cs"
- "test/**/PathHelpersTests.cs"
- "docs/reqstream/utilities/unit-path-helpers.yaml" # requirements
- "docs/design/utilities/path-helpers.md" # design
- "src/**/Utilities/PathHelpers.cs" # implementation
- "test/**/Utilities/PathHelpersTests.cs" # unit tests

# Subsystem reviews
- id: TemplateTool-Cli
title: Review of Template DotNet Tool Cli subsystem (command-line interface)
paths:
- "docs/reqstream/cli/subsystem-cli.yaml" # subsystem requirements
- "docs/design/cli/cli.md" # subsystem design
- "docs/design/cli/context.md" # Context unit design
- "docs/design/program.md" # Program unit design

- id: TemplateTool-SelfTest
title: Review of Template DotNet Tool SelfTest subsystem (self-validation)
paths:
- "docs/reqstream/self-test/subsystem-self-test.yaml" # subsystem requirements
- "docs/design/self-test/self-test.md" # subsystem design
- "docs/design/self-test/validation.md" # Validation unit design

- id: TemplateTool-Utilities
title: Review of Template DotNet Tool Utilities subsystem (shared utilities)
paths:
- "docs/reqstream/utilities/subsystem-utilities.yaml" # subsystem requirements
- "docs/design/utilities/utilities.md" # subsystem design
- "docs/design/utilities/path-helpers.md" # PathHelpers unit design

# System review - covers system-level behavior validated through integration tests
- id: TemplateTool-System
title: Review of Template DotNet Tool system-level behavior and integration
paths:
- "docs/reqstream/templatetool-system.yaml" # system requirements
- "docs/reqstream/platform-requirements.yaml" # platform requirements
- "docs/design/introduction.md" # design introduction and architecture
- "test/**/IntegrationTests.cs" # integration tests
- "test/**/Runner.cs" # test infrastructure
- "test/**/AssemblyInfo.cs" # test infrastructure

- id: TemplateTool-Design
title: Review of Template DotNet Tool Software Design Document
paths:
- "docs/design/**/*.md"
- "docs/design/**/*.md" # all design documents

# Platform and OTS dependency reviews
- id: Platform-Support
title: Review of Platform and Runtime Support Requirements
# All-requirements review
- id: TemplateTool-AllRequirements
title: Review of all Template DotNet Tool requirements files
paths:
- "docs/reqstream/platform-requirements.yaml"
- "requirements.yaml" # root requirements file
- "docs/reqstream/**/*.yaml" # all requirements files

# OTS dependency reviews
- id: OTS-Dependencies
title: Review of Off-The-Shelf Software Dependencies
paths:
Expand Down
2 changes: 2 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ compliance gates on every CI/CD run instead of as a last-mile activity.
## Project Structure Template

- `docs/` - Documentation and compliance artifacts
- `design/` - Detailed design documents
- `introduction.md` - System/Subsystem/Unit breakdown for this repository
- `reqstream/` - Subsystem requirements YAML files (included by root requirements.yaml)
- Auto-generated reports (requirements, justifications, trace matrix)
- `src/` - Source code files
Expand Down
47 changes: 47 additions & 0 deletions docs/design/cli/cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Cli Subsystem

<!-- TODO: This is an example design section for the Cli subsystem. Replace with your own subsystem design. -->

The `Cli` subsystem provides the command-line interface for the Template DotNet Tool.
It is responsible for accepting user input from the command line and routing output to
the console and an optional log file.

## Overview

<!-- TODO: Fill in for your project -->

The `Cli` subsystem acts as the primary boundary between the user's shell invocation and
the tool's internal logic. It owns argument parsing, output formatting, and error tracking.
All other subsystems receive a `Context` object from the `Cli` subsystem to read parsed
flags and write output.

## Units

<!-- TODO: Fill in for your project -->

The `Cli` subsystem contains the following software unit:

| Unit | File | Responsibility |
|-----------|------------------|---------------------------------------------------|
| `Context` | `Cli/Context.cs` | Argument parsing, output channels, and exit code. |

## Interfaces

<!-- TODO: Fill in for your project -->

The `Cli` subsystem exposes the following interface to the rest of the tool:

| Interface | Direction | Description |
|----------------------|-----------|---------------------------------------------------------------|
| `Context.Create` | Outbound | Factory method constructing a `Context` from `string[] args`. |
| `Context.WriteLine` | Outbound | Writes a message to console and optional log file. |
| `Context.WriteError` | Outbound | Writes an error to stderr and sets the error exit code. |
| `Context.ExitCode` | Outbound | Returns 0 for success or 1 when errors have been reported. |

## Interactions

<!-- TODO: Fill in for your project -->

The `Cli` subsystem has no dependencies on other tool subsystems. It uses only .NET base
class library types. The `Program` unit at system level creates the `Context` and passes it
to all subsystems that need to produce output.
File renamed without changes.
13 changes: 10 additions & 3 deletions docs/design/definition.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
---
resource-path:
- docs/design
- docs/design/cli
- docs/design/self-test
- docs/design/utilities
- docs/template

input-files:
- docs/design/title.txt
- docs/design/introduction.md
- docs/design/program.md
- docs/design/context.md
- docs/design/validation.md
- docs/design/path-helpers.md
- docs/design/cli/cli.md
- docs/design/cli/context.md
- docs/design/self-test/self-test.md
- docs/design/self-test/validation.md
- docs/design/utilities/utilities.md
- docs/design/utilities/path-helpers.md
template: template.html
table-of-contents: true
number-sections: true
45 changes: 45 additions & 0 deletions docs/design/self-test/self-test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# SelfTest Subsystem

<!-- TODO: This is an example design section for the SelfTest subsystem. Replace with your own subsystem design. -->

The `SelfTest` subsystem provides the self-validation framework for the Template DotNet Tool.
It runs a built-in suite of tests to demonstrate the tool is functioning correctly in the
deployment environment.

## Overview

<!-- TODO: Fill in for your project -->

The `SelfTest` subsystem is invoked when the user passes `--validate` on the command line.
It exercises the tool's own capabilities and reports a pass/fail summary. It can also write
test results to a file in TRX or JUnit XML format for integration with CI/CD pipelines.

## Units

<!-- TODO: Fill in for your project -->

The `SelfTest` subsystem contains the following software unit:

| Unit | File | Responsibility |
|--------------|--------------------------|----------------------------------------------------|
| `Validation` | `SelfTest/Validation.cs` | Orchestrating and executing self-validation tests. |

## Interfaces

<!-- TODO: Fill in for your project -->

The `SelfTest` subsystem exposes the following interface to the rest of the tool:

| Interface | Direction | Description |
|------------------|-----------|-----------------------------------------------------------------------|
| `Validation.Run` | Outbound | Runs all self-validation tests, prints a summary, and writes results. |

## Interactions

<!-- TODO: Fill in for your project -->

| Dependency | Direction | Purpose |
|---------------|-----------|--------------------------------------------------------------|
| `Context` | Uses | Output channel for header lines, test summaries, and errors. |
| `Program` | Uses | `Program.Run` is called internally to exercise the tool. |
| `PathHelpers` | Uses | `SafePathCombine` for constructing log file paths in tests. |
File renamed without changes.
File renamed without changes.
42 changes: 42 additions & 0 deletions docs/design/utilities/utilities.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Utilities Subsystem

<!-- TODO: This is an example design section for the Utilities subsystem. Replace with your own subsystem design. -->

The `Utilities` subsystem provides shared utility functions for the Template DotNet Tool.
It supplies reusable, independently testable helpers that are consumed by other subsystems.

## Overview

<!-- TODO: Fill in for your project -->

The `Utilities` subsystem contains general-purpose helpers that do not belong to any
specific feature subsystem. Its primary responsibility is safe file-path manipulation,
protecting callers from path-traversal vulnerabilities when constructing paths from
external inputs.

## Units

<!-- TODO: Fill in for your project -->

The `Utilities` subsystem contains the following software unit:

| Unit | File | Responsibility |
|---------------|----------------------------|---------------------------------------------|
| `PathHelpers` | `Utilities/PathHelpers.cs` | Safe path combination and traversal checks. |

## Interfaces

<!-- TODO: Fill in for your project -->

The `Utilities` subsystem exposes the following interface to the rest of the tool:

| Interface | Direction | Description |
|-------------------------------|-----------|------------------------------------------------------------|
| `PathHelpers.SafePathCombine` | Outbound | Combines two path segments, rejecting traversal sequences. |

## Interactions

<!-- TODO: Fill in for your project -->

`PathHelpers` has no dependencies on other tool units or subsystems. It uses only .NET base
class library types (`Path`, `ArgumentNullException`).
Loading
Loading