I'm a Master's student at McGill's School of Information Studies — member of Dr. Karyn Moffatt's Accessible Computing Technologies (ACT) Research Group — returning to academia to study agentic UX and accessible computing, the same domains I consult on and write about weekly. Open to co-op placements (May 2026, Montreal) to ground training in local practice.
What I bring: a practitioner's eye for friction in digital systems, HCI method training from ACT lab work, and a weekly writing practice that stress-tests ideas before they become prototypes. Returning to coursework Fall 2026. Canadian resident—no sponsorship needed.
LANGUAGES English (B2) · Mandarin (native) · French (basic)
01/04
— What I Bring
Practitioner Lens, Research Rigor
MISt student in ACT Research Group, returning to academia after years in design and AI/UX consulting. I study agentic systems and accessible computing—the same product categories I advise on and write about weekly. Open to co-op placements (May 2026, Montreal); the through-line is turning user friction into testable research artifacts.
// 01 · what-i-bring
I Use What I Study
Practitioner-User Perspective
Member of McGill's ACT Research Group, and still a daily user of the systems my coursework targets—AI assistants, health recommendation interfaces, privacy consent flows. Years in design taught me to feel friction fast; MISt training is teaching me to name, document, and test it. When users get stuck, I usually got stuck first. That's the lens I bring to prototyping, heuristic evaluation, and user research.
Non-Traditional Return to Research
Design → MISt → ACT Lab
I spent years shipping UX and advising AI startups before returning to McGill—not to leave practice, but to study it rigorously. ACT lab work (Proxy Auditor, heuristic audits) lets me test ideas I previously only shipped. Available May 2026 for in-office co-op in Montreal; returning to coursework Fall 2026. Canadian resident, no sponsorship needed.
Trained in HCI Methods
Coursework + Lab Application
Through MISt coursework and ACT lab projects I've run semi-structured interviews, think-aloud protocols, heuristic audits, and qualitative coding—applied directly to AI health interfaces and agentic UX. I can follow a research plan rigorously; I also know when a finding needs a prototype, not another interview.
From Loose Criteria to Testable Artifacts
Structured Evaluation
My heuristic audit tool and Proxy Auditor prototypes both started as open prompts—I scoped criteria, built runnable checklists, versioned artifacts on GitHub. That pattern (loose direction → structured evaluation → something the next person can run) is what I do in coursework and what product teams need for agent governance.
Writing as Research Infrastructure
Agent Governance Column
I publish weekly on Agentic UX and Privacy UX. Original analysis on AI literacy, dark patterns, and privacy-UX. Writing weekly for 1,000+ subscribers. Was a “Top 25 Rising” newsletter in 2025 and is a “Top 9 Rising in Design domain” newsletter in 2026 Q1. Ninety-five essays in 2026, mapped through the AIPET framework. Writing isn't side output—it's how I stress-test arguments before they become prototypes or research questions.
Privacy & Accessibility by Design
Ethics + Compliance Foundation
Seven Mila certificates (AI Practitioner Journey, Privacy Safeguarding) plus TCPS 2 research ethics. ACT lab focus on accessible computing; my consulting work centers privacy-first agent design. Relevant when research involves health data, AI transparency, or consent-flow evaluation—not just compliance checkboxes.
"I'd rather prototype the question, write down what broke, and iterate—than ship an answer I haven't stress-tested."
Personal note · practice ↔ research loop
02/04
— Recent Coursework
What I've Built as a Student
These are course projects, not professional deliverables—but they show how I work when given an open prompt: I scope, I prototype, I write things down. The core skill I bring: turning loose direction into something testable.
// 02 · coursework
Proxy Auditor Prototype
INFS 603 · 2025–2026
Built two medium-fidelity interactive prototypes in Figma comparing replay formats for AI health recommendations—iterated structure and prototyping notes in Cursor alongside exploratory UI passes in Pencil.dev. Wrote the scenario vignettes, interview guide, and evaluation rubric myself. Course supervisor: Dr. Karyn Moffatt.
Heuristic Audit Tool
McGill Research Project
For an open-ended assignment, built a structured audit tool to evaluate AI health interfaces against HCI safety heuristics—with audit artifacts, criteria, and review runs versioned on GitHub; critique framing informed by the UICrit dataset (Google Research—natural-language UI design critiques with bounding-box targets, UIST '24), and clickable prototypes iterated in Cursor and Antigravity. The exercise mattered to me because it's exactly the kind of work product teams do daily—translating loose criteria into a checklist someone else can run.
Substack Newsletter & ADPlist Mentor
UX Writing Practice · Volunteer · 2023–Present
Substack: Original analysis on AI literacy, dark patterns, and privacy-UX. Writing weekly for 1,000+ subscribers. Was a “Top 25 Rising” newsletter in 2025 and is a “Top 9 Rising in Design domain” newsletter in 2026 Q1. Best public sample of my UX writing and editing.
ADPlist: Volunteer 1:1 mentor for early-career UX practitioners. Practice translating research into accessible language for people at different career stages—a transferable skill for stakeholder communication.
03/04
— Education
Where I'm Training
McGill MISt researcher with the ACT Research Group (Accessible Computing Technologies, School of Information Studies)—HCI track focused on accessible computing and AI health interfaces. Research funded through NSERC Discovery Grant on ethical AI for active aging; thesis work examines how replay formats shape trust in proxy audit evidence during medical decision-making.
I bridge practice and research: years advising on agentic UX and privacy-first design, now grounding that in ACT lab work on accessible AI and proxy audit trust. Coursework and consulting aren't separate tracks—they feed each other.
×
What You'd Get
Runnable research artifacts—prototypes, heuristic audit tools, interview guides, evaluation rubrics. A weekly publishing practice that stress-tests arguments before they ship. Documentation versioned on GitHub so the next collaborator can pick up where I left off.
×
How to Reach
Email gainshin.hsiao@mail.mcgill.ca—fastest reply. Portfolio and coursework samples at gainshin.github.io. Open to co-op placements (May 2026, Montreal), research collaboration, or consulting conversations.
— UX Writer's CoT · Agent Orchestration —
Curate × Orchestrate
figure 00 · thesis
Writer as Orchestrator.
No agent remembers how that interview two weeks ago got resolved. Vannevar Bush sketched the Memex in 1945—a private, actively curated knowledge base. The problem he wanted to solve was that "human-maintained knowledge rots." That was unsolvable in the analog era. Karpathy recently revived the idea as the LLM Wiki: humans curate sources, AI handles summarizing, cross-referencing, and filing.
Here's the argument: every UX practitioner (PM / UR / UI Designer) now has to layer a second identity on top of their job—UX Writer / Curator. You write in CoT, treat markdown as your interface, and orchestrate a team of agents—Design, Research, Copy, Red Team—each with its role, all sharing one wiki as their context.
Mapped to Anthropic Academy
Advanced · MCP & Agent Development
Introduction to MCP | Advanced MCP Topics | Introduction to Agent Skills | Introduction to Subagents | Claude with AWS Bedrock | Claude with Google Vertex AI
Builder · API & Tooling
Building with the Claude API | Claude Code 101 | Claude Code in Action | Claude Prompt Engineering (interactive course)
Foundation · AI Fluency Series
AI Fluency Framework and Foundations | AI for Educators | AI for Students | AI for Nonprofits
— Wiki-as-Interface
How an AI/UX Writer's CoT Orchestrates Multiple Agents
figure 01 · flow
Ingest · Take in raw material
New PRDs, journey maps, and module lists arrive—the AI reads them, summarizes, and builds cross-references between pages; you decide whether each source is worth committing to the wiki. Specs that used to live only inside docs become knowledge an agent can query.
Query · Pull and return
Agents pull context from the wiki instead of being briefed from scratch every time; valuable answers get filed back as new pages—chat history is not knowledge, the wiki is.
Lint · Periodic audit
Run automatic checks on a schedule: contradictions between pages, orphan pages no one references, missing cross-refs. Rules live in the schema, so editing one rule scales across every page.
Guide · Feed-forward constraints
L1–L5 set out taste, discipline, and tool boundaries before the agent acts. Taste comes first, tools come second—designers develop an aesthetic before they pick up technique.
Loop · Generator cycle
Inside the guard rails, the agent runs: explore → sketch → build → show. Showing the user early beats working in isolation—every preview is a chance to converge on direction.
Sensor · Silent verification
Once the agent ships output, the system runs quality checks in the background. No issues, no noise—you only hear about it when something breaks.
01/05
— Failure Mode
The Tribal Knowledge Trap
This isn't an aesthetic problem—it's a memory problem. The HITL single-agent model holds up for a few people over a few weeks; once you cross that threshold, information starts decaying. Decisions disappear, every conversation re-briefs from scratch, and critical judgment walks out the door when people leave.
// 01 · why-it-breaks
Orphaned Decisions
No Owner, No Trail
Who decided the wording on onboarding step 3? Why can't it change? The answer lives in some Slack thread, a meeting recording, a slide buried in someone's drive. Can't find it = decide again = gamble again.
The Re-Briefing Tax
Every Conversation Starts From Zero
Every new chat, the agent forgets your persona, your design system, your legal constraints. The cost isn't the tokens—it's the attention tax of explaining the same things every single day.
Departure Amnesia
Knowledge Walks Out
The PM who knew how to talk to legal leaves, and within two months the product's copy starts drifting. Knowledge that lives only in someone's head has a lifespan equal to that person's tenure.
"Didn't We Decide This?"
The Re-Decision Loop
Someone asks it every week. Usually no one can answer. You're not making decisions, you're re-making them—because last week's decision was never filed, never backlinked, never retrievable by any agent or human.
No Single Source of Truth
Three Slightly Wrong Versions
One copy lives in Figma, another in Notion, a third in a Slack pin—each subtly different, and everyone thinks they're looking at the latest version. Multiple truths = no truth.
HITL Hits the Ceiling
The Bottleneck Moves to You
"Human supervises one agent" looks great in demos and stalls in production after a couple of weeks. The agent's iteration speed went up; your context-switching speed didn't. The bottleneck isn't the AI anymore—it's how fast you can manually curate.
"When everyone is responsible, no one is."
Agentic UX · Anthropic's $3M Rental of Open Source Elite
02/05
— The Wiki
A Three-Tier Architecture for Shared Memory
Karpathy's LLM Wiki splits cleanly into three tiers: raw material stays immutable, markdown pages get maintained by the LLM, and the schema is the rule layer itself. Clear boundaries mean clear ownership—humans decide what matters, the AI handles maintenance.
// 02 · architecture
Raw Sources
— Immutable Material
PRD / Feature List, Journey Map, Module List, Page List, User Flow. Immutable—never edited, only referenced. This is the anchor of fact—every wiki page has to trace back here.
The Wiki
— LLM-Maintained Markdown
Each page is one concept (persona/ / feature/ / decision/) or one summary. Humans curate the topics; the AI maintains cross-refs. Mutable but structured—not a chat history dump.
Schema
— Rules as Configuration
Writing style, naming conventions, cross-ref rules, lint policy. This tier is the rules themselves. Editing the schema scales further than editing each page—one patch propagates to every page on the next maintenance pass.
index.md · The Catalog
One-Line Summaries
One line of summary per page, organized by category. The entry point to the wiki—the first place an agent looks. The index decides which pages to read and which to skip, instead of scanning every file every time.
log.md · The Timeline
Append-Only Chronological
"Who wrote what, when." Old entries are never edited—new ones get appended. This makes context evolution traceable: the diff is the history. The orchestrator's audit trail.
Cross-References
The Anti-Rot Layer
[[persona/a]] wiki links, #onboarding tags, automatic backlinks. This is what stops the rot—orphan pages get caught by lint, hub pages emerge naturally, and you can find every place a concept is referenced.
Humans curate sources, ask questions, and think critically. The AI handles summarizing, cross-referencing, filing, and bookkeeping — the maintenance work that degrades human-maintained wikis over time.
— Karpathy (n.d.), LLM Wiki
"If your design system still stops at 'we have a component library' rather than machine-readable tokens and naming rules, this shift will surface your existing debt before it pays it down."
Agentic UX · Agentic UX in Practice — Part 1: Design Critique and UX_Skill Distillation
03/05
— Compression Strategy
Why Memory Belongs in the Substrate, Not the Model
The claude-design-harness doesn't rely on the model's long-term memory—it actively manages context instead. Five compression layers fire in order, from light to heavy, preserving the most important information while pulling token count down.
// 03 · harness-compresses
Remove Duplicates
Deduplicate · Lightest
Clear redundant content first—the same file read twice, the same command run three times. Cheapest move, almost no information lost. Always start here.
Summarize Tool Output
Summarize Outputs · Low
Bash returns, file reads—high volume, low density. Compress them into short summaries that keep "what was done, what conclusion came out" and drop the verbose middle.
Merge Conversation Turns
Merge Turns · Medium
Collapse multiple short turns into one. "You asked → I answered → you clarified → I clarified" becomes "the conclusion of this exchange is X." Lower turn overhead, same meaning preserved.
Generate Global Summary
Global Summary · Heavy
Produce a structured summary of the entire conversation history—task state, key decisions, open todos. Like auto-writing a checkpoint log, so the next turn can restart context from this summary.
Truncate Oldest
Truncate · Last Resort
Only as a last resort—discard the earliest turns, keep recent and critical content. Highest information loss, but sometimes the only option. The harness records "what got truncated" in the persistent view.
Light Before Heavy
Graceful Degradation
The harness doesn't reach for the heavy moves first. Levels 1–5 fire on demand: token pressure rises → dedupe; still not enough → summarize outputs; and so on. Graceful degradation, never blunt truncation.
"You need governance at the system level—and that governance has to answer a question traditional HR has never faced: are the tokens an employee burns training agents a cost or an investment?"
Agentic UX · Agentic UX in Practice — Part 3: Is $2,400 in Tokens a Cost or an Investment?
04/05
— Dual-View
Let the Harness Run the Show
The context the model sees and the history the harness stores are two separate views. The model view is lean—just the current task. The persistent view is complete—everything kept. The split keeps each model turn light while the harness never loses context.
// 04 · harness-manages
Model View
What the Model Sees
The compressed context the model actually sees this turn—only the relevant wiki pages, the compressed conversation history, and the live task state. Light, focused, rebuilt every turn.
Persistent View
What the Harness Stores
The full task history and state—every turn, every tool call, every decision trail. Stored at the harness layer, not stuffed into the context window. The model never sees it; the harness can pull any slice on demand.
Splitting the Two Views
Decoupling
This separation is the core of claude-design-harness. The model doesn't need to "remember everything"—it just focuses on this turn. The harness doesn't need to "fill the context window"—it holds the complete state and ships only what's needed.
Delivery Mechanism
How the Harness Feeds the Model
Each turn starts: the harness picks task-relevant fragments from the persistent view → applies compression (Stage 03) → assembles the model view → ships it to the context window. The harness makes the call, not the model.
Retrieval Mechanism
How the Model Requests Context
The model needs an older slice → emits a request → the harness retrieves from the persistent view → summarizes and injects it into the next turn. Pull on demand, don't preload—mirrors the wiki's query pattern.
Three Nested Layers
Wiki × Harness × Model
Wiki = the persistent layer for team-wide knowledge (shared); harness persistent view = the persistent layer for a single task (internal to the agent); model view = just this turn. Each layer has its own compression and retrieval, sitting at a different point in the stack.
figure 04 · harness for practitionersA Practitioner's View— from design specs to agent governance
FINDING
Anyone can do the left column (the auto-checkable stuff). The right column—the parts that need human judgment—is where AI/UX practitioners are irreplaceable: voice, brand mood, commercial trade-offs, edge case priority. None of this fits in a linter. It only fits in a Guide.
FINDING
Most practitioners only work the feedback half—they wait for output, then point out what's wrong. But agents need feed-forward: tell them what "right" looks like before they act. Writing a good Guide pays off more than fixing things after the fact. When something fails, fix the Guide—not just the output.
FINDING
L1 is where everything starts: turn the design judgment in your head into agent-readable docs. Skipping straight to a linter (L2) is the most common mistake—without feed-forward, agents can only trial-and-error, and no amount of feedback fixes that.
"HCI is no longer just about making systems usable—it's the only mechanism keeping them controllable."
Agentic UX · When AI Becomes a Swarm: What Interface Design Can (and Can't) Do for Governance
05/05
— The Motions
How You Run a Day
Turn the five-layer Claude Design system prompt into a daily rhythm: ask → set rules → build → check → close. Each step has a concrete action and a concrete deliverable.
// 05 · daily-rhythm
Ask First — At Least Ten Questions
questions_v2 · ≥ 10 Questions
The first move on a new project isn't drawing—it's asking. Use questions_v2 to run a round of questions. At least 10, with at least 4 that are problem-specific (not generic stuff like "what color do you like"). Every question must include "Explore a few options," "Decide for me," and "Other"—so the user can say "you decide" or "I'll pick myself." In practice: open a Claude Design conversation with "Help me design [X]," and the agent triggers the question flow automatically.
Set the Rules Before You Touch Anything
System First · Brand → oklch
After exploring the source material, before drawing anything, declare the design system out loud: layout type (single column / two column / grid), background color (1–2 max), type hierarchy (what's the heading, body, label), image rules (photos / icons / placeholders). Extend brand colors with oklch() for harmonious palettes—never invent. Start from a UI kit, codebase, or screenshot; if you can't find one, ask the user; if it doesn't exist, use placeholders. Don't generate from a blank slate.
Build and Show Early
Build & Show Early · 3+ Variations
Once you've written the assumptions and design rationale, use show_to_user to throw the half-done work in front of the user—like a junior designer reporting progress to their manager, not waiting until the whole thing is done. Give 3+ variations across color, layout, interaction, icon usage—start conservative, get bolder each round. Letting the user pick and remix converges faster than trying to guess one "perfect version."
Taste Discipline — Check Slop Item by Item
Anti-Slop Checklist + No Filler
Run this checklist on every output—anything that hits, fix it: gratuitous gradient backgrounds (use solid colors), off-brand emoji (delete), rounded containers + left accent borders (rethink the layout), SVG illustrations (use placeholders), Inter / Roboto / Arial (switch to brand fonts), unnecessary number icons (delete). If you don't have a photo, draw a gray placeholder box with size labels—don't generate a fake one with AI. If a paragraph isn't long enough, don't pad it with filler. Empty space is a layout problem; solve it with layout.
Verify and Clean Up Context
done() → verify → snip
At the end, call done—the agent opens the file and reports console errors. Fix anything that breaks. Once it's clean, fork_verifier_agent spins up a background iframe for a deeper check; silent on pass—you only hear from it if something's wrong. The final summary covers caveats and next steps only—no rehashing what changed. After finishing a chunk of work, use snip to register conversation ID ranges to clean up; don't actually cut yet—wait until context pressure hits, then run them all at once. No need to announce it to the user.
Six Things You Don't Hand to the Agent
Human-Only Decisions
Before adding a page or paragraph—ask the user first, don't add unilaterally
If asked to mimic another brand's UI—refuse, unless their email domain belongs to that company
Which PRD / Journey Map is worth committing to the wiki—humans decide
Commercial trade-off wording ("free trial" vs "limited time")—PM owns this, agent stays out
Edge case priorities—requires business context the agent doesn't have
When to update the schema—changes propagate to every page, can't trigger this without human review
"Without that audit layer, the 'atomic decomposition' AI produces becomes atomic chaos."
Agentic UX · Agentic UX in Practice — Part 2: When Your Researcher Also Has an Agent
Curate × Orchestrate
One More Layer of Deliverables
You used to ship design files and research reports. Now you also ship wiki pages—written so the next reader sees "why this step looks like this," "which alternatives got cut," "how edge cases are handled." Next time an agent picks up the project, that wiki is its Guide. No re-briefing.
×
From Watching One Lane to Routing Many
HITL (human-in-the-loop) means watching one agent on one thread. The orchestrator runs four agents in parallel—Design, Research, Copy, Red Team—and decides who starts first, whose output feeds whose, when to merge, and when to throw something back.
×
Decisions Move From Chat to Documents
Decisions used to scatter across Slack threads, meeting recordings, and slide deck comments—unsearchable, gone the moment people left. Now they land in version-controlled markdown: queryable by agents, citable through cross-refs, and auditable by lint to catch when they go stale.
The Workflow Chain — Dialectic Chain
Less filing doesn't mean less judgment — Claude Design → Figma → Red Team is what counts as one round.