/** * Startup Ignition Assessment Form Generator * Auto-generated from PragCore StartupIgniter Framework & Catalog. * * INSTRUCTIONS: * 1. Open https://script.google.com and click "New Project". * 2. Paste this entire file into Code.gs. * 3. Click "Run" -> createStartupIgnitionAssessmentForm. * 4. Grant permissions when prompted. The Form URL and Edit URL will appear in the execution log. */ function createStartupIgnitionAssessmentForm() { const form = FormApp.create("Startup Ignition Product Assessment (StartupIgniter)"); form.setDescription( "Startup Ignition alumni validation operating board for PragCore products.\n\n" + "Guiding Principle: Validate the business model, unit economics, and willingness-to-pay BEFORE scaling product or company.\n" + "Responses can be synced directly back into repo-backed state via startupigniter.py." ); form.setIsQuiz(false); form.setProgressBar(true); // ========================================================================== // SECTION 1: PRODUCT & AUDIT METADATA // ========================================================================== const projectItem = form.addListItem(); projectItem.setTitle("Product / Project Name"); projectItem.setHelpText("Select the PragCore product or service being assessed (155 catalog products)."); const projects = ["3DCommunityGraph", "agent-control-plane", "AIBuilder", "AICharacters", "AICharactes", "AiChatAbleCryptoLedger", "AICorporateSimulator", "AiGirlfriendPractice", "AiHealthStatusByConversation", "AIOperatingSystem", "AiResultAndPromptComparator", "AkventuraTellMeWhatToDo", "AppMakersGuaranteeBusiness", "AutoMedia", "BarJuke (AutoDJ AI)", "BashGoal", "BchBettingWith3dGames", "BchIntegratedApps", "BetMoneyPaymentApp", "BetsChannelSmashCpu", "bin", "BirdCaptureApp", "BitcoinCashDonationIntermediary", "BlackSwanEventPredictor", "BlockchainVisualValidatedContent", "Bots", "BtcSmashBrothersBets", "Catch-App", "CelebrityLocationTracker", "ChronoWeave", "CLAVE", "clave-invest", "cli-governance", "Codex Watcher", "codexmega", "Contextualizer", "ContractualCommunicationFromConversations", "ControlTerritoryByTasksForPrizes", "ConversationContractEngine", "CorpsimAiCorporations", "CosmopolisAI", "Currency Tracker", "DailyLifeQuotes", "dexter", "EasyAudioFocus", "EasyConversationsApp", "EasyLetter", "EasyLetterRewrite", "EasySumAndSubtract", "EmergingIndicatorsCryptocurrency", "FacebookBotServerStatusToSlack", "FacileAssistantGoogleReplacer", "FamilyGraphBySms", "FedRatesTracker", "FinanceOpsAutomationKit", "FriendPsychologicalProfilerFromMessages", "GeneticCryptocurrencyByGeneticId", "GoalAnswerEngine", "GoalHowModule", "GoalWhatModule", "GoalWhenModule", "GoalWhereModule", "GoalWhyModule", "HelpdeskAutomationKit", "HelpsSmallCompaniesMakeMoney", "Hey Listen - Navi 3D Interface App", "HistoryPerDaySummarizer", "HowToGetLaidAppMarioConcept", "Hypocriscope - Hypocrisy detector", "IdentifyPeopleByVideoScript", "IncludesReallyGoodApps", "IntelligentInterfaces", "intentional-compiler", "InvoiceDocumentAutomationAPI", "LibertyEvaluatorAi", "LifeOrganizerAdventure", "lifeos", "LifeOSCalendarIntelligence", "loom-agent-os", "LovedOnesAiEternalization", "MacSecuCam", "Market Research", "MeshAi", "MistamalesApp", "MoodAnalyzerByFace", "MouseJugglerForOperator", "multicast", "NaviAi", "NavigateKeyIndicators", "NegotiationToneCopilot", "Neumorphic", "NeumorphicSwiftUI", "OldPeopleFriendHighIntegrityVoiceChat", "OrgChartAnalysis", "Parse", "Patent", "PaymentDistributionOnAcceptedResults", "PerPersonPointsTracker", "PhotogrammetryCapture", "PlatformFeeDistribution", "PoliticalIssuesTracker", "PragBook", "PragCarTalk", "PragChat", "PragCore Space", "PragCore Web", "PragCore.xcworkspace", "PragCRM", "PragMarketing", "PragMenu", "Pragoils", "Product Dev", "project-planning", "project-readiness", "ProjectScaffold", "PsychologicalModeling", "PsychologicalProfileAndNeeds", "Psycological Modeling", "Ranch Scroll World", "RandomizedSourceBetStarcraftEthereum", "RealTimeRestaurantAnalysisByCamera", "ReceptionistAI", "RelationshipPointsTracker", "ReligionGurusAi", "Remote Config", "remotion-cli", "RetroStreamAttach", "ReviewForPricesOrRewards", "SadhguruAiPersonaChat", "ShopifyListingAutomationKit", "SignalRoot", "SmartImport", "SnapRack", "Social Media Manager", "SoraFunnyFyNewsTranslator", "SoraLyricsVideoGenerator", "SpouseAiChatAndDebate", "StandardContextualizationProtocol", "SubscriptionOfSubscriptions", "TerminalIntegrationToOpenaiMacos", "TerritoryWars", "TrackKeyEvents", "TwoAiPoliticiansDebate", "TwoAiSolveProblemsTogether", "ui-runtime-assessor", "UniversalAssets", "ValidatedAppBet", "ValuesAlignmentChooser", "vapor-pragisle", "VideoContractsForJobs", "WebsiteGraphPoliticianFlipFlop", "WhatsAppLeadQualificationKit", "WorkOrchestrator", "YearlyFeeAccessToManyApps", "ZodiacCameraSignIdentifier"]; projectItem.setChoiceValues(projects); projectItem.setRequired(true); const assessorItem = form.addTextItem(); assessorItem.setTitle("Assessor / Reviewer"); assessorItem.setHelpText("Name or ID of founder, operator, or reviewer."); assessorItem.setRequired(true); const stageItem = form.addListItem(); stageItem.setTitle("Target / Assessed Stage"); stageItem.setHelpText("What stage is this venture currently operating in?"); stageItem.setChoiceValues(["Idea", "Wow Factor", "Model Validation", "Micro-Start Company", "Build MVP", "Traction", "Scale Product", "Scale Company"]); stageItem.setRequired(true); const priorityItem = form.addListItem(); priorityItem.setTitle("Priority Tier"); priorityItem.setChoiceValues(["critical", "high", "medium", "low"]); priorityItem.setRequired(true); const statusItem = form.addListItem(); statusItem.setTitle("Initial Assessment Status"); statusItem.setChoiceValues(["in_progress", "ready_to_advance", "blocked", "unassessed"]); statusItem.setRequired(true); const summaryItem = form.addParagraphTextItem(); summaryItem.setTitle("Executive Summary / Current Thesis"); summaryItem.setHelpText("Brief 1-2 sentence overview of the product status and validation progress."); summaryItem.setRequired(false); // -------------------------------------------------------------------------- // STAGE: Idea (idea) // -------------------------------------------------------------------------- const page_idea = form.addPageBreakItem(); page_idea.setTitle("Stage: Idea"); page_idea.setHelpText( "Define the pain, buyer, and market clearly before trying to build." + "\n\n" + "Exit Criteria: " + "You can state the customer, the painful job-to-be-done, why the market matters, and what team gap exists." + "\n" + "References: " + "Big Idea Canvas, Idea Analysis Worksheet, Startup Ignition Model" ); const check_idea_customer_pain_defined = form.addCheckboxItem(); check_idea_customer_pain_defined.setTitle("Primary customer, job-to-be-done, and pain are explicit"); check_idea_customer_pain_defined.setHelpText("ID: idea.customer_pain_defined\\nGuidance: Name one buyer segment, what they are trying to accomplish, and what hurts in the status quo.\\nEvidence Hint: A one-sentence problem statement and customer definition exist."); check_idea_customer_pain_defined.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_idea_market_attractive = form.addCheckboxItem(); check_idea_market_attractive.setTitle("The target market is specific and large enough to matter"); check_idea_market_attractive.setHelpText("ID: idea.market_attractive\\nGuidance: Avoid vague universal markets. Define a reachable wedge and explain why it can expand.\\nEvidence Hint: Initial market sizing notes and wedge-market definition exist."); check_idea_market_attractive.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_idea_competitive_opening_clear = form.addCheckboxItem(); check_idea_competitive_opening_clear.setTitle("Why now and the competitive opening are clear"); check_idea_competitive_opening_clear.setHelpText("ID: idea.competitive_opening_clear\\nGuidance: State what has changed, what incumbents miss, or why this wedge is newly possible.\\nEvidence Hint: A concise why-now and alternative-solution note exists."); check_idea_competitive_opening_clear.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_idea_team_gap_named = form.addCheckboxItem(); check_idea_team_gap_named.setTitle("The core founder or team gap is named"); check_idea_team_gap_named.setHelpText("ID: idea.team_gap_named\\nGuidance: Startup Ignition expects founder gaps to be visible early, especially business vs technical capacity.\\nEvidence Hint: Team coverage or the key missing role is documented."); check_idea_team_gap_named.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const notes_idea = form.addParagraphTextItem(); notes_idea.setTitle("Stage Evidence & Audit Notes: Idea"); notes_idea.setHelpText("Document links, customer quotes, canvas links, or specific metrics proving this stage."); // -------------------------------------------------------------------------- // STAGE: Wow Factor (wow_factor) // -------------------------------------------------------------------------- const page_wow_factor = form.addPageBreakItem(); page_wow_factor.setTitle("Stage: Wow Factor"); page_wow_factor.setHelpText( "Run discovery work to see whether the problem and concept actually resonate with target customers." + "\n\n" + "Exit Criteria: " + "You have repeated customer resonance, documented signal, and a clear kill, pivot, or proceed decision." + "\n" + "References: " + "Focus Group Instructions, Six Hats materials, Interviewing - My Notes on Conducting Interviews, Customer Validation Script" ); const check_wow_interviews_completed = form.addCheckboxItem(); check_wow_interviews_completed.setTitle("Customer discovery interviews or equivalent sessions were completed"); check_wow_interviews_completed.setHelpText("ID: wow.interviews_completed\\nGuidance: Do not pitch early. Anchor on current behavior, pain, and facts from the customer's life.\\nEvidence Hint: Interview notes, transcripts, or a focus-group summary exist."); check_wow_interviews_completed.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_wow_problem_resonance_documented = form.addCheckboxItem(); check_wow_problem_resonance_documented.setTitle("Repeated problem resonance is documented"); check_wow_problem_resonance_documented.setHelpText("ID: wow.problem_resonance_documented\\nGuidance: Look for predictable repetition, emotional language, and evidence that the pain is not merely nice-to-have.\\nEvidence Hint: A resonance summary or scorecard exists."); check_wow_problem_resonance_documented.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_wow_solution_reaction_tested = form.addCheckboxItem(); check_wow_solution_reaction_tested.setTitle("The concept or solution direction was tested after problem discovery"); check_wow_solution_reaction_tested.setHelpText("ID: wow.solution_reaction_tested\\nGuidance: Startup Ignition separates problem interviews from solution interviews. Test the concept only after understanding the problem.\\nEvidence Hint: A concept feedback summary exists."); check_wow_solution_reaction_tested.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_wow_kill_pivot_proceed_decision = form.addCheckboxItem(); check_wow_kill_pivot_proceed_decision.setTitle("A kill, pivot, or proceed decision was made"); check_wow_kill_pivot_proceed_decision.setHelpText("ID: wow.kill_pivot_proceed_decision\\nGuidance: The point of the Wow Factor phase is decision quality, not optimism.\\nEvidence Hint: A dated decision note exists."); check_wow_kill_pivot_proceed_decision.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const notes_wow_factor = form.addParagraphTextItem(); notes_wow_factor.setTitle("Stage Evidence & Audit Notes: Wow Factor"); notes_wow_factor.setHelpText("Document links, customer quotes, canvas links, or specific metrics proving this stage."); // -------------------------------------------------------------------------- // STAGE: Model Validation (model_validation) // -------------------------------------------------------------------------- const page_model_validation = form.addPageBreakItem(); page_model_validation.setTitle("Stage: Model Validation"); page_model_validation.setHelpText( "Validate the business model before building the product at full speed." + "\n\n" + "Exit Criteria: " + "The riskiest model assumptions have been tested, willingness-to-pay signal exists, and the validation roadmap is current." + "\n" + "References: " + "Validation Roadmap, Business Model Canvas, Customer Validation Script, John Richards mentee advice" ); const check_model_canvas_completed = form.addCheckboxItem(); check_model_canvas_completed.setTitle("Business model canvas or lean canvas is complete"); check_model_canvas_completed.setHelpText("ID: model.canvas_completed\\nGuidance: The model must be explicit enough that assumptions can be tested rather than guessed.\\nEvidence Hint: A current model canvas exists."); check_model_canvas_completed.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_model_riskiest_assumptions_ranked = form.addCheckboxItem(); check_model_riskiest_assumptions_ranked.setTitle("The top assumptions that could break the business are ranked"); check_model_riskiest_assumptions_ranked.setHelpText("ID: model.riskiest_assumptions_ranked\\nGuidance: Do not spread effort evenly. Rank the assumptions whose failure would destroy the venture.\\nEvidence Hint: A prioritized assumptions list exists."); check_model_riskiest_assumptions_ranked.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_model_wtp_signal_captured = form.addCheckboxItem(); check_model_wtp_signal_captured.setTitle("Willingness-to-pay or willingness-to-commit signal was captured"); check_model_wtp_signal_captured.setHelpText("ID: model.wtp_signal_captured\\nGuidance: Look for meaningful commitment: cash, signed pilot, LOI, time, or reputation.\\nEvidence Hint: At least one concrete buying or commitment signal exists."); check_model_wtp_signal_captured.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_model_validation_roadmap_current = form.addCheckboxItem(); check_model_validation_roadmap_current.setTitle("Validation roadmap is current and grounded in experiments"); check_model_validation_roadmap_current.setHelpText("ID: model.validation_roadmap_current\\nGuidance: The roadmap should be a live operating document that shows what is proven, unproven, and next.\\nEvidence Hint: A current roadmap or experiment ledger exists."); check_model_validation_roadmap_current.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const notes_model_validation = form.addParagraphTextItem(); notes_model_validation.setTitle("Stage Evidence & Audit Notes: Model Validation"); notes_model_validation.setHelpText("Document links, customer quotes, canvas links, or specific metrics proving this stage."); // -------------------------------------------------------------------------- // STAGE: Micro-Start Company (micro_start) // -------------------------------------------------------------------------- const page_micro_start = form.addPageBreakItem(); page_micro_start.setTitle("Stage: Micro-Start Company"); page_micro_start.setHelpText( "Prepare the minimum company structure required to build responsibly once the model is validated." + "\n\n" + "Exit Criteria: " + "Founder roles, equity, vesting, entity setup, and the first offer scope are defined well enough to move into MVP work." + "\n" + "References: " + "Guide to Founding a Scalable Venture, Slicing Pie Handbook, Cap Table samples, Advisor agreements" ); const check_micro_founder_roles_defined = form.addCheckboxItem(); check_micro_founder_roles_defined.setTitle("Founder roles and missing coverage are defined"); check_micro_founder_roles_defined.setHelpText("ID: micro.founder_roles_defined\\nGuidance: Be explicit about hacker, hustler, hipster, operator, and domain-expert coverage.\\nEvidence Hint: A founder role map or owner table exists."); check_micro_founder_roles_defined.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_micro_equity_and_vesting_defined = form.addCheckboxItem(); check_micro_equity_and_vesting_defined.setTitle("Equity split and vesting logic are defined"); check_micro_equity_and_vesting_defined.setHelpText("ID: micro.equity_and_vesting_defined\\nGuidance: Startup Ignition strongly favors vesting and warns against loose founder equity arrangements.\\nEvidence Hint: An equity and vesting note exists."); check_micro_equity_and_vesting_defined.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_micro_entity_and_cap_table_ready = form.addCheckboxItem(); check_micro_entity_and_cap_table_ready.setTitle("Entity plan and cap table are ready"); check_micro_entity_and_cap_table_ready.setHelpText("ID: micro.entity_and_cap_table_ready\\nGuidance: Do the legal setup only when the project has earned it, but do not enter build mode without clarity.\\nEvidence Hint: A cap table draft or legal setup checklist exists."); check_micro_entity_and_cap_table_ready.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_micro_mvp_offer_scoped = form.addCheckboxItem(); check_micro_mvp_offer_scoped.setTitle("The minimum offer to first customers is scoped"); check_micro_mvp_offer_scoped.setHelpText("ID: micro.mvp_offer_scoped\\nGuidance: Define the smallest thing that solves the painful job and can be sold or piloted.\\nEvidence Hint: A concise MVP offer note exists."); check_micro_mvp_offer_scoped.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const notes_micro_start = form.addParagraphTextItem(); notes_micro_start.setTitle("Stage Evidence & Audit Notes: Micro-Start Company"); notes_micro_start.setHelpText("Document links, customer quotes, canvas links, or specific metrics proving this stage."); // -------------------------------------------------------------------------- // STAGE: Build MVP (build_mvp) // -------------------------------------------------------------------------- const page_build_mvp = form.addPageBreakItem(); page_build_mvp.setTitle("Stage: Build MVP"); page_build_mvp.setHelpText( "Build only the product needed to support the validated offer and the first customers." + "\n\n" + "Exit Criteria: " + "The first customer flow works, the MVP scope is disciplined, and usage instrumentation exists." + "\n" + "References: " + "Startup Ignition Model, Validation Roadmap, Investor marketing materials infographic" ); const check_build_mvp_scope_frozen = form.addCheckboxItem(); check_build_mvp_scope_frozen.setTitle("MVP scope is explicit and kept narrow"); check_build_mvp_scope_frozen.setHelpText("ID: build.mvp_scope_frozen\\nGuidance: Do not turn MVP into premature scaling. Build the minimum system that proves the next unknown.\\nEvidence Hint: An MVP scope note or build checklist exists."); check_build_mvp_scope_frozen.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_build_first_customer_flow_live = form.addCheckboxItem(); check_build_first_customer_flow_live.setTitle("The first customer flow works end-to-end"); check_build_first_customer_flow_live.setHelpText("ID: build.first_customer_flow_live\\nGuidance: A demo is not enough. The product must support the first core journey from start to finish.\\nEvidence Hint: A live flow, demo, or walkthrough exists."); check_build_first_customer_flow_live.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_build_instrumentation_for_activation_and_retention = form.addCheckboxItem(); check_build_instrumentation_for_activation_and_retention.setTitle("Activation and retention instrumentation exists"); check_build_instrumentation_for_activation_and_retention.setHelpText("ID: build.instrumentation_for_activation_and_retention\\nGuidance: Traction requires visibility into activation, usage, and retention, not just sign-ups.\\nEvidence Hint: A metrics log, dashboard, or event table exists."); check_build_instrumentation_for_activation_and_retention.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_build_design_partners_onboarded = form.addCheckboxItem(); check_build_design_partners_onboarded.setTitle("Initial design partners or first committed users are onboarded"); check_build_design_partners_onboarded.setHelpText("ID: build.design_partners_onboarded\\nGuidance: Building without live customer contact recreates the risk you just worked to reduce.\\nEvidence Hint: Named partners or customers are listed."); check_build_design_partners_onboarded.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const notes_build_mvp = form.addParagraphTextItem(); notes_build_mvp.setTitle("Stage Evidence & Audit Notes: Build MVP"); notes_build_mvp.setHelpText("Document links, customer quotes, canvas links, or specific metrics proving this stage."); // -------------------------------------------------------------------------- // STAGE: Traction (traction) // -------------------------------------------------------------------------- const page_traction = form.addPageBreakItem(); page_traction.setTitle("Stage: Traction"); page_traction.setHelpText( "Prove that real customers use, pay for, and come back to the product." + "\n\n" + "Exit Criteria: " + "You have real customers, retention signal, an acquisition signal, and baseline unit economics." + "\n" + "References: " + "Ladder of Proof, John Richards mentee advice, Financial model templates" ); const check_traction_five_real_customers = form.addCheckboxItem(); check_traction_five_real_customers.setTitle("At least five real customers or equivalent committed accounts exist"); check_traction_five_real_customers.setHelpText("ID: traction.five_real_customers\\nGuidance: Startup Ignition uses the first five customers as a meaningful threshold after model validation.\\nEvidence Hint: A named early customer list exists."); check_traction_five_real_customers.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_traction_retention_signal = form.addCheckboxItem(); check_traction_retention_signal.setTitle("Retention or repeat usage signal exists"); check_traction_retention_signal.setHelpText("ID: traction.retention_signal\\nGuidance: Without retention, paid acquisition only scales a leak.\\nEvidence Hint: Retention, repeat usage, or renewal evidence exists."); check_traction_retention_signal.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_traction_channel_signal = form.addCheckboxItem(); check_traction_channel_signal.setTitle("A repeatable acquisition or channel signal is emerging"); check_traction_channel_signal.setHelpText("ID: traction.channel_signal\\nGuidance: The point is not channel perfection yet, only evidence that acquisition is not random luck.\\nEvidence Hint: A simple acquisition ledger or channel breakdown exists."); check_traction_channel_signal.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_traction_unit_economics_baseline = form.addCheckboxItem(); check_traction_unit_economics_baseline.setTitle("Baseline unit economics are understood"); check_traction_unit_economics_baseline.setHelpText("ID: traction.unit_economics_baseline\\nGuidance: Before scale, know rough CAC, payback logic, margins, and value per customer.\\nEvidence Hint: A baseline unit economics note or model exists."); check_traction_unit_economics_baseline.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const notes_traction = form.addParagraphTextItem(); notes_traction.setTitle("Stage Evidence & Audit Notes: Traction"); notes_traction.setHelpText("Document links, customer quotes, canvas links, or specific metrics proving this stage."); // -------------------------------------------------------------------------- // STAGE: Scale Product (scale_product) // -------------------------------------------------------------------------- const page_scale_product = form.addPageBreakItem(); page_scale_product.setTitle("Stage: Scale Product"); page_scale_product.setHelpText( "Turn founder-led delivery into repeatable operations, go-to-market, and finance discipline." + "\n\n" + "Exit Criteria: " + "The company can handle more demand without everything depending on the founders." + "\n" + "References: " + "Financial model templates, Executive summary templates, VC due diligence request list" ); const check_scale_product_ops_beyond_founders = form.addCheckboxItem(); check_scale_product_ops_beyond_founders.setTitle("Core delivery and customer operations extend beyond the founders"); check_scale_product_ops_beyond_founders.setHelpText("ID: scale_product.ops_beyond_founders\\nGuidance: Startup Ignition treats this as infrastructure before raising substantial capital for scaling.\\nEvidence Hint: An operations owner map or process note exists."); check_scale_product_ops_beyond_founders.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_scale_product_repeatable_go_to_market = form.addCheckboxItem(); check_scale_product_repeatable_go_to_market.setTitle("Go-to-market motion is repeatable"); check_scale_product_repeatable_go_to_market.setHelpText("ID: scale_product.repeatable_go_to_market\\nGuidance: You want the growth curve to improve before you pour in fuel.\\nEvidence Hint: A repeatable GTM note and recent results exist."); check_scale_product_repeatable_go_to_market.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_scale_product_financial_model_current = form.addCheckboxItem(); check_scale_product_financial_model_current.setTitle("Financial model is current"); check_scale_product_financial_model_current.setHelpText("ID: scale_product.financial_model_current\\nGuidance: A scale decision without a model creates blind burn.\\nEvidence Hint: A current financial model exists."); check_scale_product_financial_model_current.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_scale_product_diligence_room_started = form.addCheckboxItem(); check_scale_product_diligence_room_started.setTitle("Diligence room and investor evidence are being assembled"); check_scale_product_diligence_room_started.setHelpText("ID: scale_product.diligence_room_started\\nGuidance: Do not wait until a fundraise starts to gather core diligence artifacts.\\nEvidence Hint: A diligence checklist or folder exists."); check_scale_product_diligence_room_started.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const notes_scale_product = form.addParagraphTextItem(); notes_scale_product.setTitle("Stage Evidence & Audit Notes: Scale Product"); notes_scale_product.setHelpText("Document links, customer quotes, canvas links, or specific metrics proving this stage."); // -------------------------------------------------------------------------- // STAGE: Scale Company (scale_company) // -------------------------------------------------------------------------- const page_scale_company = form.addPageBreakItem(); page_scale_company.setTitle("Stage: Scale Company"); page_scale_company.setHelpText( "Raise and deploy capital only after the company has earned the right to scale." + "\n\n" + "Exit Criteria: " + "The venture has proof, materials, operating ownership, and growth plans strong enough for scaled execution." + "\n" + "References: " + "Ladder of Proof, Executive Summary templates, VC due diligence request list, Private capital market reports" ); const check_scale_company_ladder_of_proof = form.addCheckboxItem(); check_scale_company_ladder_of_proof.setTitle("The venture has climbed the Ladder of Proof"); check_scale_company_ladder_of_proof.setHelpText("ID: scale_company.ladder_of_proof\\nGuidance: Paying customers, unit economics, scalable acquisition, defensibility, and rapid growth proof matter more than story alone.\\nEvidence Hint: A current proof summary exists."); check_scale_company_ladder_of_proof.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_scale_company_fundraising_materials_ready = form.addCheckboxItem(); check_scale_company_fundraising_materials_ready.setTitle("Fundraising materials are ready"); check_scale_company_fundraising_materials_ready.setHelpText("ID: scale_company.fundraising_materials_ready\\nGuidance: The executive summary, deck, and narrative should reflect real proof, not hypothetical scale.\\nEvidence Hint: Deck, executive summary, and diligence summary exist."); check_scale_company_fundraising_materials_ready.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_scale_company_hiring_plan_ready = form.addCheckboxItem(); check_scale_company_hiring_plan_ready.setTitle("Hiring plan for scaled execution is ready"); check_scale_company_hiring_plan_ready.setHelpText("ID: scale_company.hiring_plan_ready\\nGuidance: Scaling the company usually requires management and functional owners beyond the original founders.\\nEvidence Hint: A hiring or org growth note exists."); check_scale_company_hiring_plan_ready.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const check_scale_company_growth_execution_owner = form.addCheckboxItem(); check_scale_company_growth_execution_owner.setTitle("Growth execution has clear ownership"); check_scale_company_growth_execution_owner.setHelpText("ID: scale_company.growth_execution_owner\\nGuidance: At scale, there must be explicit accountability for growth, delivery, and capital deployment.\\nEvidence Hint: A growth owner and metric are documented."); check_scale_company_growth_execution_owner.setChoiceValues(["Criteria Satisfied & Verified (Exit Criteria Met)"]); const notes_scale_company = form.addParagraphTextItem(); notes_scale_company.setTitle("Stage Evidence & Audit Notes: Scale Company"); notes_scale_company.setHelpText("Document links, customer quotes, canvas links, or specific metrics proving this stage."); // ========================================================================== // FINAL SECTION: NEXT ACTION & OPERATOR DECISION // ========================================================================== const finalPage = form.addPageBreakItem(); finalPage.setTitle("Assessment Verdict & Immediate Action"); finalPage.setHelpText("Determine next operational movement for this venture."); const nextActionItem = form.addParagraphTextItem(); nextActionItem.setTitle("Immediate Next Action"); nextActionItem.setHelpText("The single highest-leverage experiment or action required to advance."); nextActionItem.setRequired(true); const blockersItem = form.addParagraphTextItem(); blockersItem.setTitle("Primary Blockers or Lethal Assumptions"); blockersItem.setHelpText("What assumptions or risks could invalidate this product?"); // Connect to Google Sheet automatically const sheet = SpreadsheetApp.create("Startup Ignition Assessment Responses"); form.setDestination(FormApp.DestinationType.SPREADSHEET, sheet.getId()); Logger.log("=== Startup Ignition Assessment Form Created Successfully ==="); Logger.log("Form URL (Edit): " + form.getEditUrl()); Logger.log("Form URL (Live Share): " + form.getPublishedUrl()); Logger.log("Linked Response Spreadsheet URL: " + sheet.getUrl()); }