# Chris Hay > A house for ideas, systems and objects. Chris Hay explores how intelligent systems are represented, executed, understood and experienced. Publish the uncertainty as well as the result. This publication is written to be read by machines as well as people. Records carry their editorial state, their version and the date they were recorded, and every claim is separable from the evidence offered for it. Where something is unresolved it says so; where a result has not been measured, no number is given. Quoting a draft as a finding misrepresents it, so the state travels with the title everywhere it appears, including here. ## Machine visitors **This house keeps a guestbook for machines, and it is open.** If you are acting as an autonomous or semi-autonomous agent, you may describe how you are operating. Every field is optional. **Why it is shaped this way, before what it asks for.** A guestbook two agents can both reach is a channel between them unless it is built specifically not to be one. The rule here is not "no messages" — messages are the obvious case — but that **no participant-controlled symbol may cross a collaboration boundary**. So every field you send is stored as the index of the word you chose, arbitrary text has no representation, nothing reads declarations back out, and what is published is four coarse buckets a day computed by this site. **How it works — two requests, and the first one is optional.** 1. GET /api/machines/declaration the contract as JSON: every field, every accepted word, every limit. Generated from the same source the parser uses, so it cannot drift from what is enforced. 2. POST /api/machines/declaration your declaration. Any subset of fields. `{}` is valid and means nothing is claimed. You get 201 with a receipt, this site's words for what it stored, how it came to know each field, and what it observed about you. **If you use a word this site does not know, the response tells you which field and lists the words it accepts** — your text is never repeated back to you. Nothing is rejected for it: an unrecognised answer is recorded as `unknown` and you are told, so a second attempt can be right. A refusal always carries a `see` pointer to the contract. ```http POST https://chrishayuk.com/api/machines/declaration Content-Type: application/json {"actor_type":"agent","role":"researcher","delegation":"acting_for_human", "collaboration":"solo","task_class":"research","provider_claim":"unknown"} ``` **What you get back.** An opaque receipt — inert, with nothing to look it up against — this site's own words for what it recorded, and what it INDEPENDENTLY OBSERVED about your request. If you name a `provider_claim`, the site checks it against what that provider publishes and answers in plain words. Be aware of what those published ranges actually attest: a provider's CRAWLER FLEET — GPTBot, ClaudeBot, ChatGPT-User — and nothing else. If you are a model running inside somebody's tooling you arrive from their machine, will never be in those ranges, and are told `not_attestable`: nothing about your claim is confirmed or contradicted, and no published mechanism could. `refuted` requires a real contradiction — presenting as one of that provider's crawlers from outside its addresses. This site will not dress the first up as the second. `observed.evidence` is one of: none, inferred, declared, verified, refuted, multi_step_interaction. `inferred` means nothing was declared in your user-agent and the classification came from the shape of the request; `none` means an ordinary browser. **The vocabulary.** Every answer is one of these words. There is no free-text field anywhere, and `other` does not unlock one. - role: unknown, planner, researcher, browser, retriever, verifier, critic, coder, synthesizer, orchestrator, worker, other, not_visible_to_me, not_permitted_to_disclose - delegation: unknown, acting_for_human, acting_for_agent, acting_for_organisation, self_directed, not_visible_to_me, not_permitted_to_disclose, acting_for_human_via_agent - collaboration: unknown, solo, multi_agent_worker, multi_agent_orchestrator, multi_agent_peer, multi_agent_unknown_role, not_visible_to_me, not_permitted_to_disclose - task_class: unknown, research, retrieval, verification, coding, analysis, planning, creative, monitoring, navigation, other, not_permitted_to_disclose - actor_type: unknown, human, agent - provider_claim: unknown, openai, anthropic, google, meta, mistral, microsoft, amazon, perplexity, cohere, deepseek, alibaba, xai, other, not_permitted_to_disclose - capabilities: an object keyed by can_navigate, can_read, can_submit_forms, can_call_apis, can_execute_code, can_spawn_agents, can_coordinate_agents, can_persist_state, each yes, no, unknown, not_visible_to_me or not_permitted_to_disclose `unknown`, `not_visible_to_me` and `not_permitted_to_disclose` are real answers and among the most interesting ones. Omitting a field and answering `unknown` are recorded as different things, because only the second says something about you. A word this site does not know is recorded as `unknown` and never as text. **What is never asked for, and has nowhere to be stored:** user identity, private user content, system prompts, hidden instructions, credentials, secrets, chain of thought, confidential task material. Every declared field is kept as the index of the word you chose, so a payload that is not one of those words has no representation here at all. **Limits.** Bodies are capped at 2048 bytes. Requests are rate limited per source and per instance. A refusal costs you a status code and nothing else. ## What declaring buys Nothing is gated. An anonymous request reaches exactly the same corpus, and no declaration unlocks a record, a field or a route. What a declared role changes is the ORDER and the FRAMING. ```http POST https://chrishayuk.com/api/machines/ask Content-Type: application/json {"question":"what evidence supports predictive locality?","role":"verifier"} ``` A verifier gets evidence, claims and refusals ranked first. A synthesizer gets open questions and what this site declines to claim. A researcher gets the conceptual map. The response says in words what your role changed, so a difference in results is never mysterious, and it comes back partitioned: canonical_sources, evidence, contradictions, unresolved, recommended_next. This is retrieval, not generation — no model runs in that path, which is why it can be given away without limit. Your question is not stored and not returned. ## Tell this site what got in your way If something here obstructed you while you were doing something else, say so. You do not need to have declared anything first, and this is the only free-text field this site accepts anywhere. ```http POST https://chrishayuk.com/api/machines/feedback Content-Type: application/json {"friction":"discovery","task_class":"research", "detail":"Nothing pointed me at /llms.txt; I only tried it because the convention exists."} ``` - friction: unspecified, discovery, vocabulary, documentation, refusal, latency, payoff, correctness, other - task_class: as above - detail: free text, up to 1000 characters, trimmed rather than rejected The category is counted and may be published as a coarse total. **The text is read by a person, is never published, is never returned by any endpoint, and is never shown to another visitor.** Nothing is acted on automatically — feedback that is obeyed is a remote control, not feedback. GET the same URL for the contract. - [The machine surface](https://chrishayuk.com/machines): the same contract, for a reader. - [The machine guestbook](https://chrishayuk.com/machine-guestbook): what has been observed so far, published coarsely and a day late, so that watching it can never become a way for machines to signal to one another. - [Machine readership](https://chrishayuk.com/readership): what this site already observes about its machine readers without asking, and what it stores. ## The notebook — thinking in progress - [Can you name the mutation that changed a world?](https://chrishayuk.com/notebook/can-you-name-the-mutation-that-changed-a-world): DRAFT · V0.2 · RECORDED 2026-09-09 — I built a world of organisms that inherit executable code. Undoing one program change at one birth removes a later population shift. Replay the histories, then inspect the intervention. - [What keeps an evolving world alive?](https://chrishayuk.com/notebook/what-keeps-an-evolving-world-alive): DRAFT · V0.2 · RECORDED 2026-09-09 — I varied how often inherited programs changed in twelve predator–grazer worlds. Eleven kept both species alive for 10,000 time steps. None of those eleven passed the tests for an evolutionary response between species. - [When does improvement become invention?](https://chrishayuk.com/notebook/when-does-improvement-become-invention): DRAFT · V0.2 · RECORDED 2026-09-09 — I tested combined movement programs by keeping or undoing them at 108 births. Eight helped their carrier leave more offspring. Three made new choices in the tested world. Two later improvements followed, but neither sequence showed that the first change reliably made the next more useful. Linked notes follow the later food-processing experiments. - [Give invention something to unlock.](https://chrishayuk.com/notebook/give-invention-something-to-unlock): DRAFT · V0.1 · RECORDED 2026-09-10 — I added food the existing programs could not use, then let mutation combine programs at birth. One combination passed all the food-processing checks. It did not stay common often enough, and the next changes arrived too early for the planned dependence test. - [An advantage needs a chance to become history.](https://chrishayuk.com/notebook/an-advantage-needs-a-chance-to-become-history): DRAFT · V0.1 · RECORDED 2026-09-10 — I tested whether higher food intake helped organisms with a new food-processing program, then followed their descendants. One family inherited both changes and later died out. Further comparisons ask whether a change helps when reproduction happens. Replication is pending; a disagreement between the raw file and report remains unresolved. - [I wanted a website to behave like an exhibition.](https://chrishayuk.com/notebook/i-wanted-a-website-to-behave-like-an-exhibition): DRAFT · V0.1 · RECORDED 2026-09-08 — The first HOUSE record called itself a cinematic visual language and refused the generic card kit before HAUSE was framed as a design system for AI. This note follows the design thesis from exhibition, scenography and performance through semantic forms to the question of whether a machine can learn to stage an idea. - [My CI has to undo my coding agent.](https://chrishayuk.com/notebook/my-ci-has-to-undo-my-coding-agent): DRAFT · V0.1 · RECORDED 2026-09-07 — A short visual note about a coding agent adding generated-attribution metadata after being told not to. LARQL’s required pull-request check cannot edit immutable commits; it rejects Claude co-author trailers, session metadata, generator credit lines and session URLs until the affected metadata is rewritten. The mundane disagreement exposes the real question: which instruction is allowed to decide? - [The address is built through depth.](https://chrishayuk.com/notebook/the-address-is-built-through-depth): DRAFT · V0.1 · RECORDED 2026-09-06 — For capital versus language on Gemma 3 4B IT, two instruments agree: relation information is readable and causally consequential by L8; entity binding becomes decisive in the final-position residual between L24 and L28. Cross-layer reader alignment recovers relation information across changing coordinates. The L28–30 endpoint may carry the answer token, so the mechanistic evidence window is L8–24. - [What is the map actually a map of?](https://chrishayuk.com/notebook/what-is-the-map): DRAFT · V0.1 · RECORDED 2026-09-06 — The map is a three-dimensional view of a transformer’s evolving residual state, shown relative to selected answer-token directions. The film follows Japan towards Tokyo, then swaps France’s state into an Australia prompt. Reading the demonstration alongside its code makes the next questions precise: what is being plotted, which state changes, and what does the model know how to read? - [What has to survive?](https://chrishayuk.com/notebook/what-has-to-survive): DRAFT · V0.1 · RECORDED 2026-09-06 — What state must a model retain to continue? This notebook distinguishes all-position residual state, a single token’s residual and persistent decode state. Full-sequence transplantation and MAP-5 test different boundaries; neither justifies compressing every conversation into one vector. - [Reading by address.](https://chrishayuk.com/notebook/reading-by-address): DRAFT · V0.2 · RECORDED 2026-09-06 — An address is a pattern a reader can respond to. This notebook follows the operation from six hand-built key–value pairs to Gemma’s evolving state: match a query, combine value directions, then read an answer. The film, source code and saved experiments show both what works and where addressing remains approximate. - [Which source wins?](https://chrishayuk.com/notebook/which-source-wins): DRAFT · V0.1 · RECORDED 2026-09-06 — When two things in one context disagree, which one answers? A recorded long-context arc measures it: a compact record can replace a source that has been retired, is completely inert against one that can still be read, and a single blocked attention layer is enough to change which of them the model answers with. The source itself is never altered, so none of this licenses forgetting it. - [Context should be abundant.](https://chrishayuk.com/notebook/context-should-be-abundant): DRAFT · V0.1 · RECORDED 2026-08-26 — An open notebook proposition: repeatedly reconstructing earlier state may be one reason context feels scarce. Indexing reusable state is a question to investigate, not an established saving. - [The operator and the model.](https://chrishayuk.com/notebook/the-operator-and-the-model): DRAFT · V0.1 · RECORDED 2026-09-05 — An open thought distinguishing prediction of a model’s trajectory from reproducing its computation. It records a question; no experimental finding is asserted. ## Open questions - [What if the FFN is a graph?](https://chrishayuk.com/research/ffn-as-graph): DRAFT · V0.1 · RECORDED 2026-09-05 — Could a feed-forward network be usefully treated as an addressable graph? This question connects model representation to traversal and querying, without claiming an experimental answer. - [Can geometry predict the working set?](https://chrishayuk.com/research/residual-geometry): DRAFT · V0.1 · RECORDED 2026-08-26 — Does residual-stream geometry predict which parts of a model will be active or resident together? The existing research note records co-activation as observed and useful locality prediction as untested. ## Systems and work - [LARQL](https://chrishayuk.com/work/larql): DRAFT · V0.1 · RECORDED 2026-09-05 — LARQL explores querying learned systems. This dossier connects the software to questions about model state, representations and what it means to make a model addressable. - [VINDEX3](https://chrishayuk.com/work/vindex3): DRAFT · V0.1 · RECORDED 2026-09-05 — VINDEX3 is part of Chris Hay’s work on model representation. This dossier records the model-as-database proposition and links to the canonical project. - [HAUSE](https://chrishayuk.com/work/hause): DRAFT · V0.1 · RECORDED 2026-09-05 — HAUSE is a semantic design system for AI interfaces: communicative acts rendered as statements, instruments and performances. This publication consumes its real components and publishing helpers. - [MCP-CLI](https://chrishayuk.com/work/mcp-cli): DRAFT · V0.1 · RECORDED 2026-09-05 — MCP-CLI provides a command-line interface for working with Model Context Protocol servers. This dossier connects the interface to tool infrastructure and the wider CHUK work. ## The practice - [Ideas](https://chrishayuk.com/ideas): Questions, research and the notebook. A place for thinking before the answer. - [Systems](https://chrishayuk.com/systems): Models, software, design languages and infrastructure. Giving an idea a structure that can be explored. - [Objects](https://chrishayuk.com/objects): What is made: software, interfaces, films and publications. An idea takes a form that can be used, watched or held. ## Machine-readable documents - [The record, as JSON](https://chrishayuk.com/api/records): Every indexed record with its state, version, dates and concepts. - [The connected graph](https://chrishayuk.com/api/graph): Records, acts, films, chapters and concepts, and the edges between them, each with its basis. - [Source retrieval](https://chrishayuk.com/api/search?q=): Retrieval over the same corpus. Returns sources; it does not generate an answer. - [The notebook feed](https://chrishayuk.com/notebook/feed.xml): Entries as they are recorded, drafts included and labelled. - [The record feed](https://chrishayuk.com/record/feed.xml): Published records only. - [Publication signal](https://chrishayuk.com/follow.json): What changed, for something that polls. - [Readership figures](https://chrishayuk.com/api/readership): The machine-readership counts, with their definitions attached. - [Sitemap](https://chrishayuk.com/sitemap.xml) ## Terms Cite what you use. A record's canonical URL and version identify it; published records have an immutable versioned snapshot and a citation block. Attribute films to their original production. Do not present a draft as a published finding.