Minimax DOCX
poco-ai/poco-claw
Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET).
Guidelines for running and interpreting Surface API performance benchmarks.
$ npx skills add mitchdenny/hex1b --skill surface-benchmarker -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mitchdenny/hex1b surface-benchmarker --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/mitchdenny/hex1b.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/surface-benchmarker .claude/skills/surface-benchmarker && 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 "surface-benchmarker" agent skill from https://github.com/mitchdenny/hex1b/tree/main/.github/skills/surface-benchmarker into .claude/skills/surface-benchmarker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "surface-benchmarker", 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/mitchdenny/hex1b/tree/main/.github/skills/surface-benchmarkerType 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 mitchdenny/hex1b --skill surface-benchmarker -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mitchdenny/hex1b surface-benchmarker --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mitchdenny/hex1b.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/surface-benchmarker .agents/skills/surface-benchmarker && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "surface-benchmarker" agent skill from https://github.com/mitchdenny/hex1b/tree/main/.github/skills/surface-benchmarker into .agents/skills/surface-benchmarker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "surface-benchmarker", 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 mitchdenny/hex1b --skill surface-benchmarker -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mitchdenny/hex1b surface-benchmarker --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mitchdenny/hex1b.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/surface-benchmarker .cursor/skills/surface-benchmarker && 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 "surface-benchmarker" agent skill from https://github.com/mitchdenny/hex1b/tree/main/.github/skills/surface-benchmarker into .cursor/skills/surface-benchmarker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "surface-benchmarker", 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/mitchdenny/hex1b.git --path .github/skills/surface-benchmarker--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 mitchdenny/hex1b --skill surface-benchmarker -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mitchdenny/hex1b surface-benchmarker --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mitchdenny/hex1b.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/surface-benchmarker .gemini/skills/surface-benchmarker && 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 "surface-benchmarker" agent skill from https://github.com/mitchdenny/hex1b/tree/main/.github/skills/surface-benchmarker into .gemini/skills/surface-benchmarker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "surface-benchmarker", 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 mitchdenny/hex1b surface-benchmarkerInstalls 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 mitchdenny/hex1b --skill surface-benchmarker -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mitchdenny/hex1b.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/surface-benchmarker .github/skills/surface-benchmarker && 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 "surface-benchmarker" agent skill from https://github.com/mitchdenny/hex1b/tree/main/.github/skills/surface-benchmarker into .github/skills/surface-benchmarker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "surface-benchmarker", 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 mitchdenny/hex1b --skill surface-benchmarker -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mitchdenny/hex1b surface-benchmarker --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mitchdenny/hex1b.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/surface-benchmarker .opencode/skills/surface-benchmarker && 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 "surface-benchmarker" agent skill from https://github.com/mitchdenny/hex1b/tree/main/.github/skills/surface-benchmarker into .opencode/skills/surface-benchmarker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "surface-benchmarker", 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.
surface-benchmarkerGuidelines for running and interpreting Surface API performance benchmarks.
Surface Benchmarker is an agent skill from mitchdenny/hex1b. Guidelines for running and interpreting Surface API performance benchmarks. Use when modifying code in src/Hex1b/Surfaces/ to ensure performance is not regressed.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with .NET. The repository describes itself as: The .NET Terminal Application Stack. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 98d8766. 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.
Shell commands in SKILL.md call:
dotnetFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Surface Benchmarker loads about 3.1k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 796 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 mitchdenny/hex1b at commit 98d8766, republished under its MIT licence (© mitchdenny). 796 words, ~3,056 tokens.
.claude/skills/surface-benchmarker/SKILL.md (or your agent's skills folder).This skill provides guidelines for AI agents to run and interpret performance benchmarks for the Hex1b Surface API. Run benchmarks whenever you modify code in src/Hex1b/Surfaces/ to ensure performance is not regressed.
| Action | Command |
|---|---|
| Run all Surface benchmarks | dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- --filter "Surface*" |
| Run specific benchmark | dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- --filter "*WriteText*" |
| Quick dry-run (sanity check) | dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- --filter "Surface*" --job dry |
ALWAYS run benchmarks after modifying:
| File/Area | Critical Benchmarks |
|---|---|
SurfaceCell.cs | All (cells are used everywhere) |
Surface.cs | CreateSurface_*, WriteText_*, Fill_*, Clone_* |
CompositeSurface.cs | CompositeSurface_* |
SurfaceComparer.cs | Compare_*, ToTokens_*, ToAnsiString_* |
SurfaceDiff.cs | Compare_* |
ComputeContext.cs | CompositeSurface_* (computed cells use this) |
benchmarks/Hex1b.Benchmarks/
├── Hex1b.Benchmarks.csproj # Console app with BenchmarkDotNet
├── Program.cs # Entry point
└── SurfaceBenchmarks.cs # Surface API benchmarksBenchmarkDotNet is a .NET performance benchmarking library that:
[MemoryDiagnoser] is enabled)┌─────────────────────────────────────────────────────────────────┐
│ 1. GlobalSetup │
│ - Runs once before all benchmarks │
│ - Creates pre-allocated surfaces, diffs, etc. │
│ - Sets up shared test data │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 2. For each [Benchmark] method: │
│ a. Warmup phase (JIT compilation, cache warming) │
│ b. Pilot phase (determine optimal iteration count) │
│ c. Actual measurements (multiple iterations) │
│ d. Results aggregation │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ 3. Report Generation │
│ - Console output with statistics │
│ - Optional: HTML, CSV, JSON exports │
└─────────────────────────────────────────────────────────────────┘| Attribute | Purpose |
|---|---|
[MemoryDiagnoser] | Reports memory allocations (Gen0/1/2 collections, allocated bytes) |
[Benchmark] | Marks a method as a benchmark |
[GlobalSetup] | Runs once before all benchmarks to set up shared state |
[Params(80, 160, 320)] | Parameterizes benchmarks with multiple values |
CreateSurface_*)Measures allocation and initialization cost for surfaces of various sizes.
[Benchmark]
public Surface CreateSurface_Small() => new Surface(80, 24); // Standard terminal
public Surface CreateSurface_Medium() => new Surface(160, 48); // Large terminal
public Surface CreateSurface_Large() => new Surface(320, 96); // Very large
public Surface CreateSurface_4K() => new Surface(480, 135); // 4K equivalentWhat to watch for:
WriteText_*)Measures grapheme parsing and wide character handling.
[Benchmark]
public void WriteText_Short(); // "Hello"
public void WriteText_Medium(); // Standard sentence
public void WriteText_Long(); // Long paragraph
public void WriteText_WideChars(); // Chinese characters (2 cells each)
public void WriteText_FillScreen(); // 24 lines of textWhat to watch for:
FillScreen should scale linearlyFill_*)Measures bulk cell assignment.
[Benchmark]
public void Fill_SmallRect(); // 20x10 region
public void Fill_FullScreen(); // 80x24
public void Fill_LargeScreen(); // 320x96What to watch for:
Composite_*, CompositeSurface_*)Measures layer merging and transparency resolution.
[Benchmark]
public void Composite_SmallOntoSmall(); // 20x10 onto 80x24
public void Composite_MediumOntoLarge(); // 80x24 onto 320x96
public Surface CompositeSurface_Flatten_3Layers(); // Resolve 3 layers
public SurfaceCell CompositeSurface_GetCell_Resolved(); // Single cell lookup
public void CompositeSurface_GetAllCells(); // 80x24 = 1920 lookupsWhat to watch for:
Flatten should be O(layers × cells)Compare_*)Measures change detection.
[Benchmark]
public SurfaceDiff Compare_FullDiff(); // 100% of cells changed
public SurfaceDiff Compare_SparseDiff(); // ~10% of cells changed
public SurfaceDiff Compare_NoDiff(); // 0% changed
public SurfaceDiff CompareToEmpty(); // Initial renderWhat to watch for:
NoDiff should be very fast (early exit when possible)ToTokens_*, ToAnsiString_*)Measures ANSI escape sequence generation.
[Benchmark]
public IReadOnlyList<AnsiToken> ToTokens_FullDiff(); // Generate tokens
public string ToAnsiString_FullDiff(); // Tokens → string
public string ToAnsiString_SparseDiff(); // Fewer changesWhat to watch for:
cd /home/midenn/Code/hex1b
dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- --filter "Surface*"Expected runtime: 5-15 minutes depending on hardware.
dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- --filter "Surface*" --job dryThis runs fewer iterations to quickly verify benchmarks work without waiting for full statistical accuracy.
# Only WriteText benchmarks
dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- --filter "*WriteText*"
# Only Diff/Token generation
dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- --filter "*Compare*|*Token*|*Ansi*"
# Single benchmark
dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- --filter "*Fill_FullScreen*"| Method | Mean | Error | StdDev | Gen0 | Allocated |
|-----------------------|------------|----------|----------|--------|-----------|
| CreateSurface_Small | 12.34 μs | 0.15 μs | 0.14 μs | 1.2345 | 15.36 KB |
| CreateSurface_Large | 98.76 μs | 1.23 μs | 1.15 μs | 9.8765 | 122.88 KB || Column | Meaning |
|---|---|
| Mean | Average execution time |
| Error | Half of 99.9% confidence interval |
| StdDev | Standard deviation (lower = more consistent) |
| Gen0 | Gen0 garbage collections per 1000 operations |
| Allocated | Bytes allocated per operation |
| Benchmark | Expected Range | Alert If |
|---|---|---|
CreateSurface_Small (80×24) | 5-20 μs | > 50 μs |
CreateSurface_4K (480×135) | 50-200 μs | > 500 μs |
WriteText_Short | 0.5-2 μs | > 5 μs |
WriteText_WideChars | 1-5 μs | > 10 μs |
Fill_FullScreen | 2-10 μs | > 25 μs |
Compare_NoDiff | 5-20 μs | > 50 μs |
Compare_SparseDiff | 10-50 μs | > 100 μs |
ToAnsiString_SparseDiff | 20-100 μs | > 250 μs |
Note: These are rough guidelines. Actual values depend on hardware.
When making changes:
# Save before results
dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- \
--filter "Surface*" --exporters json > before.json
# Make changes...
# Compare (manual inspection)
dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- \
--filter "Surface*" --exporters json > after.jsonSymptom: High Allocated column, many Gen0 collections.
Common causes:
SurfaceCell in object)StringBuilderFix strategies:
ArrayPool<T>.Shared for temporary buffersSpan<T> and stack allocation for small buffersSymptom: Large surfaces are disproportionately slower than small ones.
Common causes:
Fix strategies:
Symptom: Operations are slower than expected for the amount of data.
Common causes:
Fix strategies:
readonly and in parameters to avoid copiesWhen adding new functionality to the Surface API, add corresponding benchmarks:
[Benchmark]
public void NewFeature_TypicalCase()
{
// Benchmark the common case
_surface.NewMethod(typicalInput);
}
[Benchmark]
public void NewFeature_WorstCase()
{
// Benchmark the worst case for regression detection
_surface.NewMethod(worstCaseInput);
}[GlobalSetup] - don't measure setup timeBenchmarks can be integrated into CI to catch regressions:
# .github/workflows/benchmarks.yml (example)
- name: Run benchmarks
run: |
dotnet run -c Release --project benchmarks/Hex1b.Benchmarks -- \
--filter "Surface*" --exporters json
- name: Compare with baseline
run: |
# Compare against stored baseline, fail if regression > 20%Before merging changes to src/Hex1b/Surfaces/:
© mitchdenny, 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/surface-benchmarker of mitchdenny/hex1b.
Open the folder on GitHubat commit 98d8766
Surface Benchmarker 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 |
|---|---|---|---|---|---|---|
| Surface Benchmarker this skillmitchdenny/hex1b | 178 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Minimax DOCXpoco-ai/poco-claw | 1.4k | 7 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Microsoft Skill CreatorMicrosoftDocs/mcp | 1.9k | 3 repos | ~2.1k | Automated safety check: Pass | CC-BY-4.0 | |
| Speckit ConstitutionWeihanLi/WeihanLi.Common | 242 | 11 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Copilot Session Failure Analysisdotnet/maui | 23k | — | ~3.4k | Automated safety check: Pass | MIT | |
| Microsoft Code ReferenceMicrosoftDocs/mcp | 1.9k | 4 repos | ~1.1k | Automated safety check: Pass | CC-BY-4.0 |
poco-ai/poco-claw
Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET).
MicrosoftDocs/mcp
Create agent skills for Microsoft technologies using official documentation.
WeihanLi/WeihanLi.Common
Create or update the project constitution from interactive or provided principle inputs, ensuring all dependent templates stay in sync.
dotnet/maui
Mines local Copilot CLI session logs for dotnet/maui to rank costly or failing runs, tag recurring failure modes, propose repo edits and emit guard evals.
MicrosoftDocs/mcp
Find working code samples, verify API signatures, and fix Microsoft SDK errors using official docs.
dotnet/core
Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.
mitchdenny/hex1b
Guidelines for reviewing API design in the Hex1b codebase. An agent skill from mitchdenny/hex1b.
mitchdenny/hex1b
Agent for validating Hex1b documentation against actual library behavior.
mitchdenny/hex1b
Guidelines for producing accurate and maintainable documentation for the Hex1b TUI library.
mitchdenny/hex1b
Agent for diagnosing and fixing flaky terminal UI tests in the Hex1b test suite.
mitchdenny/hex1b
Step-by-step guide for creating new widgets in the Hex1b TUI library.
mitchdenny/hex1b
Guidelines for writing unit tests in the Hex1b TUI library. An agent skill from mitchdenny/hex1b.
Works with
Guidelines for running and interpreting Surface API performance benchmarks. Surface Benchmarker is an agent skill from mitchdenny/hex1b. Guidelines for running and interpreting Surface API performance benchmarks.
Surface Benchmarker fits situations like: modifying code in src/Hex1b/Surfaces/ to ensure performance is not regressed.
Run `npx skills add mitchdenny/hex1b --skill surface-benchmarker -a claude-code`. Or copy the skill folder (.github/skills/surface-benchmarker in mitchdenny/hex1b) into .claude/skills/surface-benchmarker in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mitchdenny/hex1b --skill surface-benchmarker -a codex`. Or copy the skill folder (.github/skills/surface-benchmarker in mitchdenny/hex1b) into .agents/skills/surface-benchmarker 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 mitchdenny/hex1b --skill surface-benchmarker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/surface-benchmarker, .gemini/skills/surface-benchmarker, .github/skills/surface-benchmarker and .opencode/skills/surface-benchmarker in your project.
Going by SKILL.md and its folder, Surface Benchmarker needs the command-line tools its instructions call (dotnet).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Surface Benchmarker is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k 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 Surface Benchmarker: Minimax DOCX (poco-ai/poco-claw, 1.4k stars), Microsoft Skill Creator (MicrosoftDocs/mcp, 1.9k stars), Speckit Constitution (WeihanLi/WeihanLi.Common, 242 stars) and Copilot Session Failure Analysis (dotnet/maui, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mitchdenny (a GitHub user) maintains it in mitchdenny/hex1b, which has 178 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 2, 2026.
Source: mitchdenny/hex1b on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.