feat: add review-docs agent + GitHub Pages docs site#94
Merged
cloud-hai-vo merged 1 commit intomainfrom Mar 31, 2026
Merged
Conversation
1. Claude agent (.claude/agents/review-docs.md): - Reviews code changes for correctness, thread safety, perf - Updates AI agent docs (llms.txt, llms-full.txt) when API changes - Updates README/CLAUDE.md when features change 2. GitHub Pages (docs/): - Landing page (index.md) with feature highlights + navigation - Quick start guide with DI, collections, ProjectTo, same-type map - Jekyll config for GitHub Pages deployment - Links to existing wiki-style docs 3. Pages workflow (.github/workflows/pages.yml): - Deploys docs/ to GitHub Pages on push to main - Path-filtered: only runs when docs/ changes - Uses actions/jekyll-build-pages for zero-config build After merge, enable GitHub Pages in repo Settings → Pages → Source: GitHub Actions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
📊 Benchmark Results
🔵 Flat Mapping — 10-property object
🟡 Flattening — 2 nested objects → 8 flat properties
🟣 Deep Mapping — 2 nested address objects
🟢 Complex Mapping — nested object + collection
🟠 Collection — 100-item
|
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manual | 1.648 μs | 0.2326 μs | 0.0127 μs | 1.636 μs | 1.646 μs | 1.662 μs | 1.00 | 1 | 0.5283 | 0.0172 | 8.65 KB | 1.00 |
| EggMapper | 1.705 μs | 0.2469 μs | 0.0135 μs | 1.694 μs | 1.702 μs | 1.720 μs | 1.03 | 1 | 0.5283 | 0.0172 | 8.65 KB | 1.00 |
| AutoMapper | 2.281 μs | 0.2177 μs | 0.0119 μs | 2.269 μs | 2.283 μs | 2.292 μs | 1.38 | 1 | 0.6065 | 0.0191 | 9.95 KB | 1.15 |
| Mapster | 1.989 μs | 0.3162 μs | 0.0173 μs | 1.975 μs | 1.983 μs | 2.008 μs | 1.21 | 1 | 0.5264 | 0.0153 | 8.65 KB | 1.00 |
| MapperlyMap | 1.712 μs | 0.1894 μs | 0.0104 μs | 1.704 μs | 1.707 μs | 1.723 μs | 1.04 | 1 | 0.5283 | 0.0172 | 8.65 KB | 1.00 |
| AgileMapper | 2.395 μs | 0.3637 μs | 0.0199 μs | 2.372 μs | 2.403 μs | 2.410 μs | 1.45 | 1 | 0.5417 | 0.0153 | 8.91 KB | 1.03 |
🟠 Collection — 100-item List<T>
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manual | 5.127 μs | 0.8392 μs | 0.0460 μs | 5.085 μs | 5.119 μs | 5.176 μs | 1.00 | 0.01 | 1 | 1.6708 | 0.0916 | 27.4 KB | 1.00 |
| EggMapper | 5.476 μs | 0.8600 μs | 0.0471 μs | 5.442 μs | 5.456 μs | 5.530 μs | 1.07 | 0.01 | 1 | 1.6708 | 0.0916 | 27.4 KB | 1.00 |
| AutoMapper | 6.387 μs | 0.1940 μs | 0.0106 μs | 6.374 μs | 6.392 μs | 6.393 μs | 1.25 | 0.01 | 1 | 1.7548 | 0.1068 | 28.7 KB | 1.05 |
| Mapster | 5.649 μs | 1.4578 μs | 0.0799 μs | 5.585 μs | 5.622 μs | 5.738 μs | 1.10 | 0.02 | 1 | 1.6708 | 0.0916 | 27.4 KB | 1.00 |
| MapperlyMap | 5.158 μs | 0.8947 μs | 0.0490 μs | 5.123 μs | 5.137 μs | 5.214 μs | 1.01 | 0.01 | 1 | 1.6785 | 0.0992 | 27.42 KB | 1.00 |
| AgileMapper | 5.063 μs | 2.0372 μs | 0.1117 μs | 4.995 μs | 5.002 μs | 5.192 μs | 0.99 | 0.02 | 1 | 1.0223 | 0.0610 | 16.72 KB | 0.61 |
🟠 Collection — 100-item List<T>
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Manual | 17.44 μs | 1.602 μs | 0.088 μs | 17.34 μs | 17.48 μs | 17.50 μs | 1.00 | 1 | 5.2490 | 1.3123 | 85.99 KB | 1.00 |
| EggMapper | 17.02 μs | 4.330 μs | 0.237 μs | 16.83 μs | 16.95 μs | 17.29 μs | 0.98 | 1 | 5.2490 | 1.3123 | 85.99 KB | 1.00 |
| AutoMapper | 21.18 μs | 4.657 μs | 0.255 μs | 21.00 μs | 21.08 μs | 21.48 μs | 1.21 | 1 | 5.7678 | 1.4343 | 94.34 KB | 1.10 |
| Mapster | 17.12 μs | 0.471 μs | 0.026 μs | 17.09 μs | 17.13 μs | 17.14 μs | 0.98 | 1 | 5.2490 | 1.3123 | 85.99 KB | 1.00 |
| MapperlyMap | 20.81 μs | 3.229 μs | 0.177 μs | 20.64 μs | 20.78 μs | 20.99 μs | 1.19 | 1 | 5.2490 | 1.2817 | 86.02 KB | 1.00 |
| AgileMapper | 22.84 μs | 0.762 μs | 0.042 μs | 22.81 μs | 22.83 μs | 22.89 μs | 1.31 | 1 | 5.2795 | 1.3123 | 86.25 KB | 1.00 |
⚪ Startup / Configuration time
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EggMapperStartup | 1,318.549 μs | 1,801.0608 μs | 98.7222 μs | 1,225.368 μs | 1,308.271 μs | 1,422.008 μs | 1.004 | 0.09 | 3 | 5.8594 | 3.9063 | 95.45 KB | 1.00 |
| AutoMapperStartup | 492.834 μs | 1,385.8221 μs | 75.9616 μs | 437.766 μs | 461.243 μs | 579.493 μs | 0.375 | 0.06 | 2 | 5.8594 | - | 104.34 KB | 1.09 |
| MapsterStartup | 2.455 μs | 0.3728 μs | 0.0204 μs | 2.435 μs | 2.455 μs | 2.476 μs | 0.002 | 0.00 | 1 | 0.7019 | 0.0267 | 11.51 KB | 0.12 |
EggMapper.Benchmarks.ColdStartBenchmark-report-github
| Method | Mean | Error | StdDev | Min | Median | Max | Ratio | RatioSD | Rank | Gen0 | Gen1 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| EggMapper | 1.384 ms | 1.426 ms | 0.0782 ms | 1.308 ms | 1.381 ms | 1.464 ms | 1.00 | 0.07 | 1 | 5.8594 | 3.9063 | 96.27 KB | 1.00 |
| AutoMapper | 3.951 ms | 10.703 ms | 0.5867 ms | 3.413 ms | 3.861 ms | 4.577 ms | 2.86 | 0.39 | 2 | 15.6250 | 7.8125 | 310.85 KB | 3.23 |
| Mapster | 4.201 ms | 6.733 ms | 0.3691 ms | 3.788 ms | 4.317 ms | 4.498 ms | 3.04 | 0.28 | 2 | 39.0625 | 15.6250 | 757.95 KB | 7.87 |
📝 Notes
- Each benchmark class is decorated with
[MemoryDiagnoser]and[RankColumn]. - The global config (see
src/EggMapper.Benchmarks/Program.cs) addsMin,Median, andMaxcolumns. - Manual is the hand-written baseline (ratio = 1.00). A ratio < 1 means faster than manual.
- Benchmarks run on GitHub-hosted runners — absolute times may vary between runs; focus on Ratio for comparisons.
- To reproduce locally:
cd src/EggMapper.Benchmarks dotnet run --configuration Release -- --filter '*'
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's new
1. Review & Docs Agent (
.claude/agents/review-docs.md)A Claude Code agent that reviews code changes and updates documentation:
llms.txt/llms-full.txtwhen public API changes2. GitHub Pages Docs Site
docs/index.md) — feature highlights, install, navigationdocs/quick-start.md) — DI, collections, ProjectTo, same-type mappingdocs/_config.yml) — minimal theme, auto-builds3. Pages Deployment Workflow
docs/to GitHub Pages on push to maindocs/**changesactions/jekyll-build-pagesfor zero-config buildAfter merge
Enable GitHub Pages in repo Settings → Pages → Source: GitHub Actions.
The site will be live at:
https://eggspot.github.io/EggMapper/Test plan
🤖 Generated with Claude Code