docs/specs/20260709-125531-agent-feature.mdadded---
spec: agent-feature
status: ready
owner: feature-pipeline-agent
related-routes:
files:
- routes
- controller
- validator
- service
- routes
- controller
- service
- routes
- controller
- service
---
# agent-feature
## Goal
Add three read/create REST endpoints in API2 for the existing xyz.Asset
table: POST create, GET single, and GET list (cursor-paginated), all
scoped under /api/v2/projects/:projectId/assets and gated on project
membership. No new tables are introduced — Asset already exists in the
schema. Work is API2 + Postgres (new procs/functions only).
## Behavior changes
- POST /api/v2/projects/{projectId}/assets
- GET /api/v2/projects/{projectId}/assets/{assetId}
- GET /api/v2/projects/{projectId}/assets
## Acceptance criteria
- [ ] The behavior described above is implemented on the listed files.
- [ ] Existing behavior is unchanged when the new feature is not exercised.
- [ ] Unit and (where observable) e2e tests cover the new behavior.
## Out of scope
- Update (PUT/PATCH) and Delete (DELETE) asset endpoints.
- Role-differentiated permissions — all project members have equal access in v1.
- Cross-project asset queries.
- Any changes to the xyz.Asset table schema (columns/constraints) — the table already exists and is used as-is.
- AssetType creation/management endpoints (assetTypeId is expected to already exist).
## Notes / open questions
- Generated by the feature pipeline from the approved architect plan. If any
acceptance criterion is ambiguous, ask the human before implementing.