Skip to content

docs: add an agent guide - #1872

Merged
vbreuss merged 1 commit into
mainfrom
docs/agents-md
Oct 18, 2026
Merged

vbreuss merged 1 commit into
mainfrom
docs/agents-md

Conversation

@vbreuss

@vbreuss vbreuss commented Oct 18, 2026

Copy link
Copy Markdown
Member

The Copilot instructions were tool-specific and partly outdated (SDK version, build fallbacks, test counts). One agent-neutral AGENTS.md with the hard project constraints, validation rules and git workflow, backed by reference docs in Docs/agents that are read only when needed, keeps the guidance accurate for every agent and for human contributors.

Docs/agents/design-goals.md gives every change the same priorities. Correctness is a must; the other goals are strong defaults and win in this order when they conflict:

  • Stable and compatible
  • AOT and trimming friendly
  • A consistent, discoverable and pleasant API
  • Fast, especially on the happy path
  • Extensible
  • Errors at compile time rather than at run time
  • Documented and pleasant to read, using Docusaurus features where they help and the music theme in examples

It also sets the code rules (modern C# within the target frameworks, async rules including ConfigureAwait(false), patterns to avoid), the checks before a commit (including no new Sonar findings and asking before suppressing one), and how to handle review findings.

Goals of this repository:

  • Readable both ways
  • One meaning per option word
  • Messages follow the message conventions
  • Subjects keep their type
  • Uniform argument handling
  • Trimming-safe by construction
  • Predictable layout

The Copilot instructions were tool-specific and partly outdated (SDK version, build fallbacks, test counts). One agent-neutral AGENTS.md with the hard project constraints, validation rules and git workflow, backed by reference docs in Docs/agents that are read only when needed, keeps the guidance accurate for every agent and for human contributors.

Docs/agents/design-goals.md gives every change the same priorities. Correctness is a must; the other goals are strong defaults and win in this order when they conflict:
- Stable and compatible
- AOT and trimming friendly
- A consistent, discoverable and pleasant API
- Fast, especially on the happy path
- Extensible
- Errors at compile time rather than at run time
- Documented and pleasant to read, using Docusaurus features where they help and the music theme in examples

It also sets the code rules (modern C# within the target frameworks, async rules including ConfigureAwait(false), patterns to avoid), the checks before a commit (including no new Sonar findings and asking before suppressing one), and how to handle review findings.

Goals of this repository:
- Readable both ways
- One meaning per option word
- Messages follow the message conventions
- Subjects keep their type
- Uniform argument handling
- Trimming-safe by construction
- Predictable layout
@vbreuss vbreuss self-assigned this Oct 18, 2026
@vbreuss vbreuss added the documentation Improvements or additions to documentation label Oct 18, 2026
@vbreuss
vbreuss merged commit 8dcfa55 into main Oct 18, 2026
13 checks passed
@vbreuss
vbreuss deleted the docs/agents-md branch October 18, 2026 11:02
@sonarqubecloud

Copy link
Copy Markdown

github-actions Bot added a commit that referenced this pull request Oct 18, 2026
github-actions Bot added a commit that referenced this pull request Oct 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Benchmark Results

Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.5 LTS (Noble Numbat)
AMD EPYC 7763 2.63GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.303
[Host] : .NET 8.0.32 (8.0.32, 8.0.3226.50405), X64 RyuJIT x86-64-v3

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Method Mean vs aweXpect Error StdDev Gen0 Gen1 Allocated vs aweXpect
Contains_aweXpect 361.5 ns 11.43 ns 10.69 ns 0.0443 - 744 B
Contains_FluentAssertions 459.6 ns +27% 9.42 ns 8.81 ns 0.0958 - 1608 B +116%
Contains_TUnit 402.7 ns +11% 4.48 ns 4.19 ns 0.0505 - 848 B +14%
Equivalency_aweXpect 12,809.3 ns 53.73 ns 50.26 ns 0.2289 - 3880 B
Equivalency_FluentAssertions 367,116.6 ns +2766% 2,299.92 ns 2,151.35 ns 35.1563 1.9531 590292 B +15114%
Equivalency_TUnit 19,431.3 ns +52% 195.60 ns 182.96 ns 0.9155 - 15680 B +304%
EventTriggered_aweXpect 774.1 ns 8.99 ns 8.41 ns 0.1106 - 1856 B
EventTriggered_FluentAssertions 85,179.5 ns +10903% 1,139.99 ns 1,010.57 ns 0.2441 0.1221 5252 B +183%
Int_GreaterThan_aweXpect 175.4 ns 1.42 ns 1.32 ns 0.0319 - 536 B
Int_GreaterThan_FluentAssertions 272.6 ns +55% 4.89 ns 4.57 ns 0.0730 - 1224 B +128%
Int_GreaterThan_TUnit 252.9 ns +44% 8.59 ns 8.03 ns 0.0463 - 776 B +45%
ItemsCount_AtLeast_aweXpect 284.8 ns 4.16 ns 3.89 ns 0.0358 - 600 B
ItemsCount_AtLeast_FluentAssertions 504.0 ns +77% 15.53 ns 14.52 ns 0.1192 - 2008 B +235%
ItemsCount_AtLeast_TUnit 414.0 ns +45% 5.06 ns 4.73 ns 0.0634 - 1064 B +77%
Multiple_aweXpect 832.2 ns 10.42 ns 9.75 ns 0.1001 - 1688 B
Multiple_FluentAssertions 1,956.2 ns +135% 33.58 ns 31.41 ns 0.4005 - 6744 B +300%
Multiple_TUnit 970.0 ns +17% 14.73 ns 13.78 ns 0.1335 - 2240 B +33%
Satisfies_aweXpect 201.7 ns 2.31 ns 2.04 ns 0.0329 - 552 B
Satisfies_FluentAssertions 32,829.4 ns +16176% 458.42 ns 428.80 ns 0.3052 0.2441 5614 B +917%
Satisfies_TUnit 244.9 ns +21% 3.80 ns 3.55 ns 0.0424 - 712 B +29%
String_aweXpect 285.0 ns 2.11 ns 1.97 ns 0.0343 - 576 B
String_FluentAssertions 553.0 ns +94% 9.22 ns 8.63 ns 0.1373 - 2304 B +300%
String_TUnit 347.7 ns +22% 3.29 ns 3.07 ns 0.0544 - 912 B +58%
StringArray_aweXpect 644.8 ns 4.70 ns 4.40 ns 0.0515 - 872 B
StringArray_FluentAssertions 1,427.2 ns +121% 28.99 ns 27.12 ns 0.2480 - 4152 B +376%
StringArray_TUnit 672.7 ns +4% 6.06 ns 5.67 ns 0.0753 - 1264 B +45%
StringArrayInAnyOrder_aweXpect 627.3 ns 1.66 ns 1.29 ns 0.0544 - 920 B
StringArrayInAnyOrder_FluentAssertions 27,340.9 ns +4259% 152.91 ns 119.39 ns 1.9836 0.0610 33471 B +3538%
StringArrayInAnyOrder_TUnit 807.3 ns +29% 6.76 ns 6.33 ns 0.0839 - 1408 B +53%
Throws_aweXpect 12,431.8 ns 30.51 ns 27.05 ns 0.0916 - 1736 B
Throws_FluentAssertions 40,914.3 ns +229% 58.95 ns 49.23 ns 1.0986 - 18609 B +972%
Throws_TUnit 11,537.6 ns -7% 27.19 ns 24.10 ns 0.1068 - 1824 B +5%
ThrowsAsync_aweXpect 11,724.8 ns 20.77 ns 17.34 ns 0.1221 - 2216 B
ThrowsAsync_FluentAssertions 60,436.0 ns +415% 145.89 ns 136.46 ns 1.4038 - 23553 B +963%
ThrowsAsync_TUnit 22,749.3 ns +94% 37.59 ns 31.39 ns 0.1526 - 2920 B +32%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant