一键导入
feat
Implement a new feature following EggPdf's test-first, performance-aware development loop
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Implement a new feature following EggPdf's test-first, performance-aware development loop
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Dual-perspective code review — Lead Dev (architecture/correctness) + Dev (implementation/tests). Runs entirely in the main agent for easy follow-up.
Update EggPdf documentation — README, docs/ wiki pages, site/, llms.txt, CLAUDE.md — to reflect current implementation
Render HTML through EggPdf and analyze PDF output for visual correctness issues
Render all WebUI templates through the PDF pipeline and verify output correctness
Run EggPdf benchmarks and analyze performance for specific rendering scenarios
Fix a bug following the test-first approach -- reproduce with test, then fix, then verify
| name | feat |
| description | Implement a new feature following EggPdf's test-first, performance-aware development loop |
| disable-model-invocation | true |
| user-invocable | true |
| allowed-tools | Bash, Read, Write, Edit, Grep, Glob, Agent, TodoWrite |
Implement a feature for EggPdf following the strict loop: write test -> write code -> verify test -> fix -> benchmark -> repeat until all green.
$ARGUMENTS -- description of the feature to implement (e.g., "HTML tokenizer data state", "CSS margin shorthand expansion", "block formatting context layout")Read the blueprint for implementation details:
BLUEPRINT.md -- find the relevant component and phasegh issue list --search "$ARGUMENTS"Read the affected files before writing any code. Understand existing patterns:
Create a feature branch:
git checkout -b feat/{feature-name}
Write tests FIRST -- this is non-negotiable:
Feature_Condition_ExpectedBehaviorRun tests -- they MUST fail (proves the test is meaningful):
dotnet test --configuration Release --filter "FullyQualifiedName~{TestClass}"
If tests pass before implementation, the tests are wrong. Fix them.
Implement the feature following these constraints:
Span<T> on netstandard2.1+, ArrayPool where appropriateRun tests -- they MUST pass:
dotnet test --configuration Release
Fix failures. Repeat until 100% green. Do NOT move forward with failing tests.
Review your own code:
Run all tests again -- full suite, not just your new ones:
dotnet test --configuration Release
If the change is in a hot path (parser, layout engine, paint, PDF writer):
cd benchmarks/EggPdf.Benchmarks && dotnet run -c Release -- --filter *{Scenario}* --exporters json markdown
Check for regressions -- compare against previous results:
Commit with conventional prefix:
feat: for new featuresfix: for bug fixesperf: for performance improvementstest: for test-only changesrefactor: for restructuring without behavior changePush the branch (but do NOT create PR -- use /ship for that):
git push -u origin feat/{feature-name}
main -- always feature branch + PR