Skip to main content

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: 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

StatusItem[]

settings

StatusItem[]

autoPromote

StatusItem[]

context

MessageContext

Returns

SetupSummary


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

UserPersona


formatMessage()

function formatMessage(message, severity, context): string

Defined in: utils/messaging.ts:91

Format message based on persona and severity

Parameters

message

string

severity

MessageSeverity

context

MessageContext

Returns

string


formatNextSteps()

function formatNextSteps(steps, context): string

Defined in: utils/messaging.ts:170

Format next steps based on persona

Parameters

steps

string[]

context

MessageContext

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

MessageContext

Returns

string


formatSetupSummary()

function formatSetupSummary(summary, context): string

Defined in: utils/messaging.ts:248

Format the complete setup summary

Parameters

summary

SetupSummary

context

MessageContext

Returns

string


formatStatusTable()

function formatStatusTable(items, context): string

Defined in: utils/messaging.ts:121

Create a clean status table

Parameters

items

StatusItem[]

context

MessageContext

Returns

string