<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Felix Huang</title>
    <description>The latest articles on DEV Community by Felix Huang (@kelegele).</description>
    <link>https://dev.to/kelegele</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4234200%2F28d5d5a3-a3f6-4481-8b53-1fa4c36b3b64.png</url>
      <title>DEV Community: Felix Huang</title>
      <link>https://dev.to/kelegele</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kelegele"/>
    <language>en</language>
    <item>
      <title>Handing Work Between AI Agents Without Re-explaining Everything: project-handoff</title>
      <dc:creator>Felix Huang</dc:creator>
      <pubDate>Sun, 08 Nov 2026 23:10:57 +0000</pubDate>
      <link>https://dev.to/kelegele/handing-work-between-ai-agents-without-re-explaining-everything-project-handoff-hg4</link>
      <guid>https://dev.to/kelegele/handing-work-between-ai-agents-without-re-explaining-everything-project-handoff-hg4</guid>
      <description>&lt;p&gt;Handing Work Between AI Agents Without Re-explaining Everything: project-handoff&lt;/p&gt;

&lt;p&gt;Reconstruct an afternoon you've probably lived through. In the morning you push a feature forward with Codex: the architecture trade-offs get talked through, a gnarly dependency pitfall gets smoothed over, one approach gets explicitly rejected. In the afternoon you switch to a different client to continue — and the new session knows nothing. What's the goal? Where did things stop? Which decisions are settled? You either re-narrate everything from scratch, or watch the agent enthusiastically rebuild the approach you rejected hours ago and step on the exact rake you already stepped on.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kelegele/project-handoff-skill" rel="noopener noreferrer"&gt;project-handoff-skill&lt;/a&gt; turns handoff into a set of files inside the project: every new session checks the handoff state before touching anything. It's bound to no particular client — it only relies on the &lt;a href="https://agents.md/" rel="noopener noreferrer"&gt;AGENTS.md&lt;/a&gt; open convention that every agent already understands.&lt;/p&gt;

&lt;p&gt;The skill comes from my own routine: five or six agent clients in rotation, every handoff done by re-explaining to a goldfish. I tried letting agents write handoff notes themselves; the problem was nobody could hold the notes to a shape — some ballooned until they ate the context window, some were written once and never read again. So the discipline itself became a skill: one setup question, records written to disk automatically, size on a hard budget.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five situations where you want it
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. You switch between clients all day
&lt;/h3&gt;

&lt;p&gt;Codex in the morning, ZCode in the afternoon, Kimi Code CLI at night — and you don't want to re-brief any of them. After install, one sentence sets it up: "Set up project-handoff mode for this project." It installs at user level and drops a toggle file in the project root. From then on every new session self-checks: never configured → asks once whether to enable; already configured → silently keeps going, never asks again.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The project spans days or weeks
&lt;/h3&gt;

&lt;p&gt;You want to resume, not excavate chat history to reconstruct progress. Once enabled, the project gains a &lt;code&gt;HANDOVER.md&lt;/code&gt; — goals, current progress, settled decisions, pitfalls — and every new session reads it before working. What's done, what's next, what must not be touched: visible at a glance.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. You're forced to switch tools mid-flight
&lt;/h3&gt;

&lt;p&gt;Quota exhausted, context window full, a provider having a bad day — the switch isn't optional, and the new tool needs to know immediately where things stand and what's off-limits. This is exactly the handoff file's home turf: it doesn't depend on any client's session memory. The files live in the project; anyone can read them.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. You've been burned by "I forgot to mention one thing"
&lt;/h3&gt;

&lt;p&gt;Forgot to say approach A was rejected → the agent rebuilds it. Forgot to say that dependency is a trap → the agent steps in it again. Handoff records pin these &lt;em&gt;negative facts&lt;/em&gt; in plain sight — rejected approaches, dead-end paths, reproduced pitfalls — where the new session sees them before starting, instead of after the collision.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Several people (or agents) rotate through one project
&lt;/h3&gt;

&lt;p&gt;You log off; whoever picks it up next — human or agent — needs the same "where we are" picture. The handoff file sits in the repo, readable by both. Both sides of the relay are looking at the same facts.&lt;/p&gt;

&lt;h2&gt;
  
  
  When NOT to install it
&lt;/h2&gt;

&lt;p&gt;The honest part of a recommendation is the reverse list. If you use exactly one client and never switch, that client's own session memory is enough and handoff files are pure overhead. One-off script repos have no "next session" to hand off to. And if agents are entirely managed for you and you never touch the workflow, extra files and prompts will only add noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it stays contained
&lt;/h2&gt;

&lt;p&gt;The three classic failure modes of agent-written handoff notes — unbounded growth, write-once-never-read, uncertainty about what belongs — each get a gate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bounded footprint&lt;/strong&gt;: handover records over 8KB / 300 lines auto-slim down to the three most recent sections, the rest archived. Run records keep 20 entries per agent; older ones compress into an archive index. The agent normally reads only small files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-explaining footprint&lt;/strong&gt;: one sentence — "run a health check on the handoff setup" — has the agent execute &lt;code&gt;--status&lt;/code&gt;: what this is, whether it's on, which files are its own, how to turn it off, how to remove it. One command, full answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heartbeat lock for orphans&lt;/strong&gt;: a session that dies halfway without closing out gets auto-flagged as "interrupted, awaiting pickup" after a timeout — the next agent sees it immediately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy red line&lt;/strong&gt;: hooks record event names, timestamps, and session IDs only — never prompts, replies, or command contents. A dedicated test pins this promise, and 45 replay cases run on macOS + Linux CI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install and use
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Option 1: skills CLI (recommended)&lt;/span&gt;
npx skills add kelegele/project-handoff-skill

&lt;span class="c"&gt;# Option 2: drop it into a skills dir manually (dir name must be project-handoff)&lt;/span&gt;
&lt;span class="c"&gt;# Cross-agent: ~/.agents/skills/   ZCode: ~/.zcode/skills/   Codex: ~/.codex/skills/&lt;/span&gt;

&lt;span class="c"&gt;# Update&lt;/span&gt;
npx skills update project-handoff
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After install, two phrases drive everything:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Set up project-handoff mode for this project&lt;/p&gt;

&lt;p&gt;Run a health check on the handoff setup&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Daily service commands (all plain speech; the agent runs the scripts):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;You say&lt;/th&gt;
&lt;th&gt;It runs&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;enable / disable handoff&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;--enable&lt;/code&gt; / &lt;code&gt;--disable&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;idempotent toggle; disabling flips the switch and keeps every record&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;health check&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--doctor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;config / hook wiring / permissions / timezone, graded PASS/FAIL/WARN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;handoff status&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;mode, file ownership, recent runs, footprint, uninstall instructions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;clean up records&lt;/td&gt;
&lt;td&gt;&lt;code&gt;--gc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;run-record rotation + handover slimming&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Three quick answers
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does it work with an agent it's never heard of?&lt;/strong&gt; Yes. The shared artifacts rely only on the AGENTS.md convention; any compatible client reads the same files. Automatic recording is a bonus, not a dependency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will it keep asking whether to enable?&lt;/strong&gt; No. Asked once, then silent while config is valid. If config breaks, it names the specific problem instead of pretending nothing was ever configured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I remove it completely?&lt;/strong&gt; &lt;code&gt;--status&lt;/code&gt; prints the full list: delete the project toggle file and &lt;code&gt;docs/execution/&lt;/code&gt;, remove the handoff section from AGENTS.md, delete the skill directory. No residual dependencies anywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start small
&lt;/h2&gt;

&lt;p&gt;Pick a project where you genuinely switch between tools. Install it, enable handoff, work half a day normally, then continue once from a different client. You'll see immediately how much re-explaining the file just saved you.&lt;/p&gt;

&lt;p&gt;Repo on &lt;a href="https://github.com/kelegele/project-handoff-skill" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;; issues and ideas welcome. It's the other half of the same puzzle as &lt;a href="https://github.com/kelegele/agentsmd-skill" rel="noopener noreferrer"&gt;agentsmd-skill&lt;/a&gt;: agentsmd turns lessons into rules (&lt;a href="https://www.kelegele.com/blog/agentsmd-scene-guide" rel="noopener noreferrer"&gt;scene guide&lt;/a&gt;, &lt;a href="https://www.kelegele.com/blog/agents-md-lessons-without-bloat" rel="noopener noreferrer"&gt;design reasoning&lt;/a&gt;), project-handoff carries progress to the next session — one makes the AI remember &lt;em&gt;how&lt;/em&gt; to work, the other makes it know &lt;em&gt;where you left off&lt;/em&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>devtools</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Stop Re-explaining Your Project to AI Coding Agents: Distill Session Lessons into AGENTS.md</title>
      <dc:creator>Felix Huang</dc:creator>
      <pubDate>Sun, 08 Nov 2026 23:10:56 +0000</pubDate>
      <link>https://dev.to/kelegele/stop-re-explaining-your-project-to-ai-coding-agents-distill-session-lessons-into-agentsmd-2omj</link>
      <guid>https://dev.to/kelegele/stop-re-explaining-your-project-to-ai-coding-agents-distill-session-lessons-into-agentsmd-2omj</guid>
      <description>&lt;p&gt;Stop Re-explaining Your Project to AI Coding Agents: Distill Session Lessons into AGENTS.md&lt;/p&gt;

&lt;p&gt;It's Monday. You tell your AI coding agent: "this project uses pnpm, not npm." By Wednesday, a fresh session runs &lt;code&gt;npm install&lt;/code&gt; again. Your corrections live in dozens of session logs; switch machines or switch tools and they're gone. Ask the AI to write a project conventions file instead, and you get a 500-line "best practices" dump — half common sense, half commands that were never run. The fatter the file, the more selectively the model reads it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/kelegele/agentsmd-skill" rel="noopener noreferrer"&gt;agentsmd-skill&lt;/a&gt; is built for exactly these moments: it distills the lessons from your current session into one-line, executable rules in an &lt;a href="https://agents.md/" rel="noopener noreferrer"&gt;AGENTS.md&lt;/a&gt; file at your project root. Every new session — Claude Code, Codex, Cursor — reads it before starting work. It holds four hard lines: one rule says one thing, the whole file stays under 120 lines, every command is actually run before being written, and every change waits for your approval.&lt;/p&gt;

&lt;p&gt;This post walks through five real scenarios — when to use it and how.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/kelegele" rel="noopener noreferrer"&gt;
        kelegele
      &lt;/a&gt; / &lt;a href="https://github.com/kelegele/agentsmd-skill" rel="noopener noreferrer"&gt;
        agentsmd-skill
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      WorkBuddy skill: distill lessons into AGENTS.md (concise, spec-compliant, no bloat)
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;p&gt;English | &lt;a href="https://github.com/kelegele/agentsmd-skill/docs/zh-CN/README.md" rel="noopener noreferrer"&gt;简体中文&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;agentsmd&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;The pitfalls you hit — your AI never hits them twice.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/kelegele/agentsmd-skill/stargazers" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6da424f2abb7f0fde2a8a9da61c7800fb31c719d822cbab5113339c04e9f0fd9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6b656c6567656c652f6167656e74736d642d736b696c6c3f7374796c653d666c61742d737175617265" alt="GitHub stars"&gt;&lt;/a&gt;
&lt;a href="https://www.skills.sh/kelegele/agentsmd-skill" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/449777a1286778a7b529c15bb15608db14c9e5e922f600b8fe023be93c55fe0f/68747470733a2f2f736b696c6c732e73682f622f6b656c6567656c652f6167656e74736d642d736b696c6c3f7374796c653d666c61742d737175617265" alt="skills.sh installs"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/16e7de5610e2f8ed50971a173760c06fb41b1a5d63548dcc7bed94108bb87010/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f666f726d61742d4167656e745f536b696c6c732d626c75653f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/16e7de5610e2f8ed50971a173760c06fb41b1a5d63548dcc7bed94108bb87010/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f666f726d61742d4167656e745f536b696c6c732d626c75653f7374796c653d666c61742d737175617265" alt="Agent Skill"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/4b3d7a5e7a81f90c72f2f21d69af0d3449bdd1a1bc6914c89b240e679302cec2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737570706f7274732d436c617564655f436f64652d707572706c653f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/4b3d7a5e7a81f90c72f2f21d69af0d3449bdd1a1bc6914c89b240e679302cec2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737570706f7274732d436c617564655f436f64652d707572706c653f7374796c653d666c61742d737175617265" alt="Claude Code"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/6932b2bb47da134e1e31e90fd58cc1951ed7d00e237f42098af0bce2dd70d393/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737570706f7274732d436f6465782d626c61636b3f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/6932b2bb47da134e1e31e90fd58cc1951ed7d00e237f42098af0bce2dd70d393/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737570706f7274732d436f6465782d626c61636b3f7374796c653d666c61742d737175617265" alt="Codex"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/4ad0cce57c513c98b3bb8e72dfe70d1d5d1b4e9aa5bda8e62f1090a953efbed6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737570706f7274732d437572736f722d677261793f7374796c653d666c61742d737175617265"&gt;&lt;img src="https://camo.githubusercontent.com/4ad0cce57c513c98b3bb8e72dfe70d1d5d1b4e9aa5bda8e62f1090a953efbed6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737570706f7274732d437572736f722d677261793f7374796c653d666c61742d737175617265" alt="Cursor"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hand this session's pitfalls and corrections to your AI, say "write the lessons into AGENTS.md", and it distills them into one-line executable rules in the project root's AGENTS.md. From then on, every new session — Claude Code, Codex, or Cursor alike — reads it before starting work and follows it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This skill came from my own endless "re-training" sessions. In every project there are things you want to cement: how this project builds, which boundaries must not be crossed, what coding conventions apply. If they don't live in AGENTS.md, you re-teach them to the agent in every new session — the same mistake three times, three corrections, all day gone.&lt;/p&gt;
&lt;p&gt;It became a habit: whenever there was a general rule to keep, I had the agent write it into AGENTS.md. Then a new problem crept…&lt;/p&gt;
&lt;/blockquote&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/kelegele/agentsmd-skill" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  1. The same pitfall, re-discovered every session
&lt;/h2&gt;

&lt;p&gt;The classic case. In this session you corrected the AI three times: tests need a local database running first, the deploy script must never touch &lt;code&gt;main&lt;/code&gt;, read logs with &lt;code&gt;pnpm logs&lt;/code&gt;. Next session, it does all three wrong again.&lt;/p&gt;

&lt;p&gt;At the end of the session, say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Distill this session's lessons into project rules&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It runs a fixed pipeline. &lt;strong&gt;Collect&lt;/strong&gt;: only mistakes you pointed out, pitfalls actually hit, and preferences repeated twice or more count — one-off details and common sense are excluded up front. &lt;strong&gt;Distill&lt;/strong&gt;: generalize, compress to one line, route to the right section, and pass three gates — "will recur", "violating it costs something", "fits in one line". Fail any gate, drop the rule. &lt;strong&gt;Merge&lt;/strong&gt;: compare against existing rules — duplicates are discarded, overlaps merged, conflicts resolved in favor of the newer. &lt;strong&gt;Approve&lt;/strong&gt;: the full change plan is shown to you; nothing is written until you approve.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Your AGENTS.md is already a junk drawer
&lt;/h2&gt;

&lt;p&gt;Four hundred lines of mutually contradicting rules, half of them common sense? The model reading it is functionally reading nothing.&lt;/p&gt;

&lt;p&gt;Same one-liner:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Update project rules: merge this session's lessons via the merge decision table; over 120 lines, cut before adding&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It merges organically rather than appending: five gates (drop equivalents / merge overlaps / replace special cases with their general version / resolve conflicts toward the newer / delete outdated) filter everything, and as the file nears the 120-line hard cap it cuts before it adds. Content that still has value but doesn't clear the bar — say, rarely-used operational details — moves to &lt;code&gt;docs/&amp;lt;topic&amp;gt;.md&lt;/code&gt; with a one-line reference left in the root file. What gets deleted is redundancy, not memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Cold start: you want a spec that actually runs
&lt;/h2&gt;

&lt;p&gt;New project, no AGENTS.md yet. You want a first version that grows out of the directory structure, README, and build config — not a template with blanks.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No AGENTS.md yet — generate a first version with agentsmd; verify every command by actually running it&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The difference here is command verification: every build and test command is executed for real before being written. Commands that can't safely run — deploys, migrations — are cross-checked line by line against &lt;code&gt;package.json&lt;/code&gt; scripts, the Makefile, and CI config; anything that doesn't match doesn't get written. Why so stubborn? Because this file is &lt;em&gt;trusted context&lt;/em&gt; for the agent: one hallucinated command is more dangerous than ten missing rules — the agent will believe it and run it.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. A directory with no code, only documents and data
&lt;/h2&gt;

&lt;p&gt;Report libraries, writing collaboration folders, data workspaces — there's no &lt;code&gt;package.json&lt;/code&gt;, so "build commands" and "lint rules" are meaningless sections. What actually needs governing is data definitions, naming and archiving conventions, delivery review.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Settle working rules for this collaboration directory, and gather the scattered reports, data, and reference material&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before starting, it classifies the project as coding or work. Work-mode scans the document structure and naming conventions; rules lean toward data definitions, archiving, and delivery. Gathering moves documents into &lt;code&gt;docs/&lt;/code&gt;, machine-readable data into &lt;code&gt;data/&lt;/code&gt;, reference material into &lt;code&gt;references/&lt;/code&gt; — after checking references project-wide first, leaving cited files in place, and fixing links after every move. And every move requires your approval.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Your agent has personal memory, but it's disconnected from the project
&lt;/h2&gt;

&lt;p&gt;Personal agents with memory systems (Hermes, OpenClaw) accumulate entries that drift away from specific projects: which project does this lesson belong to? Still valid here next week?&lt;/p&gt;

&lt;p&gt;The low-effort move is to fold it into the same request:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Write the lessons into AGENTS.md, and gather the documents and data scattered in the root&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It doesn't invent a private memory format — it rides the host. If your agent has a memory system, project-level memory is persisted in the host's own format, deduplicated and written only after approval; no memory system, it silently skips. TODO and CHANGELOG get updated along the way. Wherever it's installed, it grows into that agent's shape.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Option 1: skills CLI (recommended; one-liner updates later)&lt;/span&gt;
npx skills add kelegele/agentsmd-skill
npx skills update agentsmd

&lt;span class="c"&gt;# Option 2: git clone into your skills dir (project-level: .claude/skills/agentsmd)&lt;/span&gt;
git clone https://github.com/kelegele/agentsmd-skill.git ~/.claude/skills/agentsmd
git &lt;span class="nt"&gt;-C&lt;/span&gt; ~/.claude/skills/agentsmd pull

&lt;span class="c"&gt;# Option 3: install nothing — hand the repo URL to your agent:&lt;/span&gt;
&lt;span class="c"&gt;# "Install this skill for me: https://github.com/kelegele/agentsmd-skill"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also listed on &lt;a href="https://clawhub.ai" rel="noopener noreferrer"&gt;ClawHub&lt;/a&gt; (&lt;code&gt;clawhub install agentsmd&lt;/code&gt;) and the &lt;a href="https://lobehub.com" rel="noopener noreferrer"&gt;LobeHub&lt;/a&gt; Skills Marketplace. Some agents need a restart or a fresh session to pick it up. AGENTS.md itself follows the open spec — Claude Code, Codex, Cursor, and Gemini CLI all read the same file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three quick answers
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Will it stuff the file with generic filler?&lt;/strong&gt; No — piling up common sense to look productive is an explicit ban, and one-off details are filtered at the collection stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will the file grow forever?&lt;/strong&gt; No. 120-line hard cap, appending is forbidden, cuts come first; valuable detail migrates to &lt;code&gt;docs/&lt;/code&gt; with a one-line reference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will it touch files without asking?&lt;/strong&gt; No. Rules file, memory, progress files, document moves — all come back to you as a complete plan before anything executes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start small
&lt;/h2&gt;

&lt;p&gt;Pick a project where you keep correcting the same mistakes. Install the skill, end your next session with one sentence, and read the change plan it hands you — what enters, what merges, what gets cut, and why each rule reads the way it does. You'll know within one review whether this is your kind of tool.&lt;/p&gt;

&lt;p&gt;Repo on &lt;a href="https://github.com/kelegele/agentsmd-skill" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;; issues and ideas welcome. If you want the design reasoning, I wrote about &lt;a href="https://www.kelegele.com/blog/agents-md-lessons-without-bloat" rel="noopener noreferrer"&gt;why 120 lines beats 500&lt;/a&gt;, and &lt;a href="https://www.kelegele.com/blog/agentsmd-skill-iteration-retrospective" rel="noopener noreferrer"&gt;how four of my design assumptions got falsified in two months&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>devtools</category>
      <category>aiagents</category>
    </item>
  </channel>
</rss>
