[AUTO-INVOKE] MUST be invoked at the START of each new coding session. Covers context management, task strategies, and Foundry-specific workflows. Trigger: beginning of any new conversation or coding session in a Solidity/Foundry project.
Overall
score
18%
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
| Rule | Why |
|---|---|
| One window = one task | Mixing tasks pollutes context and degrades output quality |
Use /clear over /compact | Clean start is more reliable than compressed context |
/clear after complex tasks | Prevents old context from interfering with new work |
| Copy key info to new windows | Don't rely on context persistence — paste critical details |
| Task Type | Recommended Approach |
|---|---|
| Small bug fix (few lines) | Describe directly, let Claude modify in-place |
| Large feature / refactor | /plan → review approach → /clear → paste plan → execute step by step |
| Multi-file changes | Must use /plan workflow — never modify multiple files without a plan |
| Code analysis / learning | Ask Claude to analyze directly — no plan needed |
| Debugging | Provide error message + file path + relevant code — ask for root cause |
_transfer function in src/MyToken.sol"test_transfer_feeDeduction pass"When Claude's response misses the mark, don't just rephrase and retry. Use Meta-Prompting (reverse prompting) to let Claude diagnose the gap, then re-ask with complete context.
| Type | When to Use | Template |
|---|---|---|
| Diagnose | Answer was wrong or incomplete | "我刚才的提问中缺少了哪些关键信息,导致你没能一次性给出正确答案?请逐条列出。" |
| Rewrite | You don't know how to improve the question | "请帮我重写刚才的问题,补全你认为缺失的上下文,使你能一次性给出正确答案。" |
| Template | Prevent same mistake next time | "对于这类问题,我应该提供哪些信息你才能一次性解决?请给我一个提问模板。" |
| Pre-check | Before Claude starts working | "在你开始写代码之前,列出你还需要我提供的所有信息。" |
Step 1: Ask your question
↓ (answer is wrong or incomplete)
Step 2: Use [Diagnose] — "我的问题中缺少了什么?"
↓ (Claude lists missing info)
Step 3: Use [Rewrite] — "帮我重写这个问题"
↓ (Claude outputs a complete, self-contained prompt)
Step 4: Copy the rewritten prompt, `/clear`, paste and send
↓ (clean context + complete prompt = correct answer)# Round 1 — incomplete question
User: "帮我写一个 staking 合约"
Claude: (generates a basic staking contract, but missing reward logic)
# Round 2 — diagnose
User: "我刚才的提问中缺少了哪些信息?"
Claude: "你没有说明:
1. 质押代币和奖励代币是否相同
2. 奖励分发机制(按时间/按区块/固定APR)
3. 是否需要锁仓期
4. 是否需要紧急提取功能
5. 管理员权限范围"
# Round 3 — rewrite
User: "帮我重写这个问题"
Claude: "请帮我写一个 Staking 合约,要求如下:
- 质押代币:ERC20 TOKEN_A,奖励代币:ERC20 TOKEN_B
- 奖励机制:按质押时长线性释放,年化 12%
- 锁仓期:7 天最短锁仓
- 紧急提取:支持,但扣除 10% 罚金
- 管理员:可更新奖励率,不可触碰用户质押资金
- 安全:使用 ReentrancyGuard + SafeERC20
请基于 OpenZeppelin 5.x,Solidity ^0.8.20,Foundry 项目结构。"
# Round 4 — /clear, paste rewritten prompt, get correct resultDon't guess what you missed — let Claude tell you. One round of meta-prompting saves multiple rounds of trial and error.
git diff before committing to review changesgit add . in Solidity projects (risk of committing .env)| Action | Command |
|---|---|
| Before committing | forge fmt && forge test |
| After modifying contracts | forge build to check compilation |
| Before PR | forge test --gas-report to check gas impact |
| Debugging failed test | forge test --match-test <name> -vvvv for full trace |
| Command | Purpose |
|---|---|
/clear | Clear context, start fresh |
/plan | Enter planning mode — analyze before modifying |
/help | View all available commands |
/compact | Compress context (prefer /clear instead) |
Create .claude/instructions.md in the project root with project-specific rules. Claude automatically reads it at the start of every conversation — no manual loading needed.
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.