Projects keep teams of members in their settings (settings.teams; people outside the project are dropped, teams are archived, not removed; absent when saving means unchanged). Tickets go to a team (`team`, also filtered in the list and in MCP search_issues), and a comment mentioning @[Frontend](team-FRONT) tells each of its members. Settings has the teams with their members, the ticket a «Equipo» select, the list a team filter, and «@» offers the teams after the people. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
api-tracker-domain
El modelo del producto: proyectos, tickets, comentarios y releases.
- Import:
@task-stream/api/tracker/domain - Capa:
domain· Tags:scope:api-tracker,type:domain
Contenido
- Agregados event-sourced:
Project,Issue,Comment,Release. Validan en sus métodos y cambian de estado enon<Evento>. events/: un fichero por evento (IssueCreatedEvent,IssueStatusChangedEvent…), todos con@AutowiredEvent.- Proyectos públicos (
Project.isPublic) y borrado:Project.delete(propietario, confirmando la clave),Issue.delete,Release.delete(los usa la cascada);SYSTEM_ACTOR_IDpara cambios que no hace una persona. factories/:ProjectFactory,IssueFactory,CommentFactory,ReleaseFactory(@Injectable()).project/project-settings.ts: configuración por proyecto (estados con categoría, transiciones, tipos, áreas), sus valores por defecto,ProjectWorkflow(lo que consultan tickets y queries) yvalidateProjectSettings(archivar, nunca borrar).read-models/: forma de las vistas de lectura (ProjectReadModel,IssueReadModel…), incluida la línea temporal de los tickets y las estadísticas (analytics.read-model.ts).
Reglas y workflow: API.
Comandos
npx nx lint api-tracker-domain
npx nx test api-tracker-domain # Jest
Reglas de dependencia entre capas: Arquitectura.