prebuilt.startup.ideation.modelsΒΆ

Startup idea models for the Haive framework.

This module provides comprehensive data models for brainstorming, researching, and evaluating startup ideas using AI agents. These models integrate with the pitch deck models to create a complete startup development pipeline.

The models support: - Idea generation and brainstorming - Market research and validation - Competitive analysis - Problem-solution fit assessment - Business model exploration - Risk and opportunity analysis

ClassesΒΆ

BusinessModelCanvas

Business model canvas for startup ideas.

CompetitorAnalysis

Analysis of a specific competitor.

IdeaBrainstorm

A brainstorming session for generating startup ideas.

IdeaCategory

Categories of startup ideas.

IdeaGenerationRequest

Request model for idea generation.

IdeaGenerationResponse

Response model for idea generation.

IdeaMetrics

Metrics for evaluating startup ideas.

IdeaPortfolio

Portfolio of startup ideas being developed.

IdeaStage

Stage of idea development.

MarketResearch

Market research data for a startup idea.

MarketSize

Market size categories.

ProblemStatement

Defines a problem that the startup idea aims to solve.

RiskAssessment

Risk assessment for a startup idea.

RiskLevel

Risk level assessment.

SolutionConcept

Defines a solution concept for a problem.

StartupIdea

Complete startup idea with all research and validation.

ValidationMethod

Methods for validating ideas.

ValidationResult

Results from idea validation activities.

FunctionsΒΆ

create_basic_idea(name, problem, solution, category)

Create a basic startup idea from minimal information.

create_problem_from_description(description[, severity])

Create a problem statement from a simple description.

Module ContentsΒΆ

class prebuilt.startup.ideation.models.BusinessModelCanvas(/, **data)ΒΆ

Bases: pydantic.BaseModel

Business model canvas for startup ideas.

Based on the standard Business Model Canvas framework.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

classmethod validate_required_lists(v, info)ΒΆ

Ensure critical lists are not empty.

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.CompetitorAnalysis(/, **data)ΒΆ

Bases: pydantic.BaseModel

Analysis of a specific competitor.

Detailed competitive intelligence for strategic planning.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.IdeaBrainstorm(/, **data)ΒΆ

Bases: pydantic.BaseModel

A brainstorming session for generating startup ideas.

Tracks the ideation process and generated concepts.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

add_raw_idea(idea, agent_id=None)ΒΆ

Add a raw idea to the session.

Parameters:
  • idea (str)

  • agent_id (str | None)

Return type:

None

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.IdeaCategoryΒΆ

Bases: str, enum.Enum

Categories of startup ideas.

Initialize self. See help(type(self)) for accurate signature.

class prebuilt.startup.ideation.models.IdeaGenerationRequest(/, **data)ΒΆ

Bases: pydantic.BaseModel

Request model for idea generation.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

class prebuilt.startup.ideation.models.IdeaGenerationResponse(/, **data)ΒΆ

Bases: pydantic.BaseModel

Response model for idea generation.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

class prebuilt.startup.ideation.models.IdeaMetrics(/, **data)ΒΆ

Bases: pydantic.BaseModel

Metrics for evaluating startup ideas.

Comprehensive scoring across multiple dimensions.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

calculate_scores()ΒΆ

Calculate overall scores.

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.IdeaPortfolio(/, **data)ΒΆ

Bases: pydantic.BaseModel

Portfolio of startup ideas being developed.

Manages multiple ideas and tracks their progress.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

add_idea(idea)ΒΆ

Add an idea to the portfolio.

Parameters:

idea (StartupIdea)

Return type:

bool

get_ideas_by_stage(stage)ΒΆ

Get all ideas at a specific stage.

Parameters:

stage (IdeaStage)

Return type:

list[StartupIdea]

get_portfolio_summary()ΒΆ

Get summary statistics of the portfolio.

Return type:

dict[str, Any]

get_top_ideas(n=3)ΒΆ

Get top N ideas by score.

Parameters:

n (int)

Return type:

list[StartupIdea]

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.IdeaStageΒΆ

Bases: str, enum.Enum

Stage of idea development.

Initialize self. See help(type(self)) for accurate signature.

class prebuilt.startup.ideation.models.MarketResearch(/, **data)ΒΆ

Bases: pydantic.BaseModel

Market research data for a startup idea.

Contains comprehensive market analysis and research findings.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

validate_market_sizes()ΒΆ

Ensure market sizes are logical.

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.MarketSizeΒΆ

Bases: str, enum.Enum

Market size categories.

Initialize self. See help(type(self)) for accurate signature.

class prebuilt.startup.ideation.models.ProblemStatement(/, **data)ΒΆ

Bases: pydantic.BaseModel

Defines a problem that the startup idea aims to solve.

This is the foundation of any good startup idea - a clear problem definition.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property problem_score: floatΒΆ

Calculate a score for how good this problem is to solve.

Return type:

float

class prebuilt.startup.ideation.models.RiskAssessment(/, **data)ΒΆ

Bases: pydantic.BaseModel

Risk assessment for a startup idea.

Comprehensive risk analysis across multiple dimensions.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

calculate_overall_risk()ΒΆ

Calculate overall risk from individual components.

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.RiskLevelΒΆ

Bases: str, enum.Enum

Risk level assessment.

Initialize self. See help(type(self)) for accurate signature.

class prebuilt.startup.ideation.models.SolutionConcept(/, **data)ΒΆ

Bases: pydantic.BaseModel

Defines a solution concept for a problem.

This represents how the startup plans to solve the identified problem.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

classmethod validate_features(v)ΒΆ

Ensure we have at least 3 key features.

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.StartupIdea(/, **data)ΒΆ

Bases: pydantic.BaseModel

Complete startup idea with all research and validation.

This is the main model that brings together all components of a startup idea.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

add_research(research_type, data)ΒΆ

Add research data to the idea.

Parameters:
  • research_type (str)

  • data (Any)

Return type:

None

add_validation(validation)ΒΆ

Add validation results.

Parameters:

validation (ValidationResult)

Return type:

None

calculate_readiness()ΒΆ

Calculate how ready this idea is for next steps.

Return type:

dict[str, Any]

get_research_gaps()ΒΆ

Identify what research is still needed.

Return type:

list[str]

to_pitch_deck_brief()ΒΆ

Convert idea to a brief for pitch deck generation.

This creates a structured brief that can be used by pitch deck agents.

Return type:

dict[str, Any]

update_timestamp()ΒΆ

Update timestamp on changes.

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class prebuilt.startup.ideation.models.ValidationMethodΒΆ

Bases: str, enum.Enum

Methods for validating ideas.

Initialize self. See help(type(self)) for accurate signature.

class prebuilt.startup.ideation.models.ValidationResult(/, **data)ΒΆ

Bases: pydantic.BaseModel

Results from idea validation activities.

Tracks validation efforts and findings.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

model_configΒΆ

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

prebuilt.startup.ideation.models.create_basic_idea(name, problem, solution, category)ΒΆ

Create a basic startup idea from minimal information.

Parameters:
Return type:

StartupIdea

prebuilt.startup.ideation.models.create_problem_from_description(description, severity='high')ΒΆ

Create a problem statement from a simple description.

Parameters:
  • description (str)

  • severity (str)

Return type:

ProblemStatement