Skip to content

feat: add review-docs agent + GitHub Pages docs site#94

Merged
cloud-hai-vo merged 1 commit intomainfrom
feat/agents-and-github-pages
Mar 31, 2026
Merged

feat: add review-docs agent + GitHub Pages docs site#94
cloud-hai-vo merged 1 commit intomainfrom
feat/agents-and-github-pages

Conversation

@cloud-hai-vo
Copy link
Copy Markdown
Contributor

What's new

1. Review & Docs Agent (.claude/agents/review-docs.md)

A Claude Code agent that reviews code changes and updates documentation:

  • Code review for correctness, thread safety, performance
  • Updates llms.txt / llms-full.txt when public API changes
  • Updates README/CLAUDE.md when features change

2. GitHub Pages Docs Site

  • Landing page (docs/index.md) — feature highlights, install, navigation
  • Quick start (docs/quick-start.md) — DI, collections, ProjectTo, same-type mapping
  • Jekyll config (docs/_config.yml) — minimal theme, auto-builds
  • Links to all existing wiki docs (API Reference, Advanced Features, Migration Guide, etc.)

3. Pages Deployment Workflow

  • Auto-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.

The site will be live at: https://eggspot.github.io/EggMapper/

Test plan

  • Verify docs render on GitHub Pages after enabling
  • Verify agent file is accessible in Claude Code

🤖 Generated with Claude Code

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>
@cloud-hai-vo cloud-hai-vo enabled auto-merge (squash) March 31, 2026 02:19
@cloud-hai-vo cloud-hai-vo merged commit 09f5a32 into main Mar 31, 2026
5 checks passed
@cloud-hai-vo cloud-hai-vo deleted the feat/agents-and-github-pages branch March 31, 2026 02:20
@github-actions
Copy link
Copy Markdown
Contributor

📊 Benchmark Results

Generated: 2026-03-31 02:25 UTC  ·  Download full artifacts

Column guide:
Mean = average execution time  ·  Error = half of 99.9 % confidence interval  ·  StdDev = standard deviation  ·  Min / Median / Max = statistical range  ·  Ratio = vs Manual baseline (lower = closer to hand-written speed)  ·  RatioSD = ratio std dev  ·  Rank = 1 is fastest  ·  Gen0/1/2 = GC collections per 1 000 ops  ·  Allocated = managed heap per operation  ·  Alloc Ratio = allocation ratio vs baseline

🔵 Flat Mapping — 10-property object

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 14.69 ns 5.678 ns 0.311 ns 14.43 ns 14.61 ns 15.04 ns 1.00 0.03 1 0.0048 80 B 1.00
EggMapper 24.41 ns 2.747 ns 0.151 ns 24.31 ns 24.33 ns 24.58 ns 1.66 0.03 2 0.0048 80 B 1.00
AutoMapper 80.64 ns 2.463 ns 0.135 ns 80.50 ns 80.64 ns 80.77 ns 5.49 0.10 3 0.0048 80 B 1.00
Mapster 27.11 ns 3.556 ns 0.195 ns 26.89 ns 27.17 ns 27.27 ns 1.85 0.04 2 0.0048 80 B 1.00
MapperlyMap 14.39 ns 3.040 ns 0.167 ns 14.25 ns 14.36 ns 14.58 ns 0.98 0.02 1 0.0048 80 B 1.00
AgileMapper 488.49 ns 25.916 ns 1.421 ns 487.26 ns 488.16 ns 490.05 ns 33.26 0.61 4 0.0200 344 B 4.30
EggMapperGenerator 14.80 ns 1.300 ns 0.071 ns 14.72 ns 14.81 ns 14.86 ns 1.01 0.02 1 0.0048 80 B 1.00
EggMapperClassMapper 14.78 ns 0.571 ns 0.031 ns 14.75 ns 14.78 ns 14.81 ns 1.01 0.02 1 0.0048 80 B 1.00

🟡 Flattening — 2 nested objects → 8 flat properties

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 18.59 ns 3.358 ns 0.184 ns 18.38 ns 18.70 ns 18.70 ns 1.00 0.01 1 0.0048 80 B 1.00
EggMap 29.71 ns 6.180 ns 0.339 ns 29.40 ns 29.67 ns 30.07 ns 1.60 0.02 3 0.0048 80 B 1.00
AutoMapper 93.49 ns 1.757 ns 0.096 ns 93.38 ns 93.53 ns 93.55 ns 5.03 0.04 4 0.0048 80 B 1.00
Mapster 35.36 ns 2.854 ns 0.156 ns 35.18 ns 35.43 ns 35.47 ns 1.90 0.02 3 0.0048 80 B 1.00
MapperlyMap 22.90 ns 6.123 ns 0.336 ns 22.62 ns 22.80 ns 23.27 ns 1.23 0.02 2 0.0062 104 B 1.30
AgileMapper 509.96 ns 18.228 ns 0.999 ns 509.37 ns 509.39 ns 511.11 ns 27.43 0.24 5 0.0200 344 B 4.30

🟣 Deep Mapping — 2 nested address objects

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 52.08 ns 4.474 ns 0.245 ns 51.81 ns 52.13 ns 52.29 ns 1.00 0.01 1 0.0162 272 B 1.00
EggMapper 65.85 ns 5.564 ns 0.305 ns 65.65 ns 65.70 ns 66.21 ns 1.26 0.01 2 0.0162 272 B 1.00
AutoMapper 125.99 ns 22.171 ns 1.215 ns 124.83 ns 125.90 ns 127.25 ns 2.42 0.02 3 0.0162 272 B 1.00
Mapster 65.74 ns 11.858 ns 0.650 ns 65.13 ns 65.68 ns 66.42 ns 1.26 0.01 2 0.0162 272 B 1.00
MapperlyMap 47.86 ns 5.231 ns 0.287 ns 47.61 ns 47.80 ns 48.17 ns 0.92 0.01 1 0.0162 272 B 1.00
AgileMapper 507.77 ns 32.184 ns 1.764 ns 505.74 ns 508.71 ns 508.88 ns 9.75 0.05 4 0.0248 424 B 1.56

🟢 Complex Mapping — nested object + collection

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 66.55 ns 11.87 ns 0.651 ns 66.07 ns 66.30 ns 67.29 ns 1.00 0.01 1 0.0191 320 B 1.00
EggMapper 88.31 ns 13.49 ns 0.739 ns 87.47 ns 88.60 ns 88.86 ns 1.33 0.01 2 0.0191 320 B 1.00
AutoMapper 150.36 ns 33.23 ns 1.822 ns 149.22 ns 149.41 ns 152.46 ns 2.26 0.03 3 0.0196 328 B 1.02
Mapster 86.42 ns 14.02 ns 0.768 ns 85.64 ns 86.44 ns 87.18 ns 1.30 0.01 2 0.0191 320 B 1.00
MapperlyMap 69.33 ns 12.04 ns 0.660 ns 68.58 ns 69.60 ns 69.81 ns 1.04 0.01 1 0.0191 320 B 1.00
AgileMapper 564.31 ns 58.98 ns 3.233 ns 560.84 ns 564.83 ns 567.25 ns 8.48 0.08 4 0.0315 528 B 1.65

🟠 Collection — 100-item List<T>

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) adds Min, Median, and Max columns.
  • 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 '*'

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