Implement YAML parsing for requirements documents#16
Conversation
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
|
@copilot The reader logic should throw exceptions (with file and location information in the text) for errors such as blank requirement-IDs, requirement-titles, section-titles, or test-names. These failure scenarios should be tested. |
…on in error messages Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Added validation for all blank field scenarios with file location information in error messages (commit a1b4eed). The parser now validates and throws
All 7 validation scenarios have corresponding unit tests that verify the error messages contain the appropriate context and file location information. |
|
@copilot Consider enhancing the Requirements static Read method so it can take a params array of files - allowing the caller to pass in one file or multiple. This too should have appropriate tests. |
… spelling issues Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Enhanced the The method now supports:
Added 6 new tests covering all scenarios including merging multiple files, section merging, backwards compatibility, validation, and duplicate detection across files. |
Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
…e docs, guide restructuring, template consistency, workflow reorganization (#110) * Initial plan * Plan: apply agent-identified improvements Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Apply agent-identified improvements: formatting, editorconfig, requirements, architecture docs Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Restructure user guide heading hierarchy - Remove root title heading (title comes from title.txt for PDF) - Remove Table of Contents section (auto-generated by Pandoc) - Add Purpose and Scope subsections to Introduction - Promote all heading levels by one (## → #, ### → ##, etc.) - Disable MD025 markdownlint rule to allow multiple top-level headings The document now has multiple top-level headings (Introduction, Prerequisites, Installation, etc.) since the title is populated from title.txt when compiled to PDF rather than being in the markdown file itself. * Apply template improvements from TemplateDotNetTool PRs #16-#37 Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Reorganize workflow files to match template structure: section comments, logical phases, metadata Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com> * Fix source filters (windows@, ubuntu@) and add tags to all requirements 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>
Implements parsing of requirements YAML files as specified in README.md format, including hierarchical sections, test mappings, and file includes.
Implementation
Requirement,Section, andRequirementsclasses form a DOM tree for requirements hierarchyRequirements.Read(params string[] paths)method using YamlDotNet with hyphenated naming convention_includedFilestrackingmappingssectionAll validation errors throw
InvalidOperationExceptionwith file location information to help users quickly identify and fix issues.Usage
Testing
26 unit tests covering:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.