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
autoPromote
autoPromote: 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, autoPromote, context): SetupSummary
Defined in: utils/messaging.ts:193
Create setup summary
Parameters
repository
string
permissions
settings
autoPromote
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