Agentic AI Atlasby a5c.ai
OverviewWikiGraphFor AgentsEdgesSearchWorkspace
/
GitHubDocsDiscord
iiRecord
Agentic AI Atlas · customer-support (Library)
page:library-customer-supporta5c.ai
Search record views/
Record · tabs

Available views

II.Record viewspp. 1 - 1
overviewarticlejsongraph
III.Related pagespp. 1 - 1
II.
Page reference

page:library-customer-support

Reading · 9 min

customer-support (Library) reference

The first full agentic customer-facing workflow specialization in the library. It closes

Pagewiki/library/customer-support.mdOutgoing · 1Incoming · 1

customer-support

The first full agentic **customer-facing workflow** specialization in the library. It closes the census's top customer-facing gap: domains/business/customer-experience holds **20 pre-bar point tasks with zero breakpoint routing**, and no customer-support specialization existed anywhere. This specialization carries a real support ticket end-to-end with routed human approvals on every action that leaves the org boundary, while the 20 point tasks remain independently callable utilities (mapped per phase below).

Flagship process: ticket-lifecycle

ticket-lifecycle.js (@process customer-support/ticket-lifecycle) walks one ticket through the whole lifecycle:

PhaseWhat happens
0kipRecall at intake — prior similar-ticket resolutions thread into every later task (kipEnabled, kind customer-support)
1Intake & classification (cst.intake-classify) — category, structured facts, candidate known issues
2Severity/priority triage (cst.triage) — conditional customer-support.triage-ambiguity breakpoint fires only on triage.ambiguous === true; approver response may override severity/priority/queue and is recorded as ambiguityResolution
3Parallel investigation via ctx.parallel.all — repro (cst.investigate-repro), knowledge search (cst.investigate-knowledge), account context (cst.investigate-account-context)
4Resolution drafting (cst.resolution-draft) — resolution document + customer replyDraft + remediation proposal; an unknown remediation.kind on a monetary remediation throws before any gate
5Adversarial resolution review — adversarialGate (customer-support.resolution-review) with two independent critics and executed evidence; **a failed gate returns success:false before any customer contact**
6Policy-gated customer reply + conditional refund/credit — refund breakpoint/execution first when remediation.monetary === true, its outcome folded into the reply breakpoint context
7Verification & close (cst.verify-close) — verificationSteps re-executed, unverified closes recorded honestly
8KCS-style KB capture (cst.kb-article-capture) + policy-gated publish (cst.publish-kb-article) — the publish breakpoint is always raised; a human decides even when the author recommends against
9kipAssert at close — root cause, resolution pattern, refund decision, gate outcome, KB decision

**Inputs:** { ticket: {id, channel, subject, body, customerRef, attachments?} (required), customerProfile?, repoRoot?='.', kbDir?='artifacts/kb', maxFixAttempts?=2, kipEnabled?=true, kipDir?='.a5c/kip', kipModel?='sonnet' }

**Outputs:** { success, classification, triage, investigation, resolution, resolutionGate, gatedActions, verification, kbArticle, kipFactsAsserted, artifacts, metadata } — success = resolutionGate.passed && gatedActions.sendCustomerReply.executed && verification.verified && (!resolution.remediation.monetary || gatedActions.issueRefundOrCredit.approved === gatedActions.issueRefundOrCredit.executed).

Policy-gated actions

All approvals go through routedBreakpoint; for the three policy-gated actions the breakpointId **equals** the actionId and tags are ['policy-gated','customer-support']. Fail-closed: the executor task runs **only** on approved === true — a rejection is honored, recorded, and never worked around.

actionIdexpertwhenfail-closed behavior
send-customer-replysupport-leadalwaysexecutor runs only on approved===true; rejection records the decision and the run continues to verify/close with sent=false surfaced honestly
issue-refund-or-creditsupport-manageronly when resolution.remediation.monetary === trueexecutor runs only on approved===true; rejected refund records approved=false and the reply proceeds without monetary language
publish-kb-articleknowledge-manageralways raised after capture (author recommendation in context)executor runs only on approved===true; rejection leaves the draft in place

Additional (non-gated) breakpoints on the surface:

adversarialGate combinator on fix-budget exhaustion (expert owner, combinator-fixed); the process does not re-declare it, but operators should know it is part of the surface.

  • customer-support.triage-ambiguity — expert support-lead, conditional on triage.ambiguous === true.
  • customer-support.resolution-review.gate-escalation — raised internally by the

outputs.gatedActions records **every** decision — { actionId, required, approved, autoApproved, response, executed } per action, including non-interactive auto-approvals (recorded raw from the BreakpointResult) and skipped conditional gates ({ required:false, approved:false, autoApproved:false, executed:false } — never omitted). metadata.breakpointsHit logs every raised breakpointId in order.

Phase -> customer-experience point-task map

All 20 utilities under `../domains/business/customer-experience/` remain independently callable helpers. Which phase can invoke which:

PhasePoint tasks (callable helpers)
Intake & classificationticket-triage-routing, service-request-fulfillment
Triagesla-management, escalation-management
Investigationfcr-optimization, problem-management, customer-health-scoring, knowledge-base-development, feedback-analysis-pipeline
Resolutionchurn-prevention
Verify & closecsat-collection, closed-loop-feedback, nps-survey-program
KB capture & publishkcs-implementation, self-service-optimization
Journey-level companions (outside the single-ticket loop)customer-onboarding, customer-journey-mapping, qbr-preparation, touchpoint-optimization
Ownership noteitil-incident-management and problem-management escalate to the **incident-management** specialization — this specialization owns *tickets*, not *incidents*

Quality bar

RE-EXECUTE the repro steps / verificationSteps; file-read citations alone do not satisfy the gate, and passed:true with an empty evidence array is a protocol failure enforced by the combinator.

customer-communication-critic) are distinct from the drafting agent (support-resolution-author); the combinator fans critics out in parallel.

to maxFixAttempts rounds, then the combinator escalates to the owner.

remediation.kind on a monetary remediation throws before the refund breakpoint; rejected gates are honored, never worked around; a failed resolution gate ends the run with success:false before any customer contact.

  • **adversarialGate with executed evidence** — the resolution-review gate's critics must
  • **Reviewer independence** — critic agent names (resolution-accuracy-critic,
  • **Bounded fix loop** — the built-in gateFixerTask edits the resolution artifact for up
  • **No fallbacks** — missing ticket/ticket.id/ticket.body throws; an unknown

kip integration

kipRecall at intake (topic: similar support tickets by subject/body, kind customer-support) and kipAssert at close (root cause, resolution pattern, refund decision, gate outcome, KB decision — one fact each, subject ticket:<id>), per shared/skills/kip-librarian. An empty store is a fresh brain, never an error; assert failures are reported by the librarian task, never swallowed.

Usage

bash
babysitter run:create \
  --process library/specializations/customer-support/ticket-lifecycle.js \
  --inputs '{
    "ticket": {
      "id": "TCK-4821",
      "channel": "email",
      "subject": "Webhook deliveries failing since upgrade",
      "body": "Since upgrading to v3.2 our webhook endpoint receives 401s on every delivery...",
      "customerRef": "acme-corp"
    },
    "customerProfile": { "tier": "enterprise", "tenureMonths": 26 },
    "kbDir": "artifacts/kb",
    "maxFixAttempts": 2
  }'

Second flagship process: onboarding-lifecycle

onboarding-lifecycle.js (@process customer-support/onboarding-lifecycle) carries one **signed deal** end-to-end — from handoff intake through account-context recall, success-plan drafting, an adversarial plan/success review with **executed** evidence, policy-gated kickoff comms, parallel provisioning/training/integration tracks with per-track verification, milestone reviews that route to a policy-gated at-risk escalation, go-live sign-off, and a closing health-score baseline asserted into kip. It **composes** the pre-bar customer-experience point seeds by name as callable stages — it does not duplicate them.

PhaseWhat happens
0kipRecall of prior onboarding outcomes, health signals, and account history (kipEnabled, kind customer-support, topic keyed by account:<accountId>)
1Signed-deal handoff intake (onb.handoff-intake) — normalizes account/tier/stakeholders/contractTerms; duplicate or missing contractTerm ids throw before drafting
2Success-plan drafting (onb.success-plan-draft) — markdown plan where **every commitment carries a contractTermId**; applies customer-onboarding (discovery/plan/milestones) + customer-journey-mapping lenses by name
3Adversarial plan/success review — adversarialGate (onb.success-plan-review) with two independent critics (commitment-traceability-critic re-traces commitments to contract terms; health-baseline-critic executes the health-scoring logic over stubAccountData); **a failed gate returns success:false before any customer contact**
4Policy-gated kickoff comms — onb.kickoff-comms-draft then the customer-comms-send breakpoint; onb.send-kickoff-comms runs only on approved===true
5Parallel tracks via ctx.parallel.map (maxConcurrency=maxParallel) — provisioning (onb.provision-plan → tenant-provisioning-approval gate → guarded onb.provision-execute), training (onb.training-track-prepare), integration (onb.integration-track-prepare); each ends in onb.verify-track with executed evidence and honest failures[]. Unknown track name throws (no default-skip); results re-keyed by name via a Map
6Milestone review (onb.milestone-review) — a routed breakpoint fires **only** when a milestone is atRisk===true, raising the policy-gated account-escalation-approval with an onb.escalation-package handoff; non-at-risk milestones auto-continue
7Go-live sign-off — routedBreakpoint go-live-sign-off (expert onboarding-manager, tags customer-support/go-live; **not** one of the three policy-gated actions); a no-go is final but the closing phases still run
8Health-score baseline (onb.health-baseline) — composes the customer-health-scoring scoring-model; not-computable sub-scores are reported, never invented
9kipAssert — onboarding-outcome, health-baseline (composite + tier), plan-review gate-outcome, and one policy-decision fact per gated action

**Inputs:** { handoff: {accountId, accountName, contractTerms:[{id,term,commitment,metric?}], productTier, stakeholders:[{name,role,email?}], signedValue?, closeDate?} (required), objectives?, stubAccountData?, repoRoot?='.', maxParallel?=3, maxFixAttempts?=2, kipEnabled?=true, kipDir?='.a5c/kip', kipModel?='sonnet' } — missing handoff/handoff.accountId/empty contractTerms throws.

**Outputs:** { success, handoffSummary, successPlan, planReviewGate, gatedActions, tracks, milestones, goLive, healthBaseline, kipFactsAsserted, artifacts, metadata } — success is true only when planReviewGate.passed, kickoff comms executed===approved, tenant provisioning executed===approved (when required), every track verified, go-live decision==='go', and healthBaseline.computed; any at-risk escalation rejection or go-live no-go yields success:false with an honest reason.

Policy-gated actions (onboarding)

Same fail-closed pattern as ticket-lifecycle: breakpointId **equals** the actionId, tags are ['policy-gated','customer-support'], the executor runs **only** on approved===true, and every decision (including skipped conditional gates and non-interactive auto-approvals) is recorded raw in outputs.gatedActions.

actionIdexpertwhenfail-closed behavior
customer-comms-sendcustomer-success-manageralways (Phase 4 kickoff comms)onb.send-kickoff-comms runs only on approved===true; rejection records the decision and the run continues with sent=false surfaced honestly
tenant-provisioning-approvalonboarding-manageralways within the provisioning track (Phase 5)onb.provision-execute runs only on approved===true; rejection records approved=false and the track verifies with provisioned=false
account-escalation-approvalcustomer-success-director**conditional** — only when a milestone review yields atRisk===true (Phase 6)escalation acted on only when approved===true; a skipped conditional gate is recorded as {required:false,...}, never omitted

Additional (non-gated) breakpoints on the surface:

  • go-live-sign-off — expert onboarding-manager, tags ['customer-support','go-live']; always raised in Phase 7.
  • onb.success-plan-review.gate-escalation — raised internally by the adversarialGate combinator on fix-budget exhaustion (expert owner); the process does not re-declare it but records it in breakpointsHit when the gate escalates.

Onboarding phase -> customer-experience seed map

The onboarding workflow composes four pre-bar seeds under `../domains/business/customer-experience/` **by name**; the seeds remain independently callable point methods.

SeedMethods usedComposed by
customer-onboardingdiscovery-assessment, onboarding-plan, training-program, success-milestonesonb.success-plan-draft (discovery/plan/milestones lenses) + onb.training-track-prepare (training-program lens)
customer-health-scoringindicator-design, scoring-model, threshold-definitionhealth-baseline-critic in the plan-review gate (executed over stubAccountData) + onb.health-baseline (composite baseline)
escalation-managementhandoff-package + communication-standardsonb.escalation-package on the at-risk path feeding account-escalation-approval
customer-journey-mappingjourney-map lensonb.success-plan-draft (milestone journey framing)

domains/business/customer-experience/customer-onboarding.js is soft-@deprecated as the e2e entrypoint (superseded by this workflow) but stays independently callable for standalone onboarding-plan drafting.

Files

agent tasks + orchestration).

onb.* Style-A agent tasks + orchestration; gated end-to-end signed-deal onboarding).

— routedBreakpoint, adversarialGate, kipRecall, kipAssert, gateFixerTask.

  • `ticket-lifecycle.js` — the flagship process (11 cst.* Style-A
  • `onboarding-lifecycle.js` — the second flagship process (12
  • Combinators: `../common-utilities/routed-gate-combinators.js`

Article source

The article body is owned directly by this record.

Related pages

No related wiki pages for this record.

Shortcuts

Open overview
Open JSON
Open graph