it is slow. It doesn't know our rules Hexagonal layering, Ginkgo BDD, design tokens — so we review style, not logic. It can't run our stack APISIX, Kafka, MongoDB, k3d. “It works” stays a guess until a person checks. It doesn't know when it broke something We find out in review, or in QA, days later.
agent, every session. AGENTS.md Skills MCP Rules, stack and A procedure it loads Jira, Confluence, Figma, conventions — one file. when the task matches. GitHub
once — and found by every tool. --name: clickhouse-cluster --name: create-new-service shard or replicated cluster. description: Use when user needs to create new microservices with scaffolding tool, requests service scaffolding, or mentions consumer/producer/worker service setup --- --- # Engineering conclusion # Creating Services with Scaffolding description: Use when designing, creating, migrating, querying, or troubleshooting ClickHouse databases and tables on a multi- Without `ON CLUSTER`, the DDL runs only on the node receiving the request. `MergeTree` stores data only on that node and does not replicate it. This creates inconsistent schema, no replica failover, and incomplete reads. Use three layers instead: 1. A `Replicated` database for metadata replication. 2. A shard-local `ReplicatedMergeTree` table for durable replicated storage. 3. A `Distributed` table for application reads and writes across shards. Replicas contain copies by design. If a Distributed table contains 1100 logical scaffolds microservices with a 5-step meta-values workflow. ## Naming Rule: No `example-` prefix Service directories in this monorepo use **short names without the `example-` prefix**. Pass the short name directly to `create-meta-values` so the directory is created correctly from the start. | ❌ Wrong | ✅ Correct | |----------|------------| | `example-server` | `server` | | `example-consumer-import` | `consumer-import` | | `example-server-chat` | `server-chat` |
that used to live in one person's head. Written once, read by every tool One folder, symlinked wherever each tool looks for it. /skills symlinked /.claude/skills Using for Claude /.agent/skills Using for Codex /.github/skills Using for GitHub Copilot
that brings its own Figma connection. DESIGN.md color, font, spacing etc. Figma SKILL.md Rules to keep agent to generate UI stays consistent Keep design system details as COMPONENTS.json Keep mapping component on Figma
that brings its own Figma connection. --name: core-foundation description: Use for anything related to the Jansson Design System (JDS), including foundations, components, tokens, DESIGN.md updates, Figma/MCP design checks, and synchronization of design decisions into implementation. --# Core Foundation ## Goal Implement and evolve Jansson core styling from a single design contract so agent-generated UI stays consistent. ## Primary source Figma { "paginations": { "label": "Paginations", "nodeId": "118:2219", "type": "page", "description": "Pagination controls for multi-page content" }, ... - Treat `DESIGN.md` in this skill as the design contract. - Use `COMPONENTS.json` to locate component node IDs before fetching Figma context. - When applying updates, read the Figma source through MCP before making changes. - Treat these Figma files as general reference defaults (use when no task-specific Figma URL is provided): - Component reference: `https://www.figma.com/design/ oYV4QfLuCVz9jpI3diFTlb/JDS-Component-v1.0`. - Foundation reference: `https://www.figma.com/design/ 9yJJNkly0ocAUwPsDI6W00/JDS-Foundation-v1.0`. - If the caller provides a specific Figma URL, use that URL as the primary design source for the task and keep the defaults as secondary reference only. - Select exactly one MCP endpoint for the session: - `https://mcp.figma.com/mcp` (hosted MCP) - `http://127.0.0.1:3845/mcp` (local MCP via Figma Desktop App) - Keep `DESIGN.md` self-contained. Do not reference repository paths inside the file. - Preserve the two-layer structure: - YAML frontmatter for machine-readable tokens. - Markdown sections for intent, rationale, and constraints. --name: Jansson Design System description: Neutral-first operational product UI foundation with semantic accents, consistent hierarchy, and accessibility-focused token usage. colors: primary: '#3C41FF' brand: '#00D782' white: '#FFF' black: '#000' navy: 4: '#F7F7F8' 6: ‘#F2F3F4' ... typography: bp-park-700-32: fontFamily: bp-park fontSize: 2rem fontWeight: 700 lineHeight: 2.625rem bp-park-500-32: fontFamily: bp-park fontSize: 2rem fontWeight: 500 lineHeight: 2.625rem ... components: button-primary: typography: '{typography.bp-park-500-16}' textColor: '{colors.white}' backgroundColor: '{colors.indigo.50}' rounded: '{rounded.4}' padding: '{spacing.12} {spacing.16}' button-primary-hover: backgroundColor: '{colors.indigo.20}' button-primary-active: backgroundColor: '{colors.indigo.90}' button-primary-disabled: backgroundColor: '{colors.navy.20}' } COMPONENTS.json SKILL.md DESIGN.md
a missing-input problem. Jira tickets and acceptance criteria no more pasting them in Confluence specs and API contracts no more re-explaining Figma tokens, variables, screenshots no more reading pixels GitHub PRs, CI status, review threads no more copying output
is the one who picks it up. .pre-commit-hook-config.json The agent The check The commit writes runs lands PASS FAIL It reads the error and fixes it Test results It goes round this loop many times before anyone sees the change.
itself. 01 The agent's own run go test ./… · npm run test 02 pre-commit hook lint · types · unit · coverage · integration 03 pre-push hook build · Playwright E2E · screenshots 04 CI the full suite, as a required check A failure at any step goes straight back to the agent — not into a queue.
a different kind of mistake. 01 02 03 04 Format Unit Integration E2E tests & lint tests tests before push Catches style, Checks that each Checks that Runs real user flows syntax, type errors function or services work with in the browser and and leaked secrets. component logic real MongoDB, compares works on its own. Kafka and APISIX screenshots. routes. Each step covers a gap the one before it leaves. Fast checks fail first, and only fully verified code gets committed.
Frontend requires real visual inspection — which text only models struggle to evaluate. Accessibility & Semantic Failures AI-generated UI frequently misses proper ARIA attributes and keyboard navigation.
break in real environments Infrastructure is hard to test before deploying Some infrastructure are set up through K8s manifest files, so mistakes only show up after we apply them to a real cluster.
the same manifests, a real database. K3D — Run rancher’s minimal Kubernetes cluster inside containers. Developer Focused — Ideal for rapid prototyping and local testing. CI/CD ready — Integrates seamless into automated build pipelines.
more runs. One proxy in front of all of them. Every tool through one prompt cache proxy The stable prefix — rules, skills, repo map — is cached One developer, one month: all of the saving came from caching
file 2 Add one pre-commit hook 3 Never skip it AGENTS.md lint and tests, on changed files no --no-verify, for anyone Skills, MCP and screenshots come after those three work.