Henry's complete public text

# Henry's public text

Content revision ea31a3343577b30cee4337cf2fef2b0864a5741341f27598e9108766c486fb2d

## Places I've Studied

Education
Source ID education:overview
Original https://www.henryw.me/#/education

Living and studying in different places has given me different perspectives on the world.

## The University of Hong Kong

Education
Source ID education:the-university-of-hong-kong
Original https://www.henryw.me/#/education#the-university-of-hong-kong

September 2022 - Present The University of Hong Kong Bachelor of Arts and Sciences in Applied Artificial Intelligence I'm a fourth-year student at the University of Hong Kong , majoring in Applied Artificial Intelligence . My coursework spans machine learning, deep learning, data science, algorithms, software engineering, probability, statistics, linear algebra, and multivariable calculus. I was named to the Dean's Honours List. Outside coursework, I served as a Student Representative on the CAES Staff-Student Consultative Committee and as a Student Peer Advisor, supporting newer students with study and career planning.

## The University of Melbourne

Education
Source ID education:the-university-of-melbourne
Original https://www.henryw.me/#/education#the-university-of-melbourne

February 2025 - June 2025 The University of Melbourne Semester Exchange I spent one semester at The University of Melbourne through the HKU Worldwide Student Exchange Programme. Relevant coursework: Optimisation, Machine Learning, and Principles of Finance.

## Shanghai High School International Division

Education
Source ID education:shanghai-high-school-international-division
Original https://www.henryw.me/#/education#shanghai-high-school-international-division

September 2017 - June 2022 Shanghai High School International Division International Baccalaureate I completed junior high and high school at Shanghai High School International Division , where I took the International Baccalaureate Diploma Programme. For the IB Diploma, I studied computer science, mathematics, economics, physics, English, and Chinese. I co-founded SHSID Musix Board, a school-wide platform for sharing opinions about popular music, and led the Coding Club.

## Havelock North High School

Education
Source ID education:havelock-north-high-school
Original https://www.henryw.me/#/education#havelock-north-high-school

July 2019 - August 2019 Havelock North High School Visiting Student I spent two months as a visiting student at Havelock North High School in Hawke's Bay, New Zealand, attending regular classes with local students. I studied English, calculus, statistics, chemistry, and physics.

## Roles I've Had

Experience
Source ID experience:overview
Original https://www.henryw.me/#/experience

My work has ranged from open-ended research to delivery-focused industry projects.

## Cloud, Data & AI Consulting Intern

Experience
Source ID experience:pwc
Original https://www.henryw.me/#/experience#work-pwc

At PwC, I design and build AI and data systems for financial-services and public-sector clients. I develop solution architectures around each client’s business needs and technical constraints, then implement them through custom pipelines and integrations with existing systems.

I designed and implemented an AI workflow that analyses long reports for different types of risk. I studied the evidence each risk requires and defined how the AI should find and assess it. The system links findings to the original source pages, so reviewers can inspect the evidence and record their decisions.

I designed a system that uses AI to identify gaps in an IT assistant’s knowledge, research the missing information and keep its knowledge base up to date. I also built a browser agent that interprets service tickets and automates tasks in web applications.

I designed an AI slide-generation framework to help teams quickly explore different ways to present their ideas and iterate on slide designs. The framework uses the company’s visual assets and brand guidelines to guide image generation, then combines AI interpretation with computer-vision measurements to build editable PowerPoint slides. Teams can try new compositions while preserving original logos, icons and reusable components within a consistent visual identity.

For an AI assistant answering public enquiries using client documents, I evaluated and integrated tools into a retrieval-augmented generation (RAG) ingestion pipeline that prepares those documents for retrieval. It preserves page-spanning content, complex tables, references and flowcharts through chunking, which divides documents into searchable passages. I also developed a DeepEval framework to evaluate classification, retrieval and response quality.

To support a data migration, I built a pipeline assisted by a large language model (LLM) that reverse-engineers legacy ETL code, the logic that extracts, transforms and loads data. It recovers data lineage showing where data comes from and how it changes, together with the business rules and test scenarios needed for the migration.

I reviewed Ethereum and stablecoin infrastructure risks for a banking engagement.

## Part-time Student Research Assistant

Experience
Source ID experience:slr
Original https://www.henryw.me/#/experience#work-slr

I work with Dr. Stephen Lee on computational models of human learning and cognition, studying how people form knowledge through experience and how learned representations support behaviour across tasks and situations.

I develop computational models to examine possible cognitive processes behind experimental results. My work has included generalisation, transfer, and explicit and implicit learning.

I analyse behavioural data and connect patterns in learning and performance to the representations and processes proposed by the models.

## Digital Transformation Intern

Experience
Source ID experience:hsbc
Original https://www.henryw.me/#/experience#work-hsbc

At HSBC, I worked with business specialists, regional product teams, engineers and UI/UX designers to turn product knowledge into shared requirements. I designed a reusable framework that linked these requirements to design and implementation decisions, then built tools to automate configuration across products and markets.

I consolidated product and distribution information across markets and built an Excel/VBA configuration engine. Decision tables identify which business scenarios apply to a product and which screens and fields those scenarios require. Linked libraries hold the shared definitions, letting the team maintain the mapping rules and regenerate configurations as requirements change.

I evaluated AI use cases in banking, considering data readiness, controls and where human review needed to remain in the workflow.

## Web Developer, Digital Content Support

Experience
Source ID experience:kiwiview
Original https://www.henryw.me/#/experience#work-kiwiview

At Kiwiview, I developed the company’s website and created digital content for its study-tour and travel programmes.

I designed, developed, deployed and maintained the company website.

I created website copy, branding materials and promotional content for its study-tour and travel programmes.

## How AI changes the course of writing

How AI changes the course of writing
Source ID research-ai-writing-interview:overview
Original https://www.henryw.me/#/research/ai-writing-interview

Journalist and editor Tequia Burt interviewed me for a book she is reporting on what writers bring to their work when AI can produce fluent prose. She had read my paper, Early Epistemic Settlement in AI-Assisted Writing , and was interested in how a useful answer might change the inquiry through which a writer develops an argument. Read abstract Read the paper 01 Why I study AI-assisted writing 02 How AI can redirect an article 03 Timing, expertise and writing goals 04 How AI differs from human help 05 How to study interrupted inquiry 06 Designing AI to support inquiry Tequia Burt 01

## How did you arrive at the concept of early epistemic settlement? Was there a particular writing experience or limitation in the existing research that led you to it?

How AI changes the course of writing
Source ID research-ai-writing-interview:origins
Original https://www.henryw.me/#/research/ai-writing-interview#origins

Henry Wang I started from a fairly simple observation about what AI changes in writing. Writing has often been treated as part of thinking, not just a way of recording thought after the thinking is finished. Menary's Writing as Thinking captures this well (Menary, 2007). You write something, see what follows from it, realize that two claims do not quite fit, go back to the material, move things around, and sometimes end up thinking something you could not have stated when you began. The text develops along with your understanding. AI makes it much easier for those two things to come apart. Suppose I have two pieces of evidence and cannot yet work out how they fit into one argument. Previously, if I wanted the paragraph to work, I would usually have to form enough of that connection myself to write it. A teacher, editor, book, or colleague could of course help.

But with a language model I can keep giving it the problem in front of me and get a coherent next step back. So the text can keep developing even when I did not have to build all of the connections that made that development possible. That made me wonder whether anything had been lost. If the argument is good, I understand it, and I can keep reasoning from it, is that enough? There was already work showing that AI changes what people produce. One result I found interesting was that AI assistance could improve individual creative outputs while also making different people's outputs more similar (Doshi & Hauser, 2024). What I wanted to understand was what was happening inside one person's inquiry. What changed between the point where they were still trying to form a relation and the point where they had been given one that worked?

My background in cognitive modelling probably also shaped this. I tend to think about how someone's internal structure changes over time, so the finished text alone did not really explain what interested me. I wanted to know what happened to the writer's own construction process and cognitive development through working with AI. That is where early epistemic settlement came from. Tequia Burt 02

## In professional writing, how might an AI response shape the direction of an inquiry even when the writer understands the response and continues thinking productively? Could you walk me through an example of the questions, connections, or alternative frames that might become less likely to emerge?

How AI changes the course of writing
Source ID research-ai-writing-interview:professional-writing
Original https://www.henryw.me/#/research/ai-writing-interview#professional-writing

Henry Wang Imagine a journalist has two interviews about hybrid work. One person says they are more productive at home because they can concentrate. Another says their team became less productive because coordination became harder. The journalist has not yet worked out what to do with those two observations. AI gives her a clean frame: hybrid work involves a trade-off between individual focus and team collaboration. That is a perfectly reasonable interpretation. She understands it and could write a good article from it. But if she had stayed with the mismatch for longer, she might have noticed that the first person's work is mostly individual analysis, while the second person's work depends heavily on coordination. The question could then change from “Is hybrid work good or bad for productivity?”

to “Which kinds of work benefit from remote work, and which depend on physical coordination?” Now she may interview different people, look for different evidence, and end up writing a different article. The first frame was not wrong. It just resolved the difficulty before it had a chance to surface any further questions or connections. Tequia Burt 03

## What determines whether an AI suggestion settles an inquiry too early or becomes useful material the writer actively works through? How much depends on timing, the writer’s expertise, or the nature of the task?

How AI changes the course of writing
Source ID research-ai-writing-interview:timing-and-expertise
Original https://www.henryw.me/#/research/ai-writing-interview#timing-and-expertise

Henry Wang I think this depends on what the writer is doing at the moment the suggestion arrives. Timing matters. If I already understand a relation and just cannot phrase it well, AI may be helping me say something I already know. If trying to write the sentence is how I am still figuring out the relation, the same answer can do something quite different. Expertise probably matters too. An expert usually has more existing relations and constraints for a new suggestion to fit with. Something that sounds coherent to a novice may immediately feel wrong to an expert because it clashes with something else they know. The nature of the task matters as well. Some tasks have a fairly constrained destination but still require substantial construction from the person doing them. If the goal is only to produce a correct artifact, skipping some of that construction may not matter much.

If the construction itself is part of how the person is learning, then the same shortcut changes what they get from doing the task. But this distinction depends on being able to tell how constrained the task really is. From inside an inquiry, that is often difficult to know. You may be slowly working toward something fairly standard, or you may be one connection away from seeing the material differently. You have to decide whether to keep working before you know what that work would produce. That uncertainty seems important to me. It makes the value of continuing difficult to judge from the writer's own position. Tequia Burt 04

## Editors and other collaborators can also provide a solution before a writer has completed the underlying thinking. What makes language models different, beyond the speed and frequency with which they can intervene?

How AI changes the course of writing
Source ID research-ai-writing-interview:models-and-collaborators
Original https://www.henryw.me/#/research/ai-writing-interview#models-and-collaborators

Henry Wang What seems different to me is how much independent structure tends to enter the exchange. When another person works with my material, they are processing it through their own understanding. In the hybrid-work example, an editor might notice that one interviewee's work depends much more heavily on coordination than the other's. She might also wonder whether the difference has less to do with remote work itself than with how the two teams are managed. Those relations come partly from what she already knows and from the connections she makes while thinking through the material. I may not have needed either of those relations just to move forward. But once she brings them back, I have more to think with, and they may change where the inquiry goes. A very common way of using a language model is different.

I bring it whatever problem is blocking me at the moment and ask how I might continue. If it finds a locally coherent connection that gets me past that difficulty, the interaction has already done what I needed it to do. There may be many other relevant relations the model could surface, but the immediate problem does not require them. It can give me enough structure to continue without expanding the space very much beyond the question I was already able to ask. That can then repeat throughout the draft. I reach a difficulty, get a satisfactory way through it, continue from there, and later return with the next difficulty. Each answer can be useful on its own while the inquiry develops through a sequence of these local resolutions. That is the pattern I was trying to capture in the paper.

A collaborator brings a separately developed structure into the exchange almost by default simply because they have one. With a language model, it is very easy to keep getting help that is closely fitted to the problem as I have already formulated it. Tequia Burt 05

## What would an empirical study need to observe or capture to test this framework? How might researchers distinguish an avenue of inquiry that was foreclosed from one the writer simply considered and rejected?

How AI changes the course of writing
Source ID research-ai-writing-interview:studying-inquiry
Original https://www.henryw.me/#/research/ai-writing-interview#studying-inquiry

Henry Wang I'm still working this one out. I think there are two different questions hiding inside it. One is whether early settlement happened. The other is whether it was a bad trade. The first seems more straightforward to study. You could follow what a writer was doing immediately before and after assistance arrived. What were they trying to work out? Which notes or sources were they using? What was still unresolved? After they accept the response, does that attempt continue, or do the next questions start from the structure the response supplied? You could also manipulate when the help arrives. One group gets it immediately, another after some independent work. Or vary what kind of help they receive. I would be interested in what happens later, not only whether the final text is better. What questions do people ask next? What distinctions appear later in the argument?

Does changing when or how assistance arrives change the kinds of relations that get developed? For the distinction you asked about between a foreclosed avenue and one the writer considered and rejected, I think the important question is whether the alternative ever became developed enough to be evaluated. A rejected idea should leave some trace. It may appear in notes, a draft, a question the writer asked, or an explanation of why they decided against it. With foreclosure, there may only be an unresolved tension or a partially forming connection before the assistance arrives, and then that line of work disappears. We still could not say that one particular missing idea definitely would have appeared. But at least we could study whether different kinds of assistance systematically change which relations get far enough to be considered.

The harder question is whether whatever was lost was worth more than the time and effort AI saved. That depends a lot on what the person is trying to do. If I need a workable recommendation this afternoon, stopping once I have a good answer may be entirely sensible. If I am doing research and the point is to find a better explanation, I may be willing to spend much longer following uncertain directions. Tequia Burt 06

## Are there practices that could help writers use AI without bypassing the work that expands what they are able to question, defend, or develop?

How AI changes the course of writing
Source ID research-ai-writing-interview:designing-assistance
Original https://www.henryw.me/#/research/ai-writing-interview#designing-assistance

Henry Wang I think there are two separate parts of the interaction that matter here. One is what the AI contributes. If I am stuck between two ideas, it can give me the connection needed to move forward. But it could also surface other relations around the problem that are not necessary for solving the immediate difficulty and might open up other directions. The other is how that contribution is presented. The same underlying connection could arrive as a finished interpretation, a question, a tension to resolve, two competing frames, or a counterexample. Those forms leave very different amounts of construction for the writer to do. There is some evidence that this difference in form matters. In Don't Just Tell Me, Ask Me, framing similar information as questions rather than direct explanations led people to reason with it differently (Danry et al., 2023).

That is close to what I have in mind here. The contribution can be similar, while the way it is presented changes what the person still has to work out for themselves. Sometimes a finished answer is exactly what I want. If I have already done the conceptual work and am stuck on wording, there may be little value in making the interaction more elaborate. The more difficult case is when I am still trying to understand the material. Then I would want the system to help without simply turning every local difficulty into a stopping point. That could mean leaving some of the construction for me to do, or bringing in connections that expand the problem beyond the one I have already formulated. I still don't know exactly how a system should decide what to contribute, or in what form, given the task and the writer's state at that moment. That's something I'm interested in pursuing next.

## References

How AI changes the course of writing
Source ID research-ai-writing-interview:references
Original https://www.henryw.me/#/research/ai-writing-interview#references

Danry, V., Pataranutaporn, P., Mao, Y., & Maes, P. (2023). Don’t just tell me, ask me: AI systems that intelligently frame explanations as questions improve human logical discernment accuracy over causal AI explanations. Proceedings of the 2023 CHI Conference on Human Factors in Computing Systems, 1–13. Read paper Doshi, A. R., & Hauser, O. P. (2024). Generative AI enhances individual creativity but reduces the collective diversity of novel content. Science Advances, 10(28), eadn5290. Read paper Menary, R. (2007). Writing as thinking. Language Sciences, 29(5), 621–632. Read paper

## Research I've Been Part Of

Research
Source ID research:overview
Original https://www.henryw.me/#/research

I study how people and AI systems learn from experience, represent knowledge and use it to think and act. As AI becomes part of everyday thinking, I investigate how it shapes the understanding, judgement and abilities people develop. I study how people learn from experience and use what they know. Through experiments and computational models, I examine how internal representations develop and change, and how they support memory, concepts, generalisation, reasoning and action. I build models to develop explanations of these processes and derive predictions for behavioural experiments. I pursue part of this work with Dr. Stephen M. K. Lee at the University of Hong Kong's Speech, Language, and Reading Lab . For AI systems, I study what they learn during training and how it shapes their behaviour.

I use behavioural tests and causal interventions to examine their internal representations, how they use information during a task, and how their computations produce the capabilities we observe. In human-AI interaction, I study how AI's involvement in everyday life shapes people's cognition and behaviour. This includes how people learn, direct their attention, remember and make decisions, and how their abilities develop through interaction. I am also interested in how people adapt AI to their own purposes, and how those purposes change as they use it. I’m interested in how research on human cognition can inspire new approaches to AI, and how building and studying AI can deepen our understanding of the mind. I hope to draw on both to design new ways for people to think, create and act with AI. entry.id === pub.id)" />

## The Resolving Power of Transfer Experiments: When Can Designs Distinguish Accounts of Generalization?

Research
Source ID research:transfer
Original https://www.henryw.me/#/research#transfer

We developed a framework that links models of human generalisation to the design of experiments. I construct models by varying both how a learner represents information and how the learner uses it to respond. The same representation can support rule application, comparison with a category prototype or retrieval of remembered examples. Varying these mechanisms independently lets me build matched accounts and simulate how each would respond in the same task. I use these predictions to shape an experiment before collecting participant data. Candidate separation measures where the models predict different responses, and candidate recovery estimates how reliably the planned observations can distinguish them. Together, they guide whether to change the test items or response measure, or collect more evidence where a useful contrast already exists.

Applications to categorisation and artificial orthography show how these choices change what we can learn about the underlying mechanisms. I developed this framework into the open-source TIDE (Transfer-design Identifiability and Diagnosticity Evaluation) toolkit and an interactive app, so researchers can construct model comparisons, inspect their predictions and explore revisions to a design.

## BRIGHT: A Realistic and Challenging Benchmark for Reasoning-Intensive Retrieval

Research
Source ID research:bright
Original https://www.henryw.me/#/research#bright

Finding a useful document can depend on first understanding what a problem requires. We developed BRIGHT to evaluate this reasoning-intensive retrieval, using 1,384 real queries across domains including economics, psychology, mathematics and coding. I contributed biology and psychology data and reproduced programming examples to work through the questions and the material needed to answer them. Models that performed well on conventional retrieval benchmarks struggled on BRIGHT. Explicit reasoning about a query improved retrieval, and supplying relevant documents improved question answering. The benchmark makes it possible to study retrieval as part of solving a problem, including how reasoning helps a system recognise the information it needs.

## Early Epistemic Settlement in AI-Assisted Writing

Research
Source ID research:fittedAssistance
Original https://www.henryw.me/#/research#structure-settles-thought

In trying to finish a passage, a writer may connect her material in ways that change both the argument she can make and the demands it needs to meet. I examined what happens when AI supplies a passage that resolves the immediate difficulty while this work is still unfolding. The writer can understand the answer, judge it adequate, and move on before discovering what her own attempt could have made possible. I call this early epistemic settlement. Having a satisfactory passage removes an immediate reason to keep working. The value of continuing is harder to assess, since the writer has yet to form the connections that would reveal it. I show how writing develops both an argument and the grounds for deciding what is worth pursuing. Over successive exchanges, accepted passages help shape what the writer asks next and what a subsequent AI response needs to address.

Useful answers can therefore sustain inquiry along a path while cutting short work that could have opened another. This makes the formation of new arguments and questions part of what is at stake in a response that successfully resolves the present task.

## Function-Vector Heads Are Two Populations: Writers and Cancellers in In-Context Learning

Research
Source ID research:functionVector
Original https://www.henryw.me/#/research#functionVector

I studied how a language model carries out a task inferred from examples in its prompt. Function vectors capture this task information through the combined outputs of attention heads. Among candidate function-vector heads, I identified writers that support the answer specified by the demonstrated rule and cancellers that systematically suppress it. Interventions on individual heads established these roles, and tests on new prompts showed that the groups had opposing effects on prediction. Removing cancellers improved accuracy by 2.4 to 6.8 percentage points across two rule families and three Pythia models. The dominant suppressive contributions depended on the task content the heads read. These roles also depended on the task, as some of the same components supported correct answers in a different setting.

Examining the groups separately revealed substantial support and suppression that could nearly cancel in the combined effect. This explains how a population with a small combined effect can still contain components that strongly affect prediction.

## Humans Disengage, Reasoning Models Persist: Separating Difficulty Registration from Deliberation Allocation

Research
Source ID research:humansDisengage
Original https://www.henryw.me/#/research#humansDisengage

I studied how people and large reasoning models allocate effort once a problem becomes difficult. Across visual abstraction, intuitive physics and relational reasoning, I analysed human response times alongside the length and content of reasoning traces, the text models generate before answering. Comparing attempts on the same problems let me separate sensitivity to difficulty from the allocation of further effort. On visual grid puzzles, successful human attempts lasted longer than failed ones, while the model analysis showed longer traces on failed attempts. Grid actions and reasoning traces helped characterise what happened during that extra work. I developed a resource-rational account in which continued reasoning depends on its expected progress, the value of that progress and the cost of pursuing it.

This makes the decision to continue a question about the return on further computation, and gives a basis for understanding how people and models can recognise the same difficulty yet pursue different courses of action.

## Functional Encoding and Representational Binding in Componential Transfer

Research
Source ID research:encoding
Original https://www.henryw.me/#/research#encoding

Why can a learner demonstrate a rule during training yet fail to use it on a new item? We built a computational account in which transfer depends on how useful components are encoded and bound together. Functional encoding determines which components enter the representation used to generate a response. Representational binding determines whether those components remain available as reusable parts or become fused with the whole stimulus. Varying these properties lets us generate patterns of learning and transfer within one model. Across artificial orthography, Chinese character learning and artificial grammar, tests that preserve a trained component primarily reveal its encoding, while recombination tests reveal how the components are bound.

A continuous binding parameter accounts for patterns previously attributed to two separate systems, connecting those patterns to how knowledge is organised.

## Things I've Built

Builds
Source ID projects:overview
Original https://www.henryw.me/#/projects?to=overview

I like working through a problem and figuring out how the pieces could fit together. I enjoy trying different ideas and gradually building up a structure of my own.

## AI × Self

Builds
Source ID projects:searchstory
Original https://www.henryw.me/#/projects?to=searchstory

Visitors can ask AI a question about my work, ideas or experiences. AI connects material from this site into a View, an illustrated article that answers their question and includes the original work. Each View also becomes an exhibition visitors can walk through, and the Gallery brings shared exhibitions together.

## SlidePoise

Builds
Source ID projects:slidepoise
Original https://www.henryw.me/#/projects?to=slidepoise

SlidePoise combines the visual freedom of image generation with an editable PowerPoint workflow. The Agent develops the content, retrieves relevant visual references, icons, logos and native component previews, and explores compositions through image generation. Reconstruction combines the Agent’s interpretation with measurements from the computer-vision library OpenCV to build editable objects. Shared styles and original assets keep the slides consistent. Reviewing the rendered deck then checks how closely the editable presentation follows the chosen design.

## Cathay Flex

Builds
Source ID projects:cathayflex
Original https://www.henryw.me/#/projects?to=cathayflex

Cathay Flex is Team Globe’s project for the Cathay Pacific Hackathon. An airline-managed marketplace lets travellers earn Flex credits by accepting suitable changes or releasing eligible unused services. They can use the credits for different travel needs on the same journey or a later one. Contributions and benefits can occur at different times, giving the airline more ways to meet passenger demand within existing capacity.

AI interprets natural-language preferences in booking context and produces structured conditions that each traveller reviews. Graph search discovers candidate swaps, chains and cycles. Branch-and-bound selects compatible arrangements under passenger requirements, resource capacity and credit funding constraints. A shared conditional order book maintains active requests, flexibility rules and transaction status.

The transaction and settlement layer coordinates passenger consent, conditional travel arrangements and airline fulfilment. A conditional order book tracks active requests, agreed terms, reservations and transaction states. Versioned holds reserve resources and credits, and optimistic concurrency control rejects stale writes. Idempotency keys let repeated commands return their recorded result, while idempotent settlement prevents duplicate credit movements. If a booking update has an uncertain outcome, reconciliation keeps the resources and credits reserved until the complete arrangement is verified. Tests exercise request expiry, competing acceptance and withdrawal, duplicate execution and lost fulfilment acknowledgements.

## Risk Assessment Across Long Documents

Builds
Source ID projects:pwcDocumentReview
Original https://www.henryw.me/#/projects?to=pwcDocumentReview

Henry translated risk definitions into evidence requirements and decision rules. Optional source guidance identifies report sections likely to contain useful context. He separated reading the report from assessing what its evidence means. An evidence-record schema preserves each observation, its context, source location and potential relevance to different risks. These records give facts from different pages a common structure for comparison and synthesis.

The full-document architecture preserves report structure while dividing it into chunks. A vision-language model reads every page and can extract several independent evidence records from each one. The evidence ledger collects these records across the document. A separate synthesis pass for each risk combines the relevant records and applies its decision rules. It can request further source-page review when additional context is needed.

Henry implemented the workflow end to end. Chunks based on the table of contents are rendered as page images and analysed in parallel, followed by parallel risk assessments that reuse the shared evidence ledger. Across three sample reports of a few hundred pages, the estimated average was about five minutes and US$0.68 in model calls, combining measured page rendering with recorded model timings and usage.

The review workspace presents findings and their interpretation beside the original report. Each interpretation opens its source page. The Evidence Explorer shows both the evidence used in the assessment and the other context considered. Reviewers confirm, correct or reject findings, and their decisions carry into the review summary. The public interactive example uses fictional report content.

## AI for IT Operations

Builds
Source ID projects:pwcItOps
Original https://www.henryw.me/#/projects?to=pwcItOps

Knowledge Management serves the platform’s RAG question-answering assistant. Acquisition begins with unanswered user questions and model-predicted knowledge gaps. Related questions are clustered into coverage objectives. Seed discovery and focused crawling find authoritative evidence, using the original questions as minimum coverage and the objective to guide broader acquisition.

Approved content passes through an ingestion pipeline for extraction, normalisation, deduplication, and chunking. A Source Registry keeps accepted snapshots, monitoring state, and provenance mappings to the Knowledge Base. The system assesses source changes to decide whether to retrieve more evidence, replace or delete content, or leave it unchanged. Changes require human approval before they are committed.

Browser Control interprets natural-language tickets and opens a dedicated application tab. I chose a browser extension after comparing cloud browsers and local Playwright services because one add-on could both control the tab and show interaction cards beside the work. It runs in the operator’s existing Chrome or Edge environment, keeping sign-in, internal access, MFA, and manual intervention in the same browser. Reasoning and task state stay in a central FastAPI and LangGraph service. A Chrome DevTools Protocol relay carries Playwright actions to the extension.

Manual sign-in, multi-factor authentication, and approval are part of the task flow. The operator can pause, resume, take over, or stop the agent. After human input, the agent continues from the current page, verifies the result, and records the actions and outcome with the ticket.

## Insurance Product Configuration Engine

Builds
Source ID projects:insurance
Original https://www.henryw.me/#/projects?to=insurance

One banking app supported many insurance products, each with different screens, fields, and conditional follow-ups. Business requirements described what a product needed to collect, design libraries described reusable screens and UI components, and engineering needed an executable configuration. The key dependency was the mapping between those representations across products and markets.

The core mapping was product specification to business scenarios to UI-component requirements. I reorganised the source information into linked libraries and decision tables so each layer could be maintained while the configuration rules connected them.

The production tool ran in Excel with a VBA engine. It supported conditional follow-up fields, wildcard matching, right-side rule overrides, and a dynamic form for non-technical users. I developed four versions and added an embedded tutorial so the tool could be maintained after my internship.

## Interactive Scrollytelling Deck

Builds
Source ID projects:scrollytelling
Original https://www.henryw.me/#/projects?to=scrollytelling

For a course presentation about the electricity and water demands of AI infrastructure, I built a web narrative whose charts develop as the reader scrolls. Figures stay in view while the explanation introduces new relationships. A shared scene schema and reusable D3 renderers separate the presentation’s content from the code that draws it. The resulting engine can support other stories using the same chart builders, layout, and animation settings.

## A Structure-Preserving RAG Ingestion Pipeline

Builds
Source ID projects:pwcRag
Original https://www.henryw.me/#/projects?to=pwcRag

The architectural risk appeared before retrieval began. If ingestion separated a passage from the note it refers to or reduced a flowchart to disconnected text, no later ranking or generation step could reliably restore the missing relationship.

MinerU rejoined paragraphs and tables across page breaks. Its OCR-based path recovered merged cells but missed nested tables in the tests. The built-in vision-language model recovered both as HTML. I then found that subsequent processing in the tested RAGFlow path discarded those tags, while LlamaIndex preserved the structure through indexing, retrieval and answer generation.

Cross-page footnotes and remarks needed explicit linking. I wrote a Python linker that used reference labels and document context to attach each note to its citing text before chunking. For flowchart images, I chose Mermaid to represent nodes and branches as searchable text that could be rendered back for inspection. Later research showed that MinerU’s built-in VLM already supported this conversion, bringing tables and flowcharts into the same parser and model.

A controlled five-page document let me repeat the checks across the full pipeline. The linker resolved all 13 cross-page references, and the reconstructed flowchart preserved every node, edge and label and supported correct answers to both test questions. I used this evidence alongside deployment and operating-cost analysis to develop the client recommendation, including its preference to operate fewer AI models.

## Stride Support

Builds
Source ID projects:stride
Original https://www.henryw.me/#/projects?to=stride

Stride Support combines retrieval-augmented generation (RAG), recommendations and tool use in a customer-support conversation. Hybrid retrieval blends BM25 word matching with BGE embeddings to find relevant products and policy passages. Recommendations combine product similarity with purchase patterns, while a fine-tuned multilingual BERT (mBERT) classifier supplies a sentiment cue for the response. A FastAPI orchestration layer gives the language model access to five Model Context Protocol (MCP) servers covering policies, products, recommendations, customers and complaints. The model can retrieve information, query an order and file or update a complaint across successive tool calls. The React interface keeps the selected purchase available throughout the conversation. Separate evaluations examine retrieval relevance, tool routing, complete responses and sentiment classification.

## Dealtracker

Builds
Source ID projects:dealtracker
Original https://www.henryw.me/#/projects?to=dealtracker

During my exchange in Melbourne, outdoor brands I liked were often cheaper than in Hong Kong, but finding the right offer meant repeatedly checking long sale pages. I built Dealtracker to scan two retailers on a schedule and match their listings against my brand, size, gender, and discount preferences. Store-specific request handling and data normalisation account for differences between the sites. A saved history tracks which products have already appeared in an alert. The next email groups new matches by brand and presents their photographs, prices, discounts and product links together.

## How I Started Building with Code

Builds
Source ID projects:early
Original https://www.henryw.me/#/projects?to=early

Seeing a teacher automate folder creation with a batch script made me curious about what else I could make a computer do. During junior high and high school, I taught myself Java and Python and treated code like building blocks, trying combinations and exploring the possibilities. I built desktop applications, a Scientific American podcast downloader, Chrome extensions, a music downloader, Kiwiview’s first website and automation scripts. Some experiments also answered a specific need, such as Econographer, a Word add-in for the economics diagrams we used in class. The projects follow that period in chronological order.

## Travels

Travels
Source ID travels:overview
Original https://www.henryw.me/#/travels

Drag to spin · pinch to zoom · tap a point

## Insurance Product Configuration Engine

Insurance Product Configuration Engine
Source ID playbook:overview
Original https://www.henryw.me/#/playbook

Mapping insurance requirements to the app’s screens and fields At HSBC , I built an Excel/VBA tool that determines which screens and fields a banking app needs for each insurance product. The team can enter a product’s specifications, generate its configuration and update the shared rules as products and requirements change. 00 Context

## Configuring the app for different insurance products

Insurance Product Configuration Engine
Source ID playbook:first-the-problem
Original https://www.henryw.me/#/playbook#first-the-problem

Across dozens of insurance products in multiple markets, the app needed different screens and questions. Travel insurance might need trip dates, motor insurance might need vehicle details, and an earlier answer could determine which follow-up question appeared. The team needed a way to express those differences and generate the corresponding configuration. I connected the product specifications to the design library of available screens and fields. The resulting rules let the engine translate a product’s requirements into the component configuration engineering needed. When a requirement changed, the team could update the rule and regenerate the configuration. 01 Mapping

## Making the configuration rules reusable

Insurance Product Configuration Engine
Source ID playbook:the-idea
Original https://www.henryw.me/#/playbook#the-idea

The required interface depended on combinations of product choices and conditions. I represented each relevant combination as a business scenario and defined rules for the components it required. This gave the engine a sequence it could evaluate, first establishing which scenarios applied, then selecting their screens and fields. Many products reuse the same definitions, conditions and components. Maintaining separate rules for each product would mean revising the same logic in several places whenever a shared requirement changed. I organised these into linked libraries, where each shared definition could be maintained once. Decision tables record which product values satisfy a scenario and which UI components it requires. Product specification The questions, allowed values and conditional inputs used to describe a product's requirements.

UI components The reusable screens, fields, and interface components available in the app. Decision tables The conditions that map specification values to the UI-component requirements for each business scenario. The engine follows product specification → business scenarios → UI-component requirements . The team can follow the same path backwards to see which scenario selected a screen or field and which product values made that scenario apply. The mapping gives them a way to inspect the generated configuration and the rules behind it. A new product can reuse the existing definitions with a different set of values. When a shared condition changes, the team can revise its decision table and regenerate the affected configurations. Keeping these rules outside the VBA code also makes that part of the engine accessible to the people maintaining the requirements. 02 Try it

## Try the rules on a trip

Insurance Product Configuration Engine
Source ID playbook:try-it
Original https://www.henryw.me/#/playbook#try-it

Change a trip’s details and trace the result through the highlighted rules to its packing list. The example below shows how conditional questions and separate decision tables work together. 03 Automation

## Automating product configuration

Insurance Product Configuration Engine
Source ID playbook:from-the-packing-demo-to-the-production-tool
Original https://www.henryw.me/#/playbook#from-the-packing-demo-to-the-production-tool

In the production Excel/VBA tool, users entered specifications through a dynamic form. A compact notation in each field definition determined when follow-up questions appeared. The roughly 32 KB engine evaluated these inputs against the decision tables and generated the required UI-component configuration. Decision tables combined broad defaults and specific exceptions through wildcard matching and right-side overrides. I developed four versions of the tool and included a tutorial showing colleagues how to maintain these rules and their linked libraries. After my internship, the team could continue generating configurations and updating the shared logic.

## Lexaday

Lexaday
Source ID lexaday:overview
Original https://www.henryw.me/#/lexaday

Related words, memorable images, and reviews by email I built Lexaday to teach related words through a shared root and an AI-generated image. Daily emails introduce new roots and revisit earlier ones on a personalised schedule. The project explores whether one visual memory can help learners recognise meaning across a family of words. 01 Words & images

## Remembering roots through images

Lexaday
Source ID lexaday:a-small-lesson-generated-fresh-each-morning
Original https://www.henryw.me/#/lexaday#a-small-lesson-generated-fresh-each-morning

A vivid image seemed a promising way to make a word’s meaning easier to recall. Giving every word its own picture, though, would create a new association to learn each time. I was interested in whether the same memory could help with several words, including ones I had not encountered yet. Roots offered a more compact starting point. Many words share an underlying idea such as speaking, hearing or sending. I used this shared meaning as the basis for a visual mnemonic, giving related words a common image to return to. Each lesson develops one root through those connections. For dict , associated with speaking, examples such as dictate , contradict and prediction show how the meaning takes different forms. A language model writes the explanations and examples, and an image model creates a visual mnemonic around the root’s meaning. The images here come from those lessons. 02 Review schedule

## Scheduling new roots and reviews

Lexaday
Source ID lexaday:the-learning-loop
Original https://www.henryw.me/#/lexaday#the-learning-loop

I built spaced repetition into the daily emails so earlier roots would return alongside new material. Reviews are scheduled after one, two, four, eight and progressively more daily runs. Each learner needs a separate schedule because the roots they have seen and their last review dates differ. A saved progress record lets the job select one unseen root alongside any reviews due that day, before generating the lesson. 1

## Due today

Lexaday
Source ID lexaday:pick
Original https://www.henryw.me/#/lexaday#pick

The learner's record determines which root is new and which earlier roots need another look. 2

## Words in context

Lexaday
Source ID lexaday:write
Original https://www.henryw.me/#/lexaday#write

A language model writes the introduction and example sentences for the root's related words. 3

## A visual cue

Lexaday
Source ID lexaday:imagine
Original https://www.henryw.me/#/lexaday#imagine

The root's meaning guides an image prompt, which an image model uses to create the mnemonic. 4

## The daily email

Lexaday
Source ID lexaday:send
Original https://www.henryw.me/#/lexaday#send

The lesson and images are assembled into an HTML email, and the progress record is saved for the next run. 03 Daily lesson

## The daily lesson

Lexaday
Source ID lexaday:what-the-reader-receives
Original https://www.henryw.me/#/lexaday#what-the-reader-receives

I packaged the new root and due reviews into a daily email. The complete example here shows how the image, related words and example sentences form a lesson, followed by earlier roots returning for another review. I used GitHub Actions for the scheduled runs and a JSON file for each learner’s progress. The file stores the run count, introduction date, last review, and current interval for every root encountered. Saving it after a lesson gives the next run the history it needs to choose what comes next. The schedule determines which roots the learner receives, and the language and image models develop the material for those roots. The lesson can vary in its examples and illustrations while following a consistent review schedule. One day's lesson, including the new root and earlier material due for review.

## Stride Support

Stride Support
Source ID stride:overview
Original https://www.henryw.me/#/stride

Customer support with retrieval, recommendations and tool use A customer asking about a return needs the policy applied to their purchase and a way to take the next step. For this course project, we built a support assistant that uses the selected order throughout a conversation. It retrieves product and policy information, recommends suitable products and carries out actions such as filing a complaint. 01 Context

## Keeping the order in context

Stride Support
Source ID stride:keeping-the-order-in-context
Original https://www.henryw.me/#/stride#keeping-the-order-in-context

“When will this arrive?” depends on which order the customer means. The interface lists ongoing and past orders and lets the customer select one. It sends that order’s status, items and delivery context with each message. Switching the selection changes the context supplied for the next turn. The backend supplies the active customer’s identity to the relevant tools. The same purchase therefore anchors the interface, the model’s interpretation and the database queries behind its response. A conversation can continue across an order check, a policy question and a complaint while keeping that reference consistent. 02 Tools

## Connecting retrieval to support actions

Stride Support
Source ID stride:giving-the-model-access-to-the-application
Original https://www.henryw.me/#/stride#giving-the-model-access-to-the-application

Some requests need a passage from a policy. Others need a current order record or a change to a complaint. We exposed these operations through five Model Context Protocol (MCP) servers, which describe the tools and the inputs they accept. Policy search retrieves documents, customer and complaint tools work with SQLite records, and catalogue and recommendation tools find suitable products. A FastAPI orchestration layer gives the language model these tool descriptions alongside the conversation and selected order. The model chooses a tool, the service executes it, and the result becomes context for the next decision. This loop lets a request develop across several steps, such as checking a purchase, finding the relevant policy and filing a complaint. The model uses retrieved information to develop its answer and decide what action to take next. 03 Retrieval and language

## Interpreting the customer’s request

Stride Support
Source ID stride:matching-language-to-the-support-domain
Original https://www.henryw.me/#/stride#matching-language-to-the-support-domain

Product names and policy terms can be useful exact matches, while a customer’s description of what they need may use quite different words. We combined BM25, which ranks word matches, with BGE embeddings, numerical representations that capture related meaning. Product and policy search normalise and blend the two scores, making the balance between wording and meaning adjustable. Recommendations add another kind of evidence. Similarity between product descriptions helps find alternatives, while co-purchases and customer activity reveal which items tend to be useful together. Combining these signals supports both a request for something similar and a recommendation based on purchase history. The wording also carries information about how to respond.

We fine-tuned multilingual BERT (mBERT) for sentiment classification and compared it with a bidirectional LSTM and a Transformer encoder trained from scratch on the SST-2 sentiment dataset. The chosen classifier supplies a per-message cue that the response model uses to adjust empathy and concision. A separate embedding-based check recognises the support domain and guides unrelated questions towards available capabilities. We evaluated policy retrieval, tool routing and complete chatbot responses separately, alongside the sentiment-model comparisons. Each addresses a different question. Did retrieval find the relevant passage, did the model select the appropriate operation, and did those results lead to a useful response? This made it possible to examine how each model and retrieval method contributed to the conversation as a whole.

## Dealtracker

Dealtracker
Source ID dealtracker:overview
Original https://www.henryw.me/#/dealtracker

Outdoor clothing sale alerts matched to my preferences During my exchange in Melbourne, I noticed that outdoor brands I liked, including Arc’teryx and Patagonia, were often cheaper than in Hong Kong and frequently discounted. Finding the right item still meant checking long sale pages before an offer ended. Dealtracker automates those checks and emails me when it finds a new match for my saved preferences. 01 Preferences

## A shortlist in my inbox

Dealtracker
Source ID dealtracker:from-noisy-sale-pages-to-a-short-inbox-digest
Original https://www.henryw.me/#/dealtracker#from-noisy-sale-pages-to-a-short-inbox-digest

I set filters for brands, sizes, gender, and minimum discounts. A scheduled job checks selected stores against those filters, turning their sale listings into a shortlist. The configuration shown here covers two Australian retailers and seven brands. 2 Australian stores 7 brands I track 29-39% minimum discount 02 The digest

## Enough information to decide

Dealtracker
Source ID dealtracker:the-email-output
Original https://www.henryw.me/#/dealtracker#the-email-output

A useful alert lets me assess the offer before opening the store’s page. I designed the digest to group items by brand and sort them by discount, showing a photograph and the original and sale prices beside each product link. The examples below show how that information comes together in the email. Arc'teryx and The North Face digest Patagonia and Icebreaker digest 03 Collection

## Reading the stores' product data

Dealtracker
Source ID dealtracker:what-happens-behind-the-email
Original https://www.henryw.me/#/dealtracker#what-happens-behind-the-email

WildEarth and Find Your Feet express similar products and filters differently. Applying my preferences consistently meant first accounting for each store’s URL format, page loading, and product labels. I kept the store-specific handling at the point of collection, then normalised the listings so the same filtering and email logic could work across both retailers. The stages below follow a listing into the digest. Store filters Saved brand, size, gender, and discount preferences are encoded in the URL format each store expects. Page loading A headless browser runs the page’s scripts so it can read product grids loaded after the initial response. Product data Arc'teryx and Arcteryx count as the same brand. When a store's gender labels are inconsistent, the product title is used to infer the category.

New matches Each qualifying product is checked against the saved history before it can enter the digest. Delivery An HTML email is sent when at least one new product passes all filters. 04 History

## Remembering what I have already seen

Dealtracker
Source ID dealtracker:the-control-layer
Original https://www.henryw.me/#/dealtracker#the-control-layer

A product can stay on sale across many scheduled checks. Without a record of earlier results, a successful search would keep filling my inbox with the same items. I added a history file so the job could distinguish a new match from one it had already reported. A run with nothing new finishes quietly. Sometimes I want to see the current selection again, including items I previously passed over. The job also checks its inbox for a reset command that clears the saved history. I can restart the shortlist through the same email workflow in which I receive the deals.

## Scrollytelling Engine

Scrollytelling Engine
Source ID scrollytelling:overview
Original https://www.henryw.me/#/scrollytelling

A web presentation whose charts unfold as you scroll For a course presentation about the electricity and water demands of AI infrastructure, I needed to explain relationships through maps, distributions, and flows. Showing a complete chart on a slide asked the audience to absorb its structure while following the argument. I built a scrolling web presentation so a figure could stay in view as the explanation introduced one relationship at a time. Readers could move through the argument at their own pace, watching the relevant data appear. As I developed the presentation, I began separating the content of each scene from the code that drew and animated it. Several scenes could use the same kind of chart, and changing their text or data should require only changes to that content. Reusable renderers built with D3, a JavaScript library for data visualisation, made this possible.

The resulting engine could support other presentations using the same chart builders. 01 Presentation

## The presentation in motion

Scrollytelling Engine
Source ID scrollytelling:see-it-as-a-story
Original https://www.henryw.me/#/scrollytelling#see-it-as-a-story

The embedded deck shows the engine in use. A line chart develops the comparison between electricity demand and grid capacity, while a map places water scarcity in its geographic context. Scroll inside the frame to follow the complete presentation. 02 Renderers

## Defining scenes with reusable D3 renderers

Scrollytelling Engine
Source ID scrollytelling:describe-a-scene-once-then-let-the-engine-build-it
Original https://www.henryw.me/#/scrollytelling#describe-a-scene-once-then-let-the-engine-build-it

Each scene describes its text, figure type, and rendering settings in a data object with a shared schema. A renderer registry connects that figure type to the appropriate D3 builder, which draws and animates the visual using the supplied data. Adding a new line-chart scene, for example, means supplying another set of content and settings to the existing line-chart builder. The explorer below uses the same builders as the full deck. Choose a figure, then open its scene definition to see how the data and display settings produce the result. 03 Consistency

## Keeping the scenes consistent

Scrollytelling Engine
Source ID scrollytelling:under-the-hood
Original https://www.henryw.me/#/scrollytelling#under-the-hood

Shared settings control layout, typography, and reveal timing across a deck. Individual scenes supply their own background, navigation label, and rendering properties. This keeps the presentation consistent while allowing each chart to express the relationships its part of the story needs. The builder library covers text, line charts, ridge plots, scatter plots, heatmaps, geographic maps, Sankey diagrams, and chord diagrams. A background manager handles the looping video layers behind them. The engine runs as plain ES modules and loads D3, d3-sankey and TopoJSON from CDNs. This lets a finished presentation run on a static host.

## See Henry through your own lens

Views
Source ID views:overview
Original https://www.henryw.me/#/views

See Henry through your own lens A note from Henry Start with what you’d like to explore about Henry. The site’s AI will create a View around your question or perspective. You can follow the links to explore the original work in more detail, and share your View here if you’d like others to read it too. Compose your own View

Views ✦ See how other visitors have looked across Henry’s work, experiences, and ideas.

## How I started building with code

How I Started Building with Code
Source ID early:overview
Original https://www.henryw.me/#/early

Downloaders, browser extensions, and an economics graph generator

During junior high and high school, programming felt like playing with building blocks. I could combine a few pieces, change something and see what the computer would do. Curiosity led me to try desktop apps, browser extensions, websites and automation. Along the way, some experiments became tools I used, including a podcast downloader and Econographer for drawing economics diagrams in Word.

## My first desktop programs

How I Started Building with Code
Source ID early:how-it-started
Original https://www.henryw.me/#/early#how-it-started

My interest began at thirteen, when a teacher demonstrated a batch script that created folders automatically. Seeing a few lines make the computer do something made me curious about what else I could get it to do. I started teaching myself Java and Python, trying small desktop applications, including a contact notebook and a number-guessing game with user accounts and a history stored in text files.

These screenshots show the contact notebook, one of the first applications I completed.

## Taking Scientific American podcasts with me

How I Started Building with Code
Source ID early:batch-downloading-scientific-american-episodes
Original https://www.henryw.me/#/early#batch-downloading-scientific-american-episodes

In my first year of junior high school, I started using Scientific American podcasts to practise English. I listened on an MP3 player that could also display images and text, so I built a desktop application that downloaded episode audio, transcripts, and images in batches. A simple account system recorded which episodes each user had downloaded and allowed the application to continue from the previous stopping point.

## Chrome extension experiments

How I Started Building with Code
Source ID early:chrome-extension-experiments
Original https://www.henryw.me/#/early#chrome-extension-experiments

In my second year of junior high school, I began exploring Chrome extensions. Tools that could change a page’s behaviour, such as dimming the screen around a YouTube video, made me want to understand how they worked. I learned to develop and publish extensions, then made several of my own.

Easy QR Code generated a QR code for the current page or for custom text and links.

Page Muter muted audio or video in the current tab.

Image Fetcher downloaded a page's images in a batch.

SA Fetcher brought a simplified version of the Scientific American downloader into the browser.

WeChat Spamming automated repeated messages in WeChat as a prank tool.

These screenshots show the developer dashboard and several of the extensions.

## Music streaming hacks

How I Started Building with Code
Source ID early:music-streaming-hacks
Original https://www.henryw.me/#/early#music-streaming-hacks

In my first year of high school, I spent several months developing a music downloader for Chinese streaming services. Users could paste a song-page link into one interface to download music across several services.

The technical work involved web scraping and reverse engineering how the services exposed media URLs. The interface accepted song-page links from QQ Music, NetEase Cloud Music, KuGou, and KuWo. Users could choose the audio quality and download multiple songs from an artist’s catalogue. I also built an account system with different levels of access, including restricted lossless downloads.

The service ran for about six months and reached 413 registered users. It could also retrieve paid tracks without authorisation, an implication I had not understood when I began. I closed it once I recognised the problem.

These screenshots show the Simplified Chinese interface used by the original audience.

## Building Kiwiview's website

How I Started Building with Code
Source ID early:building-kiwiviews-website
Original https://www.henryw.me/#/early#building-kiwiviews-website

In my second year of high school, I began building a website for Kiwiview International Limited, a New Zealand company co-owned by my parents and a local business partner. The company was new, and they gave me the opportunity to design and develop its first website.

I taught myself HTML, CSS, JavaScript, and SQL as I built the site. Deploying it to an IIS server on Tencent Cloud took months of work and meant learning how the server, database, domain, and hosting environment fitted together.

## A script that played arithmetic games

How I Started Building with Code
Source ID early:simple-automation
Original https://www.henryw.me/#/early#simple-automation

In my third year of high school, our school ran online mental-arithmetic and 24-point games. I built a script that recognised the questions on screen, solved them algorithmically, and entered the answers automatically. Each answer brought up another question, and the script kept going until the game timer ended.

The recordings below show how screen recognition, a solver and simulated input work together to complete the automation loop.

## Drawing economics diagrams in Word

How I Started Building with Code
Source ID early:econographer-an-economics-graphs-generator
Original https://www.henryw.me/#/early#econographer-an-economics-graphs-generator

Econographer, a Microsoft Word add-in

In my third year of high school, I wondered whether the economics diagrams we used in AP and IB coursework could be generated and adjusted in the document where we needed them. I could not find a suitable tool, so I made Econographer as a Microsoft Word add-in. Users choose a graph type, adjust its labels, curves, and equilibrium points, then insert the diagram into their document.

The video follows a graph being created, adjusted, and inserted into Word.

## AI × Self

AI × Self
Source ID aipersonalarchive:overview
Original https://www.henryw.me/#/aipersonalarchive

An AI-driven personal archive Visitors can ask AI a question about my work, ideas or experiences. AI connects material from this site into a View, an illustrated article that answers their question and includes the original work. Each View also becomes an exhibition visitors can walk through, and the Gallery brings shared exhibitions together. 00 The project

## An archive open to different perspectives

AI × Self
Source ID aipersonalarchive:one-archive-three-ways-to-explore
Original https://www.henryw.me/#/aipersonalarchive#one-archive-three-ways-to-explore

A personal site usually reflects how its author has organised their life. Work goes under projects, an experience under a date, a thought into a piece of writing. A visitor’s question can cross those boundaries and connect things I recorded years apart and for different reasons. AI can read across these records and develop connections around someone’s question. Those readings can also change how I understand my own experiences. I built Search to find original passages and Ask to answer questions with sources. View connects my work, ideas and experiences into a longer narrative, presented as an article or an exhibition. Visitors can save their Views and share them in the Gallery.

## System architecture

AI × Self
Source ID aipersonalarchive:system-architecture
Original https://www.henryw.me/#/aipersonalarchive#system-architecture

At build time, the site prepares passages, embeddings and a component catalogue. Search runs in the browser. Cloudflare Workers supply context to Gemini for Ask answers and View compositions. MiniLM creates the search embeddings locally through Transformers.js, and Fish Audio provides narration in my AI voice. The text API makes the public material available to visitors’ own agents. A shared JSON schema connects each View to its Vue article and Three.js exhibition. Cloudflare D1 stores saved readings and source snapshots, while R2 holds their media. The Gallery brings the public readings together. 01 Search

## Find a passage in its original context

AI × Self
Source ID aipersonalarchive:find-a-passage-in-its-original-context
Original https://www.henryw.me/#/aipersonalarchive#find-a-passage-in-its-original-context

As the site grew, I added Search so visitors could quickly find relevant material across its pages. Each result shows a matching passage and opens its place on the original page. Search combines lexical and semantic retrieval. Word matching finds names and technical terms, while embeddings find passages with related meaning. A query about translating business requirements into software can therefore surface my work at HSBC without naming the company. How Search finds related material At build time, all-MiniLM-L6-v2 encodes each passage as a 384-dimensional embedding. I quantise these vectors to 8-bit values to keep the download compact. Transformers.js runs the same model in the browser to embed a query, then cosine similarity ranks the passages by meaning. Fuse.js supplies the word-match ranking.

Weighted reciprocal-rank fusion combines it with the semantic ranking, giving word matches twice the weight. Using rank positions lets the two methods contribute despite their different scoring scales. Search excludes semantic matches below 0.24 cosine similarity. Adjust the threshold in the comparison to see which passages remain.

## The archive as a space

AI × Self
Source ID aipersonalarchive:seeing-the-archive-as-a-space
Original https://www.henryw.me/#/aipersonalarchive#seeing-the-archive-as-a-space

The embedding map gives the archive a spatial form. Projects, research and personal writing appear together as a field of points. Their positions make patterns of similarity visible across material that lives on separate pages. UMAP, a dimensionality-reduction method, arranges these embeddings in two or three dimensions. Each dot represents a passage. Nearby dots tend to represent passages with similar meanings. A visitor can add a question to see where it falls within the material already here. 02 Ask

## Ask brings related passages into one answer

AI × Self
Source ID aipersonalarchive:ask-brings-related-passages-into-one-answer
Original https://www.henryw.me/#/aipersonalarchive#ask-brings-related-passages-into-one-answer

I built Ask to let the site respond directly to visitors’ questions. It uses retrieval-augmented generation (RAG), giving a language model relevant material from my work, ideas and experiences to draw on. The model returns a structured response, which the interface presents as an answer with a linked source list and follow-up questions. Visitors can also listen to the answer in an AI voice trained on recordings of my own voice. How Ask uses the source material The browser assembles the public site passages, including writing selected through retrieval, and sends them with the question to a Cloudflare Worker. The Worker supplies this context to Gemini. Numbered passages let the model cite its sources. The answer carries those citation numbers, while separate response sections contain follow-up questions, navigation actions and a possible View offer.

The browser parses these into interface elements and builds the source list, grouping citations to the same location. Navigation actions map to the site’s registered routes and controls. I also embed the proposed follow-up questions and compare them with the archive, using a 0.30 cosine-similarity threshold to select suggestions supported by site material.

## How does Ask handle different kinds of questions?

AI × Self
Source ID aipersonalarchive:how-does-ask-handle-different-kinds-of-questions
Original https://www.henryw.me/#/aipersonalarchive#how-does-ask-handle-different-kinds-of-questions

Ask classifies questions to choose an appropriate response. For questions about using the site, it offers a link or action. For questions about my work and ideas, it explains the relevant material and can offer a View for a fuller interpretation. 03 View

## View reorganises the site around a question

AI × Self
Source ID aipersonalarchive:view-reorganises-the-site-around-a-question
Original https://www.henryw.me/#/aipersonalarchive#view-reorganises-the-site-around-a-question

A View brings together my work, ideas and experiences around a visitor’s question. AI connects the selected material into a narrative and places the original works within it for visitors to explore. Different questions bring out different relationships in the same archive. A reading about learning might connect a research study with an education project, revealing something neither piece explains on its own. Compose a View

## How does AI build an interpretation around a question?

AI × Self
Source ID aipersonalarchive:how-does-ai-build-an-interpretation-around-a-question
Original https://www.henryw.me/#/aipersonalarchive#how-does-ai-build-an-interpretation-around-a-question

I registered written passages, image groups and working demos as reusable components. The model selects and places them within the narrative, explaining how each supports its interpretation. Visitors can read, examine and interact with the original work as they follow the argument. The model can use ideas beyond the archive to interpret my material. For example, it can read my travel writing through a theory of identity and explain what that reveals about my sense of home. An image-generation model creates an illustration that captures the View’s central idea.

## A reading to save and share

AI × Self
Source ID aipersonalarchive:a-reading-to-save-and-share
Original https://www.henryw.me/#/aipersonalarchive#a-reading-to-save-and-share

A saved View brings together its question, narrative, sources, illustrations and audio. Its permanent link lets the creator return to that version or share it with someone else. Creators can also publish a View in the shared collection. Other visitors can explore these readings and see the archive through someone else’s perspective. 04 Gallery

## Every View becomes an exhibition

AI × Self
Source ID aipersonalarchive:every-view-becomes-an-exhibition
Original https://www.henryw.me/#/aipersonalarchive#every-view-becomes-an-exhibition

I turned each View into an exhibition so visitors could explore its perspective by moving among the original works. The narrative guides the visit, and visitors can pause to explore a photograph, passage or project and make connections of their own. Each section becomes a room, with photographs on walls, writing on reading stands and places on a globe. The layout responds to the number and type of works in each section, connecting the rooms in reading order. Each interpretation has its own route through the archive. Visit an exhibition

## On desktop and phone

AI × Self
Source ID aipersonalarchive:available-across-the-site
Original https://www.henryw.me/#/aipersonalarchive#available-across-the-site

Visitors can open Search, Ask, View and the embedding map from the header on any page. Home also has a question field, and wide screens add a search control beside the page. The Gallery and Exhibitions use different camera views, reading panels and controls on desktop, portrait phones and landscape phones. The demonstrations below show these layouts alongside the ways visitors can open the site’s tools.

## Exploring with your own agent

AI × Self
Source ID aipersonalarchive:exploring-with-your-own-agent
Original https://www.henryw.me/#/aipersonalarchive#exploring-with-your-own-agent

Visitors can give their agent henryw.me to explore my work, ideas and experiences. A reading guide and public text API provide the archive and links to the original pages, so the agent can read, connect and cite the material in its own response. How agents read the archive I export the site’s public writing as complete text and JSON records at build time. An agent can read the archive through ordinary HTTP GET requests, then use its own model to interpret the material. Reading whole pieces gives it the context to make connections across projects, research and personal writing. The static downloads and text API use the same source records. Each record carries the full text, a stable ID and a link to its original place on the site.

A content revision identifies the version the agent is reading. henryw.me Reading guide Discover the interface The page’s HTML links and llms.txt point to a reading guide and an OpenAPI definition describing the available requests. Research Projects Fragments Read the material The agent can download the whole archive or request complete sections and individual sources through the API, according to its task and context budget. Research Original writing Connect and cite The agent develops its answer across the material. Original page links let the reader follow a citation to the passage, image or interactive work it discusses. 06 Afterword

## What can I learn from a website about myself?

AI × Self
Source ID aipersonalarchive:what-the-case-gives-back
Original https://www.henryw.me/#/aipersonalarchive#what-the-case-gives-back

Some things in my own life are easier to see through someone else’s questions. The experiences are familiar to me, yet the relationships a visitor asks about may be ones I have never considered. AI can develop those relationships into a reading I can follow, giving me a chance to reconsider what I already know about myself. My own perspective also changes with time. A passage I wrote years ago can mean something different after a later experience. Revisiting that passage helps me consider what has changed in my thinking. I become a reader of my own archive and continue to learn about the life I have recorded. Saved Views preserve the questions people asked and the readings they prompted. Over time, these become part of the archive themselves. In a few years, I will be able to revisit how these experiences were interpreted at this point in my life.

## A Structure-Preserving RAG Ingestion Pipeline

A Structure-Preserving RAG Ingestion Pipeline
Source ID ragflow-pipeline:overview
Original https://www.henryw.me/#/ragflow-pipeline

Preserving document structure when preparing PDFs for an AI assistant At PwC, I evaluated and combined document-processing tools for an AI assistant that answers public enquiries using a client’s documents. I built an ingestion pipeline that prepares those documents for retrieval while preserving the relationships an answer may depend on, including table structure, cross-page references and the branches of a flowchart. End-to-end tests and deployment analysis informed the solution I recommended to the client. 00 The brief

## Understanding what the client needed

A Structure-Preserving RAG Ingestion Pipeline
Source ID ragflow-pipeline:understanding-the-client-requirements
Original https://www.henryw.me/#/ragflow-pipeline#understanding-the-client-requirements

The assistant would find relevant passages in the client’s documents and give them to a language model to help answer a question, an approach known as retrieval-augmented generation (RAG). My task was to prepare the documents for that process. The requirements covered paragraphs and tables continuing across pages, complex table structures, references to distant notes and remarks, and flowcharts stored as images. An answer could depend on a relationship within any of these, so those relationships needed to survive document processing. These functional requirements left the technical choices open. I needed to establish which existing tools could meet them, what additional processing was necessary, and how the combined solution would fit the client’s infrastructure and operating budget.

I brought the cases together in a controlled five-page document, so comparisons used the same input and could follow the evidence through to an answer. 01 Page breaks

## Keeping a paragraph or table together across pages

A Structure-Preserving RAG Ingestion Pipeline
Source ID ragflow-pipeline:why-one-pdf-needed-several-ways-of-reading
Original https://www.henryw.me/#/ragflow-pipeline#why-one-pdf-needed-several-ways-of-reading

A page boundary can fall halfway through a paragraph or table. If extraction treats the next page as a fresh start, the resulting fragments may separate a passage from its continuation. I first tested how much an existing parser could recover. MinerU, a tool for converting PDFs into structured content, rejoined the interrupted paragraphs and tables in the test document. This requirement could be met within the parsing stage. The next check was whether that continuity would survive chunking, which divides the parsed content into searchable passages. A parser could reconstruct a table successfully, only for a later split to detach its rows from their context. I included this downstream behaviour in the selection criteria, checking both the reconstructed document and the passages produced from it. 02 Complex tables

## Preserving the structure inside a table

A Structure-Preserving RAG Ingestion Pipeline
Source ID ragflow-pipeline:complex-tables
Original https://www.henryw.me/#/ragflow-pipeline#complex-tables

A merged cell can make one heading apply to several rows or columns. A nested table introduces a smaller set of relationships inside a single cell, such as the booking rules in this example. Flattening either into a sequence of words makes it harder to determine which condition governs which value. I tested both structures separately because success on merged cells would say little about a parser’s ability to recognise a table inside a table. MinerU’s OCR-based path, which recognises text and reconstructs layout, recovered the merged cells as HTML but missed the nested tables in the tests. Its built-in vision-language model (VLM), which interprets images as well as text, recovered both. HTML could express the resulting hierarchy explicitly through cells spanning rows or columns and tables contained within other cells. That result needed to survive the rest of the pipeline.

In the RAGFlow path I tested, subsequent processing discarded the HTML tags. The parser’s output contained the relationships, but the material supplied for an answer had lost them. With LlamaIndex, a framework for organising content for retrieval, the structure remained available through indexing, retrieval and answer generation. I therefore selected MinerU’s built-in VLM with LlamaIndex, checking the evidence returned to the model as well as the parser’s output. 03 References

## Retrieving a passage with the note it refers to

A Structure-Preserving RAG Ingestion Pipeline
Source ID ragflow-pipeline:notes
Original https://www.henryw.me/#/ragflow-pipeline#notes

A sentence could cite Note (4) several pages before the note appeared. Extracting both passages accurately still left retrieval with two separate pieces. A question might match the citing passage closely while giving the search little reason to return the note it refers to. I needed to make their explicit reference part of the material being indexed. I considered linking the resulting chunks through metadata and attaching the note to its citing text immediately after parsing. The second approach was simpler to carry through retrieval. MinerU preserved the reference metadata, and the document’s surrounding context was still available at that point. A custom Python linker could resolve the relationship before chunk boundaries were set. Repeated note numbers meant that matching a label alone was insufficient.

The linker used the relevant section, position and surrounding context, repaired fragmented notes, and normalised inconsistent labels. It then placed the note beside its citation and removed the duplicate standalone copy. Chunking could keep the passage and its linked note in one unit of evidence. The example connects a sentence on page 3 with its note on page 5. Across the controlled document, the linker resolved all 13 cross-page references. In the retrieval check, the combined passage and note became the top result for the question they answered. Other approaches I tested Baidu Unlimited OCR offered a multi-page mode. In tests on difficult public government documents, it retained many layout features, while the relationship between a passage and a later note still needed explicit linking. Reading several pages together did not by itself establish which passages belonged together.

I also examined image-based and multimodal retrieval. Keeping each page as an image retained its visual layout while leaving cross-page relationships separate. The RAGFlow path I evaluated converted images to text before embedding them. Linking the references in that text let me determine which pieces would be retrieved together. 04 Flowcharts

## Making a flowchart’s decision logic searchable

A Structure-Preserving RAG Ingestion Pipeline
Source ID ragflow-pipeline:mermaid
Original https://www.henryw.me/#/ragflow-pipeline#mermaid

Many client documents used flowchart images to explain a procedure. An answer might depend on following a “Yes” branch through several conditions. OCR could recover the words in each box while losing the arrows that made them a decision. I also tested free-form VLM descriptions, which conveyed the overall process with varying levels of detail. I chose Mermaid, a text-based diagram language that makes each branch explicit through nodes, connecting edges and labels. This let me inspect the individual decision paths. A VLM could convert the image into this representation, making its logic searchable alongside the document’s prose. Rendering the text back into a diagram also gave me a way to compare the reconstructed decisions with the original. In the controlled test, the reconstruction retained every node, edge and label and supported correct answers to both flowchart questions.

Later in the research, I found that MinerU’s built-in VLM already supported converting flowcharts to Mermaid. It could select an appropriate representation for an image, including HTML for tables and Mermaid for flowcharts. This brought the two visual requirements into the same parser and model, fitting the client’s preference to keep the number of models they operated small. 05 The solution

## Bringing the four requirements into one pipeline

A Structure-Preserving RAG Ingestion Pipeline
Source ID ragflow-pipeline:what-i-tested-before-recommending-it
Original https://www.henryw.me/#/ragflow-pipeline#what-i-tested-before-recommending-it

The recommended architecture combined MinerU with its built-in VLM, a post-parsing reference linker, and LlamaIndex. Parsing recovered document continuity and represented tables and diagrams in structured text. The linker attached referenced notes and remarks before LlamaIndex formed chunks for retrieval. An embedding model represented those chunks and the question as numerical vectors, allowing passages with related meanings to be found even when their wording differed. The answer model then received the retrieved evidence with its relationships intact. I integrated these components in a proof of concept and followed the controlled document through the full path, checking what reached the answer model after each processing choice. This exposed losses that a successful parsing preview had concealed and gave the client an end-to-end basis for choosing the tools.

I separated GPU-backed parsing and visual interpretation from CPU orchestration, reference linking and indexing, then compared on-premises and private-cloud deployment. On-demand processing could release resources between ingestion jobs. Starting a new job would then take time to load the model. Keeping the service running traded that delay for ongoing cost. These choices let the client assess the pipeline against its infrastructure, ingestion frequency and maintenance capacity. 06 Reflection

## Judging the whole solution

A Structure-Preserving RAG Ingestion Pipeline
Source ID ragflow-pipeline:judging-the-whole-solution
Original https://www.henryw.me/#/ragflow-pipeline#judging-the-whole-solution

Part of my role was deciding what would count as meeting a requirement. “Support complex tables” leaves several possibilities open. A tool might reproduce a table’s appearance, recover its hierarchy, or make that hierarchy available to the model answering a question. The client’s purpose determines which of these matters. I had to translate that purpose into checks detailed enough to guide a technical choice, while leaving room to discover how existing tools could satisfy it. Specifying a particular implementation too early would have narrowed the options before I understood them. I also needed to judge the combination of tools as a solution in its own right. A capability demonstrated by one component can disappear at its interface with the next, as the table structure did during downstream processing. That makes integration part of the evaluation itself.

It affects where to intervene, too. Existing parsing capabilities covered several requirements, while reference linking called for a small piece of custom logic. The distinction depended on the relationship each requirement needed to preserve. It gave me a reason for every part I added and a way to test whether that addition worked. Operating constraints belong in the same reasoning. Ingestion frequency changes whether model start-up time or idle GPU cost is the more significant concern. A preference for fewer models affects the value of finding table and flowchart support within one parser. These dependencies mean a recommendation has to explain the conditions under which its choices make sense. I want the client to be able to see which decisions can remain in place as usage grows, and which should be revisited if its documents, workload or infrastructure change.

## Risk Assessment Across Long Documents

Risk Assessment Across Long Documents
Source ID document-review:overview
Original https://www.henryw.me/#/document-review

Reading long reports and connecting the evidence behind each finding At PwC, I designed and built an AI pipeline that reads long reports, extracts individual evidence records and combines them to assess different risks. Reviewers can inspect the reasoning and open the original source pages behind each finding. 01 Task and workflow

## A risk judgement can depend on evidence across the whole report.

Risk Assessment Across Long Documents
Source ID document-review:prepare-the-evidence-for-a-decision
Original https://www.henryw.me/#/document-review#prepare-the-evidence-for-a-decision

The team needed to assess a defined set of risks in reports spanning hundreds of pages. Relevant observations appeared in the text, tables and appendices. A finding could depend on facts from several sections, each carrying its own context. I designed a workflow that reads every page, builds a shared collection of evidence and assesses each risk against that material. The resulting findings retain their source references and appear in a workspace for human review.

## Assessment guidance defines what to collect and how to judge it

Risk Assessment Across Long Documents
Source ID document-review:designing-around-delivery-constraints
Original https://www.henryw.me/#/document-review#designing-around-delivery-constraints

I translated each risk’s definition into evidence requirements and decision rules. The requirements guide what the model extracts. The rules explain how those observations should be interpreted together. Optional source guidance identifies sections likely to contain useful context. 02 Evidence extraction

## Page-level extraction gives scattered observations a shared structure.

Risk Assessment Across Long Documents
Source ID document-review:designing-reusable-evidence-records
Original https://www.henryw.me/#/document-review#designing-reusable-evidence-records

I use the table of contents (TOC) and section headings to divide the report into chunks, capped at eight pages. This keeps related material together and makes each reading task manageable. The pages are rendered as images so a vision-language model (VLM) can read the layout of tables and visual material alongside the report’s text. Each chunk can produce several evidence records. The extraction guidance focuses on facts that support, qualify or rule out a finding. Each record preserves enough context for the observation to remain meaningful when it is read alongside evidence from another section. Observed content The reported fact, including the quantities, conditions and qualifications needed to interpret it. Source context The document section, page and original item, such as a table row or paragraph.

Assessment relevance The risks the observation may inform and the context needed to assess its significance. These records form an evidence ledger shared across the assessments. Item identifiers connect observations about the same subject and help recognise repeated evidence. Section paths distinguish similarly named tables or appendices. Several risks can then draw on the same observation while retaining its original reference. 03 Synthesis

## Each risk is assessed against the collected evidence.

Risk Assessment Across Long Documents
Source ID document-review:reusing-evidence-across-assessments
Original https://www.henryw.me/#/document-review#reusing-evidence-across-assessments

Each risk has a separate synthesis pass. It applies the decision rules to the relevant records, connects observations across pages and explains how they support or qualify a finding. Separating this judgement from extraction lets the assessment reason over the evidence gathered across the report. The model also receives the document index. When a conclusion needs context missing from a record, it can revisit the relevant source pages. New evidence is added to the ledger before the assessment is refined. If a classification still requires human judgement, the finding includes a specific question for the reviewer.

## Parallel processing makes full-report assessment practical

Risk Assessment Across Long Documents
Source ID document-review:implementing-the-review-workflow
Original https://www.henryw.me/#/document-review#implementing-the-review-workflow

Independent chunks are read in parallel, followed by parallel risk assessments that reuse the shared ledger. Source-page checks can also run together when more context is needed. Across three sample reports of a few hundred pages, the estimated average was about five minutes and US$0.68 in model calls. The estimate combines measured page rendering with recorded model timings and usage. 04 Presenting the assessment

## The review interface keeps each finding beside its source.

Risk Assessment Across Long Documents
Source ID document-review:reviewing-findings-against-the-source
Original https://www.henryw.me/#/document-review#reviewing-findings-against-the-source

I organised the workspace around a finding list, an interpretation panel and a continuous report viewer. Selecting an interpretation opens its cited page while keeping the reasoning visible. This makes the evidence and the conclusion easy to compare. The Evidence Explorer shows which pages support the final assessment and what other context was considered. The interactive example below uses a fictional report. Review decisions complete the workflow. Reviewers can confirm, correct or reject a finding. The interface preserves the original assessment alongside corrections and notes, then carries the decisions into a report-level summary.

## AI for IT Operations

AI for IT Operations
Source ID ai-it-operations:overview
Original https://www.henryw.me/#/ai-it-operations

Maintaining technical knowledge and carrying out service requests At PwC, I designed a system that uses AI to identify gaps in an IT assistant’s knowledge, research the missing information and keep its knowledge base up to date. I also built a browser agent that interprets service tickets and automates tasks in web applications. 00 Context

## Where AI can help in IT operations

AI for IT Operations
Source ID ai-it-operations:ai-in-it-operations
Original https://www.henryw.me/#/ai-it-operations#ai-in-it-operations

Keeping an organisation’s technology running involves maintaining systems, investigating faults and supporting the people who use them. An IT team works across many products and has to keep up as their software and documentation change. At PwC, I researched how AI could help with this work, including making technical knowledge easier to consult and automating tasks in existing applications. Two kinds of work need different support. Answering a technical question depends on reliable documentation. Fulfilling a service ticket depends on acting in an application and checking the result. I connected AI reasoning to those workflows, retaining source records for knowledge updates and operator controls for browser actions. 01 Knowledge management

## Keeping the assistant’s knowledge useful

AI for IT Operations
Source ID ai-it-operations:knowledge-management
Original https://www.henryw.me/#/ai-it-operations#knowledge-management

The IT assistant answers questions about using and maintaining systems. It retrieves relevant passages from technical documents and supplies them to a language model when composing an answer. This approach is known as retrieval-augmented generation (RAG). That collection, its knowledge base, needs continuing attention. Useful information may be missing, and documents already collected can become outdated. I designed the platform’s Knowledge Management around these two needs, acquiring material that expands what the assistant can answer and maintaining it as the sources change.

## Where does the assistant need more knowledge?

AI for IT Operations
Source ID ai-it-operations:where-does-the-assistant-need-more-knowledge
Original https://www.henryw.me/#/ai-it-operations#where-does-the-assistant-need-more-knowledge

I used specific questions to identify gaps in the knowledge base. Guidance on renewing a security certificate, for example, might omit the steps that make an application use the replacement. Checking each question against the collected documents gives the next search a precise target. Unanswered user questions reveal immediate needs. I also used AI to propose questions people might ask next, then checked whether the existing material could answer them. This lets the collection develop ahead of demand while making use of knowledge already held. Documentation collected for Python web apps may also explain how to host a REST API. The matrix below therefore separates whether a question has been asked from whether the knowledge base can answer it. Select a case to see an example, then research the missing answers.

## Researching gaps in technical guidance

AI for IT Operations
Source ID ai-it-operations:researching-gaps-in-technical-guidance
Original https://www.henryw.me/#/ai-it-operations#researching-gaps-in-technical-guidance

Several knowledge gaps can concern the same problem. Certificate expiry, renewal and a replacement that fails to take effect all concern the certificate lifecycle. I grouped related gaps into a shared research objective, giving the agent a reason to explore their connections. The individual questions stayed attached to the objective as concrete checks on what the research needed to cover. That objective guided where to look. I used AI to find relevant starting pages, then directed a crawler to follow links and collect documentation that could answer the questions. Starting near the relevant material mattered on large vendor sites, where following links from the homepage could consume the search budget before reaching the guidance needed. As it collected material, the agent assessed which questions now had supporting evidence and what each additional page contributed.

An unresolved question could lead it to look for another starting page. Once the questions were covered and further crawling added little useful information, it could send the proposed sources for review. Combining question coverage with information gain gave the research a stopping condition, alongside page and time limits.

## What happens when the guidance changes?

AI for IT Operations
Source ID ai-it-operations:what-happens-when-the-guidance-changes
Original https://www.henryw.me/#/ai-it-operations#what-happens-when-the-guidance-changes

Adding a document to the knowledge base creates an ongoing maintenance task. The vendor may revise its instructions while the assistant still draws on the earlier copy. To check for those changes, the system needs to know where each document came from. I retained the original source URL when collecting the material so it could be revisited later. The ingestion pipeline prepares documents for the knowledge base by extracting their text and splitting it into searchable passages, or chunks. After this processing, a source update needs to be connected to the passages it affects. I stored the accepted version of each source alongside links to its derived knowledge. These records formed the Source Registry , giving the system both a version to compare against and a way to locate the knowledge that might need updating.

Monitoring could then revisit the original URL and compare its main content with the accepted snapshot. Normalising the content before comparison filters out differences in formatting. If the content has changed, AI reads the difference alongside the linked knowledge and assesses its significance. A changed page may contain an updated procedure, or the change may have no bearing on the guidance already held. Detecting the difference and judging its implications require different kinds of work. Because the affected knowledge is traceable, the agent can propose replacing or removing specific passages, or request further research if the changed source leaves a question unresolved. Proposed updates go through human review before the ingestion pipeline updates the knowledge and its source records together.

The next check then compares against the newly accepted version, preserving the connection between what the assistant knows and the evidence supporting it. Inside Knowledge Management Research, ingestion, and source records +

## Processing and maintaining source material

AI for IT Operations
Source ID ai-it-operations:from-a-source-to-maintained-knowledge
Original https://www.henryw.me/#/ai-it-operations#from-a-source-to-maintained-knowledge

The crawler research covered Crawl4AI Adaptive, SiteOne, Mdream/crawl, Browsertrix, and Firecrawl OSS across Azure, SAP, ServiceNow, and Oracle documentation. The results informed the separation between deciding what knowledge to acquire and the mechanics of fetching and processing pages. For each candidate page, the acquisition agent assesses relevance to the objective, source authority, overlap with material already collected, and likely information gain. Seed discovery supplies new starting URLs when the existing crawl cannot cover a question. The agent retains the original questions alongside the broader objective, allowing coverage to be checked as the search proceeds. Approved material passes through a shared ingestion and update pipeline for extraction, normalisation, deduplication, chunking, and indexing. Provenance records connect the searchable chunks to their source.

The pipeline updates the Knowledge Base and Source Registry together for additions, replacements, and removals. The accepted snapshot is the baseline for monitoring. It advances when a reviewed update is applied to the knowledge base, so later comparisons remain tied to the guidance the assistant is using. Source fetching, normalisation, comparison, and record updates use conventional system logic. AI assesses what a detected change means for the linked knowledge. Knowledge Base Source Registry Searchable knowledge stays linked to its accepted source material 02 Browser agent

## Carrying out a service ticket in the browser

AI for IT Operations
Source ID ai-it-operations:browser-control
Original https://www.henryw.me/#/ai-it-operations#browser-control

The second area concerned service requests that an IT operator carries out in a browser. A ticket such as “Please give Alex Chen editor access to the Analytics workspace” describes an outcome. The operator still has to find the right account, workspace and permission in the application. I built the platform’s Browser Control agent to interpret the ticket and carry out that work, reading the current page to decide what to do next. I brought the agent into the operator’s existing browser through an extension. The agent works in a dedicated tab. Interaction cards beside the application let the operator make decisions and supply inputs when needed. The task continues from the current page after either the agent or the operator acts. Try the example ticket below to follow the exchange between the agent and operator.

After it is resolved, open the ticket record to review the actions, approvals, and outcome.

## Turning the request into actions

AI for IT Operations
Source ID ai-it-operations:turning-the-request-into-actions
Original https://www.henryw.me/#/ai-it-operations#turning-the-request-into-actions

Even a familiar task can unfold differently when an application shows a validation message or an operator edits a form. The agent needs to see the effect of each action before choosing the next one. I used an observation loop that reads the current page, chooses an action in relation to the ticket, and reads the result. The ticket supplies the intended outcome while the page supplies the information needed to work towards it. When a person intervenes, the resulting page becomes the starting point for the next decision. I kept the observations, actions, and human decisions with the paused task so the agent could continue after sign-in or a correction without losing the context of earlier work.

## Why a browser extension?

AI for IT Operations
Source ID ai-it-operations:why-a-browser-extension
Original https://www.henryw.me/#/ai-it-operations#why-a-browser-extension

The agent needed access to internal applications and a place for the operator to work alongside it. A remote browser would need its own access to internal systems and a way for the operator to intervene. A local automation service could use the operator’s environment, but it would need separate installation and maintenance. I compared those options with an extension that could combine control and interaction inside Chrome or Edge. The extension combined browser automation and the operator interface in one installation. It prepared changes and displayed interaction cards beside the application. Sign-in and multi-factor authentication stayed in the browser the operator already used. This made taking over part of the normal task flow. I placed reasoning and task state in a central service, so updates to the agent’s planning logic could reach everyone through one deployment.

The extension handled access to the local browser and interaction with the operator.

## Checking the result and keeping a task record

AI for IT Operations
Source ID ai-it-operations:a-place-to-start-intervene-and-look-back
Original https://www.henryw.me/#/ai-it-operations#a-place-to-start-intervene-and-look-back

After executing a request, the agent checks the application’s confirmation and records the outcome alongside the actions and human decisions that led to it. The operator can return to the ticket on the dashboard to review the completed work. Inside Browser Control Planning, browser actions, and task history +

## The browser agent’s execution loop

AI for IT Operations
Source ID ai-it-operations:from-planning-to-a-browser-action
Original https://www.henryw.me/#/ai-it-operations#from-planning-to-a-browser-action

A FastAPI service manages browser tasks. LangGraph retains the request, page observations, action history, and human decisions as the planner moves between steps. Pausing for approval or manual input preserves the same task so it can resume afterwards. Playwright sends structured actions through a relay to the browser extension. The extension uses the Chrome DevTools Protocol to read and control the dedicated tab, then returns the resulting page state to the cloud agent. The extension runs on the operator’s machine and connects to centrally hosted automation and reasoning services. Request + current page Agent decision Browser action Read the resulting page, then decide what to do next 03 Reflections

## What to automate, and how

AI for IT Operations
Source ID ai-it-operations:where-judgement-changes-hands
Original https://www.henryw.me/#/ai-it-operations#where-judgement-changes-hands

Across both parts of the platform, I approached automation at the level of individual decisions within a task. Researching a question, proposing an update, accepting the guidance and applying the change each require different information and judgement. In knowledge maintenance, I assigned investigation and preparation to AI, gave the reviewer a concrete proposal with its evidence, and used the ingestion pipeline to apply the accepted change. Delegating a step to AI also requires deciding which parts of its method to specify. A prompt can give a model an objective, evidence and criteria for judging its next step. A more structured workflow can prescribe stages and available tools while leaving particular decisions to the model. Where the inputs and procedure are already well defined, a script can execute the same logic each time.

A workflow can combine these approaches and give the model different amounts of freedom at each step. In knowledge acquisition, I specified what the search should achieve before knowing which pages it would need. The original questions define the coverage required, and the broader research objective gives the agent room to follow related evidence. Relevance, source authority and information gain guide its choices. This structure keeps the research connected to the missing knowledge while allowing the route through the documentation to emerge as the agent reads. I used prompts to give the model criteria for weighing evidence, and system logic to enforce fixed conditions. Tool schemas define the actions the system can accept, and page and time limits bound execution. Predictable operations such as comparing normalised snapshots and updating source records belong in system logic.

In source monitoring, that comparison determines whether there is a change for AI to assess at all. The model then reasons about its implications for the linked knowledge. This concentrates reasoning on the decision that needs interpretation. Human-in-the-loop design adds a choice about responsibility and context. A person can authorise a well-understood change, supply information the agent lacks, or correct its interpretation. Each requires the relevant evidence and a way to continue from the person's decision. I kept source changes connected to their affected passages, and retained task history and current page state when an operator intervened. Those records make review and correction part of the workflow, so handing work back to AI preserves what the person has just contributed. How much structure to provide can also change as the work becomes better understood.

Repeated cases may reveal a rule that can be written into guidance. If applying it still requires interpreting the situation, it can guide the model's judgement. If its conditions and exceptions can be stated precisely, it becomes a candidate for a decision table or script. I see this as part of developing the automation over time, making established knowledge reusable while keeping reasoning available where the next decision still depends on context.

## Fragments

Fragments
Source ID fragments:overview
Original https://www.henryw.me/#/fragments

I write down thoughts and memories before they fade, so I can return to what I was thinking and how life felt at the time. You’re welcome to look through them and get to know me a little beyond my work.

## The Projection of Thought

Fragments
Source ID fragments:the-projection-of-thought
Original https://www.henryw.me/#/fragments#the-projection-of-thought

I used to think of expression mainly as compression. A thought is larger than a sentence, so putting it into words means choosing an order, making some relations explicit, and leaving other things out. That still feels true, but compression alone makes the thought sound too fixed, as if it were a complete object that language merely made smaller. Often the deeper change is that expression projects a moving state onto a surface.

Before expression, a thought may contain pressure, direction, hesitation, memory, bodily feeling, and several possible paths at once. These parts do not always stand separately. They pull on one another and change meaning through their relation. A word can feel wrong not because it is false, but because saying it would make the thought turn too early. A vague feeling can hold several directions before any one of them is ready to become a claim.

Language makes that movement proceed in a line. One sentence must come before another. A relation becomes a phrase, a pressure becomes a claim, a hesitation becomes a qualification, and an unfinished direction may become a title. What was simultaneous becomes sequential. What was layered is divided into parts. What was still moving becomes easier to treat as a stable object. Expression changes which parts of a thought remain available and how they relate.

This projection is necessary. A thought that remains only as pressure may disappear, whereas a sentence gives me something I can return to, revise, compare, and share. The surface carries the thought, even though it does not contain the whole state from which it came. The problem begins when the surface starts to feel identical to the thought itself.

Once something has been written, later thinking tends to continue from the written version. I add distinctions, examples, and structure to the sentence I can see, and the result may become clearer while moving away from relations that were active before the sentence existed. This is why a summary can feel wrong even when every visible claim is accurate. It may capture what I managed to say while losing the pressure, ambiguity, or unfinished direction that made the thought matter.

Old notes can feel strange for the same reason. A note may preserve one surface of a thought without preserving the movement around it. Still, it can provide a route back. A phrase, title, or badly written paragraph may reactivate more than it explicitly records if I read it as a trace rather than a definition. The note does not need to contain the whole thought. It needs to help me meet the thought again.

AI is especially powerful on these projected surfaces. It can organise notes, name distinctions, build an outline, and make one possible direction look coherent. That can reveal relationships I had not seen. It can also make a temporary surface look like the final structure, turning hesitation into a neat qualification and several live possibilities into one persuasive frame. A partial projection may become convincing enough that I stop revisiting the wider movement that produced it.

I need to move between the structure I have expressed and what remains unresolved beneath it. When a structure comes back to me, I need to ask whether it helps the thought continue or makes it look finished too early. This is also why I want fragments to remain open. A fragment records a moment when a thought became visible enough to hold, not the final account of what it was. I can return to it, connect it elsewhere, revise it, or discover that it was pointing in another direction. The surface should help the movement continue, not decide in advance where it must go.

## Rebuilding Another State Inside Me

Fragments
Source ID fragments:rebuilding-another-state-inside-me
Original https://www.henryw.me/#/fragments#rebuilding-another-state-inside-me

I cannot enter another person's internal state directly. Their body, memory, history, habits, fear, shame, desire, and the way a particular event touches all of these remain inside them. What reaches me is what comes out: words, facial expression, tone, silence, movement, posture, the story they tell, what they avoid saying, and the situation around them. These are traces from a system I cannot open from the inside.

Empathy therefore seems less like direct access and more like reconstruction. I receive another person's signals and use my own body, memory, experience, imagination, and learned sense of people to generate a corresponding state inside me. That state is not an exact copy of what they feel, but it is not simply my ordinary state either. It is produced by my system while being pulled into shape by theirs.

This makes empathy more than correctly naming an emotion. I may recognise that someone is sad, anxious, embarrassed, or excluded while remaining largely unchanged myself. Deeper empathy seems to involve some movement in my own attention, body, feeling, or tendency to act. My voice may soften, I may become more careful, or I may feel an urge to stop explaining, stay quiet, comfort, protect, or move closer. The other person's state has become active enough inside me to rearrange me for a moment.

The reconstruction is never neutral because it is built from my own materials. I may understand another person's sadness through a sadness I have known, or their fear through the way fear feels in me. This is necessary. Without using myself, I have no route toward them. It is also a source of distortion. Their silence may not mean what my silence would mean, and a strong feeling of recognition may reflect the model I built more than the state they actually occupy. Empathy can be deep and still be wrong.

Self-empathy may be a special case of the same process. A past version of me is not fully available to the present one, and neither are the parts of myself that I did not understand or allow myself to feel at the time. They leave traces: a memory, an avoidance, a bodily discomfort, an unexplained preference, a sudden resistance, or a sense that an old moment still matters after I have explained it many times. The present me has to reconstruct something from those traces.

That reconstruction is not the same as explaining myself. I can describe where a reaction came from and still remain far above the state itself, as if I were analysing another person from outside. I know the story, but I have not met the feeling. Self-empathy seems to require allowing an older or hidden version of me to become active enough that I can feel why the experience mattered from somewhere closer than explanation, without pretending that I can return to the original state exactly.

This is where drawing and images begin to make sense to me. Language often moves quickly toward reasons, categories, stories, and conclusions. A drawing can let something appear before it has been organised into a sentence. A state may show itself as crowded or empty, sharp or soft, repeated or broken, centred or unbalanced. The image is still a proxy, but it does not explain the state as quickly as language does.

Once the image is outside me, I can look at it, notice what draws my attention, and feel how I respond before deciding what it means. It may give a difficult internal state a surface on which I can encounter it again. Empathy, self-empathy, language, and drawing may all be ways of approaching states that are not directly accessible. None provides perfect access. The question is whether something previously outside my immediate reach becomes active enough inside me to change how I feel, understand, or act. I am not simply receiving the state. I am rebuilding it with the only system I have.

## The Visible Part of the Mind

Fragments
Source ID fragments:visible-part-of-the-mind
Original https://www.henryw.me/#/fragments#visible-part-of-the-mind

Sometimes what I consciously think feels much smaller than what is moving inside my mind. A thought appears clearly enough for me to hold, say, or write down, and because it is the part I can reach, I may take it for the whole thought. Yet memory, mood, bodily state, recent experience, old associations, unfinished ideas, and the current situation may already be shaping what appears without becoming visible themselves. I receive a sentence, a feeling, a preference, or a sense that something is wrong, but not the full process that produced it.

Maybe consciousness is not where a thought begins, but where something becomes reachable. A memory can affect my reaction without appearing as a memory. A mood can alter how I read a situation without announcing itself. A past experience can make one idea feel natural and another feel wrong even when I cannot trace the path. When something becomes conscious, it may not be created at that moment. It may have become available to the part of me that can notice, name, report, and continue working on it.

What becomes available is still a projection through a current way of reading. The same underlying material can appear as nostalgia, regret, evidence, a story, or a small image. A place can feel like home, distance, pressure, freedom, or nothing special. The material has not necessarily changed completely, but attention, language, mood, bodily state, recent events, and what I am trying to do determine which part becomes visible and what form it takes.

This makes the conscious thought both real and partial. It is real because it came from somewhere in the larger system and carries information from it. A sudden feeling that a sentence is wrong, a memory matters, or an idea is not ready is not meaningless. It is partial because another state or another moment might have made the same underlying material appear differently. Returning to an old idea may feel like continuing the same thought when I am actually reading it through a new lens.

Language may therefore not be the first compression. A larger hidden state becomes a conscious surface. That surface becomes a sentence. The sentence becomes a written note. The note later becomes the starting point for another thought. Something is preserved and something is lost at each step. I still need the visible part because I cannot work directly with the entire hidden structure. Consciousness gives me a point of access through a sentence, feeling or image. What I can report depends on what becomes reachable in the current moment.

## Before Defining Understanding

Fragments
Source ID fragments:understanding-before-definition
Original https://www.henryw.me/#/fragments#understanding-before-definition

I do not want to define understanding too early. The word clearly points to something important, but it gathers many questions before they have been separated. Sometimes understanding means giving the right answer. Elsewhere it means explaining, transferring, generalising, correcting, compressing, using, grounding, experiencing, or being conscious of something. These may be related, but they are not identical. A quick definition can select one layer and make it look as though the entire problem has been solved.

This matters for both people and machines. A student may solve a problem correctly without knowing why. A person may explain something fluently while missing the structure that would support transfer. A model may produce a strong answer while failing to adapt when the surface form changes. I would begin by separating the capacities at issue. Can it answer? Can it explain? Can it use the idea in a new situation? Can it recognise the same structure under a different surface? Can it notice failure and revise itself? Is there experience behind the behaviour?

The usual contrast between correlation and causation has a similar problem. People often say that machines learn correlations while humans understand causes. There is something useful in the distinction, but it is too clean. Humans also begin with regularities. We notice that events occur together and form expectations. A regularity may then become an assumption, guide action, meet resistance from the world, and be corrected, refined, or abandoned. That movement from pattern to use, failure, and revision may be more informative than treating understanding as one final property.

Similar outward behaviour is therefore not enough. Two systems may answer the same question correctly while depending on different processes. One may transfer while another breaks. One may revise after an error, while another repeats a familiar pattern in a new surface form. Calling both cases understanding too quickly removes the difference I want to study. I would rather keep the word open until the capacities beneath it have been separated. Only then can the larger question become less circular.

## Expression, Recording, and the Compressed Version of Thought

Fragments
Source ID fragments:expression-recording
Original https://www.henryw.me/#/fragments#expression-recording

When a thought is still in my head, it is usually not a complete sentence. It is closer to a mixture of feeling, direction, memory, and relations that I cannot yet explain. To express it, I have to choose words, divide what was mixed together, and put the parts in an order. This makes the thought available to other people and to my later self. Without expression, many thoughts would remain too vague to examine and too fragile to preserve.

Expression therefore gives thought a usable form, but it is not a neutral transfer. Language turns a continuous or layered state into a more discrete version. Mixed feelings become separate descriptions. Simultaneous relations are spoken one after another. Boundaries appear where the original state may not have contained clear divisions. The expressed version can be clearer and easier to work with while no longer being identical to what existed before the words.

Recording adds another change. A spoken thought can still disappear, but a written note persists as an object: a title, paragraph, file, or page that can be opened, quoted, revised, classified, and connected to other material. Writing means I do not have to reconstruct the thought from nothing each time, and it gives scattered ideas a chance to accumulate.

The difficulty is that the recorded version becomes the next starting point. When I return, I often continue from the sentence on the page rather than from the larger state that produced it. I explain the sentence, defend it, add distinctions to it, and let its wording suggest the next move. The thought may become more coherent while growing according to the shape of its record. The record preserves a path, but by making that path easy to re-enter, it can also make other paths less visible.

Different languages may cut the same material differently. This is not the simple claim that one language makes people more rational or emotional. It is that each language offers different distinctions, rhythms, and default ways of organising experience. Saying something in another language can therefore feel unlike merely translating a finished sentence. The original material has been divided and arranged again, and the later thought may continue from a different set of cuts.

AI mostly receives thought after these transformations have already happened. It can organise notes, identify repetitions, propose categories, and connect fragments, but it works on the material that reached language and recording. This can be genuinely useful, especially when I have accumulated more text than I can hold at once. I only need to remember that a clean organisation of the record is not the same as access to everything that produced it.

I therefore want to treat notes as handles rather than definitions. A handle lets me recover, move, and work with something that would otherwise scatter. It becomes a boundary when I assume the recorded version exhausts what the thought can be. Titles and categories are useful for retrieval, but they should not prevent a note about language from later connecting to memory, consciousness, identity, or something I have not yet named. I imagine the collection less as a set of finished boxes than as a graph that keeps acquiring and losing connections. I need the records because thought disappears without them, and I need to keep moving beyond the records because thought is larger than the version that survived.

## Rich Traces and Open Paths

Fragments
Source ID fragments:rich-traces-and-open-paths
Original https://www.henryw.me/#/fragments#rich-traces-and-open-paths

I often use voice input when I talk to AI. The obvious reason is speed. I can keep speaking before a thought disappears. But voice also preserves more of the process by which the thought is forming. A typed prompt is often already cleaned up. Before typing, I tend to choose a direction, remove hesitation, and turn the thought into something that resembles a well-defined request. That can be efficient, but it gives the model a thinner record of what was actually happening.

Voice is messier. I repeat myself, change direction, reject a phrase as soon as I say it, remember another example, and leave some relations unfinished. The transcript is not direct access to the original thought. Expression has already changed the state, and transcription changes it again. Still, it can preserve more false starts, emphasis, resistance, and uncertainty than a polished prompt. I think of it as a richer external trace, not as an unfiltered copy of the mind.

That richer trace gives AI more evidence about the path that produced the request. It can see which examples mattered, which formulations failed, and where I remained unsure. The structure it returns is therefore more likely to feel recognisable and easier for me to test against what I was trying to hold. This is not only a matter of answer quality. It also affects uptake. I can work with a reconstruction more easily when I can see how it connects to my own unfinished movement.

Not every uncertainty has the same source. Sometimes the task is already settled, as when I am polishing a message or expressing a claim whose role is fixed. More context simply helps the model produce the expected form. Sometimes the task only appears open because I supplied too little. A vague sentence invites a conventional frame, and the remedy is to add examples, rejected versions, background, and constraints. In both cases, richer input can make the answer converge.

The more interesting case is when the trace is already rich and the path is still not determined. The examples, failed formulations, doubts, and preferred directions may rule out many weak continuations without selecting one right continuation. This kind of uncertainty is not merely missing information. It may mean the inquiry still requires an organising judgment about which frame should hold it, which distinction should name it, which literature it belongs near, or which tension should remain unresolved. Research and creation often begin in this space.

AI can still help, but its role should change. Instead of closing the question immediately, it can make the remaining uncertainty more visible. It can show several paths, clarify how they differ, identify what each one preserves or loses, and bring in concepts I could not have produced alone. A useful interaction does not always remove uncertainty. Sometimes it increases resolution while leaving the decision open, so my judgment still has somewhere to enter.

Richer traces help when the model is missing material that matters. But sometimes I can give it a detailed record and still not know which direction is right. In those cases, the uncertainty is not something I want the model to erase. It is part of what I still need to think through.

## Labels, Goals, and Rules as Ways of Shaping People

Fragments
Source ID fragments:labels-goals-rules
Original https://www.henryw.me/#/fragments#labels-goals-rules

If language can compress thought, labels can compress people. A person contains experiences, habits, desires, fears, abilities, contradictions, and tendencies that do not naturally arrive in neat categories. We are not born already divided into personality type, occupation, research direction, hobbies, values, and life stages. Those divisions are made later because a whole person is too complex to communicate each time.

The compression is useful. A label gives other people a rough entry point and gives me a way to gather scattered parts of myself. Saying that someone is a researcher, an introvert, a musician, or a certain kind of friend does not capture the person, but it makes some pattern easier to remember and discuss. A label works as a handle. The problem begins when the handle is treated as the whole person and the loss created by compression is forgotten.

A label does not remain a passive summary. Once repeated, it starts to affect what happens next. I may feel that because I am this kind of person, I should continue behaving in the expected way, protect the identity, or ignore parts of myself that do not fit it. Other people also respond to the label by changing their expectations, opportunities, feedback, and limits. Being seen as suited to something can bring more chances to practise it. Being seen as unsuited can remove those chances before the ability has had room to develop.

A feedback loop forms. Internal tendencies produce behaviour. The outside world compresses that behaviour into a label. The label changes the environment, and the altered environment shapes later behaviour and internal structure. This can help someone grow into a possibility that others recognised early. It can also trap someone inside an inaccurate version that receives enough reinforcement to become partly true. A label is therefore not only a description. It can become part of a person's training environment.

Goals have a related structure, but they are usually directed toward the future. I compress a possible future into a discrete statement such as “I want to become this” or “I want to achieve that.” The goal is not my whole life, yet it begins pulling present behaviour toward its shape. I change habits, practise abilities, choose opportunities, and interpret progress through it. A goal can organise action that would otherwise scatter, but it can also make me narrow myself around one stated future while overlooking directions that have not yet become visible.

Rules work differently. A label describes what someone is taken to be, and a goal describes what someone wants to become. A rule specifies what output is required or forbidden even when the person's existing impulses, habits, or judgment would produce something else. Laws, moral norms, politeness, institutional requirements, and family expectations often operate this way. Society cannot wait for every person's internal structure to align naturally, so it constrains behaviour first.

The same compliant behaviour can therefore come from different internal paths. One person may not have the prohibited impulse at all. Another may have it and override it through a rule. The final output looks the same, but the underlying systems are not. This does not make behaviour unimportant. Behaviour protects or harms people, and external constraints are often necessary. It only means that behaviour alone may not reveal what had to be controlled on the way to it.

Repeated override can also become training. A rule that first appears after an impulse may gradually enter earlier into attention and decision. It may become easier to apply, turn into habit, and eventually change which responses arise at all. But internalisation is not guaranteed or uniformly good. Some rules remain surface compliance, some reshape habit, and some alter judgment more deeply. Rules can protect people and create coordination, but they can also force people into unreasonable forms. Their effects depend on what they demand and how they are reinforced.

AI can participate in this process as another source of structure and feedback. It does not only organise my content. It repeatedly demonstrates a way of moving thought forward. Something vague becomes a list, the list becomes a framework, the framework produces next steps, and the result looks complete. This rhythm is useful, but it is also easy to internalise. If I work through it constantly, I may begin to feel that every thought should be classified quickly, named cleanly, and moved toward an output. AI is not forcing me, yet it can still shape what I experience as clear, logical, and finished.

This may be why being summarised can feel uncomfortable even when the summary is not obviously false. A summary creates a portable version of a person that other people can circulate and respond to. When the version is clear and coherent, it may become easier to look at the summary than to keep looking at the person. Being misunderstood is painful, but being understood through a convincing compression can be stranger. Something remains that resembles me while organising the important parts differently.

Labels, goals, and rules all simplify something more complicated so it can guide what happens next. That can be useful, but the simplification does not stay outside the person. It changes expectations, opportunities, habits, and sometimes the way the person understands themselves. I am interested in that return path, where a description or rule becomes part of the system it was meant to describe or guide.

## Memory Compresses Time, but the Self Is Changed by Passing Through It

Fragments
Source ID fragments:memory-time-self
Original https://www.henryw.me/#/fragments#memory-time-self

Life does not arrive already divided into chapters. While I am living it, one day follows another and many changes have no visible border. Only later do I describe one period as high school, another as university, one year as a turning point, or one city as the place where I changed. Memory helps create those divisions because it cannot preserve continuous life at the same resolution forever.

The compression seems to have a temporal gradient. Recent experience still carries temperature, tone, small details, and unresolved feeling. As time recedes, a year becomes a few scenes, a place becomes an atmosphere, and a relationship becomes a story I know how to tell. Distant life was not originally made of those keywords. Memory has folded many ordinary days into a smaller number of stages that are easier to hold.

This is useful. If every past moment remained equally vivid, moving through the present might become impossible. But compression also narrows. A year remembered as painful still contained ordinary afternoons and moments of humour. A city remembered as important also contained boredom, repetition, and tired days. Old photographs, messages, and notes can feel strange because they reopen details that no longer fit the cleaner version I later formed. They reveal that the period was messier and more alive than the chapter title suggests.

This makes me think of the self less as a fixed point and more as a trajectory. The version of me at each moment is not identical to the next, but the versions do not appear independently. Experience, memory, language, relationships, and bodily states update the system gradually. The future me is not a stranger who suddenly replaces the present one. He is what this current system becomes after passing through many small changes.

The path between two versions may matter more than their similarity. The person I was ten years ago and the person I am now may look quite different, yet each change grew out of what came before. Another person could know many of my memories without becoming me because they did not move through that sequence from the inside. Continuity may not mean preserving an unchanging core. It may be the particular way one state becomes another.

An old thought experiment makes this harder. Imagine a person in pain after a breakup. A pill could move him directly to the point at which the pain has passed. It would not erase the event or create a gap in his memory. Afterward, he would remember the entire period, believe that he had lived through it, and retain the same lessons and final state. Only the actual subjective passage through the pain would be absent.

My first instinct is to take the pill. If the result, memory, and sense of continuity are the same, why endure pain merely to say that it happened? Yet I am unsure whether arriving at the same state would make the two lives equivalent. One includes waking each morning, feeling the loss return, believing it has passed and then falling back again. The other contains a memory of that period without those moments having been lived.

I do not think pain is valuable simply because it is pain. The question is narrower. If the self is partly the path by which one state becomes another, can a perfect memory of that path replace having moved through it? The person after the jump knows the road and feels that he walked it, but he was not gradually changed by each step.

That is why I remain uncertain about the pill. I might still choose to avoid the pain. What bothers me is that the person who remembers the whole period may still not be quite the same as the person who actually passed through it. I am not sure whether memory can preserve that difference.

## Satisfaction Is Not a Fixed Reward

Fragments
Source ID fragments:satisfaction-signal
Original https://www.henryw.me/#/fragments#satisfaction-signal

I sometimes wonder whether happiness can be understood partly through satisfaction. This is not meant as a complete definition. Happiness may also involve meaning, relationships, value, security, and many other things. But satisfaction becomes more useful to think with once it is not reduced to immediate pleasure. It can come from eating something good, finishing a difficult task, delaying a reward, controlling an impulse, helping someone, finding a bargain, or feeling that I made a sound decision.

Delayed gratification is therefore not simply the rejection of satisfaction. A person may value the later reward, but may also gain something from waiting, planning, self-control, or becoming the kind of person who can keep a commitment. Immediate and delayed gratification can be different satisfaction curves rather than moral opposites. What appears more rational may itself feel satisfying because it produces a stronger, steadier, or longer-lasting return in that person's system.

I find it useful to think of satisfaction as an internal feedback signal, without claiming that it is one specific biological quantity. Activities can produce signals with different intensities, delays, durations, and meanings. The same activity can feel rewarding to one person and empty to another, or change for the same person across stages of life. The external behaviour alone does not reveal the return generated inside the person.

Buying discounted products is a small example. One person may see the search as wasted time because the money saved does not justify the attention spent. Another person may enjoy comparing options, waiting, finding the right moment, and feeling that resources were used well. The discount is then not only a financial outcome. The process itself produces a small sense of skill, control, and victory. For the first person, an hour of searching is mainly a cost. For the second, part of that hour is also the return.

This changes how I think about opportunity cost. Money and time matter, but the relevant alternative is also the satisfaction that another use of the time might have produced. A behaviour becomes rational or irrational partly through how it interacts with a person's goals, habits, attention, and interpretation. Calling discount hunting a game, a life skill, a burden, or a sign of scarcity does not change every objective fact, but it helps shape the psychological event the person is actually having.

Some forms of satisfaction may be trainable. Attention, progress, order, connection, or mastery can become part of what an activity gives back. Housework may produce a feeling of restored control. Exercise may become tied to rhythm and progress. Volunteering may create connection and value. The activity has not become effortless, but its internal return has changed.

Some conditions are simply damaging, and reinterpretation does not make poverty, illness, oppression, or chronic stress harmless. Strong stimulation can also change the system that receives it. When rewards arrive quickly and intensely, the old high point can become a new baseline, making ordinary experience feel flat and increasing the amount required for the same effect.

I increasingly think of satisfaction less as a fixed reward attached to an activity and more as something that changes with behaviour, timing, interpretation, and history. The same activity can return something very different to different people, or to the same person at different times. That makes me curious about which aspects of everyday satisfaction we can gradually learn to notice, shape or build.

## Oysters and Black Truffle Toast at Queen Victoria Market

Fragments
Source ID fragments:queen-victoria-market-toast-oysters
Original https://www.henryw.me/#/fragments#queen-victoria-market-toast-oysters

Queen Victoria Market in Melbourne gave me one of those food memories I still think about after leaving the city. The oysters were fresh, cold, and clean, and a squeeze of lemon made the taste even sharper and clearer. The black truffle toast was unexpectedly good too. It was warm, rich, fragrant, and straightforward.

What fixes it in my memory is that I went with my sister on my last day of the Melbourne exchange. It was as much about the timing as the food, a final market morning and a final meal before leaving, something simple that ended up tied to the whole exchange. It is one of the things I still miss about Melbourne.

## Chaoshan Beef Hot Pot in Guangzhou

Fragments
Source ID fragments:guangzhou-chaoshan-beef-hot-pot
Original https://www.henryw.me/#/fragments#guangzhou-chaoshan-beef-hot-pot

When I travelled to Guangzhou with my father, we went for Chaoshan beef hot pot.

I especially liked the beef balls and diaolong, a tender sliced cut commonly served in Chaoshan hot pot. The beef balls were springy and strongly beefy, while the diaolong was softer and cleaner in flavour. I usually ate both without dipping sauce because I preferred tasting the beef and broth directly.

## AI-Generated Kitten Videos and Manufactured Cuteness

Fragments
Source ID fragments:ai-generated-kitten-videos
Original https://www.henryw.me/#/fragments#ai-generated-kitten-videos

I have seen a lot of AI-generated videos on social media where kittens interact with people, along with more surreal ones, like a plush watermelon being opened to reveal little kittens inside. I find them very cute, and clearly plenty of other people do too.

These videos interest me because synthetic scenes can trigger real emotion. The kittens are not real in the usual sense, yet the videos still reach human perception through softness, smallness, eye contact, movement, care, and surprise, and those signals are enough to move people.

The same mechanism can also be used more deliberately to steer attention or emotion, which makes the boundary between harmless manufactured cuteness and manipulation worth thinking about.

## A Conversation About Identity

Fragments
Source ID fragments:identity-interview-reflection
Original https://www.henryw.me/#/fragments#identity-interview-reflection

I once took part in an interview about identity and about growing up with a Taiwanese family background while living mostly in Shanghai. I had not planned to write about it publicly, but the conversation helped me organize a lot of scattered feelings that had sat in the background for a long time.

Identity does not have to be a single answer. It can be made of several layers at once, where I grew up, where my family comes from, the languages and habits that shaped me, the places that feel familiar, and the way I introduce myself in different rooms.

Different parts of my background become more visible in different situations. Sometimes Shanghai is the most natural answer. Sometimes my Taiwanese family roots matter more, and neither cancels the other. The conversation gave me a calmer way to look back at my background without forcing it into one simple label.

## Napier Seaside with My Mother

Fragments
Source ID fragments:napier-seaside-with-my-mother
Original https://www.henryw.me/#/fragments#napier-seaside-with-my-mother

Napier seaside is one of the places I connect with my mother. She lives around Hastings and Havelock North, and when I went back to New Zealand she would sometimes drive me to Napier. It was not a big trip, just a short drive to the water.

I still remember it quite clearly: the car ride, the road, arriving near the sea, walking for a while, maybe not even talking much. It was ordinary, but it was one of the few things we did together there again and again.

My family's connection with New Zealand is a little scattered. My sister studied there, my mother stayed for her, and later that area became part of my mother's own life too. For me the country was never only a travel destination. It was also where part of my family was living without me. So when she drove me to Napier, it felt like I was briefly stepping into that part of her life.

## My Mother’s Cooking Across Places

Fragments
Source ID fragments:mothers-cooking-across-places
Original https://www.henryw.me/#/fragments#mothers-cooking-across-places

My mother has always been good at making food that is both healthy and tastes good. When we were still living together in Shanghai, this felt completely normal. She cooked at home and I ate what she made, and at the time I did not think of it as anything worth remembering. It was just part of home.

Later, after life became more scattered and she spent more time in New Zealand, her cooking started to feel different. Visiting her there, a meal she had made was no longer just a normal meal; it became a small return to something familiar. The food itself matters, of course, usually clean, warm, and carefully made, but what I remember more is the continuity. The same person who cooked for us in Shanghai was now cooking in another country, at another stage of life, and the taste still carried something from before.

That is what makes it feel like home. Home is not fixed in one city or one apartment or one period of life; sometimes it shows up through a repeated act, someone still cooking for you and still caring whether you have eaten well. I do not get to eat my mother's cooking often now, and maybe that is why I notice it more when I do.

## Trying Golf with My Mother in New Zealand

Fragments
Source ID fragments:golf-with-my-mother-in-new-zealand
Original https://www.henryw.me/#/fragments#golf-with-my-mother-in-new-zealand

When I visited my mother in New Zealand, she sometimes brought me along to play golf. It is one of her hobbies, and I could tell she enjoyed the whole rhythm of it: the open grass, the slow walking, choosing a club, taking her time before a shot. It suited her.

I tried a few times, but I never felt I had much talent for it. I could hit the ball, just not the way good players do, where it lifts cleanly and draws a nice curve through the air; mine was usually more practical than pretty, and sometimes not even practical. Still, I liked going with her, not because I had suddenly taken to golf, but because it was something she had made part of her life there, and for a few afternoons I got to be inside it too.

## Racket Games with the SLR Lab

Fragments
Source ID fragments:slr-lab-racket-games
Original https://www.henryw.me/#/fragments#slr-lab-racket-games

Our principal investigator at the Speech, Language and Reading Lab once took another research assistant and me to play badminton and table tennis. We played, missed shots, picked up balls, laughed a bit, and drifted between the two games.

I liked spending time together away from papers, meetings and tasks. That afternoon made the lab feel warmer to me.

## The Sea in My Early Hong Kong Years

Fragments
Source ID fragments:kennedy-town-seaside-hku-years
Original https://www.henryw.me/#/fragments#kennedy-town-seaside-hku-years

I have not been to Kennedy Town's waterfront much lately, which feels strange because it was much more present during my first years at HKU. I lived closer to that side of the city then, and the sea was somewhere I could reach without turning the visit into a plan.

I do not remember every walk clearly now. Those walks have probably settled into a general feeling. Hong Kong can be dense, fast, and pressed together, and walking toward the water changed the scale of the city. The buildings ended, the space opened, and the movement of the sea gave my attention somewhere else to go. Part of the familiarity may also have come from New Zealand, where time by the coast was already tied to my mother and family.

I remember the irregular waves, the space beyond the buildings, and the relief of reaching something wide at the edge of a crowded city. I do not live the same student rhythm now, and I visit less often, but when I think of my early years in Hong Kong, the sea remains somewhere in the background.

## Ferry Rides Across Sydney Harbour

Fragments
Source ID fragments:sydney-harbour-ferry-rides
Original https://www.henryw.me/#/fragments#sydney-harbour-ferry-rides

One of my strongest memories of Sydney is travelling through the harbour by ferry. The public ferries were inexpensive, so we used them repeatedly to travel between different stops. Seeing the city from the water made it feel less like a fixed map and more like a sequence of changing views.

Some routes passed the Opera House and Harbour Bridge, where the city looked as beautiful as its photographs suggest. Other stretches were quieter, with residential neighbourhoods and houses close to the water. On one evening ferry, commuters in work clothes left the boat in an orderly line and walked home along the harbour. For a moment I felt as though I were watching someone else's ordinary routine from outside. Work in the city, a ferry across the water, and home at the end of the route.

Sunset brought the bridge, Opera House, water, and light into the same moving scene. What I remember most is that movement rather than one perfect viewpoint. The ferry let the city change gradually around me, one shore and one crossing at a time.

## Gold Coast, Water, and the City Line

Fragments
Source ID fragments:gold-coast-water-and-city-line
Original https://www.henryw.me/#/fragments#gold-coast-water-and-city-line

Gold Coast is one of the places where I remember the sea as something I entered rather than only looked at. We went kayaking, jet skiing, snorkelling, and parasailing. What I remember most is the physical side of it, especially the speed, wind, noise, and the feeling that the water had moved from the background into the activity itself.

I also remember going up to an observation deck and seeing the coast from above. The city looked like a long line pressed against the beach, with towers, sand, water, and sunlight arranged beside one another. In many cities the waterfront feels like one district among others. On the Gold Coast, the whole urban shape seemed organised around the edge of the sea.

I liked the combination of density and holiday atmosphere. It was possible to stand inside a high-rise city while still feeling that the beach determined its rhythm. When I think of the Gold Coast now, I remember both being carried across the water and later looking down at the same coastline from high above.

## A Road Trip Along the Great Ocean Road

Fragments
Source ID fragments:great-ocean-road-melbourne-friends
Original https://www.henryw.me/#/fragments#great-ocean-road-melbourne-friends

The easiest thing to say about the Great Ocean Road is that it was beautiful, but the road matters to me because of the people who took me there. During my Melbourne exchange, friends rented a car and brought us along. Without them, it might have remained a place I knew I should visit. Because of them, it became part of my life during that semester.

The day included long hours in the car, stops whenever someone noticed a view, photographs, conversation, tiredness, and the repeated decision to continue to the next place. A few months earlier, I had not known the people beside me. Exchange friendships can form quickly because everyone is living inside a temporary period and knows that the same arrangement will not last. Ordinary days together can therefore carry more weight than they seem to at the time.

The coastline kept changing through cliffs, open water, small stops, and famous viewpoints, but I do not remember the trip as one clean image. I remember the movement of the road, the car, the people, and the feeling that Melbourne had become more than a university term.

## A Birthday Somewhere Along Taiwan’s East Coast

Fragments
Source ID fragments:taiwan-east-coast-family-road-trip
Original https://www.henryw.me/#/fragments#taiwan-east-coast-family-road-trip

One of my happiest recent family memories is a road trip along Taiwan's east coast. It was the four of us, my father, my mother, my sister, and me. My father drove, and we made our way down the eastern side of the island, stopping in different places along the way. I do not remember every exact turn now, and maybe that is fine. What I remember most is the feeling of the four of us being together in one car.

That kind of full family time has become rare. Everyone is in different places now, with different lives and schedules, so when we are all together for a trip, even ordinary things start to feel memorable. The east coast had a lot of sea. We would drive, catch the water, stop somewhere, and sometimes find one of those small cafés near the coast, each with its own style, and sit down with a coffee, look out at the sea, and then keep going.

I liked those pauses by the coast. My birthday fell during the trip, so I spent it with my family as we travelled together. What I picture most clearly is my father driving, the four of us in the car, and Taiwan's east coast passing outside the window.

## The Tomatoes of August 29

Fragments
Source ID fragments:tomatoes-of-august-29
Original https://www.henryw.me/#/fragments#tomatoes-of-august-29

On August 29, I opened the fridge before leaving home and saw the tomatoes my father had given me two weeks earlier. We had met in Shenzhen while he was there for work. I had hesitated when he first offered them because I rarely eat fruit and always find washing it inconvenient. He listened, washed a box himself, and gave it to me ready to carry back to Hong Kong. Half of them were already gone. As I ate a few more, I suddenly realised that once I finished them, this small physical trace of the weekend would disappear. I took a photograph before eating the rest.

I first thought I was recording one ordinary detail. When I began speaking about it, the tomatoes opened the whole weekend again. On the first afternoon, my father had spent some time near Nantou Ancient City and was waiting for me at a Starbucks. I had meant to join him after lunch with a friend, but reaching the café required another stop or two on the metro, so we met at the station instead. It felt insignificant at the time. Later, I imagined that if I had gone, the café might have become somewhere I could return to on a difficult day. I could sit alone where we had once sat together, and the place would feel slightly less anonymous. Because I never went, it never became ours. Still, its absence remained. Sometimes what did not happen leaves its own location in memory.

The clearest image came from the end of the trip. We were taking trains in opposite directions. My father entered his carriage and waved to me through the glass. I watched him, but I did not wave back clearly. I had become conscious of the people around me and let that small self-consciousness interrupt something simple. Soon afterward, an unwelcome thought appeared. What if this were the last time we saw each other? I had no reason to believe it, yet the question gave the scene a frightening finality. For a while, I reduced the memory to one accusation. He waved, and I did not. When I let the whole scene return, I could also see that I had stayed there watching him until the train left. I had still been present for the goodbye.

Another detail returned later. On an earlier trip, I had told my father that his snoring made it difficult for me to sleep and that we should book twin beds. By the time we met in Shenzhen, he had remembered. When the hotel offered us a different room, the first thing he checked was whether it still had two beds. The sentence was small and practical. It moved me because I had never needed to remind him. The tomatoes carried the same kind of care. I had named a small difficulty, and he quietly removed it for me. I was trying so hard to preserve details about my father that I almost missed the evidence that he had been preserving details about me too.

When I tried to write the weekend down, the memories would not settle into a single feeling. Affection sat beside embarrassment. Gratitude kept turning into regret. The tomatoes led me back to the café I never entered, then to the station, then to the hotel room, then to the quiet realisation that my father had remembered something about me without being asked. I write to stay with all of these feelings, and the memory keeps changing each time I return to it.

The photograph still shows a few tomatoes in a box. It cannot contain the weekend or explain my relationship with my father. It gives me a way back into both. Someday another room, another train, or a small act of care may change what I notice in this story. On August 29, the tomatoes brought me back once. For now, that is where I am leaving them.

## Athens, Ruins, and a Rare Family Trip

Fragments
Source ID fragments:athens-ruins-and-family-trip
Original https://www.henryw.me/#/fragments#athens-ruins-and-family-trip

Our family trip to Greece stayed with me partly because the four of us rarely have two uninterrupted weeks together now. We spent most of the time around Athens, walking through the city, visiting historical sites, and eating together. The place felt different from cities I knew because the past was not contained in a museum. It remained visible in the stone, streets, and landscape around ordinary life.

The ruins were the clearest expression of that feeling. At the Acropolis, I was not only looking at an old building but standing beside something connected to a much longer line of human history. The columns, exposed stone, open air, heat, and scale made the site feel almost unreal. My mother especially liked the carved female figures used in place of columns. I did not retain the name at the time, but I remember their shapes standing against the sky.

The food kept the trip from feeling only grand or historical. I remember Greek salad, fried calamari, halloumi, and other simple meals after hours of walking. I mostly remember the combination of ancient places during the day, satisfying food afterward, and my family together throughout it. Greece made the world feel older and wider than the life I usually moved through.

## Swimming in the Mediterranean

Fragments
Source ID fragments:swimming-in-the-mediterranean
Original https://www.henryw.me/#/fragments#swimming-in-the-mediterranean

One of my clearest memories from Greece is swimming in the Mediterranean. We went out by boat, with the sun above us, open water around us, and my family nearby.

Before that trip, the Mediterranean had mostly been a name from maps, history, and photographs of Greece. Then I was in the water rather than looking at it from the shore. I think it was the only time I swam there, which may be why the memory feels so fixed. The place became physical rather than only visual. It had temperature, movement, distance, and contact with my body.

We spent time on the boat, rested in the sun, swam, and let the day pass. When I think of Greece, I remember the ruins and streets, but I also remember entering a sea that I had previously known only as a name.

## Rainy Days as Permission to Stay In

Fragments
Source ID fragments:rainy-days-permission-to-stay-in
Original https://www.henryw.me/#/fragments#rainy-days-permission-to-stay-in

I do not actually like rainy days that much. Rain is inconvenient. The ground gets wet, the sky turns grey, and going anywhere becomes a little more annoying. But there is one thing I do like about it, which is that it gives me a reason not to go out.

On a sunny day, staying inside can feel like wasting the day. Even if nobody says anything, there is a small pressure to do something, meet someone, walk somewhere, make proper use of the weather. Rain takes that pressure away. It makes staying in feel less like a personal choice and more like the natural thing to do, and the room becomes enough, not because I suddenly love being cooped up but because the outside has stopped demanding anything. So maybe it is not the rain I like, but the excuse it gives me.

## The Mental Map of a Small Room

Fragments
Source ID fragments:mental-map-of-small-room
Original https://www.henryw.me/#/fragments#mental-map-of-small-room

My mother sometimes says my room is messy, and she is probably not entirely wrong. From the outside it can look like things are scattered everywhere. But to me the room is not simply messy, because I usually know where everything is. There is a map of it in my head.

That map is not visible to anyone else. A book on one side, a cable somewhere else, a camera lens near the window, some small thing on the desk. It may not look organised in the usual sense, but I know the routes, and I know where my hand should go when I need something. That is why small rooms can feel intimate to me. In a small space every object is close enough to become part of the mental map. The room may be crowded, but it is navigable, with a kind of personal order that only fully makes sense from inside my own habits.

A larger space is more comfortable in an obvious way, but it can also feel less close, the things more spread out and the relationship between me and the objects around me less clear. So when I say my room is not really messy, I do not mean it is objectively tidy. I mean it has a structure I can feel, a little private, a little inefficient, maybe not very presentable, but still mine.

## My First Camera and Another Way of Seeing

Fragments
Source ID fragments:first-camera-another-way-of-seeing
Original https://www.henryw.me/#/fragments#first-camera-another-way-of-seeing

My Nikon Zfc was my first real camera. At the start I did not even need to go far. I would stand in the apartment and shoot through the small window, trying different angles and looking for things outside that I would not normally notice. After I got a longer lens it became even more interesting, since the lens could pull distant things closer and turn a random view out the window into something worth looking at.

That was probably when photography began to change my relationship with going out. The camera gave me a reason to walk more, to look around more, and later to travel with a slightly different kind of attention, not only going somewhere but also looking for frames. My mother has said that people should use their eyes to see the world instead of always taking photos, and I think she is right. There are things the eyes take in directly that a photo cannot replace, the scale of a place, the air, the movement, the feeling of being there.

I think the camera offers another way of seeing. It frames the world differently, records details I might have passed over, and lets me return to a moment later. Sometimes a photo matters to me because it records the exact angle from which I once looked at the world.

## Music That Became More Spacious

Fragments
Source ID fragments:music-that-became-more-spacious
Original https://www.henryw.me/#/fragments#music-that-became-more-spacious

My music taste has changed quite a bit. In high school I was more drawn to music with strong rhythm, EDM and rap and beats that moved quickly and gave a direct kind of energy. I still understand why I liked it. That kind of music pushes you forward, and it is useful when you want intensity or speed or just a clear hit of momentum.

These days I find myself drawn to music that feels more spacious. Not music without rhythm, since rhythm still matters, but something slower, wider, and more atmospheric. Sometimes it is purely instrumental, and sometimes it still has lyrics, like Lana Del Rey's Young and Beautiful, where what I like is not only the words but the whole feeling behind them, the slow movement, the large background, the sense that the song opens up a space rather than just driving a beat.

EDM still works for exercise, when I want energy and repetition. At other times, I usually want music that leaves me more room to think or feel.

## Profile

CV
Source ID cv:profile
Original https://www.henryw.me/#/cv#profile

Fourth-year Applied Artificial Intelligence student at the University of Hong Kong. I’m interested in how people form and use knowledge, how representations and internal processes support behaviour in AI systems, and how learning and thinking change when people work with AI. At HKU’s Speech, Language and Reading Lab, I build computational models of how people form representations through learning and use them to transfer knowledge across related tasks. I am also a Cloud, Data & AI consulting intern at PwC, where I work on solution architecture and development of AI and data systems for financial-services and public-sector clients.

## Education

CV
Source ID cv:education
Original https://www.henryw.me/#/cv#education

University of Hong Kong Sep 2022 – Present BASc in Applied Artificial Intelligence Coursework across machine learning, deep learning, data science, algorithms, and the mathematics behind them. Dean’s Honours List, Student Peer Advisor, and Staff–Student Consultative Committee representative. University of Melbourne Feb 2025 – Jun 2025 Semester exchange, HKU Worldwide Student Exchange Optimisation, Machine Learning, Principles of Finance. Shanghai High School International Division Sep 2017 – Jun 2022 International Baccalaureate Diploma Computer science, mathematics, economics, physics. Led the Coding Club and co-founded the SHSID Musix Board.

## Experience

CV
Source ID cv:experience
Original https://www.henryw.me/#/cv#experience

Cloud, Data & AI Consulting Intern Jul 2026 – Dec 2026 PwC, Hong Kong Designed an AI-assisted knowledge management architecture that identifies gaps, acquires missing material and keeps technical guidance up to date. Built a structure-preserving retrieval-augmented generation (RAG) ingestion pipeline for complex documents and a pipeline using a large language model (LLM) to recover legacy extract, transform and load (ETL) logic for data migration. Student Research Assistant May 2024 – Present Speech, Language & Reading Lab, HKU Built computational models of human learning and cognition, using behavioural data to study how learned representations support generalisation and transfer.

Digital Transformation Intern Jul 2024 – Dec 2024 HSBC, Hong Kong Consolidated multi-market product and distribution information, then built an Excel/VBA configuration engine that mapped insurance product specifications through business scenarios and decision tables to UI-component requirements. Web Developer, Digital Content Support Jun 2023 – Dec 2023 Kiwiview International Limited, New Zealand Designed, developed, deployed, and maintained the company website, and produced branding and content for travel programmes.

## Publications & Preprints

CV
Source ID cv:publications-preprints
Original https://www.henryw.me/#/cv#publications-preprints

Early Epistemic Settlement in AI-Assisted Writing H. Wang Under review · arXiv:2609.09332 BRIGHT: A Realistic and Challenging Benchmark for Reasoning-Intensive Retrieval H. Su*, H. Yen*, M. Xia*, W. Shi, N. Muennighoff, H. Wang , H. Liu, Q. Shi, Z. S. Siegel, M. Tang, R. Sun, J. Yoon, S. O. Arik, D. Chen, T. Yu ICLR 2025 Spotlight; arXiv:2407.12883

## Projects

CV
Source ID cv:projects
Original https://www.henryw.me/#/cv#projects

AI × Self Jun 2026 – Present An AI-driven personal archive Built a personal archive combining hybrid search, retrieval-augmented answers and AI-composed Views. Each View connects my work, ideas and experiences around a visitor’s question and becomes an illustrated article and an interactive 3D exhibition. Cathay Flex Oct 2026 – Present Cathay Pacific Hackathon Developed an airline-managed marketplace where travellers earn credits for flexibility and use them across services and journeys. AI interprets passenger preferences, constrained optimisation finds compatible arrangements, and a transaction and settlement system manages agreements through a conditional order book. SlidePoise Aug 2026 – Sep 2026 Open-source agentic slide generation Built an open-source framework for generating editable PowerPoint presentations with an AI agent.

Image generation explores slide designs, then semantic interpretation and OpenCV measurement guide their reconstruction as native text, charts, tables and shapes. Henry Han-yu Wang Last updated October 2026

## About Me

About
Source ID about:root:about-me
Original https://www.henryw.me/#/about

I was born in Taiwan , grew up in Shanghai , and now study Applied AI at the University of Hong Kong . Alongside my studies, I work in AI consulting at PwC.

I explore ideas and develop models to understand how things work. When I see a way to put that understanding to use, I design and build something around it.

My research explores how people and AI systems learn from experience and use their knowledge. I also examine how interacting with AI shapes the way we think and learn.

My mother used to drive me to the coast near Napier , where we would sit and watch the sea for hours. In Hong Kong , I spent evenings on the waterfront at Kennedy Town.

As AI becomes part of everyday life, I value having a record of my own thoughts and feelings. I write them down in Fragments before they fade.

## I study how people and machines learn

About
Source ID about:section:how-i-research-and-build
Original https://www.henryw.me/#/about#how-i-research-and-build

My research explores how people and AI systems learn from experience and use their knowledge. I also examine how interacting with AI shapes the way we think and learn.

## I want to remember what life felt like

About
Source ID about:section:outside-work
Original https://www.henryw.me/#/about#outside-work

My mother used to drive me to the coast near Napier , where we would sit and watch the sea for hours. In Hong Kong , I spent evenings on the waterfront at Kennedy Town.

As AI becomes part of everyday life, I value having a record of my own thoughts and feelings. I write them down in Fragments before they fade.

## Say Hello

About
Source ID about:contact
Original https://www.henryw.me/#/about#say-hello

I'd love to hear from you.

Personal messages to whenry6688@gmail.com

Academic matters to henry.why@connect.hku.hk

## Why SlidePoise

SlidePoise
Source ID slidepoise:purpose
Original https://www.henryw.me/slidepoise/#why-slidepoise

Each slide needs a layout that serves its message and objects you can edit.

Template-based workflows can limit how freely a slide’s layout responds to its content. Image generation makes it possible to explore layouts around the content of a slide. Turning a chosen design into a useful deck also requires accurate text, editable charts and a consistent visual style.

SlidePoise gives that creative process a structured workflow, supported by tools for visual measurement and PowerPoint construction. A shared content plan, style and asset library guide the Agent as it develops designs, builds editable slides and reviews the resulting deck.

## How SlidePoise works

SlidePoise
Source ID slidepoise:philosophy
Original https://www.henryw.me/slidepoise/#philosophy

Explore the four stages through the consulting presentation. The brief guides reference selection and image generation. The selected design guides reconstruction, and the rendered PowerPoint is checked against both the brief and the design.

The Agent reviews your brief and source material, researching useful facts, examples and context where needed. It develops the presentation’s argument and each slide’s purpose, then records the message, supporting evidence and visual requirements.

This consulting example compares possible AI pilots. Open its brief to see the chart data and reasoning that guide the design.

The Agent retrieves slide references, icons and reusable components for the brief. It brings the selected material together in a contact sheet, then gives this visual guidance and the slide content to the image model.

Select slide references, components and icons suited to the brief.

Study layout and visual hierarchy

Use reusable chart components and SVG icons

Combine the selections with colours and typography.

The brief and contact sheet guide image generation.

The Agent checks the message, data and layout, then refines the image where needed. This design guides reconstruction.

Reference pages by PwC (https://www.pwc.de/de/strategie-organisation-prozesse-systeme/pwc-enterprise-architecture-in-an-agile-world.pdf) and Strategy& (https://www.pwc.no/no/publikasjoner/strategyand-desember-b2b-saas-2024.pdf). Icon libraries include Remix Icon (https://remixicon.com/), Material Design Icons (https://icon-sets.iconify.design/mdi/). You can also supply logos, artwork and presentation components.

The Agent interprets the design, groups related elements and measures their positions and dimensions using OpenCV, a computer-vision library. It then rebuilds them as editable objects. The brief, source data and original assets guide corrections to defects in the generated image, such as incorrect text, distorted icons and uneven alignment.

Select an outlined object in the generated design.

For illustrations, the Agent can generate a separate, higher-resolution image with a transparent background. It checks the artwork against the slide design, then places it as an independent PowerPoint layer. Compare this detail from the editorial sample.

The Agent renders the PowerPoint and checks it against the chosen design and content brief. It corrects visual differences and checks consistency across the deck. Drag the divider to compare the design image with the finished PowerPoint.

## The View Gallery introduction

AI × Self
Source ID interactive.archive.gallery-video
Original https://www.henryw.me/#/aipersonalarchive#gallery-video

Henry’s 1 minute 42 second video introduces The View Gallery. It follows a visitor’s question as AI connects his work, ideas and experiences into a View, then shows the exhibition, original exhibits, audio guide and sharing in the Gallery.

Visitors explore Henry’s work, ideas and experiences through their own questions. AI connects original material into a story shaped by the question. Henry calls that a View. Each View becomes an exhibition visitors can walk through at their own pace.

The video follows The Places That Shaped Henry. Visitors can listen to an audio guide in Henry’s voice and open an exhibit to read or interact with the original material. To answer a question about his memories, this View connects his mother’s cooking with a road trip among friends. Both memories show how sharing a place with people he cares about makes it feel like home.

Visitors can share their exhibition and explore exhibitions shaped by other people’s questions. Over time, the Gallery holds a growing portrait of Henry at different moments. Seeing those perspectives together helps him recognise patterns in his own life.

## An exhibition ticket

AI × Self
Source ID interactive.archive.exhibition-ticket
Original https://www.henryw.me/#/aipersonalarchive#sample-exhibition-ticket

The View Gallery gives each selected exhibition a ticket with its title, illustration, creation date and number. Its reverse carries the summary. The ticket records visit progress and marks a completed visit with a dated stamp.

## The View Gallery design

AI × Self
Source ID interactive.archive.gallery-design
Original https://www.henryw.me/#/aipersonalarchive#gallery-design-study

The View Gallery brings shared exhibitions into one building. Four interactive studies show its interior, building form, floor plan and light and dark treatments together.

The Gallery interior. I gathered the collection, the archive and the exhibition entrance around one open Hall.

The building as a whole. A central Hall connects the archive court and exhibition wings.

Orientation within the Gallery. Find your bearings and choose where to go next.

Two lighting treatments. Soft daylight fills the Hall. In the dark, light gathers around the works.

## Designing the exhibition

AI × Self
Source ID interactive.archive.exhibition-design
Original https://www.henryw.me/#/aipersonalarchive#the-exhibition-is-designed-as-one-experience

Henry designed the exhibition to make reading a View feel like an immersive visit. Eight design studies explain arrival, wall writing, objects, the afterword, the visit map, lighting, audio narration and language.

Entering the exhibition. The entrance gives visitors a moment to understand the exhibition before stepping inside. Its title, illustration and opening text establish the subject, while a view into the first room invites them onwards. A short guide introduces movement and opening works.

A narrative on the walls. I placed each chapter’s introduction on the wall, as museums do to introduce a room’s theme. This makes the narrative part of the exhibition space. Each room gathers works around one idea, and moving to the next room carries the story forward.

Material with a physical form. I gave digital material a physical presence through familiar exhibit forms. Their scale and spacing invite visitors to move closer and focus on an individual work. Opening an exhibit lets them explore it in detail or try an interactive project for themselves. The source’s registered type determines which exhibit forms it can use. Travel records become a globe, and writing can appear on a reading stand. Opening an interactive project renders its original Vue component, so visitors can use its controls and see the results inside the exhibition.

Closing the exhibition. The final room offers a place to pause and reflect on the visit. An afterword brings the narrative together, and a visitors’ book invites a response, leaving room for other perspectives alongside the exhibition’s own.

A route shaped by the reading. The layout is generated automatically from each AI-composed View. Its chapters and selected works determine the rooms and the route between them. The visit map makes that route visible and lets visitors go directly to a chapter or work. The layout algorithm groups works by chapter and sizes each room around their display forms and viewing distances. It arranges entrances, wall introductions and exhibits, then connects the rooms with doorways and a walkable route.

Lighting the visit. The next room begins to brighten as a visitor approaches its doorway. Rooms they have left gradually dim, keeping the works ahead visible and making the route easier to follow. The visitor’s position and distance from a doorway determine which rooms are lit. Each room’s lights fade together, making the next space visible as the visitor approaches its threshold.

An audio guide in my voice. An AI voice trained on my recordings narrates the exhibition as visitors move through it. They can look at the works while listening, or follow the highlighted words in the reading panel. Narration connects each passage to a viewing position. A passage can finish as the visitor moves, and the next begins once they arrive. The reading panel follows the active passage and highlights each word as it is spoken. Listening progress is remembered for each passage, so visitors can pause, explore a work and pick up where they left off.

Reading in another language. Visitors can choose a language for the exhibition’s narrative and audio guide. The translated text and narration follow the same rooms and works, so they can change language during a visit.

## Exploring the archive

AI × Self
Source ID interactive.archive.illustration.main
Original https://www.henryw.me/#/aipersonalarchive#archive-overview-illustration

Questions bring original material into answers, composed readings and exhibitions.

Search finds a passage, Ask gives an answer with a citation, and View composes articles and exhibitions. Three saved Views appear above The View Gallery’s architectural model and ticket.

## A composed View

AI × Self
Source ID interactive.archive.illustration.view
Original https://www.henryw.me/#/aipersonalarchive#archive-view-illustration

AI connects original material around a visitor’s question, composing a View to read as an article or explore as an exhibition.

Visitors bring different questions about Henry’s life, research and design. A question about what Henry’s memories reveal about him brings photographs, a reflection on identity and a travel globe into a View shown as an article and exhibition. A handwritten note explains how other people’s questions can reveal connections Henry would not have thought of.

## SlidePoise introduction

SlidePoise
Source ID interactive.slidepoise.video
Original https://www.henryw.me/slidepoise/#overview

Henry’s two-minute video demonstrates SlidePoise, his open-source skill for creating editable PowerPoint presentations with an AI Agent. It follows content planning, asset selection, image generation, OpenCV measurement and reconstruction, then shows editable slides and reusable visual styles.

The visitor gives the Agent a brief, source material and a preferred style. The Agent develops the argument and plans how each slide contributes to it. It searches asset libraries for relevant icons and components. An image model uses the references and selected assets to design each slide around its content.

Once a design is chosen, the Agent identifies headings, text, charts and images and interprets their relationships. OpenCV, a computer-vision library, measures each element’s position and size and samples its colour. The Agent combines its interpretation with those measurements to reconstruct native, editable PowerPoint objects and add a consistent header and footer.

The video demonstrates editing the rebuilt slides and organising them into a complete presentation. Consulting and editorial examples show different ways to structure evidence and give images and ideas space. The optional local Console lets visitors configure fonts, colours and visual references and manage their assets. Saved Profiles preserve those settings for reuse with the Agent.

## Cathay Flex introduction

Cathay Flex
Source ID interactive.cathayflex.video
Original https://www.henryw.me/#/projects#cathayflex

A narrated demonstration of Cathay Flex, Henry’s team project for the Cathay Pacific Hackathon. Travellers earn credits by accepting suitable travel changes and use those credits across services and future journeys. The video shows how AI, constrained optimisation and a transaction and settlement system coordinate these arrangements.

A traveller describes which changes suit a short solo flight, a longer journey or a family trip. When another passenger needs the traveller’s aisle seat, Flex finds a compatible change. The traveller accepts and earns credits that remain available for a later journey.

On a subsequent family trip, the traveller asks for seats together and an extra bag. Flex presents one arrangement and a clear credit price, coordinating the passengers and resources needed. The demonstration also shows spending credits on Wi-Fi.

AI interprets passenger conditions. Constrained optimisation finds arrangements that work across the people involved. The transaction system coordinates confirmations, booking updates and credit settlement. Passenger flexibility gives the airline more ways to meet demand using its existing resources.

## Places and moments

Travels
Source ID about:gallery
Original https://www.henryw.me/#/travels#showcaseimages

A gallery of places and moments from Henry's travels and everyday life.