pub struct CreateSpecArgs {
pub project_name: String,
pub feature_name: String,
pub spec: String,
pub notes: String,
pub tasks: String,
}
Expand description
Arguments for create_spec command
Fields§
§project_name: String
Project name to create spec for
Must be an existing project in ~/.foundry/ Use ‘foundry list-projects’ to see available projects
feature_name: String
Feature name in snake_case (e.g., user_authentication)
Used to create timestamped directory: YYYYMMDD_HHMMSS_feature_name Should be descriptive and use underscores, not spaces or hyphens
spec: String
Detailed specification content
Required Sections:
- Feature overview and purpose
- Functional requirements and acceptance criteria
- Technical implementation approach
- Testing strategy and edge cases
- Dependencies and constraints
Markdown Structure:
- Use # Feature Name as main header
- Use ## for major sections (## Overview, ## Requirements, ## Implementation)
- Use ### for subsections (### API Design, ### Database Changes)
- Include code blocks with ```language for examples
- Use bullet points and numbered lists for clarity
- Add tables for complex requirements or APIs
Goes into spec.md
notes: String
Implementation notes and considerations
Content Focus:
- Design decisions and rationale
- Technical tradeoffs and alternatives considered
- Dependencies on other features or systems
- Implementation constraints and limitations
- Future enhancement opportunities
Markdown Structure:
- Use ## headers for categories (## Design Decisions, ## Dependencies, ## Constraints)
- Use bullet points for lists of considerations
- Include code snippets for technical details
- Reference external documentation with links
- Keep it conversational but technical
Goes into notes.md
tasks: String
Task list content
Task Organization:
- Break feature into actionable, testable tasks
- Group related tasks under logical phases or components
- Include both implementation and validation tasks
- Consider setup, development, testing, and deployment phases
Markdown Checklist Format:
- Use ## headers for phases (## Phase 1: Setup, ## Phase 2: Core Implementation)
- Use
- [ ] Task description
for uncompleted tasks - Use
- [x] Task description
for completed tasks - Include estimated effort or complexity where helpful
- Add sub-tasks with indented checkboxes when needed
- Keep tasks specific and measurable
Goes into task-list.md
Trait Implementations§
Source§impl Args for CreateSpecArgs
impl Args for CreateSpecArgs
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Append to
Command
so it can instantiate self
via
FromArgMatches::update_from_arg_matches_mut
Read moreSource§impl Debug for CreateSpecArgs
impl Debug for CreateSpecArgs
Source§impl FromArgMatches for CreateSpecArgs
impl FromArgMatches for CreateSpecArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
Assign values from
ArgMatches
to self
.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
Assign values from
ArgMatches
to self
.Source§impl McpToolDefinition for CreateSpecArgs
impl McpToolDefinition for CreateSpecArgs
Source§fn tool_definition() -> Tool
fn tool_definition() -> Tool
Generate the MCP tool definition from the struct
Source§fn from_mcp_params(params: &Value) -> Result<Self>
fn from_mcp_params(params: &Value) -> Result<Self>
Convert MCP parameters to the CLI argument struct
Auto Trait Implementations§
impl Freeze for CreateSpecArgs
impl RefUnwindSafe for CreateSpecArgs
impl Send for CreateSpecArgs
impl Sync for CreateSpecArgs
impl Unpin for CreateSpecArgs
impl UnwindSafe for CreateSpecArgs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more