@hegemonart/get-design-done 1.36.2 → 1.36.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,14 +5,14 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "Get Design Done — 5-stage agent-orchestrated design pipeline with 9 connections, handoff-first workflow, bidirectional Figma write-back, 22+ specialized agents, queryable knowledge layer (intel store, dependency analysis, learnings extraction), and a self-improvement loop (reflector, frontmatter + budget feedback, global-skills layer). v1.20.0 ships the SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream, and resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) for rate-limit + 429 + context-overflow recovery. Full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows) and release automation (auto-tag + GitHub Release + release-time smoke test).",
8
- "version": "1.36.2"
8
+ "version": "1.36.3"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "get-design-done",
13
13
  "source": "./",
14
14
  "description": "Agent-orchestrated 5-stage design pipeline: Brief → Explore → Plan → Design → Verify. 22+ specialized agents, 9 connections (Figma, Refero, Preview, Storybook, Chromatic, Figma Writer, Graphify, Pinterest, Claude Design), Claude Design handoff, bidirectional Figma write-back, and a queryable intel store (.design/intel/) for dependency and learnings queries. Standalone commands: style, darkmode, compare, figma-write, graphify, handoff, analyze-dependencies, skill-manifest, extract-learnings. Embeds NNG heuristics, WCAG thresholds, typographic systems, motion framework, and anti-pattern catalog. Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows) and release automation. Optimization layer (v1.0.4.1, retroactive): gdd-router + gdd-cache-manager skills, PreToolUse budget-enforcer hook, tier-aware agent frontmatter, lazy checker gates, streaming synthesizer, /gdd:warm-cache + /gdd:optimize commands, and cost telemetry at .design/telemetry/costs.jsonl — targeting 50-70% per-task token-cost reduction with no quality-floor regression. v1.20.0 SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream at .design/telemetry/events.jsonl, resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) with rate-limit + 429 + context-overflow recovery, and TypeScript toolchain.",
15
- "version": "1.36.2",
15
+ "version": "1.36.3",
16
16
  "author": {
17
17
  "name": "hegemonart"
18
18
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "get-design-done",
3
3
  "short_name": "gdd",
4
- "version": "1.36.2",
4
+ "version": "1.36.3",
5
5
  "description": "Agent-orchestrated 5-stage design pipeline: Brief → Explore → Plan → Design → Verify. 22+ specialized agents, 9 connections (Figma, Refero, Preview, Storybook, Chromatic, Figma Writer, Graphify, Pinterest, Claude Design), handoff-first workflow via Claude Design bundles, bidirectional Figma write-back (annotations, Code Connect), queryable intel store (`.design/intel/`) for O(1) design surface lookups, and self-improvement loop (reflector agent, frontmatter + budget feedback, global-skills layer at `~/.claude/gdd/global-skills/`). Standalone commands: style, darkmode, compare, figma-write, graphify, handoff, analyze-dependencies, skill-manifest, extract-learnings, reflect, apply-reflections. Embeds NNG heuristics, WCAG thresholds, typographic systems, motion framework, and anti-pattern catalog. Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows, lint + schema + frontmatter + stale-ref + shellcheck + gitleaks + injection-scan + blocking size-budget) and release automation (auto-tag + GitHub Release + release-time smoke test). Optimization layer (v1.0.4.1, retroactive): gdd-router + gdd-cache-manager skills, PreToolUse budget-enforcer hook, tier-aware agent frontmatter, lazy checker gates, streaming synthesizer, /gdd:warm-cache + /gdd:optimize commands, and cost telemetry at .design/telemetry/costs.jsonl — targeting 50-70% per-task token-cost reduction with no quality-floor regression. v1.20.0 SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream at .design/telemetry/events.jsonl, resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) with rate-limit + 429 + context-overflow recovery, and TypeScript toolchain. v1.27.7 ships gdd-mcp (Phase 27.7): 12 read-only MCP tools for sub-3s priming. v1.28.0 (Phase 28): Foundational References Tier 2 — 5 new reference files (color-theory, composition, proportion-systems, i18n, contrast-advanced), 2 verifier i18n probes + 1 explore i18n-readiness probe, 12 additive cross-link insertions across 10 existing references, 2 orthogonal audit-scoring lens-tags (composition_alignment + i18n_readiness).",
6
6
  "author": {
7
7
  "name": "hegemonart",
package/CHANGELOG.md CHANGED
@@ -4,6 +4,26 @@ All notable changes to get-design-done are documented here. Versions follow [sem
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.36.3] - 2026-06-01
8
+
9
+ ### Phase 36.3 — Knowledge Tier-3: Conversational UI — completes Phase 36
10
+
11
+ Third and **FINAL** sub-phase of the split **Phase 36 (Knowledge Tier 3)** — completing it marks the **parent Phase 36 COMPLETE** (domain packs 36.1 + motion-tool verification 36.2 + conversational UI 36.3 all shipped). Conversational UI was zero-coverage even though it's a real surface (chatbot empty-states, voice flow design, prompt-as-UX). **No new pillar, no new runtime dependency, no new egress** (reference markdown + an agent-prompt enum addition).
12
+
13
+ ### Added
14
+
15
+ - **`reference/conversational-ui.md`** — voice-flow patterns (no-input / no-match reprompts, confirmation, human handoff), multi-turn dialogue (context carryover, slot-filling, repair), prompt-as-UX (the assistant persona/tone/boundaries as a versioned design artifact), chatbot empty-states + suggested replies, voice-first onboarding, and error recovery + accessibility (transcripts/captions). Carries a `## Detection signals` section + an `## Audit checklist`. Registered in `reference/registry.json` (`type: heuristic`, `phase: 36.3`; 149 → 150). CLI/REPL UX is out of scope this phase.
16
+ - **`agents/design-context-builder.md`** — Step 0E gains a **7th** project type `conversational` (enum 6 → 7). It routes to `design-executor` (a chat widget / voice-app card is still rendered code) **and loads `reference/conversational-ui.md`** for the interaction patterns. Detection from brief keywords (chatbot, voice, assistant, conversational) + `package.json` deps (`botpress`, `rasa`, `dialogflow`, `actions-on-google`, `ask-sdk-core`, `botframework`). The first six project types remain the Phase-34 rendered-output set; `conversational` is the Phase-36.3 interaction-surface type on the same axis.
17
+
18
+ ### Notes
19
+
20
+ - **No new runtime dependency, no new egress.** Detection is the agent matching keywords/deps; no code, no network.
21
+ - 6-manifest lockstep at **v1.36.3** + `OFF_CADENCE_VERSIONS.add('1.36.3')` + the 25 live-pinned `manifests-version.txt` baselines forward-propagated 1.36.2 → 1.36.3.
22
+ - Inventory relock: registry-diff 149 → 150, tarball golden 669 → 670 (+`reference/conversational-ui.md`). No new connection/skill/agent dir. `design-verifier.md` deliberately untouched (it is at its 700-line cap; conversational verify rides the normal web path).
23
+ - **This completes the parent Phase 36 (Knowledge Tier 3) — domain packs + motion-tool verification + conversational UI.**
24
+
25
+ ---
26
+
7
27
  ## [1.36.2] - 2026-06-01
8
28
 
9
29
  ### Phase 36.2 — Knowledge Tier-3: Motion-Tool Verification (Lottie + Rive)
package/README.md CHANGED
@@ -158,6 +158,10 @@ Four industry-specific design-pattern packs at [`reference/domains/`](reference/
158
158
 
159
159
  GDD now opens the motion **exports** a project ships. The pure, dependency-free [`validate-motion`](scripts/lib/motion/validate-motion.cjs) checks a **Lottie** JSON for frame-rate sanity, non-positive duration, embedded-asset bloat, and a perf budget (`MO-*` rules); for **Rive** `.riv` (binary) it does size + a `RIVE`-header sanity, and surfaces the state-machine graph (unreachable states, no-exit loops) when the opt-in Rive runtime is present. The [`motion-verifier`](agents/motion-verifier.md) agent runs at verify time ([`connections/lottie.md`](connections/lottie.md) / [`connections/rive.md`](connections/rive.md)) and **WARNs — never blocks** (motion is creative). **No new runtime dependency** — the Lottie player and Rive runtime are opt-in. Second sub-phase of Phase 36.
160
160
 
161
+ ### Conversational UI (v1.36.3)
162
+
163
+ [`reference/conversational-ui.md`](reference/conversational-ui.md) closes a zero-coverage surface: voice flows + chatbots. It codifies voice-flow reprompts (no-input / no-match → human handoff), multi-turn dialogue (context carryover, slot-filling, repair), **prompt-as-UX** (the assistant's persona/tone/boundaries as a versioned design artifact), chatbot empty-states + suggested replies, voice-first onboarding, and error recovery + accessibility. [`design-context-builder`](agents/design-context-builder.md) detects a `conversational` project type (brief keywords + chatbot/voice deps like `botpress` / `dialogflow` / `actions-on-google` / `ask-sdk-core`) and loads the pack into context. **No new runtime dependency.** This is the **final sub-phase of Phase 36 — which is now complete** (domain packs + motion-tool verification + conversational UI).
164
+
161
165
  ### Previous releases
162
166
 
163
167
  - **v1.26.0** — Headless Model Resolver (per-runtime tier→model map, `resolved_models` router field, per-runtime price tables, `reasoning-class` runtime-neutral alias).
@@ -218,7 +218,7 @@ Proceed to Step 0E regardless of whether Step 0D ran or was skipped.
218
218
 
219
219
  Detect the **project type** so the pipeline routes the brief to the correct executor. Reuse the Step 0C / Step 1 grep/glob idiom (file reads only, < 1 second, no skip condition).
220
220
 
221
- **Enum (6 values — D-06, the full set):** `web` (DEFAULT) · `native-ios` · `native-android` · `flutter` · `email` · `print`.
221
+ **Enum (7 values — D-06 + 36.3):** `web` (DEFAULT) · `native-ios` · `native-android` · `flutter` · `email` · `print` · `conversational`. (The first six are the Phase-34 *rendered-output* set; `conversational` is the Phase-36.3 *interaction-surface* type — a chat/voice UI is still rendered code, so it routes to `design-executor` but loads the conversational patterns.)
222
222
 
223
223
  **Detection signals + precedence** (first match wins; brief overrides — if the user explicitly says "iOS app" / "Android app" / "Flutter app" / "email" / "newsletter" / "email template" / "print" / "PDF" / "print-ready" / "brochure" / "flyer" / "poster", honor that):
224
224
 
@@ -228,10 +228,11 @@ ls *.xcodeproj Package.swift 2>/dev/null # → native-ios (when no pu
228
228
  ls build.gradle build.gradle.kts settings.gradle 2>/dev/null # → native-android (when no pubspec)
229
229
  ls **/*.mjml email/ emails/ templates/email 2>/dev/null # → email (email-template signals)
230
230
  ls **/*.print.css print/ templates/print 2>/dev/null # → print (print-output signals: a print stylesheet / print-template dir)
231
+ grep -lE '"(botpress|@botpress/|rasa|dialogflow|@google-cloud/dialogflow|actions-on-google|ask-sdk-core|botframework-webchat|@microsoft/botframework)"' package.json 2>/dev/null # → conversational (chatbot/voice-assistant deps)
231
232
  ls package.json 2>/dev/null # → web (default; also the fallback when none match)
232
233
  ```
233
234
 
234
- Precedence: an explicit brief override (the user says "email" / "newsletter" / "email template", or "print" / "PDF" / "print-ready" / "brochure" / "flyer" / "poster") wins like the other brief-overrides; otherwise `pubspec.yaml` (flutter) > `*.xcodeproj`/`Package.swift` (native-ios) > `build.gradle*`/`settings.gradle` (native-android) > `.mjml` files / an `email/` templates directory (email) > a print stylesheet (`*.print.css`) / a `print/` templates directory (print) > `package.json` / none (web — DEFAULT).
235
+ Precedence: an explicit brief override (the user says "email" / "newsletter" / "email template", or "print" / "PDF" / "print-ready" / "brochure" / "flyer" / "poster", or "chatbot" / "voice app" / "Alexa skill" / "conversational" / "assistant") wins like the other brief-overrides; otherwise `pubspec.yaml` (flutter) > `*.xcodeproj`/`Package.swift` (native-ios) > `build.gradle*`/`settings.gradle` (native-android) > `.mjml` files / an `email/` templates directory (email) > a print stylesheet (`*.print.css`) / a `print/` templates directory (print) > chatbot/voice deps (`botpress`/`rasa`/`dialogflow`/`actions-on-google`/`ask-sdk-core`/`botframework`) (conversational) > `package.json` / none (web — DEFAULT).
235
236
 
236
237
  **Routing table** (project type → executor — one row per type, trivially appendable):
237
238
 
@@ -243,10 +244,11 @@ Precedence: an explicit brief override (the user says "email" / "newsletter" / "
243
244
  | flutter | flutter-executor |
244
245
  | email | email-executor |
245
246
  | print | pdf-executor |
247
+ | conversational | design-executor (loads `reference/conversational-ui.md`) |
246
248
 
247
249
  <!-- Phase 34 output types complete: native (34.1: native-ios/native-android/flutter) + email (34.2) + print (34.3). Print is the FINAL Phase-34 output type — no further Phase-34 output types; the enum + routing table above are the full set. (34.1/34.2 kept this seam OPEN for the next type; 34.3 ties it off.) -->
248
250
 
249
- Record the detected type in DESIGN-CONTEXT.md as a `<project_type>` line (e.g. `<project_type>native-ios</project_type>`) so downstream stages route correctly. The native specifics (token→theme bridge) live in `reference/native-platforms.md`; the email specifics (table layout, inline styles, MSO/dark-mode constraints) live in `reference/email-design.md`; the print specifics (the `@page` box model, bleed/crop marks, CMYK awareness, font embedding, 300dpi raster) live in `reference/print-design.md` — do not inline any of them here.
251
+ Record the detected type in DESIGN-CONTEXT.md as a `<project_type>` line (e.g. `<project_type>native-ios</project_type>`) so downstream stages route correctly. The native specifics (token→theme bridge) live in `reference/native-platforms.md`; the email specifics (table layout, inline styles, MSO/dark-mode constraints) live in `reference/email-design.md`; the print specifics (the `@page` box model, bleed/crop marks, CMYK awareness, font embedding, 300dpi raster) live in `reference/print-design.md`; the conversational specifics (voice-flow reprompts, multi-turn dialogue, prompt-as-UX, chatbot empty-states, error recovery) live in `reference/conversational-ui.md` — do not inline any of them here.
250
252
 
251
253
  Proceed to Step 1 regardless of outcome.
252
254
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hegemonart/get-design-done",
3
- "version": "1.36.2",
3
+ "version": "1.36.3",
4
4
  "description": "A design-quality pipeline for AI coding agents: brief, plan, implement, and verify UI work against your design system.",
5
5
  "author": "Hegemon",
6
6
  "homepage": "https://github.com/hegemonart/get-design-done",
@@ -0,0 +1,110 @@
1
+ # Conversational UI Design Patterns
2
+
3
+ This pack covers conversational interfaces in two modes: **voice flows** (IVR, smart-speaker skills/actions, voice assistants) and **chatbot / text assistants** (in-app chat, support bots, LLM-backed copilots). GDD's design-context-builder loads this reference when it detects a conversational or voice project so downstream design and audit stages share a vocabulary. CLI / REPL / terminal UX is explicitly out of scope for this pack — those follow a different interaction model and have their own conventions.
4
+
5
+ The guidance below leans on established authorities: Google's Conversation Design guidelines, the Amazon Alexa Design Guide, and Nielsen Norman Group's research on chatbots and conversational interfaces.
6
+
7
+ ## Voice-flow patterns
8
+
9
+ A voice flow is more than its happy path. The happy path is the shortest successful route (user states a complete, in-scope request; system confirms and acts). Design quality lives in the branches around it.
10
+
11
+ | Branch | Trigger | Pattern |
12
+ |--------|---------|---------|
13
+ | No-input (NID) | User says nothing within the listen window | Escalating reprompts: 1st is a light nudge ("Which city?"), 2nd adds an example ("For example, say Berlin."), 3rd offers help or hands off. Never repeat the same words. |
14
+ | No-match (NM) | Speech recognized but no intent matched | Reflect what was heard, narrow the ask, give an example. After repeated NM, escalate to options or a human. |
15
+ | Confirmation | Action is risky, costly, or irreversible | See implicit vs explicit below. |
16
+ | Barge-in | User speaks over the prompt | Allow it — stop TTS immediately and listen. Disable only for legally required disclosures. |
17
+ | Hand-off | N consecutive failures (typically 2-3) | Route to a human, a visual fallback, or a clear "let's try later." Track the failure count across turns. |
18
+
19
+ **One-breath confirmation.** Confirm in a single short clause that the user can absorb in one breath: "Two tickets for Friday — booking now." Avoid reading back every slot verbatim; that is robotic and slow.
20
+
21
+ **Implicit vs explicit confirmation.**
22
+ - *Implicit* — fold the understood value into the next prompt ("Friday — what time?"). Use for low-risk, easily-reversed actions. It keeps the dialogue moving.
23
+ - *Explicit* — require a yes/no ("Send $200 to Sam — confirm?"). Reserve for irreversible, costly, or destructive actions (payments, deletes, sends).
24
+
25
+ **Failure escalation.** Each successive reprompt should add information (an example, then a menu, then a human). Three strikes is a common ceiling — after that, stop asking and offer an exit. A dead end ("Sorry, goodbye.") is a design failure.
26
+
27
+ ## Multi-turn dialogue rules
28
+
29
+ Multi-turn dialogue is where conversational UIs earn their name. The core obligation: remember context so the user speaks like a human, not a form.
30
+
31
+ - **Context carryover (anaphora).** Resolve references to prior turns. After "Weather in Paris?", the user says "What about tomorrow?" or "And Rome?" — carry the unstated slots (location, intent) forward. Failing this forces the user to repeat themselves and breaks the illusion of conversation.
32
+ - **Turn-taking.** Make it unambiguous whose turn it is. In voice, an earcon or a brief pause signals "your turn." In chat, a typing indicator signals the assistant is composing. Never leave the user unsure whether to speak/type.
33
+ - **Disambiguation.** When input matches more than one intent or entity, ask a tight either/or ("Did you mean the 9am or the 9pm flight?") rather than restarting. Offer at most 2-3 options by voice.
34
+ - **Slot-filling + validation.** Collect required slots one at a time when missing, but accept them all at once when volunteered ("Book a 7pm table for four" fills time + party size in one turn). Validate each slot against real constraints (date in the future, party size within limits) and reprompt only the invalid slot, not the whole request.
35
+ - **Repair.** Support correction mid-flow: "No, I said *four*, not *forty*." Detect the correction marker ("no", "I meant", "actually") and overwrite the targeted slot without discarding the rest of the context.
36
+ - **Don't over-ask.** Never re-confirm what is already certain. If the user said "tomorrow at noon," do not ask "what day?" again. Over-asking is the most common way a multi-turn flow feels broken.
37
+
38
+ ## Prompt-as-UX (system prompts as design artifacts)
39
+
40
+ For LLM-backed assistants, the `system-prompt` is a design artifact, not config. It defines the assistant's persona, tone, scope, and boundaries — and those ARE the user experience. Treat it accordingly.
41
+
42
+ - **Persona and voice are design decisions.** Warmth, formality, verbosity, use of humor, first-person vs neutral — these are chosen, documented, and kept consistent across every turn. A persona that drifts mid-conversation reads as broken.
43
+ - **The prompt is the spec for behavior.** What the assistant will and won't do, how it greets, how it refuses, how it asks for clarification — all of it is specified in the prompt. Downstream copy and flows must match it.
44
+ - **Version and review it like production copy.** The `system-prompt` belongs in source control, with diffs reviewed by design/content the same way UI strings are. A wording change to a refusal message is a UX change.
45
+ - **Refusal and limits messaging.** When the assistant can't or won't help, the decline should be in-voice, specific, and ideally redirect ("I can't process refunds here, but I can show you the refund form."). A blunt "I cannot do that" is a UX bug.
46
+ - **Consistency of voice.** Error states, confirmations, empty states, and refusals must all sound like the same persona. Audit them together, not in isolation.
47
+
48
+ ## Chatbot empty-states and entry
49
+
50
+ The opening message is the chatbot's most important screen. It does the work an empty form can't: it sets scope and teaches capability.
51
+
52
+ - **The opener states scope + capability.** "Hi — I can track orders, start a return, or check store hours. What do you need?" tells the user what's in bounds before they guess wrong. Vague openers ("How can I help?") invite out-of-scope requests the bot then fails.
53
+ - **Suggested-reply chips.** Offer 2-4 tappable starter prompts that double as a capability menu. They remove the cold-start guess and demonstrate the input format.
54
+ - **Discoverability of commands.** If the bot supports commands or shortcuts, surface them (a menu, a persistent "Help" affordance, or a slash-command hint). Hidden capabilities don't exist to users.
55
+ - **Avoid the blank-box-no-affordance trap.** A bare text input with a blinking cursor and no guidance is the #1 chatbot empty-state failure (NN/g). Always pair the input with scope-setting copy and/or chips.
56
+ - **Re-entry and history.** On return, remind the user where they left off or what the bot does — don't assume they remember the opener from last session.
57
+
58
+ ## Voice-first onboarding
59
+
60
+ Voice-first surfaces (smart speakers, headless assistants) onboard without a screen, which makes discoverability the central challenge.
61
+
62
+ - **Teach invocation.** Make the wake phrase / invocation name explicit early ("Just say 'Ask Acme to…'"). Users can't use what they can't name.
63
+ - **Teach capability by example.** Replace abstract menus with concrete sample utterances: "You can say 'add milk to my list' or 'what's on my list?'" The "you can say…" pattern is the canonical voice-discoverability tool.
64
+ - **Progressive disclosure.** Don't dump every feature in the first session. Reveal capabilities over time, contextually, as the user's needs surface.
65
+ - **Earcons and audio feedback.** Use short, distinct audio cues to mark state — listening, processing, success, error. Audio is the only "UI" the user has; consistent earcons replace visual affordances.
66
+ - **Confirm understanding audibly.** Because there's no screen to glance at, brief spoken confirmations carry the load that visual feedback would in a GUI.
67
+
68
+ ## Error recovery in voice flows
69
+
70
+ Recovery is the difference between a usable voice product and an abandoned one. The guiding rule: **never a dead end.**
71
+
72
+ - **Graceful degradation.** When confidence is low, narrow rather than fail — fall back from open prompt to a menu, from a menu to yes/no, from voice to a visual/text fallback if a screen is available.
73
+ - **Rapid, varied reprompts.** Reprompt quickly and change the wording each time. Repeating the identical prompt is the fastest way to frustrate.
74
+ - **Offer alternatives.** "I couldn't find that. Want me to search nearby instead?" keeps momentum and gives the user a next move.
75
+ - **Escalate to human / visual fallback.** After N failed turns, route to a person, send a link to a phone/companion screen, or switch channels. Honor explicit "talk to a person" requests immediately.
76
+ - **Accessibility.** Provide captions and transcripts for voice interactions; ensure chat is screen-reader-friendly with proper roles, focus management, and announced new messages. Don't gate critical actions behind audio-only or visual-only cues — offer both paths.
77
+
78
+ ## Detection signals
79
+
80
+ The design-context-builder classifies a project as conversational when it sees these signals.
81
+
82
+ **Keywords (in README, package name, docs, route/handler names):** chatbot, conversational, voice, assistant, dialogue, IVR, utterance, intent, skill, action, slot, prompt, agent, NLU.
83
+
84
+ **`package.json` dependencies:**
85
+
86
+ | Dependency | Platform |
87
+ |------------|----------|
88
+ | `botpress` / `@botpress/...` | Botpress conversational platform |
89
+ | `rasa` / `@rasa/...` | Rasa NLU / dialogue (often a Python sibling service) |
90
+ | `dialogflow` / `@google-cloud/dialogflow` | Google Dialogflow NLU |
91
+ | `actions-on-google` | Google Assistant actions |
92
+ | `ask-sdk-core` | Amazon Alexa skills |
93
+ | `botframework-webchat` / `@microsoft/botframework-*` | Microsoft Bot Framework |
94
+
95
+ Presence of any of these deps is a strong signal; keyword matches add weight. A `system-prompt` / persona file plus an LLM SDK also indicates a text assistant even without the platform deps above.
96
+
97
+ ## Audit checklist
98
+
99
+ 1. Every voice flow handles **no-input (NID)** and **no-match (NM)** with escalating reprompts that add help each time — never a dead end.
100
+ 2. Risky, costly, or irreversible actions use **explicit confirmation**; low-risk actions use implicit confirmation and don't over-confirm.
101
+ 3. **Barge-in** is allowed on standard prompts (TTS stops and listening resumes immediately), disabled only where legally required.
102
+ 4. Voice flows offer a **human / visual fallback after N failed turns** (typically 2-3) and honor explicit "talk to a person" requests.
103
+ 5. **Multi-turn context carries over** (anaphora resolved) so the user isn't forced to repeat slots already provided.
104
+ 6. **Slot validation** reprompts only the invalid slot and accepts multiple slots when volunteered in one turn.
105
+ 7. **Repair** is supported — corrections ("no, I said…") overwrite the targeted slot without losing surrounding context.
106
+ 8. The **`system-prompt` persona** (tone, scope, boundaries) is versioned and reviewed like production copy, and its voice is consistent across confirmations, errors, and refusals.
107
+ 9. **Refusal / limits messaging** is in-voice, specific, and redirects to an alternative rather than a blunt decline.
108
+ 10. The **chatbot opener states scope + capability** and offers suggested-reply chips; no blank-box-without-affordance entry state.
109
+ 11. **Voice-first onboarding** teaches invocation and capabilities by example ("you can say…") with consistent earcons for state.
110
+ 12. **Transcripts / captions** exist for voice, and chat is screen-reader-friendly (announced messages, focus management, dual audio/visual paths).
@@ -965,6 +965,13 @@
965
965
  "type": "heuristic",
966
966
  "phase": 36.1,
967
967
  "description": "Phase 36.1 Tier-3 domain pack — civic/government UI patterns: Section 508 + WCAG 2.1 AA hard floor, multi-language gov forms (EN/ES/zh-Hans), Plain Writing Act (grade 6-8), USWDS, session-timeout warnings, one-thing-per-page forms. Detection signals + Audit checklist for Step 0F + design-auditor."
968
+ },
969
+ {
970
+ "name": "conversational-ui",
971
+ "path": "reference/conversational-ui.md",
972
+ "type": "heuristic",
973
+ "phase": 36.3,
974
+ "description": "Phase 36.3 Tier-3 conversational-UI patterns (voice + chatbot): voice-flow no-input/no-match reprompts + confirmation + human handoff, multi-turn dialogue (context carryover, slot-filling, repair), prompt-as-UX (the assistant persona/tone/boundaries as a versioned design artifact), chatbot empty-states + suggested replies, voice-first onboarding, error recovery + accessibility (transcripts/captions). Carries Detection signals + an Audit checklist; loaded by design-context-builder for the conversational project type. CLI/REPL UX out of scope."
968
975
  }
969
976
  ]
970
977
  }