adopt
無料Brownfield audit — do existing artifacts actually work? Numbered migration plan. Unlike /project-stage-detect, checks compliance not existence.
日本語の概要は準備中です。原文の説明を表示しています。
Performance profiling — find bottlenecks, measure against budgets, produce ranked optimization recommendations.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys performance.enforce,automation,workflow
Resolved above — use as-is. No block → defaults in
.claude/docs/config-resolution.md.
Every AskUserQuestion call follows .claude/docs/automation-modes.md
(collaborative asks always · guided major-only · autonomous logs and proceeds;
automation_always_ask categories always prompt).
If the inputs this skill needs do not exist, the answer is "could not run" — not a filled-in report. Check first, and stop if the check fails.
FOUND or ABSENT — not "assumed present".NOT ASSESSED — NO DATA. Do not estimate it, do not infer it from an
adjacent artifact, and do not leave a mandated cell to be filled by whoever
reads the template next.NOT ASSESSED — NO DATA as the whole verdict, naming what was missing and
which skill produces it.A verdict of NOT ASSESSED is a success. It is the correct, useful answer to
"what does the data say?" when there is no data. The failure mode this prevents is
specific: a report whose verdict enum has no "could not run" state produces
false clean passes — an asset audit returning COMPLIANT on a project with no
assets and no standards, or a performance profile reporting ">99% headroom against
a 16.67ms budget" with zero profiler data and no budget ever set.
Absence of evidence is never evidence of absence. A scan that finds no matches because there are no files to scan has not verified anything. Say which of the two happened — a reader cannot tell from a green result.
performance.enforce decides what a budget violation means in this run. It
does not change which budgets are measured — performance.target_framerate,
frame_budget_ms, draw_call_limit and memory_ceiling_mb are profiled the
same way at every level:
| Value | Effect on this profile's findings |
|---|---|
warn (default) | Violations are reported as findings. They do not block; CI logs them without failing. |
block | Violations are blockers. Say so explicitly in the report — a block project treats an over-budget system as release-stopping, and /gate-check will FAIL the Polish gate on it. |
off | Budgets are informational only. Still report measured values, but do not raise violations as findings or recommendations to fix. |
Only warn, block and off are recognized. Surface any other value to the
user and fall back to warn rather than guessing.
The value is locally overridable (
/settings --local performance.enforce=block), so use the resolved block above rather than readingproject.yaml— a teammate's stricter local setting is meant to bite on their machine only.
Read the argument:
full → run a comprehensive profile across all systemsRead the committed budgets from config first — they are the project's record of what it agreed to, and design docs are the fallback, not the source:
(cd "${CLAUDE_SKILL_DIR}/../../.." && source .claude/hooks/yaml-helper.sh 2>/dev/null &&
echo "performance.target_framerate: $(get_effective_yaml_key performance.target_framerate)" &&
echo "performance.frame_budget_ms: $(get_effective_yaml_key performance.frame_budget_ms)" &&
echo "performance.draw_call_limit: $(get_effective_yaml_key performance.draw_call_limit)" &&
echo "performance.memory_ceiling_mb: $(get_effective_yaml_key performance.memory_ceiling_mb)")
Run it as one command: it loads the helper from the project root, so it works when the session was started in a subfolder. An empty value after a key means that budget is not set.
Written as four literal keys rather than a loop over leaf names, deliberately. The dead-settings audit matches the full dotted key, so a loop building
performance.$kleaves three of the four spelled nowhere and the audit reports them DEAD while this skill reads them. Spell each key out in full.
Resolve these budgets from
project.yaml, not from prose. Phase 0 above states these four budgets "are profiled the same way at every level". Sending the reader to "design docs or CLAUDE.md" instead means a user who setperformance.target_framerate: 60inproject.yamlhas it ignored by the one skill that profiles against budgets. The keys resolve correctly — this phase has to actually ask for them.
Then fall back to design docs or CLAUDE.md for anything config does not carry:
A metric with no committed budget is NOT ASSESSED, not a pass. Do not
measure against the template's [16.67ms] placeholder — an unset budget is not
a budget that was met, and reporting headroom against a number nobody chose is
the exact fabrication this skill's own header warns about.
CPU Profiling Targets:
_process() / Update() / Tick() functions — list all and estimate costMemory Profiling Targets:
Rendering Targets (if applicable):
I/O Targets:
Write the report to production/polish/[scope]-report-[date].md, asking first
per the Collaboration Protocol: "May I write this profiling report to
production/polish/[scope]-report-[date].md?" Create the directory if absent.
Name the destination — do not just render the template into the conversation. A profile that lives only in the transcript is gone the moment the session ends, and no two runs can be compared.
production/polish/is the same location/team-polishwrites, deliberately: a profile taken by either route belongs in one place, or the comparison this skill exists to enable cannot be made.If a
NOT ASSESSEDsection survives into the report, keep it in the written file. A profile whose gaps are edited out on the way to disk reads, later, as a complete measurement.
## Performance Profile: [System or Full]
Generated: [Date]
### Performance Budgets
| Metric | Budget | Estimated Current | Status |
|--------|--------|-------------------|--------|
| Frame time | [16.67ms] | [estimate] | [OK/WARNING/OVER/NOT ASSESSED] |
| Memory | [target] | [estimate] | [OK/WARNING/OVER/NOT ASSESSED] |
| Load time | [target] | [estimate] | [OK/WARNING/OVER/NOT ASSESSED] |
| Draw calls | [target] | [estimate] | [OK/WARNING/OVER/NOT ASSESSED] |
### Hotspots Identified
| # | Location | Issue | Estimated Impact | Fix Effort |
|---|----------|-------|------------------|------------|
### Optimization Recommendations (Priority Order)
1. **[Title]** — [Description]
- Location: [file:line]
- Expected gain: [estimate]
- Risk: [Low/Med/High]
- Approach: [How to implement]
### Quick Wins (< 1 hour each)
- [Simple optimization 1]
### Requires Investigation
- [Area that needs actual runtime profiling to confirm impact]
Output the report with a summary: top 3 hotspots, estimated headroom against
each budget that is set — for a metric with none, no budget set — headroom not assessed — and recommended next action.
Activate this phase only if any hotspot has Fix Effort rated M or L.
Present significant-effort items and ask the user to choose for each:
workflow: minimal, which has no sprints, add it to the brief's build order)/scope-check [feature] to analyze trade-offs)/architecture-decision)If multiple items are deferred to Polish (choice C), record them under ### Deferred to Polish.
Close every run that produced a report — whether or not Phase 5 ran — with:
Verdict: COMPLETE — performance profile generated (saved to
production/polish/[scope]-report-[date].md if the write was approved). The only
other outcome is the NOT ASSESSED — NO DATA path above.
/architecture-decision./scope-check [feature]./sprint-plan update (at workflow: minimal, which has no sprints, add them to the brief's build order instead).まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Brownfield audit — do existing artifacts actually work? Numbered migration plan. Unlike /project-stage-detect, checks compliance not existence.
日本語の概要は準備中です。原文の説明を表示しています。
Create an ADR documenting a technical decision: context, alternatives considered, consequences.
日本語の概要は準備中です。原文の説明を表示しています。
Traceability matrix mapping GDD requirements to ADRs. Finds gaps, cross-ADR conflicts, engine compatibility. PASS/CONCERNS/NOT ASSESSED/FAIL.
日本語の概要は準備中です。原文の説明を表示しています。
Author the Art Bible — visual identity gating asset production. Run before /map-systems.
日本語の概要は準備中です。原文の説明を表示しています。
Audit assets against naming conventions, file size budgets, format standards. Finds orphaned assets, missing references.
日本語の概要は準備中です。原文の説明を表示しています。
Per-asset visual specs plus AI generation prompts from GDDs and character profiles. After the art bible.
日本語の概要は準備中です。原文の説明を表示しています。