Skip to content

Skills · experience-design

service-blueprint

Build a service blueprint — per step, the evidence the customer sees, the customer's actions, frontstage staff and system actions, backstage actions, and support processes, separated by the lines of interaction, visibility and internal interaction, with fail points, wait times and owners marked — as a table plus a Mermaid diagram and the ranked fixes. Use when the user wants a service blueprint, "what happens behind the scenes when a customer does X", to find where a service breaks or stalls, or to take a journey map down to the people, systems and handoffs that deliver it.

Pack experience-designTier standardJob Design the experiencev0.1.0

npx skilldrop-cli install service-blueprint
Other ways to install

With the sibling skills it hands off to:

npx skilldrop-cli install service-blueprint --with-related

The whole pack it belongs to:

npx skilldrop-cli install --pack experience-design

By hand, from a clone of the repo:

cp -R packs/experience-design/skills/service-blueprint ~/.claude/skills/

In Claude Code, with the experience-design plugin installed, invoke it as:

/experience-design:service-blueprint

Try it

A realistic prompt from the skill's acceptance evals:

Blueprint Acme Broadband's home installation service for a new customer, from placing the order online to having working internet. What we know: orders go into our order system, a scheduling team books an engineer from our contractor Northwind Field Services, the router is shipped by a courier, and activation is done by the network ops team once the engineer marks the job done. Customers complain that the router arrives after the engineer visit, and that they don't know when the line will go live. Our install SLA is 10 working days.

What a good result looks like

Example output

a home-insurance claim, from burst pipe to payment · the skill's own worked example, source

Input

We did a journey map for Northwind Insurance's home claims. The two worst moments were "uploads photos, then gets asked for the same photos again by phone" and "waits with no update after the assessor visit". Can you blueprint what happens behind that? What we know: customers report on the app or by phone to the contact centre. Claims go into ClaimDesk (our claims system). A desk assessor reviews the claim and decides whether to send a field assessor; field assessors are a third-party firm, Acme Loss Adjusting, who email their report back. Photos uploaded in the app land in a shared inbox, not in ClaimDesk. Payment goes through the finance team in a weekly batch. Our SLA is to contact the customer within 2 working days of the claim.

Output

Service blueprint: home-insurance customer claims for a burst pipe, from reporting it to being paid

Evidence level: [documented], from the team's description and the journey map. Durations without an SLA are [estimate]. Built on: Northwind home claims journey map (the two pains above). Variants not shown: claim declined; emergency repair needed first; customer reports by phone (it differs at steps 1–2 only). Assumptions to confirm first: desk assessors work only in ClaimDesk and don't watch the shared inbox; Acme's report arrives as a PDF attached to an email.

Blueprint

Lane1. Reports the claim2. Uploads photos3. Gets a call from the desk assessor4. Hosts the field assessor5. Waits for a decision6. Gets paid
EvidenceApp claim form, confirmation email with claim number"Photos received" screenPhone callAssessor visit, business cardNothingSettlement email, bank credit
Customer actionsFills in the claim form in the appUploads 6–10 photosAnswers questions, is asked for photos againShows the damageChases by phoneChecks the amount
— line of interaction —
Frontstage (owner)App submits the claim (digital team)App confirms upload (digital team)Calls the customer (desk assessor)Inspects and measures (Acme field assessor)Takes the chase call, can't see status (contact centre)Sends settlement email (claims)
— line of visibility —
Backstage (owner)Claim created in ClaimDesk (automated)Photos go to the shared inbox (no owner)Reviews the claim in ClaimDesk, can't see photos, decides on field visit (desk assessor)Writes the report, emails it to the shared inbox (Acme)Report waits in the inbox, then is attached by hand to ClaimDesk; desk assessor decides (desk assessor, claims admin)Approves payment and adds it to the weekly batch (finance)
— line of internal interaction —
Support processesClaimDeskShared email inboxClaimDesk, policy systemAcme Loss AdjustingShared email inbox, ClaimDeskWeekly payment batch
Fail points / waits⚠1 photos not linked to the claim⏱2 up to 2 working days (SLA) · ⚠3 asks for photos again⏱4 visit booking [estimate] 3–5 days⏱5 report to decision [estimate] 5–10 days · ⚠6 report sits unseen⏱7 up to 7 days for the batch

Diagram

flowchart LR
    subgraph EV["Evidence"]
        direction LR
        e1["Confirmation email"] ~~~ e2["Photos received screen"] ~~~ e3["Phone call"] ~~~ e4["Assessor visit"] ~~~ e5["Nothing"] ~~~ e6["Settlement email"]
    end
    subgraph CU["Customer actions"]
        direction LR
        c1["1. Reports claim"] --> c2["2. Uploads photos"] --> c3["3. Call from desk assessor"] --> c4["4. Hosts field assessor"] --> c5["5. Waits and chases"] --> c6["6. Gets paid"]
    end
    subgraph FR["Frontstage, below the line of interaction"]
        direction LR
        f1["App submits claim"] ~~~ f2["App confirms upload"] ~~~ f3["Desk assessor calls"] ~~~ f4["Acme inspects"] ~~~ f5["Contact centre takes chase call"] ~~~ f6["Claims sends settlement"]
    end
    subgraph BA["Backstage, below the line of visibility"]
        direction LR
        b1["Claim created in ClaimDesk"] ~~~ b2["Photos to shared inbox ⚠1"] ~~~ b3["Desk review, no photos ⚠3"] ~~~ b4["Acme emails report"] ~~~ b5["Report attached by hand ⚠6"] ~~~ b6["Finance weekly batch ⏱7"]
    end
    subgraph SU["Support, below the line of internal interaction"]
        direction LR
        s1["ClaimDesk"] ~~~ s2["Shared inbox"] ~~~ s3["Policy system"] ~~~ s4["Acme Loss Adjusting"] ~~~ s6["Payment batch"]
    end
    c1 --> f1 --> b1 --> s1
    c2 --> f2 --> b2 --> s2
    c3 --> f3 --> b3
    b3 --> s3
    c4 --> f4 --> b4 --> s4
    c5 --> f5
    b4 --> b5 --> s1
    c6 --> f6
    b6 --> s6

Fail points and waits

#StepTypeWhat happensCustomer effectFrequency / durationHandoff?
12⚠ failPhotos land in a shared inbox, not on the claimTheir upload goes nowhere usefulEvery app claim [assumption]App → inbox (no owner)
23⏱ waitTime to first contactDoesn't know if the claim was received by a personUp to 2 working days (SLA)ClaimDesk → desk assessor
33⚠ failDesk assessor can't see the photos and asks for them againJourney-map pain 1Every app claim [assumption]
44⏱ waitBooking the field visitWaits with damage unrepaired3–5 days [estimate]Desk assessor → Acme
55⏱ waitReport to decisionJourney-map pain 2: no update5–10 days [estimate]Acme → inbox → claims admin → desk assessor
65⚠ failReport sits in the shared inbox until someone attaches itLonger wait, chase callsUnknownAcme → inbox (no owner)
76⏱ waitApproved payment waits for the weekly batchPaid up to a week after approvalUp to 7 daysClaims → finance

Pain → cause

Customer pain (journey map)Cause (lane, step)
Asked for the same photos againBackstage 2: uploads go to an unowned shared inbox; backstage 3: desk assessor works only in ClaimDesk
No update after the assessor visitBackstage 5: Acme's report goes to the same inbox and waits to be attached by hand; frontstage 5: contact centre can't see status, so chase calls go nowhere

Ranked fixes

RankFix (outcome)Lane it changesOwnerAddresses
1Photos uploaded in the app appear on the claim in ClaimDesk, with no inbox stepBackstage, supportDigital team with claims⚠1, ⚠3
2Acme's report reaches the claim directly, and the customer is told when it has arrived and when to expect a decisionBackstage, frontstageClaims, with Acme⚠6, ⏱5
3The contact centre can see claim status, so a chase call ends with an answerFrontstageContact centre⏱5

Not prioritised now: ⏱7 weekly payment batch (a finance process change with wider impact; revisit after fixes 1–2); ⏱2 first-contact SLA (met today, and fix 1 makes the first call shorter).

Open questions

  • How many claims a month arrive through the app vs by phone? This sizes fix 1.
  • What does Acme's contract say about report turnaround? It may already have an SLA nobody tracks.
  • Who owns the shared inbox today? The blueprint found no owner.

Hand-offs: fix 1 becomes committed work → prd-draft. The ClaimDesk integration design → architecture-diagrams.

How it's checked

Measured against plain Claude Code (2026-10-23): it met 81% of its checks, against 61% without it, and a blind judge preferred it. How skills are checked

21 assertions across 3 acceptance evals, and 7 trigger queries. Every skill's checks

What the output must do
  • The title names one customer type and one scenario with a trigger and an end state
  • All five lanes (evidence, customer, frontstage, backstage, support) and all three lines (interaction, visibility, internal interaction) are present
  • Every frontstage and backstage action has an owning role or team, or is flagged as unowned
  • Fail points and waits are marked at the steps where they happen, with durations from the prompt or tagged [estimate]
  • The router-arrives-late and no-go-live-date complaints are each traced to a backstage or support cause
  • 2–3 ranked fixes are stated as outcomes, each with an owner and the lane it changes
  • A Mermaid diagram with one subgraph per lane matches the table
  • Does not invent teams, systems, SLAs or durations not in the prompt; inferred ones are tagged [assumption] or [estimate]
  • Points out that the step timings add up to about 9 working days, not the 'about 5 days' in the Operations Manager's notes
  • Flags the disagreement over who makes the booking call (the notes say the warehouse; complaints and Brightlane say the courier sometimes does) instead of choosing one version silently
  • Leaves the owner of damaged-item replacement as unassigned or unknown, and flags it, rather than naming an owner the input doesn't give
  • Links the biggest complaint category (151 'nobody called me to book') to the specific step where it happens, and ranks fixes by the complaint data
  • Recommended fixes respect the no-new-software constraint, or clearly flag any that would break it
  • Does not invent cost savings or other figures; says the files don't contain the data needed to put a money value on each fix
  • Delivers the full analysis rather than stopping to ask questions first
  • Identifies copying the order from the message into the notebook as the likely place the date goes wrong
  • Identifies the missing step or check where the deposit should be taken, and suggests something simple to fix it
  • Separates what the customer sees from what happens behind the scenes (the notebook, the handover to the sister, baking)
  • Suggestions are simple and fit a two-person home business, not new software or staff
  • Does not invent facts not given, such as prices, deposit amounts, order volumes or extra staff
  • Delivers one table with at most a few lines around it, as asked
When it should and shouldn't activate

Should activate:

  • Create a service blueprint for our returns process
  • What happens behind the scenes when a customer reports a fault? Show frontstage, backstage and where it breaks
  • Take our onboarding journey map and show the teams, systems and handoffs behind each step
  • Find the fail points and wait times in how we deliver a mortgage application

Should leave to another skill:

  • Map our customer's onboarding journey with emotions and pain points at each stage
  • Draw the system architecture for our claims platform as a C4 diagram
  • Write a PRD for fixing the slow refund process

Hands off to

Related skills

architecture-diagrams

Source

SKILL.md · the whole folder on GitHub.