Automated summary
Walks through creating or modifying a MIP (Moonwell Improvement Proposal) in a Foundry repository, enforcing naming conventions, per-chain address configuration, and build/test verification.
Strengths
- Refuses to proceed on the main branch, forcing a dedicated working branch before any edits
- Forbids hardcoded addresses: values must be loaded from the target chain's config files
- Verifies every change with forge build followed by a targeted forge test on the proposal contract
- Requires showing duration math explicitly and printing a diff summary before committing, keeping a human in the loop
Limitations
- Assumes an existing repository layout (src/proposals/, chain configs, installed Foundry) and does not provide it
- Specific to the MIP/Moonwell workflow: not applicable to other proposal formats or smart contract frameworks
- Covers only compilation and targeted tests, with no security review or audit step
Use it when drafting or adapting a MIP proposal contract in an existing Foundry repo where addresses come from chain config and changes must be validated by build and tests.
Avoid it for contract work outside proposals, for repos without Foundry, or when no working branch other than main is available.
Security analysis
CautionThe skill uses normal development tooling for a legitimate smart-contract workflow. Since it asks an agent to run shell commands and a build/test toolchain, it has some execution risk, but all commands are scoped to repository branch checking, file listing, compilation, and tests.
- •Instructs executing shell commands (`git branch`, `ls`, `forge build`, `forge test`) in the repository, including running Solidity tests which can execute repo code. No destructive, exfiltration, or obfuscated actions are present.
Examples
Create MIP-42 for the Base chain. Use the existing MIP naming convention in src/proposals/, load the addresses from the Base chain config, then run forge build and forge test --match-contract MIP42 and show me the diff before committing.Update the existing MIP-31 proposal to change the collateral factor, keeping storage variables initialized from the chain config addresses, and show the duration calculation math explicitly before running the tests.I'm about to edit a MIP contract — first confirm the current git branch is not main, show me the existing proposal naming pattern, and point out which chain config file holds the addresses I need.Create/Modify MIP Proposal
Steps
- Ask user for: MIP number, target chain, reference proposal (if any)
- Run
git branch --show-current— refuse to proceed if onmain - Check existing MIP naming pattern:
ls src/proposals/ - Load chain addresses from config files (never hardcode addresses)
- After code changes, run
forge buildto verify compilation - Run
forge test --match-contract <MIPName>to verify tests pass - Show diff summary before committing
Rules
- Storage variables in build() must be initialized from chain config addresses
- Duration calculations: always show math explicitly for user verification
- Follow existing naming convention exactly
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/create-modify-mip-proposal-mm5t899s/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/create-modify-mip-proposal-mm5t899s' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/create-modify-mip-proposal-mm5t899s/download' --output '.skill-downloads/create-modify-mip-proposal-mm5t899s/SKILL.md.part' && mv '.skill-downloads/create-modify-mip-proposal-mm5t899s/SKILL.md.part' '.skill-downloads/create-modify-mip-proposal-mm5t899s/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.
Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/create-modify-mip-proposal-mm5t899s/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.