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

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

StatusItem[]

settings

StatusItem[]

autoMerge

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