How Alex, the Overloaded PM, moves through the concept-sitemap screens to close the main job and its related jobs. Each flow traces to the CJM To-Be phases; the As-Is barriers appear as decision points and dead-ends, so the flows show where the person can still get stuck, not only the happy path. Every screen-node exists in the concept-sitemap.
Job: Main (with J2, J3, J1, S1) - Traces To-Be P1 to P6
The spine that proves the person reaches the outcome: from the session looming, through a ready synthesis, the confidence gate, the spot-check drill-down, the brief, and the live defend.
flowchart TD
Start(["Planning session looms"]) --> Open["Synthesis view (B1)"]
Open --> Ready{"Synthesis ready for this cycle?"}
Ready -->|no, first run or stale| Connect["Connect / import source (A2)"]
Connect --> Ingest["Loading: ingest and cluster"]
Ingest --> Open
Ready -->|yes| Themes["Ranked themes with confidence (B1)"]
Themes --> Strong{"Theme strong enough to trust?"}
Strong -->|low signal| Thin["Low-signal badge: thin evidence"]
Thin --> Drill["Theme detail: evidence items n=X (B2)"]
Strong -->|looks strong| Drill
Drill --> Raw["Evidence source: raw verbatim (C1)"]
Raw --> Trust{"Evidence backs the theme?"}
Trust -->|one theme off| Discard["Discard the theme, pick another"]
Discard --> Themes
Trust -->|trail systematically broken| Dead["Dead end: synthesis not trustworthy, fall back to manual"]
Trust -->|yes, verified| Prioritize["Set priority on trusted themes (B1 / D1)"]
Prioritize --> Brief["Build evidence brief (D1)"]
Brief --> Share["Loading: generate public link"]
Share --> Shared["Shared brief link (D2)"]
Shared --> Session["Planning session: present the call"]
Session --> Challenge{"Stakeholder pushes back?"}
Challenge -->|no| Win(["Job closed: defensible call stands"])
Challenge -->|yes| Defend["Pull theme live: n=X + verbatim quotes (C1 / D2)"]
Defend --> Grounded(["Job closed: anecdote meets evidence"])
classDef success fill:#12351f,stroke:#3ecf8e,color:#eafff9;
classDef dead fill:#3a1618,stroke:#f06060,color:#ffd7d7;
classDef neutral fill:#17171c,stroke:#3a3a45,color:#c9c9d2;
class Start,Win,Grounded success;
class Dead dead;
class Open,Ready,Connect,Ingest,Themes,Strong,Thin,Drill,Raw,Trust,Discard,Prioritize,Brief,Share,Shared,Session,Challenge,Defend neutral;
linkStyle 0,1,5,6,9,10,11,15,16,17,18,19,20,21,22,23 stroke:#3ecf8e,stroke-width:2px;
Job: J2 - Traces To-Be P1 to P2 - Closes As-Is P2 (siloed channels, GZ4)
The activation path: a first synthesis on the PM own data, from an empty workspace.
flowchart TD
Start(["First run: no signal yet"]) --> Sources["Sources: none connected (A1)"]
Sources --> Pick{"CSV or Intercom?"}
Pick -->|CSV| Upload["Connect: upload CSV (A2)"]
Upload --> Map{"Columns map cleanly?"}
Map -->|no| MapErr["Error: unmapped columns, fix mapping"]
MapErr --> Upload
Map -->|yes| Ingesting["Loading: normalize, PII scrub, cluster"]
Pick -->|Intercom| OAuth["Connect: authorize Intercom (A2)"]
OAuth --> Auth{"Authorized?"}
Auth -->|no| AuthErr["Error: auth failed, retry"]
AuthErr --> OAuth
Auth -->|yes| Ingesting
Ingesting --> Enough{"Any usable signal found?"}
Enough -->|no, empty| Empty["Empty: nothing usable, loosen filters or add a source"]
Empty --> Sources
Empty -->|no other source exists| NoData["Dead end: no usable feedback available yet"]
Enough -->|yes| Synth(["Job closed: signal in one place, synthesis ready (B1)"])
classDef success fill:#12351f,stroke:#3ecf8e,color:#eafff9;
classDef dead fill:#3a1618,stroke:#f06060,color:#ffd7d7;
classDef neutral fill:#17171c,stroke:#3a3a45,color:#c9c9d2;
class Start,Synth success;
class NoData dead;
class Sources,Pick,Upload,Map,MapErr,Ingesting,OAuth,Auth,AuthErr,Enough,Empty neutral;
linkStyle 0,1,2,3,6,12,16 stroke:#3ecf8e,stroke-width:2px;
Job: J3 - Traces To-Be P3 to P4 - Closes As-Is P4 (distrust, GZ2, differentiator)
How a skeptical PM calibrates trust: the confidence signal, then a spot-check that drills to the raw voice.
flowchart TD
Start(["A theme catches attention"]) --> Theme["Theme detail: summary + confidence n=X (B2)"]
Theme --> Conf{"Confidence: strong or low-signal?"}
Conf -->|low-signal badge| Low["Low signal: treat as weak, do not over-rely"]
Low --> Decide["Act on trusted themes, skip weak ones"]
Conf -->|strong n=X| Items["Evidence items list n=X (B2)"]
Items --> Avail{"Raw source still available?"}
Avail -->|no| SrcErr["Error: source unavailable, citation cannot resolve, theme flagged"]
SrcErr --> Decide
Avail -->|yes| RawItem["Evidence source: raw verbatim in context (C1)"]
RawItem --> Match{"Do the quotes match the theme label?"}
Match -->|one theme off| DiscardT["Discard this theme, check another"]
DiscardT --> Theme
Match -->|trail systematically broken| Broken["Dead end: evidence trail broken, trust lost"]
Match -->|yes| Verified["Spot-check passes: the theme is real"]
Verified --> Decide
Decide --> Trusted(["Job closed: calibrated trust, acted without re-reading all raw data"])
classDef success fill:#12351f,stroke:#3ecf8e,color:#eafff9;
classDef dead fill:#3a1618,stroke:#f06060,color:#ffd7d7;
classDef neutral fill:#17171c,stroke:#3a3a45,color:#c9c9d2;
class Start,Trusted success;
class Broken dead;
class Theme,Conf,Low,Items,Avail,SrcErr,RawItem,Match,DiscardT,Verified,Decide neutral;
linkStyle 0,1,4,5,8,9,13,14,15 stroke:#3ecf8e,stroke-width:2px;
Job: J1, E2, S1 - Traces To-Be P6 - Closes As-Is P6 (the floor at -5, GZ1, deepest win)
The deepest inversion: the As-Is floor, where evidence loses to the HiPPO, becomes the moment the PM is most in control.
flowchart TD
Start(["In the room: the call is challenged"]) --> Anecdote["Anecdote lands: my customer said X"]
Anecdote --> HasBrief{"Brief open or Sift at hand?"}
HasBrief -->|no, offline or scrambling| Scramble["Dead end: cannot cite, back down or scramble to Intercom"]
HasBrief -->|yes| Pull["Pull the theme live (C1 / D2)"]
Pull --> Show["Show n=X items and verbatim quotes on the spot"]
Show --> Convinced{"Anecdote versus traceable evidence?"}
Convinced -->|evidence holds| Grounded(["Job closed: grounded and certain, the call stands"])
Convinced -->|genuine new signal| Capture["Note it as new signal for the next import"]
Capture --> Reframe(["Job closed: the disagreement is now about evidence, not ego"])
classDef success fill:#12351f,stroke:#3ecf8e,color:#eafff9;
classDef dead fill:#3a1618,stroke:#f06060,color:#ffd7d7;
classDef neutral fill:#17171c,stroke:#3a3a45,color:#c9c9d2;
class Start,Grounded,Reframe success;
class Scramble dead;
class Anecdote,HasBrief,Pull,Show,Convinced,Capture neutral;
linkStyle 0,1,3,4,5,6 stroke:#3ecf8e,stroke-width:2px;