一键导入
plan-export
Export a detailed phased implementation plan for a GitHub issue to a file, reading all applicable rules from .cursor/rules before planning
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Export a detailed phased implementation plan for a GitHub issue to a file, reading all applicable rules from .cursor/rules before planning
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | plan-export |
| description | Export a detailed phased implementation plan for a GitHub issue to a file, reading all applicable rules from .cursor/rules before planning |
| argument-hint | ["issue-number (optional)"] |
| disable-model-invocation | true |
This skill composes a detailed, phased implementation plan for a GitHub issue. The issue number can be passed as $1 or discovered from the conversation context (e.g., after a /gh-issue-publish invocation). The plan is designed for a junior developer with minimal knowledge of MCP, Blockscout, and other 3rd-party components but strong Python experience.
Before invoking this skill, the agent must already understand the scope of the changes through prior conversation. The skill assumes:
Before proceeding, resolve the GitHub issue number to use throughout the plan:
$1 is provided and non-empty, use it directly as the issue number.https://github.com/.../issues/<number> — extract the number from the URL. This is typically present after a preceding /gh-issue-publish invocation (which outputs the URL).#<number> or issue <number>.Once resolved, use this number as $1 for all subsequent steps.
Read .cursor/AGENTS.md to determine which rules from .cursor/rules/ apply to the discussed changes. That file contains the authoritative mapping of when each rule should be applied.
MANDATORY: Read each applicable rule file using the Read tool before composing the plan. Do not skip this step or guess rule contents.
For each rule file:
This skill is the complete and only source for the plan's format. The template below, the slice-marker rules, and the --inspect validator in step 6 define every convention you need — section order, marker syntax, the shape of the verification command blocks, all of it. Because the format is fully specified here, you never need to look at another plan to copy its conventions, and you must not: do not open or grep any other file under .ai/impl_plans/ or temp/impl_plans/. Reading a sibling plan does two kinds of harm — it spends context on a document irrelevant to this issue, and, more insidiously, it anchors you to another feature's scope, phasing, and wording, biasing the plan you're writing now. If you're unsure your markers are correct, don't compare against an example — write them per this template and let the step-6 --inspect check prove them. (The pattern examples this skill asks you to cite are source and test files for this feature, referenced by path — never other plans.)
Create a detailed Markdown document at .ai/impl_plans/issue-$1.md with the following structure.
Slice markers — required. Wrap every section in paired, namespaced HTML-comment markers so the plan can be sliced deterministically by scripts/slice_impl_plan.py (headings alone are unreliable — plans embed code blocks and exact documentation that legitimately contain #/## as content). Rules:
slug="preamble".slug="phase-<n>", where <n> is the phase's sequential number (1, 2, 3 … contiguous, matching the ## Phase <n> heading). Number only the phases you actually emit. Put title="<short phase name>" on the begin marker.slug="final-checklist".begin has a matching end with the same slug; never nest them. No real content may live outside a region (blank lines and --- rules between regions are fine). A title must not contain a double-quote.The structure, with markers in place:
<!-- impl-plan:begin slug="preamble" -->
# Implementation Plan for Issue #$1
**GitHub Issue:** https://github.com/blockscout/mcp-server/issues/$1
## Overview
[Brief summary of what needs to be implemented - 2-3 sentences]
## Applicable Guidelines
[List the rule files that were read and applied to this plan, with brief notes on key requirements from each]
---
## Definition of Done — Test Integrity (non-negotiable)
[Mandatory. In your own words — explain the *why*, don't just recite rules — state that the work is done only when its tests genuinely pass for the right reason, for unit and integration tests alike. The wording is yours, but the section must get these points across: each failure is diagnosed (regression vs. legitimately changed expectation) and its root cause fixed, never worked around (no skip/xfail, deletion, loosened assertions, or bypassed hooks); a test is updated only when intended behavior changed; a test that couldn't run, timed out, or hung is a defect to diagnose, not a pass (for integration tests, point at the timeout-protected runner from rule 200); and no phase is "done" while any test is failing, disabled to avoid a failure, or unverified.]
<!-- impl-plan:end slug="preamble" -->
---
<!-- impl-plan:begin slug="phase-1" title="[Phase Name - Functional Changes]" -->
## Phase 1: [Phase Name - Functional Changes]
### Objective
[What this phase accomplishes]
### Files to Modify/Create
- `path/to/file.py`: [Brief description of changes]
- ...
### Implementation Details
[Explain WHAT needs to be changed and WHY. Focus on project-specific context the developer needs to understand:]
- What existing patterns/helpers to reuse and where to find them
- What project conventions apply (naming, structure, error handling approach)
- How this change fits into the existing architecture
- Any non-obvious dependencies or side effects
**Do NOT include code snippets.** The developer knows Python - explain the project-specific aspects they need to understand.
### Unit Tests
- **File:** `tests/tools/category/test_feature.py`
- **Purpose:** [What functionality this test validates]
- **Scenarios to cover:**
- [List scenarios: success cases, error handling, edge cases]
- **Reference:** [Point to similar existing test file as a pattern example]
### Verification
1. Run unit tests for modified functionality:
```bash
pytest tests/tools/category/test_feature.py -v
Run linting and formatting checks:
ruff check path/to/modified/files/
ruff format --check path/to/modified/files/
Fix any linting or formatting issues before proceeding to the next phase.
[Same structure as Phase 1, including its own unit tests]
Verify the implementation works correctly with real network calls.
tests/integration/category/test_feature_real.pyRun integration tests for the new test file:
pytest -m integration tests/integration/category/test_feature_real.py -v
Run linting and formatting checks:
ruff check tests/integration/category/test_feature_real.py
ruff format --check tests/integration/category/test_feature_real.py
Fix any linting or formatting issues before proceeding to the next phase.
Only include this phase if documentation changes are required. If no documentation updates are needed, omit this phase entirely.
For each documentation file that requires changes, provide exact text content to add or modify (documentation requires precise wording):
[Exact section and content to add/modify, if applicable]
[Exact section and content to add/modify, if applicable]
[Exact section and content to add/modify, if applicable]
[Exact section and content to add/modify, if applicable]
[Exact section and content to add/modify, if applicable]
[Exact lines to add, if applicable]
Review all documentation files for accuracy and completeness.
pytest tests/tools/pytest -m integration tests/integration/ruff check .ruff format --check .
### 4. Content Guidelines
**MUST INCLUDE:**
- Reference to the GitHub issue (with full URL)
- List of applicable guidelines that were read and applied
- Phases that allow incremental verification
- Explanations of WHAT to change and WHY (project-specific context)
- References to existing code as pattern examples (file paths, not snippets)
- Complete documentation text (documentation requires precise wording)
- Specific test scenarios with clear descriptions
- Verification steps for each phase (including tests, linting, and formatting checks)
- A mandatory "Definition of Done — Test Integrity" section, placed after "Applicable Guidelines" and before the first phase, covering both unit and integration tests
**MUST NOT INCLUDE:**
- Code snippets for functional changes or tests (developer knows Python)
- Time estimates
- Assumptions about developer's MCP/Blockscout knowledge
- References to "see documentation" without providing the content
- Vague instructions like "update as appropriate"
**PHASE ORGANIZATION:**
1. Only include phases that have actual work to do - omit empty phases
2. **Keep phases small and focused**: Each phase should have a single, clear objective that can be completed, tested, and reviewed as an independent unit. Prefer multiple small phases over fewer large ones.
3. Organize phases so each can be independently verified with its own tests
4. Start with core functionality, then tests, then documentation (if needed)
5. Each phase should build on the previous one
**Phase Size Rationale**: Since each phase's code goes through review, smaller phases are easier to review thoroughly. Catching issues early (e.g., in a model definition phase) prevents building faulty logic on top of flawed foundations.
**Examples of Good Phase Breakdown**:
- ❌ **Too Large**: Phase 1: Create model + handler + all unit tests
- ✅ **Better**: Phase 1: Create model + model unit tests, Phase 2: Create handler + handler unit tests
- ❌ **Too Large**: Phase 1: Refactor 5 modules + add new feature + update tests
- ✅ **Better**: Phase 1: Refactor module A + tests, Phase 2: Refactor module B + tests, Phase 3: Add new feature + tests
**DEPENDENCY ORDERING:**
1. **Between Phases**: Changes in a subsequent phase must build on top of changes from previous phases. Never reference functionality that will be created in a later phase.
2. **Within a Phase**: In the "Implementation Details" section, describe dependencies before things that use them:
- If a handler uses a data model, describe the model first, then the handler
- If code imports a helper function, describe the helper first, then the code using it
- If a test requires a fixture, describe the fixture first, then the test
3. **Files Listing Order**: In "Files to Create/Modify" sections, list files in dependency order (dependencies first)
### 5. Write the Plan File
Save the plan to:
```text
.ai/impl_plans/issue-$1.md
Before handing back, prove the plan you just wrote can actually be sliced. Run the validator in inspect mode (it writes nothing):
/.dockerenv exists): python scripts/slice_impl_plan.py .ai/impl_plans/issue-$1.md --inspectuv run python scripts/slice_impl_plan.py .ai/impl_plans/issue-$1.md --inspectRead the exit code:
--inspect until it exits 0. Never hand back a plan that fails this check: a plan that cannot be sliced cannot be implemented by implement-plan.After writing the plan file:
Output format:
Created implementation plan at [.ai/impl_plans/issue-$1.md](.ai/impl_plans/issue-$1.md)
The plan includes {N} phases:
1. [Phase 1 name]
2. [Phase 2 name]
...
Applicable guidelines that were incorporated:
- [List of rule files read]
Awaiting your instructions to proceed.
<!-- impl-plan:begin slug="…" --> … <!-- impl-plan:end slug="…" --> markers (see step 3) and confirm the plan passes the step-6 --inspect self-check before handing back.ai/impl_plans/ or temp/impl_plans/ file only burns context and biases this plan toward another feature (see step 3)tools/address/get_address_info.py")Validate review findings about an implementation plan against the codebase and repo rules, fix the valid ones in the plan, and write a feedback file noting what changed and what was rejected (and why). For plan-review findings, not code-review findings.
Expert review of an implementation plan against a GitHub issue/enhancement description (provided as a local file or a GitHub issue URL) and the current repository codebase. Use when asked to critique a plan for correctness, completeness, codebase alignment, risks, and test/rollout readiness (do not implement).
Manually review a feedback file produced after implementation-plan review findings were addressed. Use when the user asks to read a findings-feedback file and verify that the plan changes correctly close, correctly reject, or fail to close the original implementation-plan-review findings, while checking for newly introduced or newly exposed plan problems. Writes only new findings to the plan-id findings directory and replies with the output file path or a concise no-new-findings status.
Use this skill whenever the agent needs to deploy a smart contract to Sepolia testnet via Foundry (`forge create` or `forge script --broadcast`), routed through the Blockscout PRO API's JSON-RPC gateway instead of a third-party RPC provider. Trigger on requests like "deploy this contract to Sepolia", "deploy via Foundry", "broadcast this Foundry deployment script", or any `forge create`/`forge script` invocation that needs a signer and an RPC endpoint for Sepolia (chain id 11155111) in this project. Also consult it to find which local Foundry keystore to sign with — this project stores test signing keys as encrypted keystores under `.ai/wallet/`, never as a plain private key in `.env`. Do not use this for reads (balances, transaction history, contract info) — use the connected Blockscout MCP tools for those directly; this skill is specifically about broadcasting a deployment.
Enter the worktree of a GitHub PR, validate the code-review comments raised on it against what the code actually does and the repo rules, fix the valid ones directly in the PR's source/tests, and report in chat — a brief note per closed comment and a detailed plain-language explanation of every comment left unclosed and why. For code-review comments on a PR. Invoke manually.
TRIGGER CONDITIONS - invoke this skill when ANY of these apply: User-triggered (explicit request): - User mentions "specification", "SPEC", "SPEC.md", "spec requirements" - User asks to "verify with spec", "confirm with specification", "check requirements" - User requests "authoritative requirements" or "source of truth" Agent self-triggered (during reasoning): - Before implementing any feature or making code changes - When verifying technical requirements or constraints - When making architectural or design decisions - When you need unbiased guidance not influenced by current implementation - When encountering conflicting information and need ground truth PURPOSE: Consults SPEC.md through an isolated subagent that ONLY reads the specification, never implementation code. This ensures guidance is based on authoritative requirements, not potentially incorrect existing code.