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?"
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.
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/helpis 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.design/canvases/integrated/Help Center.dc.html(H1 and H2) has:help_center_contract.test.mjspins them absent:/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
Build H1 and H2 to the canvas (S1, now):
/help/<area>/<guide>, with its breadcrumb, "On this page", Related, and "Open the surface", built from each guide'srelatedlinks;Every existing
#section/subdeep link keeps resolving.Two stores, Worker first, in migration 408:
The contract test changes from "absent" to "backed by a store".
Content:
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 underdesign/incoming/and builds it.Steps 1 to 3 ship as PRs that say
Part ofthis issue. The last one, after the canvas, saysCloses.Claude Design prompt
Generated by Claude Code