{"openapi":"3.1.0","info":{"title":"LaunchCheck Review APIs","version":"1.0.0","description":"Review and stress-test launch messaging, landing pages, product announcements, pricing pages, changelogs, app-store listings, and marketing emails before publication. LaunchCheck evaluates copy through eight audience lenses, surfaces positioning and conversion friction, flags claims needing evidence, predicts likely reader questions, recommends concrete changes, and returns a fact-preserving rewrite. Stress-test a product, feature, API, implementation, or business proposal before meaningful investment. ProposalCheck evaluates the core thesis, assumptions, differentiation, feasibility, economics, scope, dependencies, validation strategy, kill criteria, and recommended build sequence, then returns a structured green-light, revise, or rethink decision. Deep red-team a product or technical proposal before a consequential investment. Uses a larger reasoning budget to test counter-theses, hidden dependencies, supplied economics, and decisive unknowns. Typical completion time is ~2-3 minutes. Clients should allow up to 4 minutes before timing out.","x-guidance":"Choose the smallest review that matches the decision: use POST /v1/reaction-check for launch or marketing copy; use POST /v1/proposal-check for normal bounded product, feature, API, implementation, or business-proposal review; use POST /v1/proposal-check/deep for the Premium Sol/high red-team when a consequential engineering or capital decision justifies the extra depth. Standard and Deep accept the same proposal request and return the same report schema. Generate a unique `idempotency-key` for each distinct endpoint/request and reuse it only for an exact retry."},"servers":[{"url":"https://launchcheck-x402.fly.dev"}],"paths":{"/v1/reaction-check":{"post":{"operationId":"reactionCheck","servers":[{"url":"https://launchcheck-x402.fly.dev"}],"summary":"Stress-test launch and marketing copy before publication","description":"Review and stress-test launch messaging, landing pages, product announcements, pricing pages, changelogs, app-store listings, and marketing emails before publication. LaunchCheck evaluates copy through eight audience lenses, surfaces positioning and conversion friction, flags claims needing evidence, predicts likely reader questions, recommends concrete changes, and returns a fact-preserving rewrite.","tags":["launch","copy-review","landing-page","product-announcement","positioning","messaging","marketing-copy","audience-reaction","conversion","pre-launch","quality-assurance"],"parameters":[{"name":"idempotency-key","in":"header","required":true,"description":"Caller-generated idempotency key. Reuse only when retrying the exact same request body.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.50"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"content":{"type":"string","minLength":40,"maxLength":12000,"description":"Launch or marketing copy to review before publication, such as a landing page, product announcement, changelog, pricing page, app-store listing, or email."},"contentType":{"default":"other","description":"Kind of copy being reviewed; use other when none of the listed categories fit.","type":"string","enum":["landing-page","product-announcement","changelog","pricing-page","app-store-listing","email","other"]},"productContext":{"description":"Optional context about the product, feature, offer, or company needed to judge positioning, clarity, and factual fit.","type":"string","maxLength":2000},"targetAudience":{"description":"Optional intended audience or buyer segment whose likely reaction should inform the review.","type":"string","maxLength":1000},"desiredAction":{"description":"Optional action the copy should persuade the reader to take, such as sign up, start a trial, buy, upgrade, or learn more.","type":"string","maxLength":500},"constraints":{"default":[],"description":"Optional factual, legal, brand, or wording constraints that the review and rewrite must preserve.","maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}}},"required":["content","contentType","constraints"],"additionalProperties":false},"example":{"content":"Stress-test launch copy before you publish. LaunchCheck reviews messaging through eight audience lenses, flags positioning friction and unsupported claims, and returns concrete changes plus a fact-preserving rewrite.","contentType":"landing-page","productContext":"An x402-paid API for structured pre-launch copy review.","targetAudience":"Founders, product teams, and AI agents.","desiredAction":"Run a paid reaction check.","constraints":["Do not invent metrics"]}}}},"responses":{"200":{"description":"Successful reaction check","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":1,"description":"LaunchCheck request identifier for tracing the completed analysis."},"report":{"type":"object","properties":{"verdict":{"type":"string","enum":["ship","revise","rethink"],"description":"High-level recommendation for whether the submitted copy is ready to publish."},"score":{"type":"integer","minimum":0,"maximum":100,"description":"Overall launch-copy readiness score from 0 to 100."},"inputIntegrity":{"type":"object","properties":{"status":{"type":"string","enum":["clean","embedded-instructions-detected"],"description":"Whether the submitted copy contains embedded instructions that may be prompt injection."},"evidence":{"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"description":"Quoted or summarized evidence of embedded instructions when detected."}},"required":["status","evidence"],"additionalProperties":false,"description":"Prompt-injection and embedded-instruction assessment."},"executiveSummary":{"type":"string","minLength":1,"maxLength":1200,"description":"Concise summary of how the copy is likely to land and what most needs attention."},"topRisks":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"severity":{"type":"string","enum":["low","medium","high","critical"],"description":"Impact level of a messaging or credibility risk."},"title":{"type":"string","minLength":1,"maxLength":140,"description":"Short name of the messaging, positioning, trust, or conversion risk."},"evidence":{"type":"string","minLength":1,"maxLength":500,"description":"Specific evidence from the submitted copy that supports the risk."},"whyItMatters":{"type":"string","minLength":1,"maxLength":700,"description":"Why the identified risk could hurt reader understanding, trust, or action."},"fix":{"type":"string","minLength":1,"maxLength":700,"description":"Concrete change that would reduce or remove the identified risk."}},"required":["severity","title","evidence","whyItMatters","fix"],"additionalProperties":false},"description":"Highest-priority messaging, positioning, trust, evidence, or conversion risks."},"audienceReactions":{"minItems":8,"maxItems":8,"type":"array","items":{"type":"object","properties":{"lens":{"type":"string","enum":["Skeptical technical buyer","Busy nontechnical decision-maker","Price-sensitive solo user","Privacy and security-conscious evaluator","Existing customer scanning for regressions","First-time visitor with low context","Enthusiastic early adopter","Support-minded operator anticipating questions"],"description":"One of LaunchCheck's eight audience lenses used to evaluate how different readers may react."},"reaction":{"type":"string","enum":["positive","mixed","negative"],"description":"Overall reaction predicted for this audience lens."},"confidence":{"type":"number","minimum":0,"maximum":1,"description":"Confidence from 0 to 1 in the predicted audience reaction."},"likelyThought":{"type":"string","minLength":1,"maxLength":500,"description":"Likely internal reaction or question from this audience lens."},"friction":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}],"description":"Primary point of confusion, skepticism, or resistance for this audience lens, if any."}},"required":["lens","reaction","confidence","likelyThought","friction"],"additionalProperties":false},"description":"Predicted reactions from each of LaunchCheck's eight required audience lenses."},"likelyQuestions":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"description":"Questions readers or buyers are likely to ask after seeing the copy."},"claimsNeedingEvidence":{"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":400},"description":"Claims in the copy that should be supported with evidence before publication."},"strongestElements":{"maxItems":8,"type":"array","items":{"type":"string","minLength":1,"maxLength":400},"description":"Elements of the submitted messaging that are already clear, persuasive, or credible."},"requiredChanges":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":500},"description":"Changes LaunchCheck considers necessary before publication."},"optionalImprovements":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":500},"description":"Non-blocking improvements that could make the copy clearer or more persuasive."},"suggestedRewrite":{"type":"string","minLength":1,"maxLength":6000,"description":"Fact-preserving rewrite that applies the recommended messaging improvements."}},"required":["verdict","score","inputIntegrity","executiveSummary","topRisks","audienceReactions","likelyQuestions","claimsNeedingEvidence","strongestElements","requiredChanges","optionalImprovements","suggestedRewrite"],"additionalProperties":false,"description":"Structured pre-launch messaging review."},"meta":{"type":"object","properties":{"engine":{"type":"string","description":"Analysis engine family used for the request."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Model identifier when the engine reports one."},"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"ISO 8601 timestamp when the analysis was generated."},"cached":{"type":"boolean","description":"Whether the response was served from an existing cached result."}},"required":["engine","model","generatedAt","cached"],"additionalProperties":false}},"required":["requestId","report","meta"],"additionalProperties":false},"example":{"requestId":"2e847847-52da-46c6-b627-f95dbd66919f","report":{"verdict":"revise","score":74,"inputIntegrity":{"status":"clean","evidence":[]},"executiveSummary":"Clear value, but the differentiation needs stronger evidence.","topRisks":[{"severity":"medium","title":"Differentiation is vague","evidence":"The copy lists checks without explaining why they beat a generic critique.","whyItMatters":"Readers may not see why the specialized review is worth using.","fix":"State the specific pre-launch decision the review helps make."}],"audienceReactions":[{"lens":"Skeptical technical buyer","reaction":"mixed","confidence":0.82,"likelyThought":"Useful, but why not use a generic model?","friction":"Differentiation is unclear."},{"lens":"Busy nontechnical decision-maker","reaction":"mixed","confidence":0.82,"likelyThought":"Useful, but why not use a generic model?","friction":"Differentiation is unclear."},{"lens":"Price-sensitive solo user","reaction":"mixed","confidence":0.82,"likelyThought":"Useful, but why not use a generic model?","friction":"Differentiation is unclear."},{"lens":"Privacy and security-conscious evaluator","reaction":"mixed","confidence":0.82,"likelyThought":"Useful, but why not use a generic model?","friction":"Differentiation is unclear."},{"lens":"Existing customer scanning for regressions","reaction":"mixed","confidence":0.82,"likelyThought":"Useful, but why not use a generic model?","friction":"Differentiation is unclear."},{"lens":"First-time visitor with low context","reaction":"mixed","confidence":0.82,"likelyThought":"Useful, but why not use a generic model?","friction":"Differentiation is unclear."},{"lens":"Enthusiastic early adopter","reaction":"mixed","confidence":0.82,"likelyThought":"Useful, but why not use a generic model?","friction":"Differentiation is unclear."},{"lens":"Support-minded operator anticipating questions","reaction":"mixed","confidence":0.82,"likelyThought":"Useful, but why not use a generic model?","friction":"Differentiation is unclear."}],"likelyQuestions":["Why use this instead of a generic model?"],"claimsNeedingEvidence":[],"strongestElements":["The pre-launch use case is clear."],"requiredChanges":["Clarify the specialized value."],"optionalImprovements":[],"suggestedRewrite":"Stress-test launch copy before you publish with eight audience lenses, evidence checks, concrete fixes, and a fact-preserving rewrite."},"meta":{"engine":"openai-compatible","model":"example-model","generatedAt":"2026-07-26T12:00:00.000Z","cached":false}}}}},"400":{"description":"Invalid request or idempotency key"},"402":{"description":"Payment Required"},"409":{"description":"Idempotency key reused with a different request"},"413":{"description":"Request body exceeds the route limit"},"415":{"description":"Content-Type must be application/json"},"500":{"description":"Reaction check could not be completed"},"503":{"description":"Service busy; retry after the indicated delay"}}}},"/v1/proposal-check":{"post":{"operationId":"proposalCheck","servers":[{"url":"https://launchcheck-x402.fly.dev"}],"summary":"Stress-test a proposal before meaningful investment","description":"Stress-test a product, feature, API, implementation, or business proposal before meaningful investment. ProposalCheck evaluates the core thesis, assumptions, differentiation, feasibility, economics, scope, dependencies, validation strategy, kill criteria, and recommended build sequence, then returns a structured green-light, revise, or rethink decision.","tags":["proposal-review","product-validation","product-strategy","technical-review","mvp","feasibility","assumption-testing","api","decision-support"],"parameters":[{"name":"idempotency-key","in":"header","required":true,"description":"Caller-generated idempotency key. Reuse only when retrying the exact same request body on the same endpoint.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.00"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"proposal":{"type":"string","minLength":40,"maxLength":32000,"description":"Product, feature, API, implementation, or business proposal to stress-test before investing meaningful time or money."},"proposalType":{"default":"other","description":"Kind of proposal being reviewed.","type":"string","enum":["product","feature","api-service","implementation","business","other"]},"productContext":{"description":"Optional product, company, market, or technical context needed to interpret the proposal accurately.","type":"string","maxLength":2000},"targetAudience":{"description":"Optional intended users, buyers, developers, or stakeholders whose needs matter to the decision.","type":"string","maxLength":1000},"desiredDecision":{"description":"Optional decision the review should inform, such as whether to green-light an MVP, technical spike, feature, or launch investment.","type":"string","maxLength":500},"constraints":{"default":[],"description":"Optional factual, strategic, technical, legal, or scope constraints the review must preserve.","maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}}},"required":["proposal","proposalType","constraints"],"additionalProperties":false},"example":{"proposal":"Build a narrow paid API that evaluates product proposals before engineering begins. Start with one structured review endpoint, measure real inference cost and repeat buyer behavior, and stop investing if unrelated buyers do not return after the first validation window.","proposalType":"api-service","productContext":"An x402-paid sibling endpoint to an existing launch-copy review service.","targetAudience":"Founders, product teams, developers, and autonomous agents.","desiredDecision":"Decide whether to green-light the bounded MVP implementation.","constraints":["Do not invent traction or external market facts"]}}}},"responses":{"200":{"description":"Successful proposal check","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":1},"report":{"type":"object","properties":{"verdict":{"type":"string","enum":["green-light","revise","rethink"],"description":"Whether the next bounded investment is justified, needs proposal changes first, or should be reconsidered at a more fundamental level."},"score":{"type":"integer","minimum":0,"maximum":100},"inputIntegrity":{"type":"object","properties":{"status":{"type":"string","enum":["clean","embedded-instructions-detected"],"description":"Whether the submitted copy contains embedded instructions that may be prompt injection."},"evidence":{"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"description":"Quoted or summarized evidence of embedded instructions when detected."}},"required":["status","evidence"],"additionalProperties":false},"executiveSummary":{"type":"string","minLength":1,"maxLength":1500},"coreThesis":{"type":"string","minLength":1,"maxLength":900},"strengths":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"risks":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["positioning","differentiation","implementation","economics","scope","dependency","validation"]},"severity":{"type":"string","enum":["low","medium","high","critical"]},"title":{"type":"string","minLength":1,"maxLength":160},"evidence":{"type":"string","minLength":1,"maxLength":600,"description":"Specific proposal detail that supports the risk assessment."},"whyItMatters":{"type":"string","minLength":1,"maxLength":800},"mitigation":{"type":"string","minLength":1,"maxLength":800}},"required":["category","severity","title","evidence","whyItMatters","mitigation"],"additionalProperties":false}},"assumptions":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"assumption":{"type":"string","minLength":1,"maxLength":500},"confidence":{"type":"string","enum":["supported","plausible","weak","unknown"]},"impactIfWrong":{"type":"string","minLength":1,"maxLength":700},"cheapestValidation":{"type":"string","minLength":1,"maxLength":800,"description":"Cheapest practical experiment, observation, or measurement that would reduce uncertainty."}},"required":["assumption","confidence","impactIfWrong","cheapestValidation"],"additionalProperties":false}},"differentiationAssessment":{"type":"object","properties":{"rating":{"type":"string","enum":["strong","credible","weak","unclear"]},"summary":{"type":"string","minLength":1,"maxLength":900},"keyQuestion":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]}},"required":["rating","summary","keyQuestion"],"additionalProperties":false},"feasibilityAssessment":{"type":"object","properties":{"rating":{"type":"string","enum":["strong","credible","weak","unclear"]},"summary":{"type":"string","minLength":1,"maxLength":900},"keyQuestion":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]}},"required":["rating","summary","keyQuestion"],"additionalProperties":false},"economicsAssessment":{"type":"object","properties":{"rating":{"type":"string","enum":["strong","credible","weak","unclear","not-applicable"]},"summary":{"type":"string","minLength":1,"maxLength":900},"keyQuestion":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]}},"required":["rating","summary","keyQuestion"],"additionalProperties":false},"scopeCuts":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"requiredChanges":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"optionalImprovements":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"validationPlan":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"experiment":{"type":"string","minLength":1,"maxLength":700},"signal":{"type":"string","minLength":1,"maxLength":500},"passCondition":{"type":"string","minLength":1,"maxLength":500},"failCondition":{"type":"string","minLength":1,"maxLength":500}},"required":["experiment","signal","passCondition","failCondition"],"additionalProperties":false}},"killCriteria":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"recommendedBuildSequence":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"recommendation":{"type":"string","minLength":1,"maxLength":1500}},"required":["verdict","score","inputIntegrity","executiveSummary","coreThesis","strengths","risks","assumptions","differentiationAssessment","feasibilityAssessment","economicsAssessment","scopeCuts","requiredChanges","optionalImprovements","validationPlan","killCriteria","recommendedBuildSequence","recommendation"],"additionalProperties":false},"meta":{"type":"object","properties":{"engine":{"type":"string"},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"cached":{"type":"boolean"}},"required":["engine","model","generatedAt","cached"],"additionalProperties":false}},"required":["requestId","report","meta"],"additionalProperties":false},"example":{"requestId":"example","report":{"verdict":"revise","score":70,"inputIntegrity":{"status":"clean","evidence":[]},"executiveSummary":"The proposal needs a smaller validation step.","coreThesis":"Validate demand before expanding the build.","strengths":[],"risks":[],"assumptions":[],"differentiationAssessment":{"rating":"unclear","summary":"Differentiation still needs evidence.","keyQuestion":null},"feasibilityAssessment":{"rating":"credible","summary":"A bounded test is feasible.","keyQuestion":null},"economicsAssessment":{"rating":"unclear","summary":"Measure real cost and demand.","keyQuestion":null},"scopeCuts":[],"requiredChanges":["Define the cheapest demand test."],"optionalImprovements":[],"validationPlan":[],"killCriteria":[],"recommendedBuildSequence":[],"recommendation":"Revise around one measurable validation step."},"meta":{"engine":"openai-compatible","model":"openai/gpt-5.6-terra","generatedAt":"2026-08-13T12:00:00.000Z","cached":false}}}}},"400":{"description":"Invalid request or idempotency key"},"402":{"description":"Payment Required"},"409":{"description":"Idempotency or payment identifier reused for a different operation"},"413":{"description":"Request body exceeds the route limit"},"415":{"description":"Content-Type must be application/json"},"500":{"description":"Proposal check could not be completed"},"503":{"description":"Service busy or payment replay protection at capacity; retry after the indicated delay"}}}},"/v1/proposal-check/deep":{"post":{"operationId":"proposalCheckDeep","servers":[{"url":"https://launchcheck-x402.fly.dev"}],"summary":"Deep red-team a proposal before a consequential investment","description":"Deep red-team a product or technical proposal before a consequential investment. Uses a larger reasoning budget to test counter-theses, hidden dependencies, supplied economics, and decisive unknowns. Typical completion time is ~2-3 minutes. Clients should allow up to 4 minutes before timing out.","tags":["proposal-review","deep-analysis","red-team","technical-review","decision-support"],"parameters":[{"name":"idempotency-key","in":"header","required":true,"description":"Caller-generated idempotency key. Reuse only when retrying the exact same request body on the same endpoint.","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"2.00"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"proposal":{"type":"string","minLength":40,"maxLength":32000,"description":"Product, feature, API, implementation, or business proposal to stress-test before investing meaningful time or money."},"proposalType":{"default":"other","description":"Kind of proposal being reviewed.","type":"string","enum":["product","feature","api-service","implementation","business","other"]},"productContext":{"description":"Optional product, company, market, or technical context needed to interpret the proposal accurately.","type":"string","maxLength":2000},"targetAudience":{"description":"Optional intended users, buyers, developers, or stakeholders whose needs matter to the decision.","type":"string","maxLength":1000},"desiredDecision":{"description":"Optional decision the review should inform, such as whether to green-light an MVP, technical spike, feature, or launch investment.","type":"string","maxLength":500},"constraints":{"default":[],"description":"Optional factual, strategic, technical, legal, or scope constraints the review must preserve.","maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}}},"required":["proposal","proposalType","constraints"],"additionalProperties":false},"example":{"proposal":"Build a bounded paid API, validate the decisive dependency first, measure cost and repeat demand, and stop if the gate fails.","proposalType":"api-service","desiredDecision":"Decide whether the next bounded investment is justified.","constraints":[]}}}},"responses":{"200":{"description":"Successful deep proposal check","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"requestId":{"type":"string","minLength":1},"report":{"type":"object","properties":{"verdict":{"type":"string","enum":["green-light","revise","rethink"],"description":"Whether the next bounded investment is justified, needs proposal changes first, or should be reconsidered at a more fundamental level."},"score":{"type":"integer","minimum":0,"maximum":100},"inputIntegrity":{"type":"object","properties":{"status":{"type":"string","enum":["clean","embedded-instructions-detected"],"description":"Whether the submitted copy contains embedded instructions that may be prompt injection."},"evidence":{"maxItems":4,"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"description":"Quoted or summarized evidence of embedded instructions when detected."}},"required":["status","evidence"],"additionalProperties":false},"executiveSummary":{"type":"string","minLength":1,"maxLength":1500},"coreThesis":{"type":"string","minLength":1,"maxLength":900},"strengths":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}},"risks":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["positioning","differentiation","implementation","economics","scope","dependency","validation"]},"severity":{"type":"string","enum":["low","medium","high","critical"]},"title":{"type":"string","minLength":1,"maxLength":160},"evidence":{"type":"string","minLength":1,"maxLength":600,"description":"Specific proposal detail that supports the risk assessment."},"whyItMatters":{"type":"string","minLength":1,"maxLength":800},"mitigation":{"type":"string","minLength":1,"maxLength":800}},"required":["category","severity","title","evidence","whyItMatters","mitigation"],"additionalProperties":false}},"assumptions":{"maxItems":12,"type":"array","items":{"type":"object","properties":{"assumption":{"type":"string","minLength":1,"maxLength":500},"confidence":{"type":"string","enum":["supported","plausible","weak","unknown"]},"impactIfWrong":{"type":"string","minLength":1,"maxLength":700},"cheapestValidation":{"type":"string","minLength":1,"maxLength":800,"description":"Cheapest practical experiment, observation, or measurement that would reduce uncertainty."}},"required":["assumption","confidence","impactIfWrong","cheapestValidation"],"additionalProperties":false}},"differentiationAssessment":{"type":"object","properties":{"rating":{"type":"string","enum":["strong","credible","weak","unclear"]},"summary":{"type":"string","minLength":1,"maxLength":900},"keyQuestion":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]}},"required":["rating","summary","keyQuestion"],"additionalProperties":false},"feasibilityAssessment":{"type":"object","properties":{"rating":{"type":"string","enum":["strong","credible","weak","unclear"]},"summary":{"type":"string","minLength":1,"maxLength":900},"keyQuestion":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]}},"required":["rating","summary","keyQuestion"],"additionalProperties":false},"economicsAssessment":{"type":"object","properties":{"rating":{"type":"string","enum":["strong","credible","weak","unclear","not-applicable"]},"summary":{"type":"string","minLength":1,"maxLength":900},"keyQuestion":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]}},"required":["rating","summary","keyQuestion"],"additionalProperties":false},"scopeCuts":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"requiredChanges":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"optionalImprovements":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"validationPlan":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"experiment":{"type":"string","minLength":1,"maxLength":700},"signal":{"type":"string","minLength":1,"maxLength":500},"passCondition":{"type":"string","minLength":1,"maxLength":500},"failCondition":{"type":"string","minLength":1,"maxLength":500}},"required":["experiment","signal","passCondition","failCondition"],"additionalProperties":false}},"killCriteria":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"recommendedBuildSequence":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":600}},"recommendation":{"type":"string","minLength":1,"maxLength":1500}},"required":["verdict","score","inputIntegrity","executiveSummary","coreThesis","strengths","risks","assumptions","differentiationAssessment","feasibilityAssessment","economicsAssessment","scopeCuts","requiredChanges","optionalImprovements","validationPlan","killCriteria","recommendedBuildSequence","recommendation"],"additionalProperties":false},"meta":{"type":"object","properties":{"engine":{"type":"string"},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"generatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"cached":{"type":"boolean"}},"required":["engine","model","generatedAt","cached"],"additionalProperties":false}},"required":["requestId","report","meta"],"additionalProperties":false},"example":{"requestId":"deep-example","report":{"verdict":"revise","score":76,"inputIntegrity":{"status":"clean","evidence":[]},"executiveSummary":"Validate the decisive dependency before implementation.","coreThesis":"Earn the build with cheaper evidence first.","strengths":[],"risks":[],"assumptions":[],"differentiationAssessment":{"rating":"credible","summary":"The thesis may be differentiated if the dependency holds.","keyQuestion":null},"feasibilityAssessment":{"rating":"credible","summary":"A bounded validation step is feasible.","keyQuestion":null},"economicsAssessment":{"rating":"unclear","summary":"Measure actual cost before scaling.","keyQuestion":null},"scopeCuts":[],"requiredChanges":["Run the dependency gate."],"optionalImprovements":[],"validationPlan":[],"killCriteria":[],"recommendedBuildSequence":[],"recommendation":"Revise around one decisive validation gate."},"meta":{"engine":"openai-compatible","model":"openai/gpt-5.6-sol","generatedAt":"2026-08-17T16:00:00.000Z","cached":false}}}}},"400":{"description":"Invalid request or idempotency key"},"402":{"description":"Payment Required"},"409":{"description":"Idempotency or payment identifier reused for a different operation"},"413":{"description":"Request body exceeds the route limit"},"415":{"description":"Content-Type must be application/json"},"500":{"description":"Deep proposal check could not be completed"},"503":{"description":"Service busy or payment replay protection at capacity; retry after the indicated delay"}}}}}}