Skip to content

docs: Add design introduction with software structure and folder layout#10

Merged
Malcolmnixon merged 2 commits intomainfrom
copilot/add-docs-design-introduction
Mar 30, 2026
Merged

docs: Add design introduction with software structure and folder layout#10
Malcolmnixon merged 2 commits intomainfrom
copilot/add-docs-design-introduction

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 30, 2026

Pull Request

Description

Adds docs/design/introduction.md — the opening chapter of the FileAssert detailed design document — covering the planned software architecture as it should appear in the finished implementation.

New file: docs/design/introduction.md

  • Purpose & Scope — defines the document's intent and lists all 9 software units with their source files
  • Software Structure — ASCII tree mapping the System → Subsystem → Unit hierarchy:
    • CliContext
    • ConfigurationFileAssertConfig, FileAssertData
    • ModelingFileAssertTest, FileAssertFile, FileAssertRule
    • UtilitiesPathHelpers
    • SelfTestValidation
  • Folder Layout — planned source directory structure mirroring the subsystem breakdown (with subdirectories per subsystem, not the current flat layout)
  • Document Conventions & References

Updated: docs/design/definition.yaml

  • Inserts introduction.md as the first chapter after title.txt in the Pandoc generation pipeline

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code quality improvement

Related Issues

Closes #

Pre-Submission Checklist

Before submitting this pull request, ensure you have completed the following:

Build and Test

  • Code builds successfully: dotnet build --configuration Release
  • All unit tests pass: dotnet test --configuration Release
  • Self-validation tests pass:
    dotnet run --project src/DemaConsulting.FileAssert --configuration Release --framework net10.0
    --no-build -- --validate
  • Code produces zero warnings

Code Quality

  • Code formatting is correct: dotnet format --verify-no-changes
  • New code has appropriate XML documentation comments
  • Static analyzer warnings have been addressed

Quality Checks

Please run the following checks before submitting:

  • All linters pass: ./lint.sh (Unix/macOS) or cmd /c lint.bat / ./lint.bat (Windows)

Testing

  • Added unit tests for new functionality
  • Updated existing tests if behavior changed
  • All tests follow the AAA (Arrange, Act, Assert) pattern
  • Test coverage is maintained or improved

Documentation

  • Updated README.md (if applicable)
  • Updated ARCHITECTURE.md (if applicable)
  • Added code examples for new features (if applicable)
  • Updated requirements.yaml (if applicable)

Additional Notes

The folder layout documented here reflects the planned final structure (subsystems as subdirectories), not the current flat source layout. This serves as the architectural guide for the implementation phase.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/1108766/chrome-linux.zip
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node install.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI linked an issue Mar 30, 2026 that may be closed by this pull request
3 tasks
Copilot AI changed the title [WIP] Add docs/design/introduction.md with software structure and layout docs: Add design introduction with software structure and folder layout Mar 30, 2026
Copilot AI requested a review from Malcolmnixon March 30, 2026 18:39
@Malcolmnixon Malcolmnixon marked this pull request as ready for review March 30, 2026 18:41
Copilot AI review requested due to automatic review settings March 30, 2026 18:41
@Malcolmnixon Malcolmnixon merged commit 8beb17f into main Mar 30, 2026
3 checks passed
@Malcolmnixon Malcolmnixon deleted the copilot/add-docs-design-introduction branch March 30, 2026 18:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an “Introduction” chapter to the FileAssert detailed design document and includes it in the Pandoc build pipeline, to describe intended architecture and navigation.

Changes:

  • Added docs/design/introduction.md describing purpose/scope, subsystem/unit structure, planned folder layout, conventions, and references.
  • Updated docs/design/definition.yaml to include the new introduction chapter immediately after title.txt.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
docs/design/introduction.md New introductory chapter describing FileAssert’s intended architecture, unit list, and documentation conventions.
docs/design/definition.yaml Adds introduction.md to the ordered list of Pandoc input files.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +61 to +63
The source code folder structure mirrors the top-level subsystem breakdown above, giving
reviewers an explicit navigation aid from design to code:

Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “Folder Layout” section reads as if it reflects the current repo layout (“mirrors … above”), but the current implementation under src/DemaConsulting.FileAssert/ is still flat (e.g., Context.cs, FileAssertConfig.cs, etc. are not under subsystem subfolders). To avoid misleading readers, reword this section to explicitly say this is the planned/target layout (and optionally note the current flat layout).

Copilot uses AI. Check for mistakes.
└── Validation.cs — self-validation test runner
```

The test project mirrors the same layout under `test/DemaConsulting.FileAssert.Tests/`.
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This statement is currently inaccurate: test/DemaConsulting.FileAssert.Tests/ is also flat today (no Cli/, Configuration/, etc. subfolders). Either qualify it as a planned future structure or adjust it to describe the current state.

Suggested change
The test project mirrors the same layout under `test/DemaConsulting.FileAssert.Tests/`.
The test project currently uses a flat folder structure under `test/DemaConsulting.FileAssert.Tests/`, with tests organized logically by subsystem but not yet split into `Cli/`, `Configuration/`, `Modeling/`, `Utilities/`, or `SelfTest` subfolders.

Copilot uses AI. Check for mistakes.
└── Validation (Unit)
```

Each unit is described in detail in its own chapter within this document.
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

“Each unit is described in detail in its own chapter within this document” doesn’t match the current document composition: docs/design/definition.yaml only includes chapters for rule/file/test/config (not Program/Context/FileAssertData/PathHelpers/Validation). Please either change this to future tense (e.g., “will be described…”) or add stubs/chapters and include them in definition.yaml.

Suggested change
Each unit is described in detail in its own chapter within this document.
Each unit will be described in detail in its own chapter within this document.

Copilot uses AI. Check for mistakes.
Comment on lines +90 to +91
- Section headings within each unit chapter follow a consistent structure: overview, data model,
methods/algorithms, and interactions with other units.
Copy link

Copilot AI Mar 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “Document Conventions” bullet about unit chapter headings (“overview, data model, methods/algorithms, …”) doesn’t match the existing unit chapters in this doc set, which currently use sections like “Overview”, “Class Structure”, “YAML Configuration”, and “Design Decisions”. Update this convention to reflect the current structure, or adjust the existing chapters to follow the stated structure so the document is internally consistent.

Suggested change
- Section headings within each unit chapter follow a consistent structure: overview, data model,
methods/algorithms, and interactions with other units.
- Section headings within each unit chapter typically follow a consistent structure using sections
such as **Overview**, **Class Structure**, **YAML Configuration**, and **Design Decisions**.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Need docs/design/introduction.md

3 participants