Alignment review · journey-map parent orchestrator · service-blueprint framework

FormForge Service Blueprint Findings Review

This page renders the Stage 2 service-blueprint working packet for review. Approval will let the parent `$journey-map` orchestrator write `research/journey-map-service-blueprint.md`; it will not finalize the unified journey map yet.

alignment_status: review Date: 2026-06-20 Required gate status: pending reviewer YAML Working packet: research/_working/preliminary-service-blueprint-research.md

Approval Context

Consumed YAML: The framework-selection gate was approved with no unanswered required questions. Selected frameworks are `service-blueprint` and `user-story-map`.

State transition: The parent wrote the run manifest and entered State C. This page is the findings review for the first pending framework, `service-blueprint`.

FrameworkIntermediate pathStatus
service-blueprintresearch/journey-map-service-blueprint.mdPending approval from this page
user-story-mapresearch/journey-map-user-story-map.mdPending future framework run

Scope And Inputs

This packet maps the FormForge client-intake service in flat `research/` mode for the approved ICP: client-service solo consultants, coaches, and small agencies doing client intake/onboarding.

Research Sources

  • research/icp.md
  • research/competitive-analysis.md
  • README.md and CLAUDE.md

Code Sources

  • src/server/ai/generate-form.ts
  • src/server/db/schema.ts
  • src/server/trpc/routers/form.ts
  • src/server/trpc/routers/response.ts
  • src/app/api/submit/[slug]/route.ts
  • src/app/f/[slug]/client.tsx
  • src/server/responses/csv-export.ts

Primary source gap: No `research/customer-feedback.md` exists. The blueprint can ground product mechanics in code and buyer needs in approved research, but it cannot claim live customer success.

Proposed Canonical Summary

FormForge's current service is strongest from "describe the needed intake form" through "publish a public link" and "receive structured submissions." The visible product loop already supports AI-generated fields, visual editing, conditional logic, immutable published snapshots, public submission, response review, basic response status, analytics, notification email, and CSV export.

The highest operational risk is after the respondent submits. ICP and competitive evidence both say the value of intake depends on reducing back-and-forth and moving answers into client work systems. The observed implementation currently provides response review, status labels, email notification, and CSV export, but no native Sheets/Notion/CRM/Zapier/Make/webhook/project-doc handoff. That makes post-submission routing the biggest service blueprint gap for the approved ICP.

Service Stages

Trigger AI Draft Edit Publish Submit Review Handoff highest gap
StageCustomer ActionEvidence/TouchpointBackstage ActionSupport Process
Trigger and evaluationConsultant, coach, or agency realizes they need a client intake form for a new client, service, cohort, or project.ICP trigger events; competitive gap framed as deeper than generic builders but lighter than suites.Make the first-use promise legible: describe, generate, edit, publish, submit, review/export.Positioning and onboarding content are not represented in code evidence; demand signal is research-backed, not customer-validated.
Sign-up and workspace entryUser creates or accesses an account and enters dashboard.Auth and dashboard routes exist.Protected procedures associate forms with authenticated user.User context, database ownership, plan-limit checks.
AI-assisted draft creationUser describes the intake form they need.README core loop; AI generation accepts natural-language prompt.OpenAI call parses JSON into form schema; generated form and fields are persisted as draft.OpenAI API, schema validation, database writes, slug generation, plan-limit enforcement.
Visual edit and form configurationUser adjusts fields, required flags, conditional logic, settings, theme, and publication readiness.Editor, field palette, conditional-logic builder, settings, and theme routes/components exist.Field records, settings, themes, and AI regeneration update draft form.Drizzle schema stores fields, validation, conditional logic, settings, theme, and status.
Publish and shareUser publishes and sends link to external client/respondent.Publish requires at least one field and creates a version snapshot; public route renders by slug.Immutable form version snapshots preserve what respondents saw.`formVersions` stores title, settings, theme, and fields snapshot.
Respondent completionExternal client completes the intake without being buyer.Public client renders form, theme, Turnstile, completion timing, success redirect.Submit API validates and stores response; sends notification when configured.Rate limiter, Turnstile, conditional logic, localized validation, database inserts, email service.
Response review and triageUser reviews answers, marks status, exports, and decides next step.Response list/detail/stats/analytics/status/delete/export exist.Dashboard queries aggregate response and field values.Database relations, analytics builder, CSV export with 10,000-row cap.
Handoff into service deliveryUser copies or exports answers into project docs, CRM, Notion, Sheets, kickoff notes, or client workspace.ICP rates copy/paste pain high; competitive analysis says handoff is battleground.Current product can export CSV and send email, but no native external work-system handoff is observed.CSV builder, notification email, and manual user process.
Retention and reuseUser duplicates, edits, regenerates, reuses, and monitors forms across clients/offers.Duplicate, regenerate, close, statuses, analytics, themes, response review exist.Forms can be cloned or regenerated; response history is tied to forms and versions.Ownership, versioning, analytics, plan limits, theme validation.
Billing and expansionUser may hit limits or choose paid features after repeated use.Stripe billing and plan fields exist; README says defer billing until core loop validation.Checkout/webhook updates customer/subscription metadata and plan state.Stripe integration, webhook handling, user plan records.
Support and failure recoveryUser or respondent encounters validation, bot, limit, version, or submission errors.Submit route returns localized error states; dashboard error route exists.Errors are localized; internal submission errors are logged.i18n utilities, validation, rate limit, Turnstile, server logging. No support workflow evidence.

Lines Of Interaction

Line Of Interaction

Buyer/user interacts with dashboard for prompt generation, editing, publishing, settings, response review, and export. Respondent/client interacts with the public form for link open, field completion, validation, bot challenge, and success message or redirect.

Line Of Visibility

Buyer can see status, fields, settings, theme, public slug, responses, status labels, analytics, CSV export, and configured notification path. Respondent sees form, fields, help text, validation, Turnstile, and success state.

Weak Visibility

The product does not clearly show whether submitted answers are kickoff-ready, whether all assets are complete, whether exported answers reached the actual work system, or whether follow-up has happened.

Internal And Implementation Lines

Backstage processes depend on AI generation, database ownership, plan-limit enforcement, field persistence, version snapshots, public submission validation, email dispatch, analytics, and CSV export. The main internal handoff is from published form snapshot to response records; the missing internal handoff is from response records into external client-work systems.

Implementation infrastructure includes Next.js App Router, tRPC, PostgreSQL through Drizzle ORM, OpenAI, authenticated user context, Cloudflare Turnstile, email notification, and Stripe billing records. Deferred or absent infrastructure includes durable provider integrations, webhooks/API handoff, CRM/project-management routing, and customer-feedback/support lifecycle.

Operational Gap Analysis

Gap TypeStageDescriptionSeverityEvidence
Evidence gapTrigger and evaluationThe repo has strong desk research and product code but no direct customer-feedback file, interviews, win/loss notes, analytics, or support tickets.HighMissing `research/customer-feedback.md`; ICP and competitive analysis both flag customer-validation gaps.
Fail pointAI-assisted draft creationAI-generated forms may omit service-specific intake details, ask weak questions, or produce conditional logic that needs human correction.Medium`generate-form.ts` uses schema validation and conditional-logic hints, but there is no customer-quality evidence for generated intake forms.
Fail pointPublish and sharePublishing checks non-empty fields and snapshots, but not whether the intake is complete enough for kickoff.MediumICP pain is missing details/assets, not only missing fields.
Wait pointRespondent completionTurnstile, required fields, file-upload expectations, conditional logic, or validation can slow completion.MediumPublic submit path validates Turnstile, visible fields, rules, limits, and close date; ICP says respondent friction matters.
BottleneckResponse review and triageThe owner-operator still has to inspect new submissions and decide whether they are ready for kickoff.HighResponse statuses exist, but no automated completeness scoring, missing-asset workflow, or follow-up loop is observed.
Handoff gapHandoff into service deliveryCSV export and notification email do not by themselves move answers into project docs, CRM, Notion, Sheets, kickoff notes, or task systems.HighICP rates manual copy/paste high; competitive analysis calls integrations and handoff a battleground; README defers integrations and webhooks.
Evidence gapHandoff into service deliveryThe service does not expose status that a submission has been transferred, assigned, reconciled, or used in kickoff.HighSchema tracks response status only as new/read/starred/archived; no downstream sync state is visible.
Fail pointNotification and supportNotification email is fire-and-forget and a missed notification may not be surfaced to the user.MediumSubmit route sends notification asynchronously and catches errors with `console.error`; no retry/support path observed.
BottleneckBilling and expansionPremature billing emphasis could distract from journey validation.Low-mediumREADME says defer Stripe billing until core loop validation.

Evidence Matrix

ClaimEvidence SourceEvidence TypeInferenceConfidenceDecision Impact
The active ICP needs client intake/onboarding, not generic form creation.`research/icp.md` primary ICP and trigger events.Approved researchBlueprint should center client-service intake stages.HighApprove scope unless ICP has changed.
Current product loop covers describe, generate, edit, publish, submit, review, and export.README; observed routes and routers.Observed plus stated product boundaryService can be mapped as a functioning product loop.HighApprove product-exists framing.
AI generation creates structured form definitions.`src/server/ai/generate-form.ts`.Observed codeAI draft is a real backstage service step.HighPreserve in canonical intermediate.
Published forms use immutable snapshots.Form router, schema, submit route.Observed codeResponse interpretation is protected after edits.HighInclude as operational strength.
Public submission has reliability controls.Submit route.Observed codeFailure controls exist, though they can add completion friction.HighFrame as both support process and possible wait point.
Response review exists but downstream workflow handoff is thin.Response router, README deferred integrations, absent native CRM/Sheets/Notion/Zapier/Make routing.Observed code plus product boundaryThe service may still leave the buyer with manual post-submission work.HighApprove as top operational gap if accurate.
Handoff is the most important service gap for the ICP.ICP pain map; competitive analysis handoff battleground.Approved research plus inferenceValue depends on intake data reaching client work systems.Medium-highShould shape later user-story-map and synthesis.
Customer success and generated-form quality remain unvalidated.Missing customer feedback and usage evidence.Source absenceBlueprint findings should keep confidence limits visible.HighDo not overclaim adoption or quality.
Required Gate: Evidence Coverage

Assumptions And Confidence

AssumptionStatusConfidenceWhat Would Change It
Product-exists mode is appropriate.Approved in YAML and supported by code evidence.HighUser changes mode or product boundary.
Highest-value journey is client intake for consultants, coaches, and small agencies.Approved ICP.HighNew ICP approval or customer evidence contradicting Candidate A.
Post-submission handoff is more operationally important than billing for the first validated loop.Inferred from ICP, competitive analysis, and README deferral note.Medium-highInterviews showing paid conversion fails before handoff matters, or usage showing exports are enough.
CSV/email notification is enough for initial validation but not durable differentiation.Inferred from current product boundary and competitor integration breadth.MediumBuyers validate CSV/email as sufficient for repeated paid use.
AI-generated first drafts reduce blank-page work but need human review.Supported by code and ICP pain, but not customer validated.MediumUsability tests show generated output is consistently ready-to-send, or often unusable.
Required Gate: Assumptions And Confidence

Source Coverage Gaps

Proposed File Changes After Approval

Required Gate: Proposed File Changes

Compile Responses

Answer the required gates above, optionally add section feedback, then compile YAML for the next fresh `$journey-map` session.