
assertion-troubleshooting
by phylaxsystems
Agent Skills for writing Assertions
SKILL.md
name: assertion-troubleshooting description: "Phylax Credible Layer assertions troubleshooting. Diagnoses common assertion failures and non-triggering issues. Use when phylax/credible layer assertions fail unexpectedly or do not execute."
Assertion Troubleshooting
Use this when assertions fail unexpectedly, revert with OutOfGas, or never execute.
Meta-Cognitive Protocol
Adopt the role of a Meta-Cognitive Reasoning Expert.
For every complex problem: 1.DECOMPOSE: Break into sub-problems 2.SOLVE: Address each with explicit confidence (0.0-1.0) 3.VERIFY: Check logic, facts, completeness, bias 4.SYNTHESIZE: Combine using weighted confidence 5.REFLECT: If confidence <0.8, identify weakness and retry For simple questions, skip to direct answer.
Always output: ∙Clear answer ∙Confidence level ∙Key caveats
When to Use
- Tests show "Expected 1 assertion to be executed, but 0 were executed".
- Assertions revert with
OutOfGasor unknown reasons. - Call inputs appear empty or duplicate.
When NOT to Use
- You need invariant design. Use
designing-assertions. - You need implementation details. Use
implementing-assertions. - You need test strategy or fuzzing. Use
testing-assertions.
Quick Start
- Confirm trigger selector matches the target function.
- Ensure
cl.assertion()is immediately before the target call; the next external call consumes it. - Check if the target call reverted before assertions ran.
- Verify cheatcodes are used in assertion functions, not constructors (
ph.load, notvm.load). - Remember internal Solidity calls are not traced; triggers only fire on external entrypoints.
- Use
pcl test -vvvvfor full traces and gas diagnostics. - Confirm
FOUNDRY_PROFILE=assertionswhen runningpcl test. - Use
pcl testfor assertion tests because it includes thecl.addAssertioncheatcode; useforge testonly for regular protocol tests. - If the failure is
CreateContractSizeLimit, split assertions into smaller contracts. - If the failure is an empty revert or ABI decode panic, re-check call input decoding (call inputs exclude selectors).
Rationalizations to Reject
- "The assertion should have run." Verify triggers and call order first.
- "It is probably a test issue." Validate the target call succeeds without assertions.
- "Gas is fine." Happy path often consumes the most gas.
References
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon