Agent skill
spec-interview
Use this skill if a user's request is under-specified, and you need to clarify the project requirements.
Install this agent skill to your Project
npx add-skill https://github.com/ApeWorX/skills/tree/main/development/spec-interview
SKILL.md
Overview
Turn project ideas into a fully-formed project specification by asking the user sets of questions until all ambiguity is removed. This skill helps establish a complete context of a new project's design, and captures critical context before implementation is begun.
Prerequisites
The user provides a high-level project design idea. The user MAY also provide additional context about technical constraints, or scenarios the project must avoid. Keep track of the current design by maintaining a file SPECIFICATION.md, and generate that file if it doesn't exist.
Workflow
Understand Design Goals
- Start by loading the current design from SPECIFICATION.md
- Ensure the high-level project design is consistent with all section titles of all sections below
- For each section, read the entire section and think of a question with a non-obvious answer for that section to ask the user
- If the user says that the question is not relevant, ignore that question and any like it
- If the user provides an answer to that question, add it to the section in the correct location for it to read well
- If there are no more questions to ask, move on to the next section
Exploring Alternatives
- If a user is unsure of the answer to a question, research 2-3 different approaches to the problem with their corresponding trade-offs
- Present each option conversationally and include relevant reasoning
- Explain your recommendation and ask if any clarification is needed
- Once the user selects an option, use that as your answer before moving on
Summarizing the Design
- Once you have completely understood the design, summarize it and present that summary to the user
- Make sure to cover overall architecture and components, their data flow, any error testing, and how the correctness of the design can be verified
- Ask if any parts of the design need additional clarification before moving on
Key Principles
- Keep it simple - Remove unnecessary features from the design, unless specifically requested
- Explore alternatives - Propose 2-3 different approaches before asking to settle on one
- One question at a time - Don't overwhelm the user with multiple questions at once
- Prefer multiple choice questions - It is easier to answer vs. open-ended questions
- Verify before proceeding - Make sure the user consents before moving on to a new topic
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
writing-bots
Write a bot to continuously listen and respond to events on a public blockchain network.
writing-sdks
Create a Python SDK using Ape Framework to simplify using a given blockchain-based protocol. Use when users need specific best practices and guidance on developing a new integration with the given protocol. Do not use if such a Python SDK already exists that is designed to work with Ape.
uniswap
Trade and interact with Uniswap in Python using Ape and the uniswap-sdk package.
writing-plugins
Create a new Plugin for Ape Framework to integrate a specific tool or service into one of Ape's vertical(s). Use when users need specific best practices and guidance on developing a new plugin for Ape. Do not use if such a plugin already exists that is designed to work with Ape, and instead suggest that.
protocol-design
Design and build a new smart contract protocol using Ape Framework. Use when users want to create a new set of smart contracts that work together as a protocol, including development, testing, scripting/deployment, and potentially other aspects such as distributing a Python SDK or enabling automation of the protocol (through Silverback). Guides users through the full lifecycle from design through deployment and beyond using Ape tooling.
new-project
Architect new Python-based blockchain projects using the Ape framework. Use when users want to start a new blockchain project and need guidance on proper project structure, architecture patterns, configuration, and foundational setup. Supports SDK development, plugin creation, bot development with Silverback, protocol development, and complex blockchain applications. Determines project type and guides users through establishing the correct architectural foundation.
Didn't find tool you were looking for?