Build a Reusable Story Map Library: 6 Common App Features

Use StoriesOnBoard and MCP to turn login, account recovery, profiles, messaging, notifications, and team invitations into a reusable library of product decisions, stories, and release slices.

Six common app features organized into a reusable library for planning new products
Table of contents
  1. What a reusable story map library preserves
  2. Build the library with StoriesOnBoard MCP
  3. 1. Login: help an existing user return to work
  4. Return navigation and failed attempts
  5. Choose the right sign-in method
  6. Create and verify the login map
  7. 2. Password reset: make recovery a complete journey
  8. Reset requests and expired links
  9. Adapt recovery to the identity provider
  10. Create and verify the recovery map
  11. 3. Profiles: separate personal details from identity controls
  12. Avatar uploads and managed fields
  13. Decide visibility and saving behavior
  14. Create and verify the profile map
  15. 4. Messaging: connect text, mentions, and attachments
  16. Mentions and file-upload recovery
  17. Set conversation boundaries and editing rules
  18. Create and verify the messaging map
  19. 5. Notifications: close the loop from event to action
  20. Destinations and email preferences
  21. Choose channels and delivery behavior
  22. Create and verify the notification map
  23. 6. Invitations and roles: make membership a lifecycle
  24. Invitation acceptance and access removal
  25. Define guest access and membership scope
  26. Create and verify the invitation map
  27. Organize the six maps into a library people can maintain
  28. Adapt the library to a new client portal
  29. Make the next project improve the starting point

The third app your team builds probably needs a login page, a profile, notifications, and a way to invite people. You have delivered those features before. Yet the next planning session still starts with an empty document, and someone eventually asks the same question: what happens when the invitation expires?

A reusable story map library gives those decisions a home. Each map describes a common user journey, the stories that support it, a useful first release, and the choices that depend on the next product. An AI agent connected through the StoriesOnBoard Model Context Protocol (MCP) server can read that structure and help build a product-specific version.

This guide works through six features: login, password reset, profiles, messages with mentions and attachments, notifications, and team invitations. Each example includes a map, a creation prompt, detailed acceptance criteria, and an adaptation decision. The maps are illustrative examples; the MCP instructions describe a reproducible workflow, rather than a recorded run in a customer workspace.

What a reusable story map library preserves

Consider a small team shipping an internal operations app, a client portal, and a community product. All three have profiles. In the operations app, a profile helps colleagues recognize an employee. In the portal, it identifies the person approving a delivery. In the community, it may be a public page that helps strangers decide whether to connect.

The shared starting point is useful: view details, edit permitted fields, validate changes, save, and show the result. Visibility, identity verification, required fields, and moderation still need a decision for each product. Keeping both the shared journey and those open decisions makes the next discussion more precise.

Store the following with each feature map:

  • Purpose and persona: the person using the feature and the outcome they need.
  • Journey: goals, ordered steps, and the stories under each step.
  • Release slices: a complete first experience and optional extensions.
  • Decision notes: assumptions, exclusions, dependencies, and unresolved questions.
  • Detailed stories: expected behavior, acceptance criteria, and important failure states.
  • Reuse record: the source version and the changes made for a particular app.

A release slice should let someone finish a meaningful task. “Build the login form” leaves the journey incomplete if users cannot understand a failed attempt, leave their session, or return to the page they originally requested. The map makes these relationships visible. Our guide to MVP slicing with story maps develops that planning approach further.

Let each feature determine its own map width. Login and recovery use four steps here; profiles and notifications use five, invitations use six, and messaging uses seven. Separate actions when their stories need their own planning decisions. An empty column in a release means that step has no work in that slice; mentions and attachments, for example, start in the messaging collaboration release.

Build the library with StoriesOnBoard MCP

Start with a connected AI agent and a workspace where you can create and edit maps. The agent supplies the planning and tool calls; MCP supplies access to StoriesOnBoard. Give the agent a short product brief, the intended users, and the feature boundaries before asking it to create cards.

The official MCP tool reference documents map discovery, hierarchy reads, card details, map and card creation, and release operations. The practical sequence is:

  1. Find the source. Use ListStoryMaps to locate an existing feature map. Read its hierarchy with GetStoryMapCards and relevant descriptions with GetStoryMapCardDetails.
  2. Resolve product choices. Turn the brief into proposed goals, steps, stories, and release boundaries. Surface missing decisions for review.
  3. Create the destination. Use CreateStoryMap, then read its reference data with GetStoryMapData.
  4. Build the hierarchy. Use CreateStoryMapCard for goals, then their steps, then stories under the right steps. The API calls these levels activity, task, and subtask.
  5. Assign release slices. Create releases with CreateStoryMapRelease; use the supported card operations to place stories in the intended slice.
  6. Read the result back. Check parent relationships, order, release placement, and detailed acceptance criteria against the reviewed plan.

Use returned IDs when building the next level. After an interrupted run, read the destination before retrying: a missing response does not prove that a card was never created. This prevents a recovered connection from producing a second copy of half the board.

Here is the reusable instruction that precedes each feature-specific prompt:

Use the StoriesOnBoard MCP connection for this workspace.
Read any existing feature-library map relevant to this request.
Read the attached product brief and list decisions it leaves open.
Propose goals, ordered steps, stories, and release slices first.
After I approve the proposal, create the destination map.
Create parents before children and use returned IDs.
Put assumptions, acceptance criteria, and dependencies in card details.
Read the completed map back and report any mismatch or unresolved choice.
If a call fails, inspect current state before retrying a write.

The detailed method can also live in a reusable agent skill. Five Skills, One Backlog explains how discovery, map creation, refinement, and review can fit together. The feature library supplies the subject matter those skills work on.

Focused login map showing a blue goal, yellow steps, and white stories grouped into release lanes
Login detail example: choosing a sign-in method separates the email-and-password baseline from SSO and other product-specific identity choices.

1. Login: help an existing user return to work

The user arrives with an intention: review a file, answer a message, or continue a task. The login page is one step toward that outcome. Model the journey through successful access and the next destination, including the cases where access cannot be granted.

This example starts with email and password for an app with a single workspace. Its first release covers entry, understandable failure, safe continuation, sign-out, and expiry. SSO and multi-factor authentication appear in the adaptation lane because the product must choose its identity policy. If that policy requires either, move it into the first release.

Access my account
Choose how to sign in
Prove my identity
Resume my work
Enter the right workspace
Manage my session
First release · email and password
Enter email and password
Use a password manager
Get a useful sign-in error
Retry within attempt limits
Return to an allowed destination
See a no-access explanation
Sign out of this device
Sign in again after expiry
Adapt to the product · choose before planning
Use the organization's SSO
Choose an enabled sign-in method
Complete required MFA
Recover from provider cancellation
Choose between workspaces
Continue an accepted invitation
Review active devices
End another device's session
Login example: the first release covers credentials, workspace access, and session expiry; SSO, MFA, and device controls depend on the product.

Return navigation and failed attempts

Continue to my intended destination. As a returning user, I want to reach the item I originally opened after signing in, so I can continue my task.

  • Given an allowed internal destination, successful authentication returns the user there after checking their current access.
  • A missing or disallowed destination leads to a documented fallback, such as the workspace home.
  • The sign-in process does not accept an arbitrary external destination from the request.

Recover from a failed attempt. As a returning user, I want a clear next action when sign-in fails, so I can regain access without guessing.

  • An unsuccessful attempt does not create an authenticated session.
  • The error explains the next action without revealing whether a particular account exists.
  • The user can try again within the agreed attempt limits or open account recovery.

Review identity behavior against your authentication provider and OWASP's authentication guidance, including generic failure responses and controls on repeated attempts. Capture product-facing behavior in the story and implementation controls in its engineering notes.

Choose the right sign-in method

An employee app may use organization SSO exclusively. A community app may offer several sign-in methods. The library should carry both questions into discovery instead of silently imposing the method used by the previous app.

Create and verify the login map

Create a reusable login feature map for returning users.
Use the journey: choose sign-in method, prove identity,
enter the correct workspace, and manage the session.
Assume email/password and one workspace for the initial example.
Include failed attempts, session expiry, sign-out, and safe return navigation.
List SSO, MFA, and multiple workspaces as product decisions.
Required identity controls belong in the first release.
Follow the review, creation, and read-back process above.

MCP focus: create the two goals, attach the four steps to their correct goals, then add the stories. During read-back, check that session stories remain under “Manage my session” and that required authentication choices have not been parked in an optional release.

2. Password reset: make recovery a complete journey

Recovery begins when the user cannot use their usual credentials. It ends when they can sign in again and understand what changed. A successful “email sent” message sits near the beginning of that journey.

The map below starts with recovery through a verified email address. The first release includes valid, expired, and used-link behavior, a validated password change, and a route back to sign-in. Additional recovery methods depend on the product's identity model. Keep the password-reset map connected to login, while giving recovery its own detailed acceptance criteria.

Regain account access
Request a reset
Open a valid reset link
Resume with confidence
Set a new password
Return to sign-in
First release · complete recovery
Request a reset by email
See a neutral confirmation
Use a valid single-use link
Replace an expired or used link
Enter and confirm a password
Save only after validation
Sign in with the new password
Receive a change notification
Additional recovery routes · when applicable
Find the SSO recovery route
Get help without email access
Continue after changing device
Resume a provider recovery flow
Complete required extra verification
Review session consequences
Review other active sessions
Report an unexpected reset
Recovery example: expired or used links are handled before a new password is saved and the user returns to sign-in.

Reset requests and expired links

Request recovery without exposing account membership. As someone unable to sign in, I want to request help using my email address, so I know how to continue.

  • The visible confirmation is consistent whether or not an eligible account matches.
  • Eligible requests trigger the agreed recovery process, subject to configured request limits.
  • The response gives useful next steps, including what to do if the email does not arrive.

Replace an expired or used link. As someone opening an old recovery email, I want to request a fresh link, so I can finish recovery.

  • An expired or already-used token cannot change the password.
  • The page explains that a new link is needed and provides a route to request one.
  • A successful reset follows the chosen session policy and sends a change notification.

OWASP's password-reset guidance covers neutral responses, expiring single-use tokens, and session handling. The exact expiry and identity checks belong to your agreed security design; the template should identify those decisions.

Adapt recovery to the identity provider

For an SSO-only employee app, recovery may belong to the identity provider. Replace the local password-reset steps with the correct provider route and help instructions. Creating a local password for that user would change the product's identity model.

Create and verify the recovery map

Create an account-recovery map linked conceptually to the login map.
Cover request, valid-link access, password replacement, and return to sign-in.
Include missing email, expired or used links, repeat requests,
password validation, change notification, and session-policy decisions.
Separate email/password recovery from the SSO-provider route.
Use neutral public responses and identify unresolved policy choices.
Show a complete first-release journey before creating the map.

MCP focus: put the failure behavior in the relevant story descriptions, then read those descriptions back. Counting the four step columns cannot establish that expired-link behavior or session consequences were captured.

3. Profiles: separate personal details from identity controls

A profile helps someone present the right information to the right audience. Start by identifying that audience. A colleague's display name and avatar may be enough for an internal app; a public community profile introduces a different set of visibility decisions.

The initial map uses a team-visible profile. Its five steps separate viewing, field editing, avatar changes, saving, and audience visibility. Avatar uploads have their own failure and retry behavior, so they get a dedicated column. Email changes, password changes, and account deletion need their own account-management decisions. A reusable profile should make those boundaries explicit.

Keep my details accurate
Open my profile
Edit my details
Change my avatar
Control my presentation
Review and save
Choose what others see
First release · recognizable team profile
View my current details
Recognize read-only fields
Change my display name
Upload or remove my avatar
Retry a failed avatar upload
Correct invalid values
Confirm the saved result
See the team-visible profile
Keep private fields private
Later possibilities · selected by audience
Preview a public profile
Open account settings
Add a short biography
Set language and time zone
Handle a concurrent edit
Review unsaved changes
Choose public profile fields
Preview another viewer's access
Profile example: avatar uploads have their own step and retry behavior; field editing, saving, and audience visibility remain separate decisions.

Avatar uploads and managed fields

Replace my avatar. As a member, I want to update my profile picture, so teammates can recognize me.

  • The interface states the accepted file types and size limit before upload.
  • A rejected or failed upload leaves the current avatar intact and explains how to retry.
  • A successful change appears on the profile; removing it restores the agreed fallback.

Understand which fields I can change. As a member, I want managed fields to be clearly identified, so I know how to correct inaccurate information.

  • Fields owned by an organization or identity provider are displayed as read-only.
  • The user sees where to request a correction when such a process exists.
  • Submitting an edited request cannot bypass the field's ownership rule.

Decide visibility and saving behavior

A client portal may show an approver's name to external participants while keeping their phone number private. Record visibility per field and viewer. One “public profile” switch is too vague when different viewers need different information.

Unsaved edits and concurrent changes also deserve an explicit choice. An autosaved profile and a form with a Save button behave differently; select the interaction before generating acceptance criteria. The map's extension lane is a catalogue of options to assess, not a promise that every app will eventually implement them.

Create and verify the profile map

Create a reusable team-profile map with five steps: view profile,
edit details, change avatar, review/save, and choose visibility.
Start with display name and avatar.
Keep organization-managed identity fields read-only.
Include failed uploads, validation errors, and clear saved-state feedback.
Ask whether edits are autosaved or explicitly submitted.
List public profiles, biography, language, and time zone as adaptations.
Keep identity verification and account deletion outside this feature boundary.

MCP focus: preserve field ownership and audience in card details. When adapting the map, read these details alongside the titles so that “Edit my details” does not become permission to edit every account field.

4. Messaging: connect text, mentions, and attachments

Messaging grows quickly because sending text touches membership, access, files, and attention. A reusable map helps the team specify how those parts work together. Begin with one clear setting: members discussing work in a project conversation.

The first slice delivers reliable text communication. The collaboration slice adds @mentions and attachments together with the access checks and failure handling those capabilities require. Threads, reactions, search, editing, and moderation are further choices for the product brief.

The seven columns separate opening a conversation, writing, mentioning someone, attaching files, sending, reading, and replying. The first release crosses the text journey while leaving the mention and attachment columns empty. In the next slice, those columns make eligibility checks and upload recovery visible alongside delivery.

Coordinate with the right people
Open a conversation
Write my message
Mention a teammate
Attach files
Keep the conversation moving
Send and recover
Read new activity
Reply to the conversation
First release · reliable text conversation
Open a conversation I can access
See context and participants
Write a text message
Keep a draft after send failure
See pending and sent states
Retry without duplicate messages
Read new messages in order
Mark the conversation as read
Reply in the conversation
Collaboration release · mentions and files
Find a relevant conversation
See an access-change explanation
Mention an eligible teammate
Attach an allowed file
Retry or remove a failed upload
Send once attachments are ready
Open a mention notification
Download a file I may access
Messaging example: seven steps separate writing, mentions, uploads, delivery, reading, and replying; the empty first-release columns keep mentions and files outside the text-only slice.

Mentions and file-upload recovery

Mention an eligible teammate. As a participant, I want to mention someone who can access the conversation, so I can direct their attention to a relevant message.

  • The mention picker offers people who are eligible under the conversation's membership rules.
  • Sending resolves the mention to a stable person identifier, so a later display-name change does not retarget it.
  • A mention creates the agreed notification only after the message is successfully sent.
  • If access changes before sending, the user gets a clear way to remove or correct the mention.

Attach a file without losing my message. As a participant, I want to recover from a failed upload, so I can finish sending useful information.

  • The composer distinguishes uploading, ready, and failed attachment states.
  • The user can retry or remove a failed attachment while retaining the message text.
  • The send action follows a documented rule while uploads are pending; this example waits until each attachment is ready or removed.
  • Every file download checks the requester's current access, including after membership changes.

The second story forces a real product decision. Another app could send text immediately and deliver files afterward, but it would need to explain that partial state to both sender and recipient. Keeping this decision in the reusable map avoids rediscovering it through support tickets.

Set conversation boundaries and editing rules

In an agency portal, staff may hold an internal conversation alongside a client-visible one. A mention must respect that boundary. Adding a client's name to an internal message should not make its text, files, or notification preview visible outside the internal audience.

Also decide what survives editing and deletion. A deleted message might leave a tombstone so replies remain understandable. A removed attachment needs a clear unavailable state. These choices belong beside the story that creates the content, even if the editing interface comes in a later release.

Create and verify the messaging map

Create a project-messaging map for members of the same workspace.
Use separate steps for opening, writing, mentioning, attaching,
sending, reading, and replying.
First release: accessible conversations, text composition,
pending/sent states, retry without duplication, unread handling, and replies.
Next slice: @mentions and attachments, including their access rules.
Leave those two step columns empty in the text-only first release.
Refine mention eligibility, stable identity, upload failure,
send behavior during upload, and permission checks on file download.
Identify dependencies on membership and notifications.
Ask which conversations, if any, external clients may see.

MCP focus: create the story hierarchy first, then refine selected message stories with their acceptance criteria. Read back the release placement of mentions and files together with their failure and access stories. A slice containing only the visible controls is incomplete.

5. Notifications: close the loop from event to action

A notification is useful when it reaches an eligible person, explains what changed, and leads to an action they can still take. Treat that sequence as a journey. It exposes missing work that a single “add notification bell” ticket tends to hide.

This map begins with in-app notifications. Email, push, digests, and quiet hours are separate product choices. Distinguish optional activity updates from required account or security messages, and document which preferences apply to each.

Five steps distinguish receiving and understanding an update, opening its destination, managing read status, and choosing future updates. Marking one item as read changes the current inbox; a preference changes future delivery. Keeping them in separate columns prevents the two behaviors from becoming one vague settings story.

Notice relevant changes
Receive an update
Understand its context
Act without unnecessary noise
Open the relevant item
Manage read status
Choose future updates
First release · in-app attention loop
Receive an eligible event
Avoid duplicate event alerts
See actor and event summary
Recognize unread updates
Open content I may access
Handle unavailable content
Mark updates as read
Choose optional event types
Additional channels · based on actual need
Receive enabled email alerts
Opt into push notifications
See an event summary in a digest
Group related activity
Avoid sensitive lock-screen text
Resume after signing in
Set digest frequency
Choose quiet hours and time zone
Notification example: opening an update, changing its read status, and choosing future deliveries are separate steps; channel and digest choices extend the same journey.

Destinations and email preferences

Open the relevant item. As a recipient, I want an update to lead to its source, so I can understand the context and respond.

  • Selecting an update opens its intended item after checking current access.
  • A deleted or inaccessible item produces a useful explanation without exposing restricted details.
  • When sign-in is required, successful authentication resumes the allowed destination.

Control optional email updates. As a member, I want to choose which activity emails I receive, so the product fits my working habits.

  • Settings name the event types and channels they affect.
  • A saved preference affects future eligible deliveries according to a documented cut-off rule.
  • The interface explains account or security messages that are governed separately.

Choose channels and delivery behavior

A collaboration app may need an immediate mention alert. A reporting tool may need a daily summary. Pick channels from the user's response window and context; the fact that another app has push notifications does not establish demand here.

Delivery states need careful language. An event being queued, handed to an email provider, and read by a person are different observations. Choose which ones the team actually needs and can measure. Keep that distinction in the map's notes rather than calling every successful provider response “read.”

Create and verify the notification map

Create a notification map for project activity and @mentions.
Start with in-app updates: eligible event, understandable context,
accessible destination, read-state handling, and future preferences.
Give read status and future-delivery choices separate step columns.
Cover duplicate events and destinations that become unavailable.
Keep email, push, digests, and quiet hours as explicit product choices.
Separate optional activity preferences from account/security messages.
Identify the login and permission dependencies before creating cards.

MCP focus: read the messaging and login maps before proposing the notification stories. Reuse their event names and destination behavior. A shared feature library helps most when neighbouring maps describe the same interaction consistently.

6. Invitations and roles: make membership a lifecycle

An invitation has several outcomes: it can be accepted, expire, be revoked, or reach someone who already belongs to the workspace. A member can later change role or leave. Keeping those states in one map helps the team see who controls each transition.

The initial example assumes an authorized workspace administrator invites one person at a time and assigns a supported role. The first release includes the invitation's failure states and membership removal. Bulk invitations, guests, ownership transfer, and SSO are possible adaptations.

The six steps follow the actual handoff: choose the recipient, assign a role, send, manage pending invitations, accept with the right identity, and manage membership. The first four belong to the administrator’s invitation work; acceptance introduces the invitee before the membership lifecycle continues.

Bring a teammate into the workspace
Choose whom to invite
Assign the right role
Send the invitation
Manage pending invitations
Give the right access
Accept with the right account
Manage membership
First release · one member at a time
Enter a teammate's email
Assign an allowed role
Send the invitation
See invitation status
Resend or revoke an invitation
Confirm the invited identity
Handle expired or used invitations
See granted workspace access
Remove a member when permitted
Team growth · optional extensions
Invite several people together
Invite a restricted guest
Manage partial batch failures
Filter pending invitations
Join through approved SSO
Choose an existing eligible account
Transfer workspace ownership
Review membership changes
Invitation example: six steps separate recipient selection, role assignment, sending, pending invitations, acceptance, and membership; the administrator and invitee own different actions.

Invitation acceptance and access removal

Accept with the intended identity. As an invited person, I want to join with the correct account, so access is attached to me.

  • The acceptance page identifies the destination workspace and intended recipient appropriately.
  • A user signed in with another account can switch accounts before accepting.
  • An expired, revoked, or already-used invitation follows its defined outcome without creating duplicate membership.

Remove access without leaving an unmanaged workspace. As an administrator, I want to remove a member when permitted, so workspace access reflects the current team.

  • The acting administrator can remove only memberships allowed by the role policy.
  • Protected content and file requests enforce the changed membership.
  • The final required administrator cannot be removed until an eligible replacement is in place.

Define guest access and membership scope

A guest in a client portal may see only one project. Treat that as a scope as well as a role. Record which project the invitation grants, what happens when it is archived, and whether the guest appears in mention pickers outside that scope.

Account existence and membership are also different facts. Someone can already have an account while needing a new workspace membership. The acceptance flow should handle that case deliberately. Our guide to access control management provides broader context for these product decisions.

Create and verify the invitation map

Create a team-invitation map for a workspace administrator and invitee.
Use six steps: choose recipient, assign role, send invitation,
manage pending invitations, accept, and manage membership.
Include duplicate membership, wrong signed-in identity, expiry,
revocation, role limits, and protection of the final administrator.
Keep bulk invitations and restricted guests as separate adaptations.
Link membership changes to messaging, files, and notification access.

MCP focus: preserve both actors when refining the map. The administrator sends and revokes; the invitee accepts and resolves identity. Reading those details back helps detect stories that accidentally give either actor the other's authority.

Organize the six maps into a library people can maintain

Use a consistent name such as “Feature library — Login” and keep an owner, version, and short scope note in each map's description. A library entry should state whether it is a generic starting point or a pattern validated in one of your products. That distinction tells the next team how much confidence to place in it.

StoriesOnBoard documents collections for grouping maps and templates for starting new maps from an existing structure. Use the relevant workspace interface to organize the collection and save templates. The MCP workflow above uses documented map and card operations; collection management and template conversion are separate interface steps in this guide.

For each entry, record a small set of maintenance facts:

  • Owner: who reviews proposed improvements.
  • Version: the source revision used by a product team.
  • Applicability: relevant audiences, identity model, and assumptions.
  • Open decisions: choices a new product must answer.
  • Lessons: the observation that justified a change, such as a failed-upload case found in testing.

Product-specific maps should retain their own decisions. Updating the library does not automatically revise every product that started from it. Review the change, identify affected products, and decide whether each needs an update. An invitation rule discovered in an enterprise app may be irrelevant to a single-user tool.

Adapt the library to a new client portal

Suppose an agency is building a portal where clients review deliverables and discuss revisions. Staff belong to several projects; clients see only their own projects. Clients can comment and attach files, but cannot invite more people. Staff use SSO; clients use email and password.

That brief changes all six maps in concrete ways:

FeatureDecision for this portal
LoginSupport the two chosen identity routes and resume the allowed project after sign-in.
RecoveryProvide local password reset for clients and provider recovery for staff.
ProfileShow a recognizable name and avatar; keep internal contact details private.
MessagingLimit client conversations, mentions, and file access to the permitted project.
NotificationsNotify eligible participants about mentions and review requests; handle removed access.
InvitationsLet authorized staff invite clients into a specific project with a fixed client role.

Give the agent the portal brief and ask for a proposed change list before creating the destination map:

Read our six feature-library maps and this client-portal brief.
For each source story, propose: keep, adapt, omit, or ask.
Explain adaptations using the brief and preserve the source reference.
Identify cross-feature decisions, especially identity and project access.
Propose an end-to-end first release from invitation to review and reply.
After approval, create the portal map without changing the source library.
Read the result back and list unresolved questions.

Now test one connected journey: an invited client accepts, signs in, updates their display name, opens a deliverable, replies with a file, and receives a response notification. Then change a condition: revoke their project access before they open the notification. The destination, preview text, conversation, and attachment download must all follow the same access decision.

That is why the final product needs its own coherent story map. Feature maps provide reusable detail; the product journey establishes how those details fit together. Use a story map gap analysis to look for missing transitions, conflicting rules, and stories that no longer serve the brief.

Make the next project improve the starting point

When testing uncovers a missing case, ask whether it is broadly reusable. “Keep message text after an attachment fails” probably belongs in the library. “Require this client's contract code before sending” probably belongs in that client's product map.

Have the agent propose the reusable improvement with its source story, the observed problem, and the acceptance-criteria change. Review it, update the library version, and record which products may be affected. This keeps the collection small enough to understand while preserving lessons that would otherwise disappear into closed tickets.

Start with one feature your team has already shipped several times. Read its existing stories, test cases, and support notes; map the full user journey; then use the StoriesOnBoard MCP workflow to create and check the reusable version. Add the next feature when you have enough context to make its decisions useful. Over time, the library becomes a shared record of how your team builds common capabilities and where each new product needs different choices.