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