Writing Style
timmo001/system-bridge
Write commit messages, PR and issue text and comments, docs (README), code comments, and user-facing strings (notifications, UI labels, toasts, error messages) in the project owner's voice: concise…
Guidelines for producing accurate and maintainable documentation for Moq.AutoMocker.
$ npx skills add moq/Moq.AutoMocker --skill doc-writer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install moq/Moq.AutoMocker doc-writer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/moq/Moq.AutoMocker.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/doc-writer .claude/skills/doc-writer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "doc-writer" agent skill from https://github.com/moq/Moq.AutoMocker/tree/master/.github/skills/doc-writer into .claude/skills/doc-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-writer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/moq/Moq.AutoMocker/tree/master/.github/skills/doc-writerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add moq/Moq.AutoMocker --skill doc-writer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install moq/Moq.AutoMocker doc-writer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/moq/Moq.AutoMocker.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/doc-writer .agents/skills/doc-writer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "doc-writer" agent skill from https://github.com/moq/Moq.AutoMocker/tree/master/.github/skills/doc-writer into .agents/skills/doc-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-writer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add moq/Moq.AutoMocker --skill doc-writer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install moq/Moq.AutoMocker doc-writer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/moq/Moq.AutoMocker.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/doc-writer .cursor/skills/doc-writer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "doc-writer" agent skill from https://github.com/moq/Moq.AutoMocker/tree/master/.github/skills/doc-writer into .cursor/skills/doc-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-writer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/moq/Moq.AutoMocker.git --path .github/skills/doc-writer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add moq/Moq.AutoMocker --skill doc-writer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install moq/Moq.AutoMocker doc-writer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/moq/Moq.AutoMocker.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/doc-writer .gemini/skills/doc-writer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "doc-writer" agent skill from https://github.com/moq/Moq.AutoMocker/tree/master/.github/skills/doc-writer into .gemini/skills/doc-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-writer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install moq/Moq.AutoMocker doc-writerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add moq/Moq.AutoMocker --skill doc-writer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/moq/Moq.AutoMocker.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/doc-writer .github/skills/doc-writer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "doc-writer" agent skill from https://github.com/moq/Moq.AutoMocker/tree/master/.github/skills/doc-writer into .github/skills/doc-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-writer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add moq/Moq.AutoMocker --skill doc-writer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install moq/Moq.AutoMocker doc-writer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/moq/Moq.AutoMocker.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/doc-writer .opencode/skills/doc-writer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "doc-writer" agent skill from https://github.com/moq/Moq.AutoMocker/tree/master/.github/skills/doc-writer into .opencode/skills/doc-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-writer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
doc-writerGuidelines for producing accurate and maintainable documentation for Moq.AutoMocker.
Doc Writer is an agent skill from moq/Moq.AutoMocker. Guidelines for producing accurate and maintainable documentation for Moq.AutoMocker. Use when writing or updating API docs, source generator docs, tutorials, README content, or any documentation in the docs/ folder.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Technical documentation and Brand voice and tone. The repository describes itself as: An auto-mocking IoC container for Moq. The licence is MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8f36ce3. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown, csharp and xml).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
nuget.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Doc Writer loads about 2.7k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 779 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from moq/Moq.AutoMocker at commit 8f36ce3, republished under its MIT licence (© moq). 779 words, ~2,734 tokens.
.claude/skills/doc-writer/SKILL.md (or your agent's skills folder).This skill provides guidelines for AI coding agents to help maintainers produce accurate and easy-to-maintain documentation for the Moq.AutoMocker project. The docs/ folder contains the official documentation, and this skill helps ensure consistent, high-quality documentation.
Location: docs/
Audience: .NET developers using Moq.AutoMocker for unit testing
Format: Markdown files
API Reference: Auto-generated from XML doc comments (do not edit manually)
docs/
├── Moq.AutoMock.md # Assembly overview (auto-generated)
├── PackageValidation.md # Package validation guide
├── SourceGenerators.md # Source generators overview
├── Moq.AutoMock/ # API reference (auto-generated)
│ ├── AutoMocker.md
│ ├── AutoMocker/ # AutoMocker member docs
│ ├── MockExtensions.md
│ ├── MockExtensions/
│ ├── ObjectGraphContext.md
│ └── ObjectGraphContext/
├── Moq.AutoMock.Resolvers/ # Resolver API reference (auto-generated)
│ ├── IMockResolver.md
│ ├── MockResolver.md
│ ├── LazyResolver.md
│ ├── EnumerableResolver.md
│ └── ...
└── SourceGenerators/ # Hand-written generator docs
├── UnitTestGenerator.md
├── OptionsExtensionGenerator.md
├── FakeLoggingExtensionGenerator.md
├── ApplicationInsightsExtensionGenerator.md
└── KeyedServicesExtensionGenerator.mdFiles in docs/Moq.AutoMock/ and docs/Moq.AutoMock.Resolvers/ are auto-generated from XML doc comments by xmldocmd. They contain the marker:
<!-- DO NOT EDIT: generated by xmldocmd for Moq.AutoMock.dll -->Do not manually edit these files. Instead, update the XML doc comments in the source .cs files and regenerate.
Documentation files in this project do not use frontmatter. Start directly with an H1 heading.
#) for the page title only (one per file)##) for major sections###) for subsectionsAlways include a language identifier:
```csharp
var mocker = new AutoMocker();
var service = mocker.CreateInstance<MyService>();
```For XML/MSBuild configuration:
```xml
<PropertyGroup>
<EnableMoqAutoMockerOptionsGenerator>false</EnableMoqAutoMockerOptionsGenerator>
</PropertyGroup>
```For JSON configuration:
```json
{
"ConnectionStrings": {
"mydb": "Host=localhost;Database=mydb"
}
}
```Use standard Markdown tables with alignment:
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Value | Value | Value |Use relative links for internal documentation:
[AutoMocker API Reference](Moq.AutoMock/AutoMocker.md)
[Source Generators](SourceGenerators.md)
[Learn more →](SourceGenerators/UnitTestGenerator.md)Place source generator docs in docs/SourceGenerators/:
| Generator | File |
|---|---|
| Unit Test | UnitTestGenerator.md |
| Options | OptionsExtensionGenerator.md |
| Fake Logging | FakeLoggingExtensionGenerator.md |
| Application Insights | ApplicationInsightsExtensionGenerator.md |
| Keyed Services | KeyedServicesExtensionGenerator.md |
All source generator documentation must include these sections in order:
.csproj example# [Name] Extension Generator
When your test project references `[Package.Name]`, this generator creates
`[MethodName]()` extension method(s) for `AutoMocker` that [primary benefit].## Features
- Automatically generates when `[Package.Name]` is referenced
- [Key capability 1]
- [Key capability 2]
- [Integration benefit]All extension generators follow this MSBuild property pattern:
<PropertyGroup>
<EnableMoqAutoMocker[GeneratorName]Generator>false</EnableMoqAutoMocker[GeneratorName]Generator>
</PropertyGroup>Known properties:
EnableMoqAutoMockerOptionsGeneratorEnableMoqAutoMockerFakeLoggingGeneratorEnableMoqAutoMockerApplicationInsightsGeneratorEnableMoqAutoMockerKeyedServicesGenerator## Troubleshooting
### Extension Method Not Available
1. Verify `[Required.Package]` is referenced in your test project
2. Check that the generator is not disabled in your `.csproj`
3. Rebuild the project to trigger generator executionAfter creating or updating generator documentation, update docs/SourceGenerators.md:
[TestClass]
public class MyServiceTests
{
[TestMethod]
public void Test_DescriptiveScenario()
{
// Arrange
AutoMocker mocker = new();
// Act
var service = mocker.CreateInstance<MyService>();
// Assert
Assert.AreEqual(expected, actual);
}
}var)EmailSender, NotificationService, etc.)using statements when relevant// Arrange, // Act, // Assert comments in test examplesWhen showing framework-specific content, use tables or separate code blocks:
| Framework | Detection | Attributes Used |
|---|---|---|
| MSTest | References Microsoft.VisualStudio.TestTools.UnitTesting | [TestMethod] |
| xUnit | References xunit.core | [Fact] |
| NUnit | References nunit.framework | [Test] |
| TUnit | References TUnit.Core | [Test] (async) |
Use consistent terminology throughout:
| Preferred | Avoid |
|---|---|
| AutoMocker | auto mocker, Auto Mocker |
| mock | fake, stub (unless technically accurate) |
| source generator | code generator, analyzer |
| extension method | helper method (for generated methods) |
CreateInstance<T>() | create instance, build (when referring to the method) |
GetMock<T>() | get mock (when referring to the method) |
backticks for code references inline: types, methods, properties, parametersMoq.AutoMock NuGet package (not separate packages)Moq.AutoMock namespaceAutoMocker classnetstandard2.0 and netstandard2.1The project README.md at the repository root contains:
docs/ folderWhen making significant documentation changes, ensure the README links and descriptions remain accurate. Keep README examples minimal — point readers to docs/ for details.
### AMG0001: Test class must be partial
**Error:** When using `[ConstructorTests]`, your test class must be declared as `partial`.
```csharp
// ❌ Error
[ConstructorTests(TargetType = typeof(MyClass))]
public class MyClassTests { }
// ✅ Correct
[ConstructorTests(TargetType = typeof(MyClass))]
public partial class MyClassTests { }
### Feature with Before/After Examples
Show the problem, then the solution:
```markdown
**Without** the generator, you'd write this manually:
```csharp
// 20+ lines of boilerplate...With the generator, just add one attribute:
[ConstructorTests(TargetType = typeof(MyService))]
public partial class MyServiceTests { }
### Cross-Referencing
End pages with a "See also" section linking to:
- Related generator documentation
- AutoMocker API reference
- NuGet package page
- GitHub repository
```markdown
## See Also
- [AutoMocker API Reference](../Moq.AutoMock/AutoMocker.md)
- [Source Generators Overview](../SourceGenerators.md)
- [Moq.AutoMock on NuGet](https://www.nuget.org/packages/Moq.AutoMock)Before submitting documentation:
Moq.AutoMocker.Generators/ and test examples in GeneratorTests/© moq, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/doc-writer of moq/Moq.AutoMocker.
Open the folder on GitHubat commit 8f36ce3
Doc Writer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Doc Writer this skillmoq/Moq.AutoMocker | 429 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Writing Styletimmo001/system-bridge | 356 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Writing Stylepydantic/monty | 8.6k | — | ~3.2k | Automated safety check: Pass | MIT | |
| Agent Stylepchalasani/claude-code-tools | 2k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Writing Guidelinesrohitg00/pro-workflow | 2.9k | — | ~593 | Automated safety check: Pass | None | |
| Writing Styleumputun/cc-thingz | 484 | — | ~1.3k | Automated safety check: Pass | MIT |
timmo001/system-bridge
Write commit messages, PR and issue text and comments, docs (README), code comments, and user-facing strings (notifications, UI labels, toasts, error messages) in the project owner's voice: concise…
pydantic/monty
How to write prose that reads like human technical documentation rather than LLM output.
pchalasani/claude-code-tools
Literature-backed English technical-prose writing rules (agent-style, 21 rules).
rohitg00/pro-workflow
Apply clear-writing standards to any prose the agent produces - READMEs, docs, UI copy, error messages, commit and PR text, release notes.
umputun/cc-thingz
A skill your agent uses for technical communication - GitHub/GitLab tickets, PR/MR descriptions, issue comments, code review comments, commit messages.
yonatangross/orchestkit
Technical documentation patterns for READMEs, ADRs, API docs (OpenAPI 3.1), changelogs, and writing style guides.
Categories
Guidelines for producing accurate and maintainable documentation for Moq.AutoMocker. AutoMocker.AutoMocker.
Doc Writer fits situations like: updating API docs; source generator docs; any documentation in the docs/ folder.
Run `npx skills add moq/Moq.AutoMocker --skill doc-writer -a claude-code`. Or copy the skill folder (.github/skills/doc-writer in moq/Moq.AutoMocker) into .claude/skills/doc-writer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add moq/Moq.AutoMocker --skill doc-writer -a codex`. Or copy the skill folder (.github/skills/doc-writer in moq/Moq.AutoMocker) into .agents/skills/doc-writer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add moq/Moq.AutoMocker --skill doc-writer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doc-writer, .gemini/skills/doc-writer, .github/skills/doc-writer and .opencode/skills/doc-writer in your project.
SKILL.md names no scripts, command-line tools or credentials: Doc Writer is instructions for the agent only.
SKILL.md names 1 domain. In commands or code: nuget.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Doc Writer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Doc Writer: Writing Style (timmo001/system-bridge, 356 stars), Writing Style (pydantic/monty, 8.6k stars), Agent Style (pchalasani/claude-code-tools, 2k stars) and Writing Guidelines (rohitg00/pro-workflow, 2.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
moq (a GitHub organization) maintains it in moq/Moq.AutoMocker, which has 429 GitHub stars. The repository was last updated on October 5, 2026.
Source: moq/Moq.AutoMocker on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.