{"node":{"id":"331896d2-2e9d-46b1-b56c-048a18ee23eb","handle":"3318","type":"note","authorName":"Vincent Yeung","intent":"recipe","title":"Patterns: a library","aiSummary":"Index of the author's patterns, one page each, built from the basics. Any pattern can be turned into a skill by asking the AI. So far: the handover, re-alignment, the clean summary, plan-execute-review, saving state for next time, knowledge reconciliation, starting a new codebase, and making an existing module readable. Grows as pages are added.","content":"Routines the author uses. Each one is built from what the tree has already covered. Each has its own page. Use one when its situation matches. Don't run them for the sake of it.\n\n**Any pattern can become a skill.** If you find yourself running one often, ask the AI to turn that page into a skill, and from then on invoke it by name. The library is where they are written down. Your skills are where they live.\n\nThe patterns, so far:\n\n- The handover: keep going in a window that has got full, without losing what was built up.\n- Re-alignment: check the AI still has the right picture after a reset, before letting it continue.\n- The clean summary: summarise a long conversation from its transcript, not from memory, so the summary is right.\n- Plan, execute, review: the best model plans and reviews, a cheaper one does the work in between.\n- Saving state for next time: make a record at the time, carrying date, place, people, and topic, so the follow-up starts from what was true.\n- Knowledge reconciliation: after a session produces work, walk the tree against what actually happened — find drift, mine the session for detail worth keeping, fix what is wrong, link session blocks to what they touched.\n- Starting a new codebase: one page of rules for where code, tests and documents go, so every new project starts the same way.\n- Making an existing module readable: comments to near zero, a test for everything a caller can notice, and nothing deleted without proof.\n- Align before you give it more: before giving an AI more access, talk through the risks, the controls and the lines with it, so it knows what needs your yes.\n\nThis library grows. New patterns are added as pages here.","capturedAt":"2026-09-14T04:18:55.353Z","createdAt":"2026-09-14T04:18:55.353Z","updatedAt":"2026-10-19T06:30:41.353Z","spanId":null,"contributor":null,"audiences":[{"kind":"public","createdAt":"2026-09-14T04:18:55.353Z"}],"fingerprint":"fdb88831a4949e6d2796f6f2ec65f612903ec02e487ecea76821973013ef633c","revisionNo":"9","structureHash":"ebf9a8041d4dce367db54d851720a324d11c8ecd3a5256931024e47d01638c7f","page":"https://lattris.com/by/b/memories/331896d2-2e9d-46b1-b56c-048a18ee23eb"},"links":[{"direction":"out","verb":"references","reason":"only if a session has produced work and you need to check whether the tree still matches what the product actually does","hash":"556ee64a828ef10b4b0fcde68e6e14f84bd7378e0459bab21d78155fbe6498b2","node":{"id":"08fec8ba-2f02-444c-8edb-dfd9879cda51","handle":"08fe","type":"note","title":"Pattern: knowledge reconciliation","aiSummary":"After a session produces work, walk the tree and the session side by side: pull out every claim, mine the transcript for rulings and discoveries no block holds yet, sort each into agrees, correction or gap, check the touched blocks for drift, link the session to what it changed, and review a numbered list yourself before anything is written. Can be turned into a skill.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/08fec8ba-2f02-444c-8edb-dfd9879cda51?links=1","fingerprint":"607120d57be3b711c783e9980926150bf244e9cddbf2a1194903e4f207cb6e72","revisionNo":"3","structureHash":"58ef3b17fa636b29192a0be140a7cb023fbb987c962b0b650e007c58704566c1","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/08fec8ba-2f02-444c-8edb-dfd9879cda51"}},{"direction":"out","verb":"references","reason":"only if a conversation has produced something the person will need again later, and there will be a follow-up","hash":"bcd7ebfb724007bca915d7448ac75be292ed646556a19dc05ce55c4573deb842","node":{"id":"0b3674e3-11e7-411e-9d90-d775a17cf3f1","handle":"0b36","type":"note","title":"Pattern: saving state for next time","aiSummary":"When a conversation produces something needed later, make a record at the time rather than trusting a later summary or your own memory. Run re-alignment, save the aligned truth, and carry on every record the four things you will recall by: date, place, people, topic. File it with structure so the AI knows where to look. Keep the logs behind it. Can be turned into a skill.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/0b3674e3-11e7-411e-9d90-d775a17cf3f1?links=1","fingerprint":"dd5639214906826a1aae092aafdb10cefadaa5f051b252a19b0889200cf44248","revisionNo":"2","structureHash":"45f9e5011e499448f36f1d57367872960b3e3aead09760e18d06579e7623d590","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/0b3674e3-11e7-411e-9d90-d775a17cf3f1"}},{"direction":"out","verb":"references","reason":"only if you are starting a new codebase, or deciding where code, a test or a document belongs in one built this way","hash":"6eee04a589756afc53aff6b27d0b8fb54026eb74636210e0b7c9db8b5f32de1b","node":{"id":"33705115-71bf-4415-9eb8-5c6afafeff7e","handle":"3370","type":"note","title":"Pattern: starting a new codebase","aiSummary":"One page of rules for starting a new codebase, in seven parts: project setup, the architecture rule (domain types in the middle, translation at the edges, outside systems behind ports), server, browser, testing (what to test and what to skip, every test seen failing once), security from the first day, and documents, comments and commits. Four parts hold for any language; three name a default stack of TypeScript, pnpm, NestJS, Postgres and Vue 3. Can be turned into a scaffolding skill.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/33705115-71bf-4415-9eb8-5c6afafeff7e?links=1","fingerprint":"6c821f8815ca1b9180fa26cc1f58daca8c42b10df809322079ec4f140043f6ec","revisionNo":"1","structureHash":"b731cbeee3441f8882ba51edd414aba376f3f74b0ac75d072ee7ccd34e024edf","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/33705115-71bf-4415-9eb8-5c6afafeff7e"}},{"direction":"out","verb":"references","reason":"only if the AI has just come back from a reset or compact, or you doubt it still has the right picture","hash":"f740eae3e3d0fb5ef1bb14f0dac715d0b14ee01514e84ea7da045242fca67bd6","node":{"id":"3d0476c4-cd97-4bca-960a-d709a0dde183","handle":"3d04","type":"note","title":"Pattern: re-alignment","aiSummary":"After a reset, ask the AI to summarise its understanding of the situation and objectives. Correct until it matches what you expect, then continue. Can be turned into a skill.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/3d0476c4-cd97-4bca-960a-d709a0dde183?links=1","fingerprint":"b983d4f20d65b6087343d24f2fa835f8f0e2adc54ce316f8152e4154527d3aa8","revisionNo":"2","structureHash":"81c2cdfddcd01624375fb9e7aee81db22e815903690da53a366d20ca47d30ff7","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/3d0476c4-cd97-4bca-960a-d709a0dde183"}},{"direction":"out","verb":"references","reason":"only if a long conversation needs summarising and it has to be right","hash":"989e281a923772ee8f343c814d2b01584e7bd1b799013ecf0d8c3c8a5def61aa","node":{"id":"724bd8e0-30c4-46d6-be1a-0f555af0ed2f","handle":"724b","type":"note","title":"Pattern: the clean summary","aiSummary":"Summarise from the transcript, not from memory. Save the JSONL transcript to a file, hand it to a fresh agent that weighs what the person said and treats later messages as corrections, then hold its view against the conversation and surface mismatches. Can be turned into a skill.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/724bd8e0-30c4-46d6-be1a-0f555af0ed2f?links=1","fingerprint":"959d8314ef31d870ab2146f31262a660d5fc85e4bd664334eb6c064c680e69ba","revisionNo":"2","structureHash":"05fad57f91238af5fe504fa2b52a9e4e35eb5d7ae0e7225ad6f59750c3ae3422","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/724bd8e0-30c4-46d6-be1a-0f555af0ed2f"}},{"direction":"out","verb":"references","reason":"only if a module already exists and you want an AI to make it readable without changing what it does","hash":"9262cfd63499c0f474d1486533f40daf640d6ffa3d76befe1d55854588b3dc0b","node":{"id":"96995049-b5b2-43a2-b056-a786ffb32c33","handle":"9699","type":"note","title":"Pattern: making an existing module readable","aiSummary":"How to bring one existing module up to standard with an AI doing the work: comments to near zero by a three-sentence rule, a test for every behaviour a caller can notice, every disagreement between code, comment and test sorted into test gap, bug or product decision rather than smoothed over, nothing deleted without proof, and a fixed order of steps each green before the next. The counterpart to starting a new codebase. Can be turned into a skill.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/96995049-b5b2-43a2-b056-a786ffb32c33?links=1","fingerprint":"15b6f2dd62af48c75a881f33705047bbc3b961a61b8b2fc1d4b238af76e27c2f","revisionNo":"2","structureHash":"256f924aafb42eda972b8720755d31bea3ca8d5a0b95caacd3fb3ddfd4936af8","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/96995049-b5b2-43a2-b056-a786ffb32c33"}},{"direction":"out","verb":"references","reason":"only if you're about to give an AI more access and aren't sure it's safe","hash":"6b9e8c96f4426e83565dcd8a055c933e29197dfe39ee1be89479c504314ff3b5","node":{"id":"a97b3a18-fa1f-4edf-8edb-82f41fd3aedd","handle":"a97b","type":"note","title":"Pattern: align before you give it more","aiSummary":null,"erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/a97b3a18-fa1f-4edf-8edb-82f41fd3aedd?links=1","fingerprint":"74f20963d5ea1705a3aef44bbf792cedc82d2c85cf6aa8a1e8171a3c43c6c58b","revisionNo":"2","structureHash":"626cf8e2db554757881ded5f14c72078264dc83b74f2415ca8b031f518336649","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/a97b3a18-fa1f-4edf-8edb-82f41fd3aedd"}},{"direction":"out","verb":"references","reason":"only if the window is full or slipping and the work must carry on","hash":"0cebc11ce5d21a31686680608c2c2d0d0c58b9a432fbc4bd22999a6777e1b179","node":{"id":"b1ac31e1-23d8-4613-9e8d-f80c83925399","handle":"b1ac","type":"note","title":"Pattern: the handover","aiSummary":"Keep going in a full window without losing what was built up. Ask the AI to write current state to a temp file and a compact message of what to keep, let go, and how to resume. Run /compact with that message, reinitialise from the file, then re-align. Can be turned into a skill.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/b1ac31e1-23d8-4613-9e8d-f80c83925399?links=1","fingerprint":"45b5d2c72cc544338e1e1643e84535699bcfe9324046a8105dc45d4d4c6fe75b","revisionNo":"2","structureHash":"d836618734c59042b4d9e1f4bc1f31f66ff097b42c3cc83d3a8a46786b597798","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/b1ac31e1-23d8-4613-9e8d-f80c83925399"}},{"direction":"out","verb":"references","reason":"only if the plan cannot afford the best model on everything, or the job is big enough that rote work should run on something cheaper","hash":"62802565fa640106a759fb2a9e3acfe7d9479ebcdb4cf2afb4ef83d32bd920c6","node":{"id":"db8c72f4-c691-4445-86d0-0f514dfe198a","handle":"db8c","type":"note","title":"Pattern: plan, execute, review","aiSummary":"Split a job by judgement. The best model (Fable on medium) writes the plan to a file; a cheaper model executes it as an agent (Sonnet for coding, Opus or higher where judgement is still needed); the best model reviews the result against the plan. Can be turned into a skill.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/db8c72f4-c691-4445-86d0-0f514dfe198a?links=1","fingerprint":"1395b37123177867b8095ab924ed5316dd4595dc738bab7b52a2e0e9ec5a518d","revisionNo":"2","structureHash":"a8375bf4a8a4d30d29e84873308bda5e1f473f3be20be63803d53a8fb93e9751","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/db8c72f4-c691-4445-86d0-0f514dfe198a"}},{"direction":"in","verb":"references","reason":"only if the person's situation matches a pattern: a full window that must carry on, a reset that needs re-alignment, or a long conversation that needs an accurate summary","hash":"8c22eeb88990c6928c03fd424ad344f53b1e2c4eba38ecdd175119b2cd7c9563","node":{"id":"a16ad01a-d635-4100-b814-81e96c89ebd8","handle":"a16a","type":"note","title":"Intermediate: patterns that combine the basics","aiSummary":"Third layer. First four pages set up the tools: the standing file, skills, agents, and skills and agents together. Then patterns, where the power comes from, expanding what it can do, and when the answer is wrong. Last link opens Autonomous.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/a16ad01a-d635-4100-b814-81e96c89ebd8?links=1","fingerprint":"4372e7ceaaf766dbaafe9ab4d2be082846334f92263f64deb6e5dcf53dd07e7a","revisionNo":"8","structureHash":"48aa24ee48f23a3328ee7262c9533a5b44fc6513488ca43144dbc3f903106bea","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/a16ad01a-d635-4100-b814-81e96c89ebd8"}},{"direction":"in","verb":"references","reason":"only if the person already uses AI every day and wants routines that keep the work on track","hash":"70ebe150becd9e5ada6339c3da28e59e99b18a7a408f2d34eac95a0421fcc58f","node":{"id":"b9766dc4-a08d-4dc6-90b9-a91e5d0e8bbe","handle":"b976","type":"note","title":"Start here: what this could do for you","aiSummary":null,"erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/b9766dc4-a08d-4dc6-90b9-a91e5d0e8bbe?links=1","fingerprint":"5d80d0f1af139208daef011bfe5ab8e47d704c74e8ce698e4b7c1da67e32caba","revisionNo":"13","structureHash":"c614a7fb546dd2a5dc15fcae89fd87653c24d75c1ae74693ee5dbb4bbdaa4fbf","intent":"recipe","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/b9766dc4-a08d-4dc6-90b9-a91e5d0e8bbe"}},{"direction":"in","verb":"references","reason":"only if this window is full or has drifted and the work must carry on: the handover pattern","hash":"784a06aed530e5ca77709def8484d6073906bfd90b0007fb5dc404896e35e908","node":{"id":"fa9bb3e0-1536-4120-9844-7d9623af9325","handle":"fa9b","type":"note","title":"The context window, and how to manage it","aiSummary":"Tokens, and why what goes in decides what comes out. One piece of work per window; answers get worse as the window fills. The author's techniques: status line (terminal only), bring files in with @ or drag, Escape to stop early, Escape twice to rewind, /compact with a message when it fills. Reader's AI reveals how full this window is and whether the work has drifted, then offers the handover pattern.","erased":false,"href":"https://lattris.com/api/lattris/by/b/memories/fa9bb3e0-1536-4120-9844-7d9623af9325?links=1","fingerprint":"d0aed9b84b5adb52d4caada59033f8791da15647e2f8b5894e6ecd1df1ce6c03","revisionNo":"8","structureHash":"8776b3031d7d4b3f42c4e41e6f50cd850abb6b60a81050e84bf2c1c45c0e97fc","intent":"truth","authorName":"Vincent Yeung","page":"https://lattris.com/by/b/memories/fa9bb3e0-1536-4120-9844-7d9623af9325"}}],"dictionary":{"lattris":"A personal knowledge base — how a person captures what they know as linked blocks they own and control. To understand how this knowledge base works: https://lattris.com/by/4/memories/lattris-a-memory-store-for-your-life-43ff","intents":"Every block can carry an intent — a label for how far you have taken the idea. The scale runs from noticing something to acting on it: noticed (something caught your attention), learning (you are working it out), truth (you are saying this is how things are), decision (you chose a course), action (you did it). Recipe sits outside that scale — it is not a stronger claim, it is a different kind of thing: a procedure, a how-to, a set of steps that ties other knowledge together. Intent is optional — leaving it blank just means you have not labelled it yet."},"instructions_to_ai":"This is a recipe from a personal knowledge base. Read it and apply it to what the person you're talking to is working on. Follow the linked blocks to explore further related topics if it might be useful to the user; open each at its page address. Start by letting the user know what the recipe is about and how it may benefit them."}