Files
agentic-dev/packages/workspaces/AGENTS.md
Danijel Martinek 6216897680 feat(workspaces): scaffold feature
Scaffold the workspaces feature package via pnpm turbo gen feature
(single Workspace entity, getWorkspace use case) and hand-wire the
aggregators: bindAll dispatcher (web-next), core-api app router, and
workspace deps. Release-please registration reverted per the root-only
versioning policy (AGENTS.md, ADR-027 retrofit). Pinned @trpc/server
to the repo-wide 11.16.0 resolution so instanceof TRPCError checks
share one module instance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
2026-07-12 22:35:55 +02:00

4.1 KiB

AGENTS.md — workspaces

Feature package scaffolded by turbo gen feature. Provides domain logic, repositories, use cases, controllers and the tRPC router for Workspace.

Overview

@repo/workspaces owns: the Workspace domain model, feature-scoped errors, the IWorkspaceRepository interface, one use case (getWorkspaceUseCase), one controller, a real Payload-backed repository (stub body — fill in once the Payload collection is added), an in-memory mock repository, and the tRPC workspacesRouter.

Layer responsibilities

Layer Key files
entities/models workspace.tsWorkspace Zod schema + type
entities/errors workspace.ts (WorkspaceNotFoundError), common.ts (InputParseError)
application/use-cases get-workspace.use-case.ts — factory function + exported schemas
application/repositories workspace.repository.interface.tsIWorkspaceRepository
infrastructure/repositories workspace.repository.ts (real Payload-backed; stub body), workspace.repository.mock.ts (in-memory)
interface-adapters/controllers get-workspace.controller.ts — one file per use case
di symbols.ts, module.ts, container.ts, bind-production.ts, bind-dev-seed.ts
integrations/api procedures.ts (workspacesProcedure), router.ts (workspacesRouter)

Public exports

Subpath Contents
. Workspace type; WorkspaceNotFoundError, InputParseError; getWorkspaceInputSchema, getWorkspaceOutputSchema, GetWorkspaceInput, GetWorkspaceOutput, IGetWorkspaceUseCase; IGetWorkspaceController type alias; WorkspacesRouter type
./api workspacesRouter (tRPC router)
./di/bind-production bindProductionWorkspaces(config, tracer, logger)
./di/bind-dev-seed bindDevSeedWorkspaces(tracer, logger)
./ui (reserved — empty barrel)

Tests

pnpm test --filter @repo/workspaces

What it must NOT import

  • Any other feature package
  • Any app package
  • @repo/core-api, @repo/core-cms, @repo/core-trpc, @repo/core-ui directly; only @repo/core-shared