utils/messaging
Persona-Aware Messaging System for PipeCraft
This module provides a messaging system that adapts to different user personas and provides clear, actionable feedback during GitHub setup.
Personas
Startup Developer ("Just Make It Work")
- Needs simple language and clear actions
- Wants to know "what this means for me"
- Prefers step-by-step guidance
Team Lead ("Safe and Consistent")
- Needs rationale for recommendations
- Wants to understand what's being changed
- Balances detail with clarity
Platform Engineer ("I Know What I'm Doing")
- Wants concise status reports
- Prefers technical accuracy
- Minimal hand-holding
Message Severity Levels
- 🔴 Critical: Setup will fail without action
- 🟡 Warning: Recommended changes for optimal experience
- 🔵 Info: Status updates and explanations
- 🟢 Success: Completed actions and confirmations
Interfaces
MessageContext
Defined in: utils/messaging.ts:38
Properties
autoApply
autoApply: boolean;
Defined in: utils/messaging.ts:41
persona
persona: UserPersona;
Defined in: utils/messaging.ts:39
verbose
verbose: boolean;
Defined in: utils/messaging.ts:40
SetupSummary
Defined in: utils/messaging.ts:54
Properties
autoMerge
autoMerge: StatusItem[];
Defined in: utils/messaging.ts:59
errors
errors: string[];
Defined in: utils/messaging.ts:62
nextSteps
nextSteps: string[];
Defined in: utils/messaging.ts:60
overallStatus
overallStatus: "error" | "ready" | "needs-setup" | "partial";
Defined in: utils/messaging.ts:56
permissions
permissions: StatusItem[];
Defined in: utils/messaging.ts:57
repository
repository: string;
Defined in: utils/messaging.ts:55
settings
settings: StatusItem[];
Defined in: utils/messaging.ts:58
warnings
warnings: string[];
Defined in: utils/messaging.ts:61
StatusItem
Defined in: utils/messaging.ts:44
Properties
action?
optional action: string;
Defined in: utils/messaging.ts:51
category
category: string;
Defined in: utils/messaging.ts:45
current
current: string;
Defined in: utils/messaging.ts:47
explanation?
optional explanation: string;
Defined in: utils/messaging.ts:50
name
name: string;
Defined in: utils/messaging.ts:46
recommended
recommended: string | null;
Defined in: utils/messaging.ts:48
status
status: "error" | "correct" | "needs-change" | "missing";
Defined in: utils/messaging.ts:49
Type Aliases
MessageSeverity
type MessageSeverity = "critical" | "warning" | "info" | "success";
Defined in: utils/messaging.ts:36
UserPersona
type UserPersona = "startup" | "team-lead" | "platform-engineer";
Defined in: utils/messaging.ts:34
Functions
createSetupSummary()
function createSetupSummary(
repository,
permissions,
settings,
autoMerge,
context): SetupSummary;
Defined in: utils/messaging.ts:193
Create setup summary
Parameters
repository
string
permissions
settings
autoMerge
context
Returns
detectPersona()
function detectPersona(context): UserPersona;
Defined in: utils/messaging.ts:68
Detect user persona based on context clues
Parameters
context
hasConfig
boolean
hasWorkflows
boolean
isFirstRun
boolean
verbose
boolean
Returns
formatMessage()
function formatMessage(
message,
severity,
context): string;
Defined in: utils/messaging.ts:91
Format message based on persona and severity
Parameters
message
string
severity
context
Returns
string
formatNextSteps()
function formatNextSteps(steps, context): string;
Defined in: utils/messaging.ts:170
Format next steps based on persona
Parameters
steps
string[]
context
Returns
string
formatQuickSuccess()
function formatQuickSuccess(repository, context): string;
Defined in: utils/messaging.ts:309
Simple success message for when everything is already configured
Parameters
repository
string
context
Returns
string
formatSetupSummary()
function formatSetupSummary(summary, context): string;
Defined in: utils/messaging.ts:248
Format the complete setup summary
Parameters
summary
context
Returns
string
formatStatusTable()
function formatStatusTable(items, context): string;
Defined in: utils/messaging.ts:121
Create a clean status table
Parameters
items
context
Returns
string