Skip to content

Refresh README, CLAUDE.md, DESCRIPTION and TAGS for the 1.5.0 API - #46

Merged
matt-edmondson merged 1 commit into
mainfrom
docs/refresh-documentation
Aug 19, 2026
Merged

Refresh README, CLAUDE.md, DESCRIPTION and TAGS for the 1.5.0 API#46
matt-edmondson merged 1 commit into
mainfrom
docs/refresh-documentation

Conversation

@matt-edmondson

Copy link
Copy Markdown
Contributor

Documentation refresh following #38#41, which landed CommandOptions, environment variables, the working directory, the cancellation fix, and the obsoletion of the command-string overloads.

Correction

The API reference listed the three CommandOptions overloads underneath the Obsolete heading — an error introduced in #45. They are not obsolete. Fixed, and the reference is now generated from the actual signatures: 9 non-obsolete overloads, 11 obsolete ones (4 Execute, 7 ExecuteAsync), which I cross-checked against the source rather than transcribing.

README

  • Adds ## Introduction and ## Features, and the standard three-part installation block (Package Manager Console / .NET CLI / PackageReference, pinned at the current 1.5.0).
  • Adds a Cancellation example — a real feature that was previously undocumented — including that a cancelled call always throws rather than returning the killed process's exit code, and that process-tree termination needs .NET Core 3.0+.
  • Splits Process Options into Working Directory and Environment Variables subsections and moves the stray AbsoluteDirectoryPath rationale paragraph up next to the property it explains.
  • Rewrites the API reference as tables covering RunCommand, CommandOptions, OutputHandler, LineOutputHandler and Elevation, with real constructor signatures including the optional encoding parameter.
  • Drops the generic Acknowledgements section (no specific content), and fixes the stray - ### OutputHandler Class list-marker artifact.
  • The build badge keeps its &branch=main scoping from 3b03e8f rather than reverting to the unscoped template form.

CLAUDE.md

Rewritten against the current code — it still described a four-method API split on the first space, and listed .NET 9 as the newest target. Beyond the structural refresh it records several things that cost time to rediscover:

  • dotnet test reports Zero tests ran with this MSTest.Sdk/MTP combination even though tests build and discover fine. The test executable must be run directly, and it takes VSTest-style --filter, not --filter-method or --treenode-filter.
  • Why the cancellation re-check in RunAsync must not be removed, and why its regression test loops 50 times.
  • Why ktsu.Semantics.Strings is referenced explicitly (the SDK's KTSU0006 analyzer rejects using WeakString transitively) and which TFM-support warnings that dependency chain is expected to produce, so they are not mistaken for a regression.
  • Elevation's incompatibility with both output redirection and environment variables, and why one is silent while the other throws.
  • The test-suite conventions worth preserving: per-platform command helpers, [CallerMemberName]-derived names for parallel-safety, and keeping the CS0618 region tight.

DESCRIPTION / TAGS

Both predated the new capabilities. DESCRIPTION now covers argument-vector passing, process shaping and cancellation; TAGS gains the corresponding terms plus the baseline .NET/C# tags, and stays semicolon-separated.

Note on CI

The .NET Workflow has paths-ignore: ["**.md", ...], and this PR touches only .md files — so no checks will run on it. That is the workflow behaving as configured, not a failure, but it does mean this one will not auto-merge on green the way #42#45 did.

Verified locally: builds clean across all eight target frameworks, 33 tests pass and 2 skip.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LwKTWcmxe5mh6DsLRj5NGQ

The documentation predated CommandOptions, cancellation, elevation and
the argument-vector overloads, and the API reference listed the three
CommandOptions overloads under the Obsolete heading, where they do not
belong.

README gains Introduction and Features sections, the three-part
installation block, a cancellation example, and an API reference in
table form covering every non-obsolete overload, CommandOptions,
both output handlers and the Elevation enum. The generic
Acknowledgements section is dropped as it carried no specific content.

CLAUDE.md is rewritten against the current code. It records that
dotnet test reports "Zero tests ran" against this MSTest.Sdk and MTP
combination and that the test executable has to be run directly with
VSTest-style filters, why the cancellation re-check in RunAsync must
not be removed, why ktsu.Semantics.Strings is referenced explicitly,
and which build warnings that dependency chain is expected to produce.

DESCRIPTION and TAGS are expanded to cover the process-shaping and
cancellation capabilities.
@matt-edmondson
matt-edmondson merged commit 5a33d8d into main Aug 19, 2026
1 check passed
@matt-edmondson
matt-edmondson deleted the docs/refresh-documentation branch August 19, 2026 11:17
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.

1 participant