@hiver/skills 1.0.7 → 1.0.9

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.
Files changed (69) hide show
  1. package/README.md +1 -1
  2. package/collections/common/skills/discuss-problem/SKILL.md +4 -0
  3. package/collections/extension/agents/build-feature.md +2 -1
  4. package/collections/extension/agents/build-milestone.md +2 -1
  5. package/collections/extension/skills/build-component/SKILL.md +75 -1
  6. package/collections/extension/skills/build-component/palette/colors.md +76 -0
  7. package/collections/extension/skills/build-component/references/v2-components.md +100 -0
  8. package/collections/extension/skills/build-component/references/v2-usage-examples.md +23 -0
  9. package/collections/extension/skills/build-component/typography/variants.md +27 -14
  10. package/collections/mobile/skills/version-bump-up/SKILL.md +66 -0
  11. package/collections/qa-skills/README.md +103 -0
  12. package/collections/qa-skills/qa-suite-guide.html +760 -0
  13. package/collections/qa-skills/skills/hiver-explore/SKILL.md +413 -0
  14. package/collections/qa-skills/skills/hiver-explore/references/spec-template.md +204 -0
  15. package/collections/qa-skills/skills/playwright-gen/SKILL.md +280 -0
  16. package/collections/qa-skills/skills/playwright-gen/references/codegen-conventions.md +100 -0
  17. package/collections/qa-skills/skills/playwright-gen/references/step-mapping.md +137 -0
  18. package/collections/qa-skills/skills/qa-api-author/SKILL.md +204 -0
  19. package/collections/qa-skills/skills/qa-api-author/references/api-areas.md +112 -0
  20. package/collections/qa-skills/skills/qa-api-run/SKILL.md +178 -0
  21. package/collections/qa-skills/skills/qa-bugs/SKILL.md +82 -0
  22. package/collections/qa-skills/skills/qa-eval/SKILL.md +123 -0
  23. package/collections/qa-skills/skills/qa-eval/references/deterministic-checks.md +89 -0
  24. package/collections/qa-skills/skills/qa-kit/SKILL.md +228 -0
  25. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/INDEX.md +31 -0
  26. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/INDEX.md +90 -0
  27. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/account-security.md +44 -0
  28. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/apps-integrations.md +43 -0
  29. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/automate-workflows.md +65 -0
  30. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/collaborate.md +36 -0
  31. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/customer-relationships.md +20 -0
  32. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/getting-started.md +31 -0
  33. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/hiver-ai.md +79 -0
  34. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/multichannel-support.md +82 -0
  35. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/reporting-analytics.md +35 -0
  36. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/self-service.md +23 -0
  37. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/sla-policies.md +30 -0
  38. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/hig/troubleshooting.md +27 -0
  39. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/INDEX.md +45 -0
  40. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/account-security.md +13 -0
  41. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/apps-integrations.md +15 -0
  42. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/automate-workflows.md +26 -0
  43. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/collaborate.md +11 -0
  44. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/customer-relationships.md +9 -0
  45. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/getting-started.md +21 -0
  46. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/hiver-ai.md +13 -0
  47. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/identity-access.md +23 -0
  48. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/multichannel-support.md +47 -0
  49. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/reporting-analytics.md +13 -0
  50. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/self-service.md +11 -0
  51. package/collections/qa-skills/skills/qa-kit/knowledge-base/hiver/omni/sla-policies.md +12 -0
  52. package/collections/qa-skills/skills/qa-kit/references/clickup-ticket.md +163 -0
  53. package/collections/qa-skills/skills/qa-kit/references/eval.md +117 -0
  54. package/collections/qa-skills/skills/qa-kit/references/flow-capture.md +147 -0
  55. package/collections/qa-skills/skills/qa-kit/references/handoff-contract.md +159 -0
  56. package/collections/qa-skills/skills/qa-kit/references/hiver-context.md +99 -0
  57. package/collections/qa-skills/skills/qa-kit/references/tracker-format.md +123 -0
  58. package/collections/qa-skills/skills/qa-kit/references/triage-guide.md +105 -0
  59. package/collections/qa-skills/skills/qa-ui-author/SKILL.md +208 -0
  60. package/collections/qa-skills/skills/qa-ui-author/references/test-areas.md +132 -0
  61. package/collections/qa-skills/skills/qa-ui-run/SKILL.md +183 -0
  62. package/collections/web/agents/build-feature.md +2 -2
  63. package/collections/web/agents/build-milestone.md +2 -2
  64. package/collections/web/skills/build-component/SKILL.md +54 -13
  65. package/collections/web/skills/build-component/palette/colors.md +76 -0
  66. package/collections/web/skills/build-component/references/v2-components.md +100 -0
  67. package/collections/web/skills/build-component/references/v2-usage-examples.md +23 -0
  68. package/collections/web/skills/build-component/typography/variants.md +27 -14
  69. package/package.json +1 -1
@@ -0,0 +1,11 @@
1
+ # Omni · Collaborate With Your Team
2
+
3
+ > Segment `/collaboration?product=hiver-omni` — 3 articles (note the Omni slug is `/collaboration`).
4
+ > Mechanics match HIG — see [../hig/collaborate.md](../hig/collaborate.md).
5
+
6
+ **Articles:** Collaborating on conversations in Hiver Omni · Collaborate using Shared Notes · Collaborate on email responses using Shared Drafts
7
+
8
+ - **Shared Notes & @mentions** and **Shared Drafts** work as in HIG, across Omni conversations/channels.
9
+ - **Roles:** Both. **Connected:** notifications, Collaboration Space, templates.
10
+ - **Note:** the Omni collaborate section surfaced **no Approvals sub-category** (present in HIG). Whether **Approvals** is available in Omni is **(unverified)** — confirm via `hiver-explore`.
11
+ - **Source:** https://help.hiverhq.com/collaboration/collaborate-on-conversations-using-shared-notes?product=hiver-omni · https://help.hiverhq.com/collaboration/shared-drafts?product=hiver-omni
@@ -0,0 +1,9 @@
1
+ # Omni · Manage Customer Relationships
2
+
3
+ > Segment `/manage-customer-relationships?product=hiver-omni` — 1 sub-category (Manage customers 1) + CSAT, 2 articles.
4
+ > Mechanics match HIG — see [../hig/customer-relationships.md](../hig/customer-relationships.md).
5
+
6
+ - **Manage customers** — view/manage customer details (contact directory) in Omni, enriched by CRM apps.
7
+ - **CSAT** — customer satisfaction surveys + CSAT reports; delivered in replies/after close; feeds Analytics.
8
+ - **Roles:** Admin (configure); Agent (view/manual CSAT). **Connected:** CRM apps, CSAT report, replies.
9
+ - **Source:** https://help.hiverhq.com/manage-customer-relationships?product=hiver-omni · https://help.hiverhq.com/manage-customer-relationships/using-customer-satisfaction-surveys-csat
@@ -0,0 +1,21 @@
1
+ # Omni · Getting Started
2
+
3
+ > Segment `/getting-started?product=hiver-omni` — 5 sub-categories, 16 articles.
4
+ > **Provenance:** Omni taxonomy captured live from the Hiver Omni help view (Jul 2026); detail from
5
+ > the search index. **(unverified)** items need a `hiver-explore` live pass.
6
+ > Shared mechanics are documented in [../hig/getting-started.md](../hig/getting-started.md); this file
7
+ > covers the **Omni differences**.
8
+
9
+ **Sub-categories:** Setting up Hiver Omni (3 cats, 11) · First steps (5)
10
+
11
+ ### Setting up Hiver Omni (key difference vs HIG)
12
+ - **What it is:** Omni onboarding can connect **either a Gmail or an Outlook (Microsoft) email client** — HIG is Gmail-only. Dedicated guides exist for each, including an Outlook step-by-step, connecting an Outlook shared mailbox, and **Microsoft Admin Center approval**.
13
+ - **Key concepts:** connect Gmail **or** Outlook, Shared Mailbox connection, Microsoft Admin Center approval (Outlook), mailbox permissions/scopes, adding team members & roles, `?product=hiver-omni` doc marker.
14
+ - **Roles:** Admin (connect mailbox, approve in Microsoft Admin Center, add members); Agent (onboarded after).
15
+ - **Connected features:** Shared Inbox, team members & roles, mailbox permissions, all Omni channels.
16
+ - **Source:** https://help.hiverhq.com/setting-up-hiver-omni?product=hiver-omni · https://help.hiverhq.com/getting-started/setting-up-hiver-for-outlook-a-step-by-step-guide?product=hiver-omni · https://help.hiverhq.com/for-outlook/connecting-an-outlook-shared-mailbox-to-hiver?product=hiver-omni · https://help.hiverhq.com/for-outlook/approve-hiver-microsoft-admin?product=hiver-omni
17
+
18
+ ### First steps
19
+ - **What it is:** Post-connect setup — sender ID, adding team members & managing roles in Omni, My Settings, mobile app.
20
+ - **Roles:** Admin (members/roles); both (My Settings). **Connected:** Shared Inbox, roles, My Settings.
21
+ - **Source:** https://help.hiverhq.com/first-steps/adding-team-members-and-managing-roles-in-hiver-omni?product=hiver-omni · https://help.hiverhq.com/first-steps/my-settings-in-hiver?product=hiver-omni
@@ -0,0 +1,13 @@
1
+ # Omni · Hiver AI
2
+
3
+ > Segment `/ai-features?product=hiver-omni` — 2 sub-categories (AI Agents 3, AI Copilot 4), 7 articles.
4
+ > (Note the Omni slug is `/ai-features`.) Feature detail matches HIG — see
5
+ > [../hig/hiver-ai.md](../hig/hiver-ai.md). Omni surfaces a smaller documented set than HIG.
6
+
7
+ **Sub-categories:** AI Agents (3) · AI Copilot (4)
8
+
9
+ - **AI Copilot** — Ask AI (grounded in knowledge sources), AI Compose, AI Summarizer, suggested replies. See [../hig/hiver-ai.md](../hig/hiver-ai.md#ai-copilot).
10
+ - **AI Agents** — autonomous classify/prioritize/route; AI Suggested Responses, AI Tagging, AI Thank-you Detector. See [../hig/hiver-ai.md](../hig/hiver-ai.md#ai-agents-autonomous).
11
+ - **AI in Automations** — **AI Tasks** and AI Extract are exposed in Omni automations (see [omni/automate-workflows.md](automate-workflows.md)).
12
+ - **Roles:** Admin (enable/config); Agent (assistive use). All gated by the Hiver AI add-on.
13
+ - **Source:** https://help.hiverhq.com/ai-features?product=hiver-omni · https://help.hiverhq.com/ai-copilot/introducing-ask-ai?product=hiver-omni
@@ -0,0 +1,23 @@
1
+ # Omni · Identity & Access (Omni-only segment)
2
+
3
+ > Segment `/identity-access?product=hiver-omni` — 2 sub-categories, 15 articles.
4
+ > **This segment does not exist in the HIG product** — it's an Omni/enterprise differentiator for
5
+ > controlling how users log in and are provisioned. Taxonomy captured live (Jul 2026); provider
6
+ > breadth from the live nav, detail from the search index (thin — much is **(unverified)**, resolve
7
+ > via `hiver-explore`).
8
+
9
+ **Sub-categories:** Single Sign-On (SSO) — 7 categories, 14 articles · User provisioning (SCIM) — 1 article
10
+
11
+ ### Single Sign-On (SSO)
12
+ - **What it is:** One login for the team via an existing **identity provider (IdP)** — no separate Hiver passwords. The **7 sub-categories** strongly imply multiple IdPs (e.g. Okta, Google, Azure AD/Entra, OneLogin, etc.), each with its own SAML setup guide. Only the Okta path was grounded in search; the specific other IdPs and the generic SAML flow are **(unverified)** — enumerate them live.
13
+ - **Key concepts:** SSO, IdP, SAML, no separate passwords, per-IdP configuration, enforce-SSO.
14
+ - **Roles:** Admin (configures SSO). **Connected:** User management, roles & permissions, SCIM.
15
+ - **Source:** https://help.hiverhq.com/identity-access?product=hiver-omni · https://help.hiverhq.com/okta-integration/configuration-of-okta-integration
16
+
17
+ ### User provisioning (SCIM)
18
+ - **What it is:** Automatically add, update, and remove Hiver users through your directory provider (e.g. Okta) — directory-driven user lifecycle so joiners/movers/leavers sync into Hiver without manual admin.
19
+ - **Key concepts:** SCIM, directory provider, auto create/update/deactivate users, provisioning.
20
+ - **Roles:** Admin. **Connected:** SSO, user/account management, roles & permissions.
21
+ - **Source:** https://help.hiverhq.com/identity-access?product=hiver-omni · https://help.hiverhq.com/okta-integration/configuration-of-okta-integration
22
+
23
+ > **QA note:** SSO/SCIM is high-risk enterprise surface — test enforce-SSO, IdP-initiated vs SP-initiated login, deprovisioning (a removed directory user must lose Hiver access), role mapping, and fallback/lockout paths. Confirm which IdPs are actually supported via `hiver-explore` before scoping.
@@ -0,0 +1,47 @@
1
+ # Omni · Offer Multi-Channel Support
2
+
3
+ > Segment `/offer-multi-channel-support?product=hiver-omni` — 8 sub-categories, 24 articles.
4
+ > **This is where Omni diverges most from HIG.** Taxonomy captured live (Jul 2026); detail from the
5
+ > search index. **(unverified)** items need a `hiver-explore` live pass.
6
+
7
+ **Sub-categories & items:** Manage emails (2 cats, 9) · Manage live chat (4) · **Manage Slack messages (5)** · Manage voice calls (2) · **Manage Tickets (1)** · **Create Web Forms (1)** · Using omnichannel search · Managing work with **My Work**
8
+
9
+ ### Manage emails
10
+ - Same core email mechanics as HIG — assignment, status (Open/Pending/Closed), tags, views, split, templates, managing emails. See [../hig/multichannel-support.md](../hig/multichannel-support.md#manage-emails). Omni email works on **Gmail or Outlook** clients.
11
+ - **Source:** https://help.hiverhq.com/working-with-emails/manage-emails-in-hiver-shared-inbox?product=hiver-omni
12
+
13
+ ### Manage live chat messages
14
+ - Real-time chat channel — embeddable widget, Chat Inbox, chat auto-assignment, chatbots, chat templates, chat CSAT, collision alerts. See [../hig/multichannel-support.md](../hig/multichannel-support.md#manage-live-chat-messages).
15
+ - **Roles:** Admin (setup); Agent (reply). **Source:** https://help.hiverhq.com/hiver-chat/setting-up-live-chat
16
+
17
+ ### Manage Slack messages (Omni-only channel)
18
+ - **What it is:** In Omni, **Slack is a support channel** — handle Slack activity from within Hiver (hub at `/slack?product=hiver-omni`). Distinct from the Slack *notification* integration (which only pushes Hiver events into Slack). Exact channel setup steps **(unverified)**.
19
+ - **Key concepts:** Slack channel vs Slack notification integration, Slack Inbox.
20
+ - **Roles:** Admin (setup **— unverified**); Agent (handle). **Connected:** Shared Inbox, Slack analytics, automations.
21
+ - **Source:** https://help.hiverhq.com/slack?product=hiver-omni
22
+
23
+ ### Manage voice calls (Voice Inbox — Aircall)
24
+ - **What it is:** Admins create a **Voice Inbox** (powered by Aircall) to manage customer calls like a shared inbox; Hiver logs incoming, outgoing, missed calls and voicemails, with Voice Inbox views and settings.
25
+ - **Roles:** Admin (create/configure); Agent (handle/log calls). **Connected:** Aircall, Views, analytics.
26
+ - **Source:** https://help.hiverhq.com/voice-channel/setup-a-voice-inbox · https://help.hiverhq.com/voice-channel/voice-inbox-views-and-call-management
27
+
28
+ ### Manage Tickets (Omni-only)
29
+ - **What it is:** Create and manage **tickets** in Omni. Incoming conversations across channels behave as tickets — land in **Unassigned**, get assigned (manual/auto), carry status (Open/Pending/Closed), and are filterable as Views. A distinct ticket-creation article was thin in search — **(depth unverified)** but the "Manage Tickets" area exists live.
30
+ - **Key concepts:** ticket, Unassigned/Mine/Team/Pending/Closed, assignee, status, auto-assignment.
31
+ - **Roles:** Both. **Connected:** Shared Inbox, Views, auto-assignment, automations, SLA.
32
+ - **Source:** https://help.hiverhq.com/offer-multi-channel-support?product=hiver-omni (Manage Tickets)
33
+
34
+ ### Create Web Forms (Omni-only)
35
+ - **What it is:** Build **web forms** to collect customer details and requests, feeding conversations/tickets into Hiver. Exists live in the Omni nav; a dedicated article was not grounded in search — **(depth unverified)**. Related self-service intake: Customer Portal.
36
+ - **Key concepts:** web form, request intake, custom fields, form → ticket.
37
+ - **Roles:** Admin (build form); customers (submit). **Connected:** Tickets, Customer Portal, custom fields.
38
+ - **Source:** https://help.hiverhq.com/offer-multi-channel-support?product=hiver-omni (Create Web Forms)
39
+
40
+ ### Omnichannel search & My Work (Omni-only surfaces)
41
+ - **Omnichannel search** — search/locate conversations **across all channels** (email, chat, Slack, voice) in one interface; filter by assignee/tags/status, save as Views.
42
+ - **My Work** — a unified personal work surface aggregating what's assigned to you across channels (related to the **Mine** view + My Settings). Dedicated article thin in search — **(depth unverified)**.
43
+ - **Roles:** Agent (personal). **Connected:** Views, all channels, notifications.
44
+ - **Source:** https://help.hiverhq.com/offer-multi-channel-support?product=hiver-omni (Using omnichannel search · Managing work with My Work)
45
+
46
+ ### Manage WhatsApp
47
+ - WhatsApp channel (WhatsApp Inbox; Meta Developer Portal setup). See [../hig/multichannel-support.md](../hig/multichannel-support.md#manage-whatsapp-messages). **Source:** https://help.hiverhq.com/whatsapp-channel/setup-your-whatsapp-inbox
@@ -0,0 +1,13 @@
1
+ # Omni · Reporting & Analytics
2
+
3
+ > Segment `/reporting-and-analytics?product=hiver-omni` — 3 sub-categories, 11 articles.
4
+ > Omni adds **per-channel analytics**. Core mechanics match HIG — see
5
+ > [../hig/reporting-analytics.md](../hig/reporting-analytics.md).
6
+
7
+ **Sub-categories:** Slack analytics (1) · Email analytics (4) · Chat analytics (3) · + overview, Custom dashboards, FAQs
8
+
9
+ - **Per-channel analytics (Omni difference):** separate **Slack analytics**, **Email analytics**, and **Chat analytics** — vs HIG's email-only analytics + live-chat. Track workload/performance per channel.
10
+ - **Custom Dashboards** — monitor across inboxes; publish read-only links. (As in HIG, dashboards historically cover email inboxes — verify chat/Slack inclusion in Omni via `hiver-explore`.)
11
+ - **Report types** — Conversations, Users, Tags, Contacts, SLA, CSAT, Sentiment; CSV export (plan-dependent columns; scheduled exports Enterprise-only).
12
+ - **Roles:** Admin. **Connected:** all channels, Tags, SLA, CSAT, AI Sentiment.
13
+ - **Source:** https://help.hiverhq.com/reporting-and-analytics?product=hiver-omni · https://help.hiverhq.com/reporting-analytics/custom-dashboards
@@ -0,0 +1,11 @@
1
+ # Omni · Enable Self-Service
2
+
3
+ > Segment `/enable-self-service?product=hiver-omni` — 2 sub-categories, 5 articles.
4
+ > Mechanics match HIG — see [../hig/self-service.md](../hig/self-service.md).
5
+
6
+ **Sub-categories:** Help Center (4) · Customer Portal (1)
7
+
8
+ - **Help Center** — publish customer-facing help articles/FAQs; articles can surface in the Live Chat widget and feed Ask AI knowledge sources.
9
+ - **Customer Portal** — web self-service space where customers submit and track requests (related to Omni **Web Forms** and **Tickets**).
10
+ - **Roles:** Admin (manage). **Connected:** Live Chat, Ask AI, Web Forms, Tickets.
11
+ - **Source:** https://help.hiverhq.com/knowledge-base/setting-up-your-knowledge-base · https://help.hiverhq.com/customer-portal/how-to-set-up-a-customer-portal-in-hiver
@@ -0,0 +1,12 @@
1
+ # Omni · Manage SLA Policies
2
+
3
+ > Segment `/manage-sla-policies?product=hiver-omni` — 3 articles.
4
+ > Mechanics match HIG — see [../hig/sla-policies.md](../hig/sla-policies.md). Omni applies SLAs across
5
+ > its channels (email, chat, voice, Slack), not email only.
6
+
7
+ **Articles:** Creating SLA Policies · Monitoring and managing SLAs · How SLA timers and breach alerts work (Agent view)
8
+
9
+ - **What it is:** SLA policies define response/resolution targets; timers and breach alerts show on conversations; Overdue/Due Soon views surface at-risk items. In Omni these apply across channels.
10
+ - **Roles:** Admin (create/manage/permissions); Agent (sees timers/alerts).
11
+ - **Connected features:** Business Hours, Automations (escalation), Views, SLA report, all channels.
12
+ - **Source:** https://help.hiverhq.com/working-with-slas/creating-sla-policies · https://help.hiverhq.com/manage-sla-policies?product=hiver-omni
@@ -0,0 +1,163 @@
1
+ # ClickUp Bug Ticket Template
2
+
3
+ Use this template when generating bug tickets for a confirmed bug. **Every bug ticket must carry its
4
+ screenshot/evidence** — a bug without visual evidence is not ready to file.
5
+
6
+ ## How to file (two modes)
7
+
8
+ **Preferred — create the ticket and attach the screenshot automatically (ClickUp MCP connected):**
9
+
10
+ 1. Check the ClickUp MCP is available (search for `clickup_*` tools; a quick
11
+ `clickup_get_workspace_hierarchy` confirms the connection). If it isn't, use the fallback below.
12
+ 2. Confirm the target **List** with the user once (e.g. "the Bugs list in the QA space") — don't
13
+ guess where tickets go.
14
+ 3. Create the task with `clickup_create_task` using the fields in the template below (name =
15
+ `[TC ID] — [Test Case Name]`, description = the body, priority, tags/labels).
16
+ 4. **Attach the screenshot(s)** to the created task with `clickup_attach_task_file`, passing the
17
+ screenshot file path(s) captured during testing. Do this for **every** ❌/⚠️ bug.
18
+ 5. Report the created task URL back to the user, and note in the tracker: Status → `Bug`, Notes →
19
+ the ClickUp link.
20
+
21
+ **Fallback — copy-paste (ClickUp MCP not connected):** generate one markdown code block per bug so
22
+ the user can paste it into ClickUp, and **explicitly tell them to attach the listed screenshot
23
+ file(s)** to the ticket after pasting. List the exact file paths in the Screenshots section so they
24
+ know what to drag in.
25
+
26
+ ---
27
+
28
+ ## Template
29
+
30
+ ```markdown
31
+ ## Bug: [TC ID] — [Test Case Name]
32
+
33
+ **Priority:** [P0 / P1 / P2]
34
+ **Environment:** Hiver Extension v[version] | Gmail | Plan: [HIG / Omni / Both]
35
+ **SM:** [SM name used during testing]
36
+ **Assignee:** [leave blank — QA to fill]
37
+ **Labels:** bug, [feature-area]
38
+
39
+ ---
40
+
41
+ ### Summary
42
+ [One sentence: what fails and what the user sees. Example: "When admin saves the CRM sync
43
+ configuration with Salesforce, the success message does not appear and the modal stays open."]
44
+
45
+ ---
46
+
47
+ ### Steps to Reproduce
48
+
49
+ 1. [Exact step — name the button, field, or menu path]
50
+ 2. [Continue until the bug is triggered]
51
+ 3. [Be specific enough that a dev can reproduce without guessing]
52
+
53
+ **Test Data used:** [any specific values, account emails, field values, etc.]
54
+
55
+ ---
56
+
57
+ ### Expected Behaviour
58
+ [Copy from the Expected Result column of the test case. Number each expected outcome.]
59
+
60
+ ---
61
+
62
+ ### Actual Behaviour
63
+ [Copy from the "Initial Behaviour – Testing 1" column. Describe exactly what happened: exact
64
+ error text, what was visible, what was missing, what state the UI ended up in.]
65
+
66
+ ---
67
+
68
+ ### Screenshots / Evidence
69
+ **Required.** List the screenshot file path(s) captured during testing — these get **attached to
70
+ the ClickUp ticket** (via `clickup_attach_task_file` in the preferred flow, or dragged in manually
71
+ in the fallback). For UI/design bugs attach the screenshot of the failing state (design bugs:
72
+ attach the Figma-vs-build comparison); for API bugs attach the request/response evidence
73
+ (a saved response snippet or screenshot). If no screenshot was captured, re-run the case to capture
74
+ the bug before filing — don't file a bug without evidence.
75
+
76
+ ---
77
+
78
+ ### Additional Context
79
+ [Any relevant spec section, system rule, or Figma node this relates to. Example: "Spec states
80
+ 'On failure: Error displayed with specific reason. Admin can retry.' — error is not displayed."]
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Priority Guide for Bugs
86
+
87
+ | Priority | When to use |
88
+ |---|---|
89
+ | P0 | Core functionality is broken. Feature cannot be used. Blocks release. |
90
+ | P1 | Feature works but with significant issue. Workaround exists. Should fix before release. |
91
+ | P2 | Minor issue, cosmetic, or edge case. Can be deferred. |
92
+
93
+ ## Labels to add
94
+
95
+ Always add: `bug`
96
+
97
+ Add feature-area label based on what section the TC is in:
98
+ - Section A → `admin-config`
99
+ - Section B → `agent-experience`
100
+ - Section C → `[feature-specific]` (e.g. `crm-sync`, `automation`, `app-actions`)
101
+ - Section D → `analytics`
102
+ - Section E → `regression`
103
+
104
+ ## Example Ticket
105
+
106
+ ```markdown
107
+ ## Bug: A-04 — Admin saves CRM sync config but success message does not appear
108
+
109
+ **Priority:** P0
110
+ **Environment:** Hiver Extension v7.5.6 | Gmail | Plan: HIG
111
+ **SM:** test-support-sm
112
+ **Assignee:**
113
+ **Labels:** bug, admin-config, crm-sync
114
+
115
+ ---
116
+
117
+ ### Summary
118
+ When admin completes the Salesforce CRM sync setup and clicks Save, the success toast is not
119
+ shown and the modal remains open. The Custom Object is created in the background, but admin
120
+ receives no confirmation.
121
+
122
+ ---
123
+
124
+ ### Steps to Reproduce
125
+
126
+ 1. Log in to Gmail with admin account (tony@test.com)
127
+ 2. Go to Settings → Integrations → Custom Objects
128
+ 3. Click "Create Custom Object"
129
+ 4. Enter CO name: "Test CRM Object"
130
+ 5. Select "Salesforce" as the import source
131
+ 6. Complete Salesforce OAuth (use test Salesforce account)
132
+ 7. Select record type: Contacts
133
+ 8. Select 3 fields: Name, Email, Company
134
+ 9. Click "Save"
135
+
136
+ **Test Data used:** Salesforce test account: sf-test@hiver.com | 3 fields selected
137
+
138
+ ---
139
+
140
+ ### Expected Behaviour
141
+ 1. Success toast appears: "Custom Object created successfully"
142
+ 2. Modal closes
143
+ 3. New Custom Object appears in the Custom Objects list
144
+
145
+ ---
146
+
147
+ ### Actual Behaviour
148
+ - Modal remained open after clicking Save
149
+ - No success or error message appeared
150
+ - After refreshing the page, the Custom Object was visible in the list (created in background)
151
+ - No way for admin to know the save succeeded without manually refreshing
152
+
153
+ ---
154
+
155
+ ### Screenshots / Evidence
156
+ screenshot-A04-step9.png
157
+
158
+ ---
159
+
160
+ ### Additional Context
161
+ Spec states: "On success: Custom Object is ready to use." and the test plan notes the success
162
+ message should be visible. The object IS created but the confirmation UI is missing.
163
+ ```
@@ -0,0 +1,117 @@
1
+ # Output-Quality Eval — step records, rubrics, and the qa-eval judge
2
+
3
+ **Phase 1 foundation.** "Performance" in this suite means **the quality/correctness of the output an
4
+ agent produced**, NOT how fast it ran. This file defines how each agent records what it produced and
5
+ how `qa-eval` grades it, so that when the workflow produces a bad result we know **exactly which agent
6
+ produced it**.
7
+
8
+ ---
9
+
10
+ ## 1. Step record — what each agent writes
11
+
12
+ When an agent finishes an action (a phase that produces an artefact or a decision), it appends a step
13
+ record at `<run>/steps/<skill>-<phase>.json`:
14
+
15
+ ```json
16
+ {
17
+ "run_id": "hiver-notes-20260709-1530",
18
+ "skill": "qa-ui-author",
19
+ "phase": "tracker",
20
+ "input": { "spec": "spec.md", "handoff": "handoff.json", "effort": "standard" },
21
+ "output": { "artifact": "tracker.xlsx", "summary": "38 cases A12/B8/C14/D4" },
22
+ "self_check": { "passed": true, "notes": "no unfilled placeholders; all sections present" },
23
+ "verdict": null
24
+ }
25
+ ```
26
+
27
+ - `output.artifact` points at the real file the judge will open.
28
+ - `self_check` is a **hint from the agent about itself** — never the verdict.
29
+ - `verdict` is left `null`. **Only `qa-eval` fills it.** An agent does not grade its own work as truth.
30
+
31
+ ### Step record vs action log — two different things
32
+ There are **two** trails per agent, and they answer different questions:
33
+ - **Step record** (`steps/<skill>-<phase>.json`, above) = *what the agent produced* — the output
34
+ artefact + summary. This is what `qa-eval` grades.
35
+ - **Action log** (`logs/<skill>.jsonl`) = *what the agent did* — one appended line per meaningful
36
+ action (tool called, page navigated, script run, decision made, file written):
37
+ `{"ts":"<iso>","skill":"qa-ui-run","action":"click","detail":"Add-note trigger, TC-14"}`.
38
+ This is the forensic trace. When `qa-eval` returns a FAIL, the action log is where you read
39
+ *why* it broke — the exact action before things went wrong.
40
+
41
+ ---
42
+
43
+ ## 2. Rubrics — what "good output" means, per agent
44
+
45
+ Rubrics live in this file so all agents share one definition. Each rubric item is tagged **[B]locking**
46
+ (its violation → FAIL) or **[Q]uality** (its violation → at most DEGRADED).
47
+
48
+ | Agent | Judged artefact | Rubric |
49
+ |---|---|---|
50
+ | **hiver-explore** | `spec.md` | [B] no unfilled `<placeholders>` · [B] every claim tagged [D]/[L] · [Q] selectors captured · [Q] doc-vs-live noted |
51
+ | **qa-kit** | `handoff.json` triage | [B] classification matches the diff · [B] product (HIG/Omni) set · [Q] impacted services listed · [Q] key risks surfaced |
52
+ | **qa-ui-author** | `tracker.xlsx` | [B] matches `tracker-format.md` columns · [B] zero unfilled placeholders · [B] every case has Priority + Expected · [Q] covers areas A–D for the feature · [Q] case count fits effort · [Q] preconditions name SM + extension version |
53
+ | **qa-api-author** | `tracker.xlsx` | [B] API column block present + correct · [B] each case has method/endpoint/expected status · [Q] auth + error-contract cases present · [Q] count fits effort |
54
+ | **qa-ui-run** | tracker Testing-1 + screenshots | [B] every non-⏭️ case has a Testing-1 verdict · [B] no case silently dropped · [B] a screenshot exists for each ❌/⚠️ · [Q] observations are concrete, not vague |
55
+ | **qa-api-run** | tracker results | [B] ran against staging (not prod) · [B] status+body recorded per executed case · [B] destructive calls were gated · [Q] response snippets included |
56
+ | **qa-bugs** | ClickUp ticket | [B] repro + expected + actual present · [B] maps to a real failing TC · [B] screenshot/evidence attached · [Q] priority + labels set |
57
+ | **playwright-gen** | spec + run result | [B] spec compiles and runs · [B] no hallucinated page-object methods · [Q] assertions map to Expected · [Q] self-heal attempts logged with reasons |
58
+
59
+ Feature-specific coverage (the [Q] "covers the feature" items) is judged against the `spec.md` /
60
+ handoff scope, not a fixed list.
61
+
62
+ ---
63
+
64
+ ## 3. Verdicts — PASS / DEGRADED / FAIL
65
+
66
+ `qa-eval` returns exactly one verdict per step, judging the **output artefact** against the rubric:
67
+
68
+ - **PASS** — every [B] item satisfied and most [Q] items too. The output is correct and usable
69
+ downstream as-is.
70
+ - **DEGRADED** — every [B] item satisfied, but one or more [Q] items missed. The output is **usable
71
+ but weaker than it should be** (e.g. vague observations, a thin risk register, a missing P2 edge
72
+ case). Downstream can proceed; the gap is noted for improvement.
73
+ - **FAIL** — **one or more [B] (blocking) items violated.** The output is missing, malformed, or wrong
74
+ in a way that makes it unsound to build on. Examples:
75
+ - a tracker missing required columns, or with unfilled `<placeholders>`
76
+ - execution results where cases have **no recorded verdict** (we don't actually know if they passed)
77
+ - a triage that **misclassified** the change (UI vs API)
78
+ - a bug ticket with no reproduction steps or no evidence
79
+ - a generated spec that **doesn't compile / run**, or that calls page-object methods that don't exist
80
+
81
+ FAIL is about the **deliverable being unsound** — not about a crash or a slow run.
82
+
83
+ ### FAIL policy: **warn and continue**
84
+ A FAIL does **not** halt the pipeline. `qa-eval` flags it loudly in the report and the human decides
85
+ whether to re-run that stage, patch by hand, or accept it. Rationale: the pipeline is human-supervised;
86
+ a false-FAIL should never block a QA who can see the artefact is actually fine. (This policy is
87
+ configurable later; for now: warn, never block.)
88
+
89
+ ---
90
+
91
+ ## 4. qa-eval — the judge
92
+
93
+ - **Runs automatically at the end of every pipeline** (after the last agent), and can also be invoked
94
+ on demand.
95
+ - Resolves the run via `.current-run`, reads every `steps/*.json`, opens each referenced artefact, and
96
+ grades it against its rubric.
97
+ - **Independence:** the judge is a separate agent from the one being judged; it re-derives the verdict
98
+ from the artefact itself, using `self_check` only as a hint to double-check.
99
+ - **Two check types:**
100
+ - **Deterministic** (a small script, not the model): placeholder scan, tracker column conformance,
101
+ case-count vs effort, "does the spec compile/run", screenshot-exists. Exact and cheap.
102
+ - **Judgement** (LLM-as-judge): classification correctness, coverage adequacy, observation quality,
103
+ assertion↔Expected mapping. Model reserved for the subjective calls.
104
+ - **Output:** `<run>/trace/report.md` — a per-agent table (agent · phase · verdict · defect) plus a
105
+ rollup naming the **first FAIL** as where the workflow's output quality broke.
106
+
107
+ Example report:
108
+ ```
109
+ Run hiver-notes-20260709-1530 — output quality
110
+ hiver-explore spec PASS
111
+ qa-kit triage PASS
112
+ qa-ui-author tracker PASS
113
+ qa-ui-run execute FAIL 6/38 cases have no Testing-1 verdict ← broke here
114
+ qa-bugs tickets DEGRADED ticket TC-14 missing labels
115
+ Rollup: output quality broke at qa-ui-run (execute). Missing verdicts: TC-14,17,19,22,30,33.
116
+ Policy: warn-and-continue — pipeline was not halted.
117
+ ```
@@ -0,0 +1,147 @@
1
+ # flow-capture — API tests from real UI user flows
2
+
3
+ **What this is.** An opt-in add-on that turns a **round-1 UI user-flow run** into **api-shield API
4
+ tests**. While the UI flow is exercised in the browser, the real API traffic it fires is captured,
5
+ cleaned, and — only after a human approves — turned into a draft PR on the api-shield framework.
6
+
7
+ This add-on is used by two skills:
8
+ - **`qa-ui-run`** — captures traffic during its browser first pass (Phase 5).
9
+ - **`qa-api-run`** — turns an approved recording into api-shield tests + a draft PR.
10
+
11
+ It exists because the round-1 click-through already drives the real app; the traffic it produces is
12
+ ground-truth for the API contract (real payload + real response) that we would otherwise have to
13
+ guess. See also `hiver-context.md` (Hiver concepts) and `tracker-format.md` (the API column block).
14
+
15
+ ---
16
+
17
+ ## Repos involved (keep these straight)
18
+
19
+ | Purpose | Repo | Local clone | Branch |
20
+ |---|---|---|---|
21
+ | UI user-flow automation (the *source* of the traffic) | `GrexIt/playwright-hig-automation` | `~/Documents/poc-playwright` | `feature/remblebee` |
22
+ | API test framework (where generated tests + PR land) | api-shield | `~/Documents/api-s.h.i.e.l.d` | a **new** branch per flow, e.g. `qa/<flow>-api-tests` |
23
+
24
+ The api-shield PR is a **separate branch on the api-shield repo** — it is *not* pushed to
25
+ `feature/remblebee`. `feature/remblebee` is only the UI-flow source.
26
+
27
+ ---
28
+
29
+ ## Pipeline and the two human gates
30
+
31
+ ```
32
+ STAGE 1 — CAPTURE (qa-ui-run Phase 5, opt-in)
33
+ Run the UI user flow → capture network via read_network_requests → tag each request with the
34
+ UI action that fired it → normalize → emit qa-output/<feature>/flow-recording-<date>.json
35
+
36
+ ── GATE A ── the UI flow must have PASSED Testing 1 (✅). A ❌/⚠️ flow is NOT eligible —
37
+ we never codify a broken flow as an API baseline.
38
+
39
+ ── GATE B ── a human reads the recorded flow (endpoints, payloads, responses, in order)
40
+ and confirms the behaviour is correct.
41
+
42
+ STAGE 2 — GENERATE (qa-api-run, opt-in — HUMAN IN THE LOOP)
43
+ Ask explicitly: "Create the api-shield PR for this flow? (yes / no)"
44
+ • no → stop. Leave the recording in qa-output for later. Nothing is written to api-shield.
45
+ • yes → generate spec + payload fixture → open a DRAFT PR on api-shield → dev verifies.
46
+ Never auto-merge. The PR is always a draft requiring dev sign-off.
47
+ ```
48
+
49
+ The principle mirrors `playwright-gen`: **we only codify what is green.** Capture is cheap and can
50
+ run on any pass; *promotion to an api-shield PR* is the gated, human-approved step.
51
+
52
+ ---
53
+
54
+ ## The recording (the intermediate artefact)
55
+
56
+ The recording decouples capture from generation — inspect and fix it before any code is written.
57
+
58
+ ```jsonc
59
+ {
60
+ "feature": "conversation-assignment",
61
+ "product": "HIG", // or Omni
62
+ "env": "staging", // hard gate — capture must be against staging, never prod
63
+ "ui_flow_status": "PASS", // Gate A: only PASS recordings are promotable
64
+ "source": { // where the UI flow came from
65
+ "repo": "playwright-hig-automation",
66
+ "branch": "feature/remblebee",
67
+ "spec": "specs/<flow>.spec.ts" // if driven by a Playwright spec; else "manual"
68
+ },
69
+ "recorded_flow": [
70
+ {
71
+ "action": "Assign conversation to Agent B", // the UI intent = the user flow
72
+ "calls": [
73
+ {
74
+ "method": "PATCH",
75
+ "path_template": "/gx/api/sm/{sm_id}/conversations/{conv_id}",
76
+ "request_body": { "assignee_id": "{agent_id}" }, // parameterized, no real IDs
77
+ "response_status": 200,
78
+ "assert_fields": { "assignee_id": "{agent_id}", "status": "assigned" },
79
+ "variables_used": ["sm_id", "conv_id", "agent_id"]
80
+ }
81
+ ]
82
+ }
83
+ ],
84
+ "variables": { "sm_id": "…", "conv_id": "…", "agent_id": "…" } // resolved from config, redacted
85
+ }
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Normalization rules (deterministic — run these before writing the recording)
91
+
92
+ Apply in order. If any step cannot guarantee its invariant, **stop and surface it** — do not write.
93
+
94
+ 1. **Allowlist filter.** Keep only Hiver API hosts/paths (the v2 / approvals / `*.hiverhq.com/api`
95
+ endpoints). Drop analytics, Gainsight, static assets, polling/heartbeat. One click fires ~30
96
+ requests; keep the few that matter.
97
+ 2. **Redact.** Strip `Authorization`, `Cookie`, csrf, `set-cookie`. Replace, never persist. Run a
98
+ final self-check: if any secret-shaped value survives, **refuse to write the recording**.
99
+ 3. **Parameterize.** Detect volatile values (IDs in path, emails, SM IDs, timestamps) → named
100
+ placeholders + a `variables` map. This is heuristic and **will misfire** — surface every guess
101
+ for human confirmation at Gate B; do not commit them silently.
102
+ 4. **Path-template + dedup key.** `…/conversations/12345` → `…/conversations/{conv_id}`. The key
103
+ `(method + path_template + action)` decides update-existing-spec vs new-spec.
104
+
105
+ ---
106
+
107
+ ## Generating api-shield tests (Stage 2, on "yes" at the human gate)
108
+
109
+ Match the api-shield pattern exactly (read a sibling spec first — e.g.
110
+ `tests/incredibles/specs/test_approvals_creation.py` — don't invent structure):
111
+
112
+ - **Payload** → `tests/<domain>/helpers/payloads/<flow>.json`
113
+ - **Spec** → `tests/<domain>/specs/test_<flow>.py`, reusing `hiver_login` / `get_token` /
114
+ `RequestUtility` and loading the payload via `read_json`.
115
+ - **Domain** — pick from the impacted services / triage; ask if ambiguous.
116
+ - **Auth translation (the crux).** The captured `Authorization: Bearer …` is **never** replayed.
117
+ The generated test authenticates itself via the framework's `hiver_login` → `get_token()` flow,
118
+ and maps the captured user email → `get_incredibles_email` / config.
119
+ - **Assertions.** Assert the captured status + a **small set of stable response fields** (like the
120
+ existing specs assert `error` / `message`). Never assert the whole body — it's brittle.
121
+ - **Marker.** Add a header comment
122
+ `# GENERATED FROM RECORDING <id> — happy-path characterization, review before merge`
123
+ and a `@pytest.mark.recorded` marker.
124
+ - **Draft PR.** Branch `qa/<flow>-api-tests` on api-shield → commit → `gh pr create --draft`. The PR
125
+ body links the source recording, lists the endpoints covered, and includes a dev-review checklist.
126
+
127
+ ---
128
+
129
+ ## What this add-on does and does NOT do (state these in the PR)
130
+
131
+ - **Capture = happy path only.** It cannot produce 401/403/422/boundary cases — `qa-api-run`'s normal
132
+ generator still owns those. Recording *complements* generated cases; it does not replace them.
133
+ - **Capture ≠ correct.** A recording is what the API *did*, not what it *should* do. So the PR is a
134
+ **regression/characterization** baseline and always a **draft requiring dev sign-off**.
135
+ - **Async flows.** Some actions fire background jobs; the immediate response may not reflect final
136
+ state. Flag these rather than asserting the transient body.
137
+
138
+ ---
139
+
140
+ ## Safety gates (all must hold)
141
+
142
+ 1. Capture is **opt-in** (until redaction + parameterization are trusted; flip to auto later).
143
+ 2. Capture runs against **staging only** — never production.
144
+ 3. **Gate A**: only PASS (✅) UI flows are promotable.
145
+ 4. **Gate B**: a human confirms the recorded flow is correct.
146
+ 5. **Human-in-the-loop generation**: explicit yes/no before any api-shield write or PR.
147
+ 6. The api-shield PR is always a **draft**; a dev verifies before merge. Never auto-merge.