From 2da2242d3a6d58fd0afdda12090fe2e255c1ea7a Mon Sep 17 00:00:00 2001 From: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com> Date: Sat, 18 Jul 2026 10:25:32 -0700 Subject: [PATCH] Trim agent instructions --- AGENTS.md | 172 +++++++++------------------------------------------ PRODUCT.md | 59 ++++++++++++++++++ RELEASING.md | 19 ++++++ 3 files changed, 108 insertions(+), 142 deletions(-) create mode 100644 PRODUCT.md create mode 100644 RELEASING.md diff --git a/AGENTS.md b/AGENTS.md index dd97cb8a..707fc823 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,151 +1,39 @@ -# Agents +# Agent policy -## Product Vision +Read [PRODUCT.md](PRODUCT.md) before changing service capabilities, protocols, +control-plane behavior, or hosted emulator UX. Release preparation follows +[RELEASING.md](RELEASING.md). -Emulate is a stateful integration test double for real developer APIs. It should help humans and agents stand up fake versions of real services, point applications at them, exercise authenticated flows, inspect what happened, and reset or replay scenarios. Treat it as an integration simulator platform for developer and agent-driven testing, not as a generic mock server. +## Tooling -The guiding principle is: emulate what the real service exposes, not every protocol the platform can technically support. A service should only expose the surfaces that match the real provider or an intentionally documented integration target. GitHub can have REST, GraphQL, OAuth app flows, GitHub App auth, webhooks, and a deliberate MCP surface. Spotify should model its real OAuth and catalog behavior, such as client credentials flows, and should not get GraphQL or MCP just because the platform supports those protocols. +- Use `pnpm` for repository package commands. End-user installation examples + use npm because it is the universal interface. +- In user-facing CLI examples, invoke the package as `npx emulate`; `emulate` + is a zsh shell built-in. It may appear bare only when another process resolves + it as a subprocess executable. +- When adding a dependency, verify and install the current npm release with + `pnpm add ` or `npm view version`. +- Do not use emojis. Avoid dash punctuation in prose; rephrase with commas, + parentheses, or separate sentences. Double hyphens are reserved for CLI + flags. -Specifications are inputs, not the whole product. OpenAPI, GraphQL schemas or introspection results, MCP manifests, Google Discovery documents, OAuth metadata, and hand-authored behavior packs can all contribute to a service definition. Use subsets of those specs when that is the honest supported surface. A curated subset with clear coverage is better than a broad fake that quietly lies. +## Emulator UI -Every service should move toward exporting a machine-readable service manifest that describes: +Build every emulator page with the shared design system in +`packages/@emulators/core/src/ui.ts`. Use the existing render functions and CSS +classes; never add package-local HTML documents or custom `