agentleFS
jhy0285jhy0285/monofield/packages/AGENTS.md

monofield / packages

AGENTS.md5 starsChanged 5 months agoApache-2.0View on GitHub

Follow the root AGENTS.md first. This file only records module-level boundaries for packages/.

We split this AGENTS.md into the rules it gives an agent

5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Follow the root AGENTS.md first.

    line 3
  2. Very specific:

    Do not move runtime validation/schema enforcement into contracts prematurely.

    line 24
  3. Distinctive:

    Do not let app packages depend directly on sidecar control-plane details.

    line 25
  4. Very specific:

    Do not hard-code Open Design app/source/mode constants in sidecar or platform.

    line 26
  5. Very specific:

    Keep stamp fields limited to five: app, mode, namespace, ipc, and source.

    line 27

≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

packages/AGENTS.md

Follow the root AGENTS.md first. This file only records module-level boundaries for packages/.

Package responsibilities

  • packages/contracts: web/daemon app contract layer. Keep it pure TypeScript; it must not depend on Next.js, Express, Node filesystem/process APIs, browser APIs, SQLite, daemon internals, or the sidecar control-plane protocol.
  • packages/components: shared React UI primitives and primitive CSS. It may depend on React types/runtime only; keep product workflows and app-specific layout/styling in the apps.
  • packages/host: web/desktop host bridge contract. It models renderer-facing host capabilities and helpers while keeping window.__od__ access out of app UI code.
  • packages/metatool: internal metadata helpers for repo-local tool build outputs. Keep reusable hash/check/write mechanics here; each concrete tool owns its own meta.json.
  • packages/release: pure release-domain primitives. Owns release channel names, version parsing/formatting, metadata field derivation, storage prefixes, release namespaces, and app identity data. It must not read/write files, call GitHub/R2, spawn build tools, or own workflow execution.
  • packages/sidecar-proto: Open Design sidecar business protocol. Owns app/mode/source constants, namespace validation, stamp descriptor/fields/flags, IPC message schema, status shapes, error semantics, and default product path constants.
  • packages/sidecar: generic sidecar runtime primitives. Includes bootstrap, IPC transport, path/runtime resolution, launch env, and JSON runtime file helpers; it must not hard-code Open Design app keys or IPC business messages.
  • packages/platform: generic OS process primitives. Includes stamp serialization, command parsing, process matching/search, and well-known user-toolchain bin discovery; it must consume the sidecar-proto descriptor and must not hard-code --od-stamp-* details. The toolchain helper is the single source of truth shared by the daemon agent resolver (apps/daemon/src/agents.ts) and the packaged sidecar PATH builder (apps/packaged/src/sidecars.ts) so neither layer can drift the search list.

Removed directories

  • packages/shared has been removed; do not restore it.
  • For new shared types, choose the boundary first: web/daemon app DTOs go in contracts; sidecar control-plane protocol goes in sidecar-proto; generic runtime code goes in sidecar; generic OS/process code goes in platform.

Boundary checklist

  • Package tests live in each package's tests/ directory, sibling to src/; keep src/ source-only and do not add new *.test.ts or *.test.tsx files under src/.
  • Do not move runtime validation/schema enforcement into contracts prematurely; current contracts define the typed target shape only.
  • Do not let app packages depend directly on sidecar control-plane details.
  • Do not hard-code Open Design app/source/mode constants in sidecar or platform.
  • Keep stamp fields limited to five: app, mode, namespace, ipc, and source.

Common package commands

pnpm --filter @open-design/contracts typecheck
pnpm --filter @open-design/host typecheck
pnpm --filter @open-design/host test
pnpm --filter @open-design/metatool typecheck
pnpm --filter @open-design/metatool test
pnpm --filter @open-design/release typecheck
pnpm --filter @open-design/release test
pnpm --filter @open-design/sidecar-proto typecheck
pnpm --filter @open-design/sidecar-proto test
pnpm --filter @open-design/sidecar typecheck
pnpm --filter @open-design/sidecar test
pnpm --filter @open-design/platform typecheck
pnpm --filter @open-design/platform test

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.