
.html.css.jsPublic by definition — every byte inspectable in DevTools. The dining room has no locked drawers.
package.jsonnext.config.mjsThe app’s ID card — name, dependencies, scripts — read once at build time, before any user exists.
.gitignore_redirectsReaders you configure, not code: git obeys .gitignore — node_modules/ · out/ · .env never enter history — and Netlify obeys _redirects for routing.
.sqlSchema: the declared shape of your data — tables, columns, types. Migration: a versioned, scripted change to it.
CLAUDE.mdAGENTS.mdSKILL.mdThe newest reader in the building. No parser needed — the parser is the model. Prose in, behavior out.
.envKeys and passwords, handed to the app from outside the code — no human, no repo, no browser, just the process at startup. Never committed.
CLAUDE.md.cursorrulescopilot-instructions.mdGEMINI.mdFour vendors, four filenames. Teams running three tools kept three near-identical files — drifting apart.
“A README for agents.” Plain Markdown, no schema, no required fields — the minimalism is the strategy: nothing to standardize, nothing to fight about.
The Linux Foundation’s Agentic AI Foundation launches on three donations — MCP (the connector standard behind our own /connect), goose (Block’s open agent), AGENTS.md
. It ratified a fait accompli — blessed what had already won.
Claude Code still reads only CLAUDE.md — against a 5,200+ reaction issue cluster (captured Aug 2026). The community’s bridge is one line:
CLAUDE.md → @AGENTS.md.env→.gitignore→host env varsTwo separate dangers, one file dodges both: anything shipped to a browser is public — and anything committed is in history forever. So keys live in a file git never sees, and production gets them from the host (Netlify → Site settings → Environment variables).
A public GitHub repo literally named Private-CISA — kept by a contractor for the US cyber-defense agency — sat exposed Nov 2025 → May 2026 with AWS GovCloud admin keys in it. If CISA’s contractor can commit secrets, so can you.
A secret that ever touched a commit is burned.
Git history is forever — rotate it, don’t delete it. In Movement 3 your team holds a partner business’s keys. This reflex is part of what the CTSBDC is trusting us with.
1build / test / lint commands2project map — where things live3conventions a linter can’t enforce4verification — run before claiming done5repo-specific gotchasPasting a generated 400-line file made the agent worse than having nothing. Short beats long; written beats generated.
Write AGENTS.md; add a one-line CLAUDE.md — @AGENTS.md — and work identically in Codex, Cursor, Copilot and Claude Code. For a partner business, writing this file is a diagnostic deliverable: you can’t write it without understanding their repo. That’s Movement 3.
package.jsonnpmthe app’s ID card — dependencies and scriptsdata/curriculum.jsevery page of this sitethe declared single source of truthapp/globals.cssthe browserbrand tokens — navy, crimson, the fontspublic/_redirectsNetlify/apply → /assessment lives here, not in code.gitignoregitwhat never enters history — .env, node_modules, out/CLAUDE.mdthe modelpre-paid context — curated once, loaded every time the agent startsout/your browser, right nowthe built artifact — this very slideYour first critique: the guidance says agent files stay under ~200 lines — ours is 394 (as of Aug 2026), and still growing. And it’s a lone CLAUDE.md with no AGENTS.md bridge — breaking both of today’s rules. What would you cut, and would you migrate it?
Connect.AI
Checking access…