Skip to content

Help Center: /help built to its canvas, and members' tickets in it (D599) #1280

Description

@guillaumelauzier

S1: The owner, 2026-10-06: "The current Help Center doesn't look at all like the one that was supposed to be implemented, and where are the tickets users submitted?"

Decision D599. Slot S01. Migration 408 for the two stores in step 2.

What is true on main

  • /help is the old docs site. Task Build(deps): Bump lucide-react from 1.21.0 to 1.22.0 in /frontend in the runtime group #103 put a front door on it: a gray left rail listing every guide, every guide rendered in one long scroll, a three-column grid of the manifest's sections, and a "Still stuck?" footer at the very bottom.
  • The approved canvas looks different. design/canvases/integrated/Help Center.dc.html (H1 and H2) has:
    • no left rail;
    • a centred lavender search band;
    • seven task-named areas, with licence badges and the surface each guide belongs to;
    • "Popular this week";
    • a "Still stuck?" card;
    • a page for each guide (H2).
  • Four canvas elements were left out on purpose, and help_center_contract.test.mjs pins them absent:
    • Popular this week, because nothing counts views;
    • "Did this answer it?", because nothing stores the answers;
    • "Where this lives" and "Open the surface", because no guide records its surface;
    • "Applies to" and the persona line, because no guide records its licences.
  • Tickets live at /help/tickets. A member sees their own; an admin sees every member's. From /help, the only link is "Open a ticket" in the footer, below the whole corpus. The canvas has no ticket screen.

The work

  1. Build H1 and H2 to the canvas (S1, now):

    • the hero band;
    • the area cards, two columns wide, with tinted icons and four guides each, every guide carrying its surface;
    • the "Still stuck?" card;
    • one page per guide, at /help/<area>/<guide>, with its breadcrumb, "On this page", Related, and "Open the surface", built from each guide's related links;
    • no left rail.

    Every existing #section/sub deep link keeps resolving.

  2. Two stores, Worker first, in migration 408:

    • weekly view counts per guide, with no reader identity, for "Popular this week";
    • yes or no per guide, plus "what was missing" after a no, for "Did this answer it?".

    The contract test changes from "absent" to "backed by a store".

  3. Content:

    • regroup the corpus into the canvas's seven areas;
    • tag each guide with the licences it applies to, which drives "Applies to" and the badges.
  4. The ticket screens wait on the canvas (needs-design). That covers H1's "Your tickets" card, and H3 to H7: Your tickets, Open a ticket, the ticket, the admin queue, and the admin's ticket. The owner pastes the prompt below into Claude Design. Once the canvas is approved, S1 commits the export under design/incoming/ and builds it.

Steps 1 to 3 ship as PRs that say Part of this issue. The last one, after the canvas, says Closes.

Claude Design prompt

Add support-ticket screens to the StudioOS Help Center canvas, the one with "H1 · Help Center" and "H2 · Help · Article". Keep H1 and H2, and add the screens below to the same file.

Match that canvas exactly: the same 1080-wide frames, and the same white header bar with the "A" tile, "Axal VC" and the HELP label. Its tokens:
- Board #eeedf2, frame #f4f3f7. Cards are #fff, with a 1px #e8e6ee border and a 14px radius; inner dividers are #f0eef5.
- Ink #241f38, body #4a4459, muted #6b6577, faint #a49ead.
- Violet #7c3aed, with links and hover #6d28d9, tint #f4f0fe and edge #ddd0fb.
- Green #047857 on #eefbf5 (edge #a7f3d0). Amber #92400e on #fffdf5 (edge #fcd34d). Red #b91c1c.
- Inter 400 to 800, with headings at 800 and tight tracking. Roboto Mono for labels (10px, uppercase, 0.11em tracking), meta lines and every figure (tabular).
- Pills have a 99px radius and buttons 9px. The primary button is violet; the secondary is white with a hairline border.

Draw each new screen at 1080 wide, plus a 390-wide phone layout.

WHAT THE PLATFORM RECORDS ABOUT A TICKET. Draw only these fields.
- Title and description.
- Type: Task, Bug or Feature.
- Category, one of eight: Fund administration, Contracts, Access & permissions, Licence & seats, Billing, Data & reporting, Onboarding, Other. Older tickets have none; they say "No category".
- Priority: Low, Medium, High or Urgent.
- Status: Open, In progress, Resolved or Closed.
- Submitted by; Assigned to (optional); Created; Last updated.
- Tracker: each ticket is mirrored to an issue on the team's tracker, which gives it a number and a link. The mirror can fail. Then the ticket is saved with no number, and nobody can reply on it until it has one.
- A bug's bounty state, in exactly these words: "Under review"; "Confirmed: being fixed"; "Fixed: [N] credits"; "Fixed: no credits granted"; "Fixed: credits taken back"; "Fixed: credits could not be read"; "Not a bug" (the reason is in the replies); "Duplicate" (the replies name the original). Credits are worth US$1 each and are spent on Perks.
- A feature request's review: "Awaiting review", "Approved", or "Declined" with the reason the Super Admin typed.
- The thread: replies from the support team and from the member, each with the author's name, avatar and time.
- Admins only, the SLA tier from priority: Urgent is P1 (24 h), High is P2 (48 h), Medium and Low are P3 (96 h). HQ edits the hours. Each ticket's age band against its tier: On time, Due soon or Overdue.

CHANGES TO H1 (the Help Center home)
- Below the hero, a "Your tickets" card for a signed-in member:
  - their open tickets, at most three, latest activity first;
  - each row: title, status pill, and the bounty or review chip when there is one;
  - links: "All your tickets →" and "Open a ticket";
  - empty state: "No open tickets";
  - Unreadable state: "Your tickets could not be read", with "Try again". A failed read never shows a zero.
- For an admin, the same card reads "Open tickets across the platform" with a count, and links to the queue (H6).
- "Still stuck?":
  - the primary action becomes "Open a ticket";
  - "Message the team" shows only on plans that include chat;
  - then "Email support" (support@axal.vc);
  - keep "What we can see", linking to the Trust Center;
  - remove "Book a walkthrough": nothing books one;
  - keep the status line and "Status page →".
- Keep everything else on H1 and H2 as it is.

NEW SCREENS

H3 · Help · Your tickets (member)
- Breadcrumb: Help / Your tickets. Title "Your tickets", with an "Open a ticket" button.
- Tabs with counts: Open, In progress, Resolved, Closed, All. Filters: type and category.
- Each row: title, one line of the description, type, category, priority and status pills, the bounty or review chip, and "Updated [date]".
- States: loading; empty ("You have not opened a ticket"); Unreadable.

H4 · Help · Open a ticket
- Fields:
  - Title (required);
  - Type: Task, Bug or Feature, required, with no default;
  - Category (one of the eight);
  - Priority, with a one-line hint under each level;
  - Description.
- While the member types the title: "These guides may answer it", with up to three matching guides from the Help Center search.
- For a bug, one line: "A confirmed bug earns credits when the fix ships."
- After submit, three outcomes:
  - saved and mirrored: "Ticket #[n] opened";
  - saved but not on the tracker yet: "Saved. Replies open once it reaches the tracker", with the reason;
  - a field error.

H5 · Help · Ticket (member detail)
- Breadcrumb: Help / Your tickets / [Ticket title].
- Header: title, then type, category, priority and status pills. Then the description.
- A right column, 250px like H2's rail:
  - Submitted, Last updated and Assigned to;
  - the tracker link;
  - a panel that says, in one sentence, what the bounty or review state means. It shows the credits for a fixed bug, and the reason for a declined feature.
- The thread, then a reply box. Show the box disabled for a ticket not on the tracker yet, with "Replies open once this ticket is on the tracker".
- States: loading, not found, Unreadable.

H6 · Help · All tickets (admin queue)
- Every member's tickets. Columns:
  - Ticket (title and one line);
  - Requester (name, linking to the account);
  - Category;
  - Priority, with its SLA tier (P1, P2, P3);
  - SLA: On time, Due soon or Overdue;
  - Status;
  - Bounty or review;
  - Tracker: #[n], or "Not on the tracker".
- Filters: status, type, category, priority and SLA band, plus a title search.
- Admins only: an amber banner at the top, "[n] saved tickets are not on the tracker", with a "Create missing issues (up to 25)" button.
- States: empty, loading, Unreadable.

H7 · Help · Ticket (admin detail)
- H5's layout, plus:
  - a status changer (Open, In progress, Resolved, Closed);
  - the assignee;
  - the tracker mirror's state and its error;
  - for a feature request, a link to the Super Admin's review queue.

RULES
- Never draw an invented figure. Use placeholders such as [Member name], [Ticket title] and [n].
- A failed read says "Unreadable", never 0 and never an empty list.
- The AI is called Eadwyn. Product copy never says advisor, advice, recommendation or fiduciary.
- Under each new frame, a one-line caption like H1's and H2's, saying what the screen is for.

Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions