Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .agents/skills/anti-hallucination/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: anti-hallucination
description: Verifies technical claims and implementation decisions against local evidence and authoritative sources. Use for every implementation, investigation, debugging, planning, or review task.
---

# Evidence and Verification

1. Inspect the relevant repository files before reasoning about current behavior.
2. Identify which statements are facts, inferences, unknowns, and recommendations.
3. Verify externally checkable claims against current primary documentation or source repositories.
4. Treat search summaries, generated summaries, issue comments, and third-party articles as discovery aids unless independently verified.
5. State what evidence is missing. Say that you do not know when the available data cannot support a conclusion.
6. Do not invent APIs, versions, configuration keys, file contents, test results, or compatibility claims.
7. Prefer repository tools, compilation, tests, analyzers, and executable checks over visual inspection alone.
8. Stop for human input when a consequential choice cannot be resolved from evidence.
9. Report failed or skipped validation plainly.

When communicating a decision, provide the evidence first, then the conclusion. Include file references for repository facts and direct links for external claims when the host supports them.
42 changes: 42 additions & 0 deletions .agents/skills/csharp-conventions/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: csharp-conventions
description: Applies this repository's C# naming, formatting, organization, async, validation, and performance conventions. Use when writing, modifying, or reviewing C# code.
---

# C# Conventions

## Language and formatting

- Use the target framework, nullable context, language version, and analyzer settings from repository configuration.
- Prefer `var` for local variables.
- Use four spaces, Allman braces, and file-scoped namespaces.
- Use language keywords such as `string` rather than framework aliases such as `String`.
- Use braces for control flow.
- Prefer `nameof`, pattern matching, null patterns, and switch expressions when they improve clarity.

## Naming

- Use PascalCase for types, members, constants, and readonly fields.
- Use `_camelCase` only for mutable fields.
- Prefix interfaces with `I`.
- Use camelCase for parameters and local variables.
- Add the `Async` suffix to methods that return `Task`, `Task<T>`, `ValueTask`, or `ValueTask<T>`.

## Member organization

Order members by constants, fields, events, properties, constructors, methods, and nested types. Within a group, place more visible members first. Place static fields and properties before instance members. Place instance methods before static methods.

## Design

- Validate public arguments with the most specific standard exception or guard API.
- Use asynchronous APIs for asynchronous I/O.
- Accept `CancellationToken` on cancellable public asynchronous operations and long-running work.
- Prefer constructor injection when a type has external dependencies.
- Use standard exception types.
- Avoid `async void` except for event handlers.
- Use `ConfigureAwait(false)` only in reusable library code when the context decision is intentional.
- Measure before adding allocation-oriented complexity.

## Using directives

Place using directives outside the namespace. Order System namespaces, third-party namespaces, then project namespaces. Alphabetize within each group. Keep ordinary using directives contiguous. Put aliases and `using static` directives in a separate block.
17 changes: 17 additions & 0 deletions .agents/skills/documentation/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: documentation
description: Applies API documentation and code comment standards. Use when writing or reviewing XML documentation, README content, or inline code comments.
---

# Documentation

- Document public and protected types and members with meaningful XML documentation.
- Document internal contracts when behavior, invariants, or usage are not obvious.
- Do not require XML documentation for private members, tests, or self-explanatory helpers.
- Describe purpose and behavior rather than restating a parameter name or type.
- Add `<returns>` only when a member produces a value, including `Task<T>`. Do not add it to `void` or non-generic `Task`.
- Document exceptions that callers can reasonably encounter.
- Use `<inheritdoc />` when inherited documentation completely describes a standard member.
- Add inline comments only for rationale, constraints, or non-obvious behavior.
- Write prose comments as complete sentences.
- Keep documentation accurate when behavior changes.
21 changes: 21 additions & 0 deletions .agents/skills/testing/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: testing
description: Applies NUnit and NSubstitute test standards for behavior, organization, assertions, and test doubles. Use when writing, modifying, debugging, or reviewing tests.
---

# Testing

- Test observable behavior and public contracts rather than implementation details.
- Name tests for the behavior and condition they verify.
- Keep each test independent and understandable without shared mutable fixture state.
- Use NUnit constraint assertions such as `Assert.That`.
- Add assertion messages when they provide diagnostic context that the assertion does not.
- Use `Assert.ThatAsync` for asynchronous exception assertions.
- Avoid tests whose only meaningful assertion is that ordinary valid code does not throw.
- Do not add ceremonial Arrange, Act, and Assert comments.
- Keep one fixture per production type when that mapping is natural.
- Use NSubstitute for interaction-based test doubles.
- Prefer a simple fake when it communicates behavior more clearly than a mock.
- Verify user-observable interactions rather than incidental internal calls.
- Add categories only when the repository has a concrete filtering need.
- Run the narrowest relevant test selection, then run the project or solution tests before completion.
291 changes: 0 additions & 291 deletions .github/copilot-instructions.md

This file was deleted.

Loading
Loading