Skip to main content

Monorepo Map

Seven packages, one rule: find the owner before you change anything. Each package has its own page with a map of its src folders, its commands, and the conventions that actually bite.

The packages​

PackageWhat it ownsRuns asStart here when you change
contractsThe Solidity protocol: garden accounts, authorization, attestation schemas and resolvers, deployment artifactsArbitrum One and the other recorded networksProtocol behavior, authorization, attestation schemas, deployments
indexerEnvio handlers that project contract events into GraphQL read modelsEnvio's hosted serviceEvent-derived read models or GraphQL shapes
sharedCross-app hooks, providers, stores, protocol modules, domain types, translations, UI foundationsInside every app bundleA hook, provider, store, shared UI primitive, or translation
agentMessaging bots and the public HTTP APIA hosted serviceBots, webhooks, or the public HTTP API
qaThe team's two-writer QA checklist appqa.greengoods.appThe QA checklist app
adminThe steward cockpitadmin.greengoods.appThe steward cockpit
clientThe public website and the installed, offline-first PWAgreengoods.appThe public website or the installed PWA

Dependencies point one way: contracts → indexer → shared → client / admin / agent. Contracts emit the events the indexer projects into read models, shared wraps both for the apps, and nothing points back. The agent is the one exception on the read side: its reporting services (packages/agent/src/services/reporting/) query the indexer directly rather than through shared, which is why the Architecture diagram draws indexer → agent. That is the data flow; in package terms the indexer imports nothing, and shared's indexer types are generated from the indexer's schema. If your change crosses that arrow, validate from the repo root rather than inside one package.

Generated references​

  • API Index: every declared package export, and every public route the agent registers with its methods, generated from the code.
  • Command inventory: every repository command, root first, generated from the package manifests.
  • Contract operations: every deploy, upgrade, and verification command, grouped by task.

Next steps​