Skip to content

Add SysML2 architecture model support and fix related defects - #140

Merged
Malcolmnixon merged 9 commits into
mainfrom
feature/sysml2-architecture-model
Jul 12, 2026
Merged

Add SysML2 architecture model support and fix related defects#140
Malcolmnixon merged 9 commits into
mainfrom
feature/sysml2-architecture-model

Conversation

@Malcolmnixon

Copy link
Copy Markdown
Member

This pull request introduces a new planning agent and significantly refines the orchestration, reporting, and quality validation processes for the agent-based development workflow. It updates agent instructions and report templates for improved traceability, companion artifact coverage, and standards compliance. The changes also extend support for SysML2 tooling and terminology.

Key changes include:

Agent Orchestration and Planning

  • Added a dedicated planning agent (.github/agents/planning.agent.md) that investigates the codebase, produces a verified implementation plan, and explicitly identifies all required companion artifacts for traceability and compliance. The agent includes a structured critique, risk, and feasibility assessment, and returns a lean summary with a link to the full report.
  • Updated the implementation orchestration agent (.github/agents/implementation.agent.md) to use the new planning agent, clarify state transitions, and require referencing the planning report for full details. The completion report now includes explicit unknowns when the result is INCOMPLETE. [1] [2] [3] [4] [5]

Companion Artifact and Quality Coverage

  • Refined the developer and quality agent instructions to require verification documentation, README/user guide updates, and stricter cross-referencing of companion artifact tables. The quality agent now enforces that all artifacts marked as create/update in planning must be produced, and adds a dedicated verification documentation compliance section. [1] [2] [3] [4] [5]

Formal Review and Reporting

  • Improved the formal review agent flow to distinguish context/reference files from files under review and to clarify report file naming and storage.
  • Standardized report templates for all agents to include explicit report file paths, and improved the lint-fix report format. [1] [2]

Template Synchronization and SysML2 Support

  • Enhanced template-sync agent grouping to support SysML2 model files and added logic for handling missing templates and reporting failures. [1] [2]
  • Added demaconsulting.sysml2tools.tool to .config/dotnet-tools.json and updated spelling dictionary entries for SysML2 terminology. [1] [2] [3]

Malcolm Nixon and others added 2 commits July 11, 2026 10:47
- Scaffold docs/sysml2/ model and design-views with sysml2tools wired into
  lint.ps1, build.yaml, .config/dotnet-tools.json, .versionmark.yaml
- Refactor docs/design/introduction.md to reference the generated
  SoftwareStructureView diagram instead of a hand-maintained tree
- Embed per-subsystem/unit diagrams across docs/design/vhdltest/**
- Rework .reviewmark.yaml to match the updated reviewmark-usage standard
  (Purpose/Decomposition review-sets, OTS-* naming, context blocks)
- Document SysML2Tools as an OTS dependency (reqstream/design/verification
  docs, requirements.yaml include, ots.md/definition.yaml wiring)
- Update docs/verification/introduction.md and ots.md to match

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… macOS CI

Bug-fix sweep on top of the SysML2 architecture model work, addressing defects the
improved design clarity surfaced during formal review:

- Add TclText/XilinxArgText helpers to quote/escape interpolated paths and names in
  generated ModelSim/ActiveHdl TCL scripts and QuestaSim/Vivado do-files, preventing
  breakage or injection from spaces or metacharacters
- Fix RunProcessor Windows cmd /c wrapping so a missing/invalid program consistently
  throws Win32Exception instead of silently producing a non-zero exit, resolving the
  executable against the actual working directory
- Defensively copy the rules array in RunProcessor's constructor to honor its
  documented immutability
- Correct documentation drift: nonexistent ISimulator reference, stale Callers lists,
  Validation's actual in-process execution model, Simulator test-double description
- Add missing docs/reqstream/vhdltest/run/process-invoker.yaml requirements.yaml
  include, and fix OTS reqstream/design/verification traceability gaps
- Split compound Results requirements into atomic, testable siblings and remove
  implementation-leakage wording from program.yaml
- Strengthen SimulatorFactoryTests/ProgramTests assertions to match stated
  requirements

Also restore GHDL integration testing on macOS: remove the version: 5.1.1 pin from
ghdl/setup-ghdl@v1 (which only ships macOS 14/15 binaries at that version) so it
defaults to the rolling nightly release, and re-add macos-latest (now macOS 26) to
the test-ghdl matrix; GHDL 6.0.0+ confirmed macOS aarch64 support.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 11, 2026 19:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR extends VHDLTest’s simulator and workflow infrastructure by (1) hardening simulator script/arg-file quoting, (2) fixing Windows RunProcessor missing-executable behavior and improving immutability guarantees, and (3) introducing SysML2 architecture model artifacts plus CI/lint integration to validate and render the model for design documentation.

Changes:

  • Added TclText and XilinxArgText quoting helpers; updated simulator script generation to safely handle spaces/metacharacters; added/updated unit tests and verification/design docs.
  • Updated RunProcessor to defensively copy rule arrays and to pre-resolve executables on Windows (to throw consistently for missing programs); added regression tests and documentation.
  • Added SysML2Tools as a local tool and integrated SysML2 lint/render/self-validation into lint/build workflows; added SysML2 model/view files and related standards/agent guidance.

Reviewed changes

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

Show a summary per file
File Description
test/DEMAConsulting.VHDLTest.Tests/Simulators/XilinxArgTextTests.cs New unit tests for Xilinx argument-file quoting behavior.
test/DEMAConsulting.VHDLTest.Tests/Simulators/VivadoSimulatorTests.cs Updates existing assertions + adds round-trip tests for quoted paths/test names in Vivado scripts.
test/DEMAConsulting.VHDLTest.Tests/Simulators/TclTextTests.cs New unit tests for TCL quoting (brace quoting + escaped fallback).
test/DEMAConsulting.VHDLTest.Tests/Simulators/SimulatorFactoryTests.cs Strengthens auto-discovery test to validate ordering/selection by reference equality.
test/DEMAConsulting.VHDLTest.Tests/Simulators/QuestaSimSimulatorTests.cs Updates expectations to brace-quoted test names + adds quoting round-trip tests.
test/DEMAConsulting.VHDLTest.Tests/Simulators/ModelSimSimulatorTests.cs Updates expectations to brace-quoted test names + adds quoting round-trip tests.
test/DEMAConsulting.VHDLTest.Tests/Simulators/ActiveHdlSimulatorTests.cs Updates expectations to brace-quoted test names + adds quoting round-trip tests.
test/DEMAConsulting.VHDLTest.Tests/Run/RunProcessorTests.cs Adds Windows-specific regression tests for missing executable behavior and workingDirectory-based resolution; adds immutability test.
test/DEMAConsulting.VHDLTest.Tests/ProgramTests.cs Improves assertions to confirm validation/filter paths actually execute expected behavior via logs.
src/DEMAConsulting.VHDLTest/Simulators/XilinxArgText.cs New helper to quote/escape values for Vivado UG900-style argument files.
src/DEMAConsulting.VHDLTest/Simulators/VivadoSimulator.cs Uses XilinxArgText.Quote for file paths and test entity names in Vivado argument files; docs updated.
src/DEMAConsulting.VHDLTest/Simulators/TclText.cs New helper to quote TCL words safely (brace quoting or escaped double-quote fallback).
src/DEMAConsulting.VHDLTest/Simulators/Simulator.cs Updates contract documentation to reflect per-simulator quoting/argument passing behaviors.
src/DEMAConsulting.VHDLTest/Simulators/QuestaSimSimulator.cs Quotes file paths/test names via TclText.Quote before interpolation into TCL scripts.
src/DEMAConsulting.VHDLTest/Simulators/ModelSimSimulator.cs Quotes file paths/test names via TclText.Quote before interpolation into TCL scripts.
src/DEMAConsulting.VHDLTest/Simulators/ActiveHdlSimulator.cs Quotes file paths/test names via TclText.Quote before interpolation into TCL scripts.
src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs Defensively copies rules array; adds Windows pre-flight executable resolution + consistent missing-program throwing.
requirements.yaml Includes new ReqStream requirement files (TclText/XilinxArgText/ProcessInvoker/SysML2Tools).
lint.ps1 Adds SysML2 model linting via SysML2Tools when docs/sysml2 exists.
docs/verification/vhdltest/simulators/xilinx-arg-text.md New verification evidence for XilinxArgText.
docs/verification/vhdltest/simulators/vivado-simulator.md Adds verification scenarios covering new Vivado quoting behavior.
docs/verification/vhdltest/simulators/tcl-text.md New verification evidence for TclText.
docs/verification/vhdltest/simulators/simulator.md Clarifies how Simulator base behavior is verified via test doubles and MockSimulator.
docs/verification/vhdltest/simulators/simulator-factory.md Updates verification narrative to reflect stronger ordering/selection test.
docs/verification/vhdltest/simulators/questasim-simulator.md Adds verification scenarios for TCL quoting behavior in QuestaSim scripts.
docs/verification/vhdltest/simulators/modelsim-simulator.md Adds verification scenarios for TCL quoting behavior in ModelSim scripts.
docs/verification/vhdltest/simulators/active-hdl-simulator.md Adds verification scenarios for TCL quoting behavior in Active-HDL scripts.
docs/verification/vhdltest/run/run-processor.md Adds verification coverage for Windows missing-program consistency + rules immutability.
docs/verification/vhdltest/program.md Updates verification narrative to reflect MockSimulator usage + stronger filter validation.
docs/verification/ots/versionmark.md Adds “lint detects drift” scenario description.
docs/verification/ots/sysml2tools.md New verification evidence for SysML2Tools integration/self-validation.
docs/verification/ots/reqstream.md Updates referenced self-validation test name.
docs/verification/ots/buildmark.md Expands verification detail to enumerate required self-tests and mapped requirements.
docs/verification/ots.md Adds SysML2Tools to OTS verification index.
docs/verification/introduction.md Expands OTS list to include SysML2Tools and other pipeline OTS items.
docs/verification/definition.yaml Adds SysML2Tools verification doc to verification collection inputs.
docs/sysml2/views/design-views.sysml New SysML2 view declarations for diagram rendering.
docs/sysml2/model/vhdltest/simulators/xilinx-arg-text.sysml Adds SysML2 part def + artifact references for XilinxArgText.
docs/sysml2/model/vhdltest/simulators/vivado-simulator.sysml Adds SysML2 part def + artifact references for VivadoSimulator.
docs/sysml2/model/vhdltest/simulators/tcl-text.sysml Adds SysML2 part def + artifact references for TclText.
docs/sysml2/model/vhdltest/simulators/simulator.sysml Adds SysML2 part def + artifact references for Simulator.
docs/sysml2/model/vhdltest/simulators/simulator-factory.sysml Adds SysML2 part def + artifact references for SimulatorFactory.
docs/sysml2/model/vhdltest/simulators/questasim-simulator.sysml Adds SysML2 part def + artifact references for QuestaSimSimulator.
docs/sysml2/model/vhdltest/simulators/nvc-simulator.sysml Adds SysML2 part def + artifact references for NvcSimulator.
docs/sysml2/model/vhdltest/simulators/modelsim-simulator.sysml Adds SysML2 part def + artifact references for ModelSimSimulator.
docs/sysml2/model/vhdltest/simulators/mock-simulator.sysml Adds SysML2 part def + artifact references for MockSimulator.
docs/sysml2/model/vhdltest/simulators/ghdl-simulator.sysml Adds SysML2 part def + artifact references for GhdlSimulator.
docs/sysml2/model/vhdltest/simulators/active-hdl-simulator.sysml Adds SysML2 part def + artifact references for ActiveHdlSimulator.
docs/sysml2/model/vhdltest/simulators.sysml Adds Simulators subsystem part def and includes TclText/XilinxArgText parts.
docs/sysml2/model/vhdltest/self-test/validation.sysml Adds SysML2 part def + artifact references for Validation.
docs/sysml2/model/vhdltest/self-test.sysml Adds SelfTest subsystem part def.
docs/sysml2/model/vhdltest/run/run-results.sysml Adds SysML2 part def + artifact references for RunResults.
docs/sysml2/model/vhdltest/run/run-program.sysml Adds SysML2 part def + artifact references for RunProgram.
docs/sysml2/model/vhdltest/run/run-processor.sysml Adds SysML2 part def + artifact references for RunProcessor.
docs/sysml2/model/vhdltest/run/run-line.sysml Adds SysML2 part def + artifact references for RunLine.
docs/sysml2/model/vhdltest/run/run-line-type.sysml Adds SysML2 part def + artifact references for RunLineType.
docs/sysml2/model/vhdltest/run/run-line-rule.sysml Adds SysML2 part def + artifact references for RunLineRule.
docs/sysml2/model/vhdltest/run/process-invoker.sysml Adds SysML2 part defs + artifact references for IProcessInvoker/ProcessInvoker.
docs/sysml2/model/vhdltest/run.sysml Adds Run subsystem part def and member parts.
docs/sysml2/model/vhdltest/results/test-results.sysml Adds SysML2 part def + artifact references for TestResults.
docs/sysml2/model/vhdltest/results/test-result.sysml Adds SysML2 part def + artifact references for TestResult.
docs/sysml2/model/vhdltest/results.sysml Adds Results subsystem part def and member parts.
docs/sysml2/model/vhdltest/program.sysml Adds SysML2 part def + artifact references for Program.
docs/sysml2/model/vhdltest/cli/options.sysml Adds SysML2 part def + artifact references for Options.
docs/sysml2/model/vhdltest/cli/context.sysml Adds SysML2 part def + artifact references for Context.
docs/sysml2/model/vhdltest/cli/config-document.sysml Adds SysML2 part def + artifact references for ConfigDocument.
docs/sysml2/model/vhdltest/cli.sysml Adds Cli subsystem part def and member parts.
docs/sysml2/model/vhdltest.sysml Adds VHDLTest system part def and top-level structure.
docs/sysml2/model/ots.sysml Adds OTS dependency part defs (YamlDotNet, DemaConsulting.TestResults).
docs/reqstream/vhdltest/simulators/xilinx-arg-text.yaml New requirements for XilinxArgText quoting behavior.
docs/reqstream/vhdltest/simulators/tcl-text.yaml New requirements for TclText brace-quoting and fallback escaping.
docs/reqstream/vhdltest/results/test-results.yaml Splits PrintSummary into explicit count printing + “suppress zero” child requirement.
docs/reqstream/vhdltest/results/results.yaml Splits Results summary requirements to separate per-test lines vs aggregate counts.
docs/reqstream/vhdltest/program.yaml Refines requirement text to focus on observable behavior (run/report/etc.).
docs/reqstream/ots/versionmark.yaml Adds new requirement proving lint detects manifest drift.
docs/reqstream/ots/sysml2tools.yaml New OTS requirements for SysML2Tools lint/render behavior.
docs/reqstream/ots/reviewmark.yaml Adds additional OTS requirements for ReviewMark features (version/help/index/etc.).
docs/reqstream/ots/reqstream.yaml Adds additional OTS requirements for ReqStream features (processing/matrix/export/filtering).
docs/reqstream/ots/buildmark.yaml Adds additional OTS requirements for BuildMark features beyond report generation.
docs/design/vhdltest/simulators/xilinx-arg-text.md New design doc for XilinxArgText (purpose/behavior/callers).
docs/design/vhdltest/simulators/vivado-simulator.md Updates Vivado design doc to reflect Xilinx argument file quoting and adds diagram embed.
docs/design/vhdltest/simulators/tcl-text.md New design doc for TclText (brace quoting + escaped fallback).
docs/design/vhdltest/simulators/simulator.md Adds diagram embed and clarifies per-implementation “safe passing” responsibility.
docs/design/vhdltest/simulators/simulator-factory.md Adds diagram embed.
docs/design/vhdltest/simulators/questasim-simulator.md Adds diagram embed + updates to describe TclText quoting usage.
docs/design/vhdltest/simulators/nvc-simulator.md Adds diagram embed.
docs/design/vhdltest/simulators/modelsim-simulator.md Adds diagram embed + updates to describe TclText quoting usage.
docs/design/vhdltest/simulators/mock-simulator.md Adds diagram embed.
docs/design/vhdltest/simulators/ghdl-simulator.md Adds diagram embed.
docs/design/vhdltest/simulators/active-hdl-simulator.md Adds diagram embed + updates to describe TclText quoting usage.
docs/design/vhdltest/simulators.md Adds diagram embed and updates contained units list to include new helpers.
docs/design/vhdltest/self-test/validation.md Adds diagram embed and clarifies validation runs are in-process nested invocations.
docs/design/vhdltest/self-test.md Adds diagram embed.
docs/design/vhdltest/run/run-results.md Adds diagram embed.
docs/design/vhdltest/run/run-program.md Adds diagram embed and updates callers description to ProcessInvoker.
docs/design/vhdltest/run/run-processor.md Adds diagram embed and documents Windows resolution behavior + defensive copy.
docs/design/vhdltest/run/run-line.md Adds diagram embed.
docs/design/vhdltest/run/run-line-type.md Adds diagram embed.
docs/design/vhdltest/run/run-line-rule.md Adds diagram embed.
docs/design/vhdltest/run/process-invoker.md Adds diagram embed (new/updated ProcessInvoker abstraction doc).
docs/design/vhdltest/run.md Adds diagram embed and updates unit list to include ProcessInvoker abstraction.
docs/design/vhdltest/results/test-results.md Adds diagram embed.
docs/design/vhdltest/results/test-result.md Adds diagram embed.
docs/design/vhdltest/results.md Adds diagram embed.
docs/design/vhdltest/program.md Adds diagram embed.
docs/design/vhdltest/cli/options.md Adds diagram embed.
docs/design/vhdltest/cli/context.md Adds diagram embed and documents value-flag parsing asymmetry and caller map.
docs/design/vhdltest/cli/config-document.md Adds diagram embed.
docs/design/vhdltest/cli.md Adds diagram embed.
docs/design/vhdltest.md Adds diagram embed.
docs/design/ots/sysml2tools.md New OTS design doc for SysML2Tools integration (lint/render/query).
docs/design/ots/reviewmark.md Expands listed features used/integrated for ReviewMark.
docs/design/ots/reqstream.md Expands listed features used/integrated for ReqStream.
docs/design/ots/buildmark.md Expands listed features + adds error-handling description.
docs/design/ots.md Adds SysML2Tools to OTS list and clarifies xUnit naming.
docs/design/introduction.md Replaces hand-maintained structure tree with SysML2-rendered diagram + updates narrative.
docs/design/definition.yaml Adds SysML2Tools design doc to design collection inputs.
AGENTS.md Updates agent navigation guidance to prefer SysML2 model + updates delegation/reporting notes.
.versionmark.yaml Adds sysml2tools capture regex.
.gitignore Ignores generated diagram output directory.
.github/workflows/build.yaml Adds SysML2Tools self-validation + render steps; extends matrix OS/tool capture list.
.github/standards/sysml2-modeling.md New standard defining SysML2 model/view conventions and integration.
.github/standards/software-items.md Notes SysML2 part defs carry artifact-location comment metadata.
.github/standards/reviewmark-usage.md Updates review-set guidance to include SysML2 + clarifies context vs reviewed files.
.github/standards/design-documentation.md Updates Software Structure requirement to be SysML2-diagram-based; clarifies version-number guidance.
.github/skills/sysml2tools-query/SKILL.md New skill doc guiding sysml2tools query usage and conventions.
.github/agents/template-sync.agent.md Updates template-sync grouping and reporting behavior; adds SysML2 grouping.
.github/agents/quality.agent.md Updates quality checks to include verification docs and stricter companion artifact coverage.
.github/agents/planning.agent.md Adds a new planning agent definition and report template.
.github/agents/lint-fix.agent.md Updates lint-fix report template to include report path.
.github/agents/implementation.agent.md Updates orchestration to use planning agent and standardize report fields/state names.
.github/agents/formal-review.agent.md Clarifies context vs reviewed files and standardizes report template fields.
.github/agents/developer.agent.md Expands companion artifact responsibilities and standardizes report template fields.
.cspell.yaml Adds SysML2-related terms and “metacharacter(s)” to dictionary.
.config/dotnet-tools.json Adds SysML2Tools local tool entry.

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

Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs
Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs
macOS still isn't supported by GHDL despite dropping the version: 5.1.1 pin.
Re-exclude macos-latest from the test-ghdl matrix while keeping the version
input unpinned (defaults to setup-ghdl's rolling nightly release) rather than
restoring the 5.1.1 pin.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 11, 2026 19:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 135 out of 136 changed files in this pull request and generated 3 comments.

Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs
Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs
Comment thread .github/workflows/build.yaml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs
Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs
Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs
Comment thread .github/workflows/build.yaml
- TryResolveCandidates no longer appends PATHEXT variants to an
  already extension-qualified application name, preventing an
  unintended match like tool.exe.cmd when tool.exe was requested
- The Win32Exception thrown for a missing program now carries
  NativeErrorCode = ERROR_FILE_NOT_FOUND (2) instead of the default 0

Both were flagged by GitHub's copilot-pull-request-reviewer bot on
PR #140. Verified with a disposable check that the fixes match
cmd.exe/Win32 resolution semantics, added regression tests
(double-extension guard, NativeErrorCode assertion), and updated
design/verification docs. Reviewed clean with the built-in
code-review agent and the VHDLTest-Run-RunProcessor formal-review
review-set (model gpt-5.4-mini).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 11, 2026 19:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs
Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs Outdated
Comment thread src/DEMAConsulting.VHDLTest/Simulators/TclText.cs
Comment thread src/DEMAConsulting.VHDLTest/Simulators/XilinxArgText.cs
Fixes additional issues found in the latest PR #140 review round:
- RunProcessor constructor now throws ArgumentNullException when rules is null,
  instead of a later NullReferenceException from the defensive-copy expression.
- TclText.Quote and XilinxArgText.Quote now throw ArgumentNullException when
  value is null, instead of a NullReferenceException from dereferencing it.
- Corrected stale XML-doc/design-doc references to RunProgram.Run that should
  reference IProcessInvoker.Execute, the actual delegate invoked by
  RunProcessor.Execute(Context, ...).

Added regression tests and updated companion design/verification docs for all
three fixes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 11, 2026 23:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

Comment thread docs/design/vhdltest/run/run-processor.md Outdated
Comment thread docs/design/vhdltest/run/run-processor.md Outdated
Addresses PR #140 review feedback: the design doc's Key Methods and Error
Handling sections for Execute(Context, ...) implied Windows pre-flight
executable resolution and the pre-flight Win32Exception throw always occur.
In fact both only happen when the instance uses the production
ProcessInvoker.Instance; they are skipped when a test-double IProcessInvoker
is supplied, matching the already-correct XML doc comments in
RunProcessor.cs (unchanged).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 11, 2026 23:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 135 out of 136 changed files in this pull request and generated 1 comment.

Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs Outdated
…tory search order

Addresses PR #140 review feedback: TryResolveWindowsExecutable only searched
the starting directory and PATH, but real CreateProcess/cmd.exe resolution
always implicitly searches the Windows system directory (%SystemRoot%\System32)
and the Windows directory (%SystemRoot%) regardless of PATH contents. This
could cause the pre-flight check to throw Win32Exception for a program that
cmd /c would actually launch successfully.

- Added a WindowsSystemDirectories helper yielding Environment.SystemDirectory
  and the Windows special folder path.
- TryResolveWindowsExecutable now searches the starting directory first, then
  the system directories, then PATH, matching the documented CreateProcess
  search order (an initial version of this fix searched the system
  directories before the starting directory; corrected after a follow-up
  review caught the order mismatch against the current/starting directory).
- Added a regression test that temporarily clears PATH of System32 and
  confirms 'cmd' (which lives there) still resolves and runs successfully.
- Added reqstream requirement VHDLTest-Run-RunProcessor-SystemDirectoryResolution
  tracing to the new test.
- Updated design/verification docs to describe the corrected search order.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 11, 2026 23:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 136 out of 137 changed files in this pull request and generated 1 comment.

Comment thread docs/design/introduction.md Outdated
Addresses PR #140 review feedback: docs/design/introduction.md's Software
Structure section listed Simulator, SimulatorFactory, and MockSimulator as
part of the simulator auto-discovery priority order, but SimulatorFactory.Get
only ever iterates the six production simulators (GhdlSimulator,
ModelSimSimulator, QuestaSimSimulator, VivadoSimulator, ActiveHdlSimulator,
NvcSimulator) -- Simulator and SimulatorFactory are not simulators, and
MockSimulator is explicitly excluded. Corrected the prose to list only the
six production simulators in their actual declared order.

While reviewing the affected VHDLTest-Design review-set, formal-review
surfaced a related pre-existing inconsistency: simulator.md unconditionally
claimed concrete subclasses throw InvalidOperationException when
SimulatorPath is null, conflicting with mock-simulator.md's (and the actual
MockSimulator.cs implementation's) documented, deliberate omission of that
check. Updated simulator.md to describe the throw as the contract for
production simulators, with MockSimulator called out as a documented
exception.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 12, 2026 00:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 136 out of 137 changed files in this pull request and generated 1 comment.

Comment thread src/DEMAConsulting.VHDLTest/Run/RunProcessor.cs Outdated
…atches

Restructure TryResolveCandidates so a bare/extensionless application name
only matches PATHEXT-qualified variants, never a literal extensionless file
sharing the same name, matching real cmd.exe/CreateProcess resolution
semantics. Add regression test, update design/verification docs, and add
reqstream requirement VHDLTest-Run-RunProcessor-BareNameExtensionlessFileExcluded.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 12, 2026 00:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 136 out of 137 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/build.yaml
@Malcolmnixon
Malcolmnixon merged commit c049fb4 into main Jul 12, 2026
24 checks passed
@Malcolmnixon
Malcolmnixon deleted the feature/sysml2-architecture-model branch July 12, 2026 00:46
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.

2 participants