[Governance] Enforce task-owned branches and pull requests#135
Open
web2solutions wants to merge 4 commits into
Open
[Governance] Enforce task-owned branches and pull requests#135web2solutions wants to merge 4 commits into
web2solutions wants to merge 4 commits into
Conversation
…ecks (#60) ## Summary - split Organization operations into dedicated `OrganizationController` - updated REST and Realtime controller resolution for `/organizations` - added requirement `045-data-entity-controller-ownership` and updated README/agents with PCI-focused positioning - fixed OAS route-resolution CI checker to map organizations to `OrganizationController` - fixed organization mutation handler typing across framework adapters and AWS Lambda runtime wiring ## Validation - `npm run test:unit` - `npm run oas:check-routes` - `npm run build:dev` - pre-push strict gate passed (`ci:gate:strict`, `coverage:patch`)
…gress (#112) ## Summary - advances JumentiX monorepo migration execution across Wave 3, Wave 4, and Wave 5 preparation - adds migration inventory + rollback governance and syncs requirements/todos/docs - hardens CLI package with non-interactive flags and help flow- evolves workspace package layout and compatibility bridges - fixes lint/build/unit gate blockers to keep local CI flow green under Node 22 ## Project Tracking - Related issues: #106, #107, #95, #90, #91 - Project: Jumentix (https://github.com/users/web2solutions/projects/1) - Status updates applied in project: #106 and #107 moved to In review ## Acceptance Criteria - [x] lint passes - [x] unit tests pass with configured strict coverage threshold - [x] build:dev passes - [x] docs + agents synced with delivered scope ## Validation Evidence - > aaa-typescript-boilerplate@0.0.2 lint > eslint . --ext .ts > aaa-typescript-boilerplate@0.0.2 test:unit > NODE_ENV=dev jest ./test/unit --runInBand ------------------------------------------------------------------------|---------|----------|---------|---------|------------------------------------------ File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s ------------------------------------------------------------------------|---------|----------|---------|---------|------------------------------------------ All files | 99.56 | 91.69 | 99.23 | 99.71 | sdk-clients/grpc | 100 | 100 | 100 | 100 | GrpcApiClient.ts | 100 | 100 | 100 | 100 | seed | 100 | 100 | 100 | 100 | organizations.ts | 100 | 100 | 100 | 100 | users.ts | 100 | 100 | 100 | 100 | src/config | 100 | 90 | 100 | 100 | constants.ts | 100 | 100 | 100 | 100 | jwt.ts | 100 | 100 | 100 | 100 | security.ts | 100 | 90 | 100 | 100 | 2 src/infra/audit | 100 | 100 | 100 | 100 | InMemorySecurityAuditRepository.ts | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | src/infra/context | 100 | 100 | 100 | 100 | Context.ts | 100 | 100 | 100 | 100 | src/infra/events | 100 | 100 | 100 | 100 | InMemoryEventBus.ts | 100 | 100 | 100 | 100 | src/infra/exceptions | 100 | 100 | 100 | 100 | BaseError.ts | 100 | 100 | 100 | 100 | ComposeEventError.ts | 100 | 100 | 100 | 100 | ConflictError.ts | 100 | 100 | 100 | 100 | DataBaseNotFoundError.ts | 100 | 100 | 100 | 100 | DatabasePagingError.ts | 100 | 100 | 100 | 100 | DomainNotFoundError.ts | 100 | 100 | 100 | 100 | DomainValidationError.ts | 100 | 100 | 100 | 100 | ForbiddenError.ts | 100 | 100 | 100 | 100 | InternalServerError.ts | 100 | 100 | 100 | 100 | NotFoundError.ts | 100 | 100 | 100 | 100 | NotImplemented.ts | 100 | 100 | 100 | 100 | ResourceLockedError.ts | 100 | 100 | 100 | 100 | UnauthorizedError.ts | 100 | 100 | 100 | 100 | ValidationError.ts | 100 | 100 | 100 | 100 | error.codes.ts | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | src/infra/jwt | 100 | 80 | 100 | 100 | JwtService.ts | 100 | 80 | 100 | 100 | 54 src/infra/messages | 100 | 100 | 100 | 100 | InMemoryMessageMediator.ts | 100 | 100 | 100 | 100 | compileMessageMediator.ts | 100 | 100 | 100 | 100 | src/infra/messages/adapters | 100 | 100 | 100 | 100 | BullMqMessageMediatorAdapter.ts | 100 | 100 | 100 | 100 | InMemoryMessageMediatorAdapter.ts | 100 | 100 | 100 | 100 | RabbitMqMessageMediatorAdapter.ts | 100 | 100 | 100 | 100 | src/infra/messages/repositories | 100 | 100 | 100 | 100 | QueueRequestResponseRepository.ts | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | src/infra/mutex/adapter | 100 | 100 | 100 | 100 | MutexService.ts | 100 | 100 | 100 | 100 | src/infra/persistence | 100 | 100 | 100 | 100 | compileDatabaseClient.ts | 100 | 100 | 100 | 100 | src/infra/persistence/InMemoryDatabase | 100 | 100 | 100 | 100 | InMemoryDbClient.ts | 100 | 100 | 100 | 100 | src/infra/persistence/InMemoryDatabase/Stores | 97.19 | 90.24 | 100 | 98.95 | InMemoryRelationalStore.ts | 97.08 | 90.24 | 100 | 98.91 | 47 OrganizationStoreAPI.ts | 100 | 100 | 100 | 100 | UserStoreAPI.ts | 100 | 100 | 100 | 100 | src/infra/persistence/KeyValueStorage | 100 | 100 | 100 | 100 | BaseKeyValueStorageClient.ts | 100 | 100 | 100 | 100 | InMemoryKeyValueStorageClient.ts | 100 | 100 | 100 | 100 | compileKeyValueStorageClient.ts | 100 | 100 | 100 | 100 | src/infra/persistence/external | 100 | 100 | 100 | 100 | BaseExternalDataRepository.ts | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | src/infra/security | 100 | 100 | 100 | 100 | PasswordCryptoService.ts | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | src/interface/Async | 97.56 | 85.52 | 100 | 98.31 | RealtimeAPIBase.ts | 97.52 | 85.52 | 100 | 98.29 | 379,408 RealtimeDomainEvent.ts | 100 | 100 | 100 | 100 | src/interface/CLI | 100 | 75 | 100 | 100 | index.ts | 100 | 75 | 100 | 100 | 28 src/interface/CLI/core | 100 | 100 | 100 | 100 | catalogStorage.ts | 100 | 100 | 100 | 100 | prompt.ts | 100 | 100 | 100 | 100 | src/interface/CLI/subapps | 99.41 | 85.44 | 100 | 99.39 | domainManager.ts | 100 | 91.04 | 100 | 100 | 13-14,110-113 entityModelManager.ts | 99.18 | 82.87 | 100 | 99.16 | 238,333 src/interface/HTTP/ports | 100 | 100 | 100 | 100 | BaseController.ts | 100 | 100 | 100 | 100 | src/interface/HTTP/validators | 98.96 | 96.22 | 100 | 98.83 | checkRequiredProperties.ts | 100 | 100 | 100 | 100 | getSchema.ts | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | isPropertiesMatching.ts | 100 | 100 | 100 | 100 | throwIfOASInputValidationFails.ts | 100 | 100 | 100 | 100 | validateRequestAgainstOAS.ts | 100 | 83.33 | 100 | 100 | 19 validateRequestParams.ts | 96.15 | 95.45 | 100 | 96 | 39 src/interface/WebSocket | 100 | 100 | 100 | 100 | WebSocketAPI.ts | 100 | 100 | 100 | 100 | src/interface/WebSocket/adapters | 100 | 100 | 100 | 100 | start-websocket-api.ts | 100 | 100 | 100 | 100 | src/interface/WebSocket/adapters/socket-io | 100 | 76.66 | 100 | 100 | clusterAdapter.ts | 100 | 71.42 | 100 | 100 | 12-16 redisStreamsAdapter.ts | 100 | 66.66 | 100 | 100 | 11-15,20-22 socket-io.ts | 100 | 100 | 100 | 100 | src/interface/gRPC | 100 | 93.54 | 100 | 100 | gRPCAPI.ts | 100 | 93.54 | 100 | 100 | 84-85 src/interface/gRPC/adapters | 100 | 100 | 100 | 100 | start-grpc-api.ts | 100 | 100 | 100 | 100 | src/interface/gRPC/adapters/grpc | 100 | 100 | 100 | 100 | grpc.ts | 100 | 100 | 100 | 100 | src/interface/runtime | 100 | 100 | 100 | 100 | RuntimeEnvironment.ts | 100 | 100 | 100 | 100 | src/modules/Users | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | src/modules/Users/adapters/in/http/controllers | 100 | 96.36 | 100 | 100 | AuthController.ts | 100 | 100 | 100 | 100 | OrganizationController.ts | 100 | 100 | 100 | 100 | UserController.ts | 100 | 93.75 | 100 | 100 | 45,59 src/modules/Users/adapters/out/persistence | 100 | 50 | 100 | 100 | OrganizationDataRepository.ts | 100 | 50 | 100 | 100 | 73-75 UserDataRepository.ts | 100 | 50 | 100 | 100 | 91-93 src/modules/Users/application | 96.42 | 75 | 100 | 96.42 | AuthUseCases.ts | 94.73 | 75 | 100 | 94.73 | 65,91 UserUseCases.ts | 100 | 100 | 100 | 100 | src/modules/Users/application/use-cases | 100 | 100 | 100 | 100 | AuthUseCases.ts | 100 | 100 | 100 | 100 | OrganizationUseCases.ts | 100 | 100 | 100 | 100 | UserUseCases.ts | 100 | 100 | 100 | 100 | src/modules/Users/composition | 100 | 100 | 100 | 100 | composeUsersAuthServices.ts | 100 | 100 | 100 | 100 | src/modules/Users/domain/Model | 98.84 | 97.5 | 100 | 98.72 | Organization.ts | 100 | 90.9 | 100 | 100 | 116 User.ts | 98.05 | 100 | 100 | 97.87 | 291,322,353 src/modules/Users/domain/security | 100 | 85.71 | 100 | 100 | Rbac.ts | 100 | 85.71 | 100 | 100 | 58,66 src/modules/Users/events | 100 | 100 | 100 | 100 | LoginRequestEvent.ts | 100 | 100 | 100 | 100 | LogoutRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationAddressCreateRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationAddressDeleteRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationAddressUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationCreateRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationDeleteRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationEmailCreateRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationEmailDeleteRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationEmailUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationGetAllRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationGetOneRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationPhoneCreateRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationPhoneDeleteRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationPhoneUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | OrganizationUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | RegisterRequestEvent.ts | 100 | 100 | 100 | 100 | UpdatePasswordRequestEvent.ts | 100 | 100 | 100 | 100 | UserCreateRequestEvent.ts | 100 | 100 | 100 | 100 | UserDeleteRequestEvent.ts | 100 | 100 | 100 | 100 | UserDocumentCreateRequestEvent.ts | 100 | 100 | 100 | 100 | UserDocumentDeleteRequestEvent.ts | 100 | 100 | 100 | 100 | UserDocumentUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | UserEmailCreateRequestEvent.ts | 100 | 100 | 100 | 100 | UserEmailDeleteRequestEvent.ts | 100 | 100 | 100 | 100 | UserEmailUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | UserGetAllRequestEvent.ts | 100 | 100 | 100 | 100 | UserGetOneRequestEvent.ts | 100 | 100 | 100 | 100 | UserPasswordUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | UserPhoneCreateRequestEvent.ts | 100 | 100 | 100 | 100 | UserPhoneDeleteRequestEvent.ts | 100 | 100 | 100 | 100 | UserPhoneUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | UserUpdateRequestEvent.ts | 100 | 100 | 100 | 100 | src/modules/Users/events/contracts | 100 | 100 | 100 | 100 | UserIntegrationEventName.ts | 100 | 100 | 100 | 100 | UserMessageContracts.ts | 100 | 100 | 100 | 100 | src/modules/Users/events/listeners | 100 | 100 | 100 | 100 | registerUserEventListeners.ts | 100 | 100 | 100 | 100 | registerUserMessageHandlers.ts | 100 | 100 | 100 | 100 | src/modules/Users/features | 100 | 100 | 100 | 100 | createDocument.ts | 100 | 100 | 100 | 100 | createEmail.ts | 100 | 100 | 100 | 100 | createPhone.ts | 100 | 100 | 100 | 100 | createUser.ts | 100 | 100 | 100 | 100 | deleteDocument.ts | 100 | 100 | 100 | 100 | deleteEmail.ts | 100 | 100 | 100 | 100 | deletePhone.ts | 100 | 100 | 100 | 100 | deleteUserById.ts | 100 | 100 | 100 | 100 | getAllUsers.ts | 100 | 100 | 100 | 100 | getUserById.ts | 100 | 100 | 100 | 100 | updateDocument.ts | 100 | 100 | 100 | 100 | updateEmail.ts | 100 | 100 | 100 | 100 | updatePassword.ts | 100 | 100 | 100 | 100 | updatePhone.ts | 100 | 100 | 100 | 100 | updateUser.ts | 100 | 100 | 100 | 100 | src/modules/Users/interface/websocketapi/frameworks/socket-io/handlers | 100 | 100 | 100 | 100 | _createWebSocketOperationHandler.ts | 100 | 100 | 100 | 100 | login.ts | 100 | 100 | 100 | 100 | src/modules/Users/service | 100 | 90.66 | 93.02 | 100 | AuthService.ts | 100 | 90.81 | 84.21 | 100 | 69-77,159,281-282,302,355,419 OrganizationService.ts | 100 | 100 | 100 | 100 | UserProviderLocal.ts | 100 | 100 | 100 | 100 | UserService.ts | 100 | 90 | 100 | 100 | 111-112,187,215,237 src/modules/Users/service/ports | 100 | 100 | 100 | 100 | EAuthSchemaType.ts | 100 | 100 | 100 | 100 | src/modules/ddd/valueObjects | 100 | 100 | 100 | 100 | AddressValueObject.ts | 100 | 100 | 100 | 100 | DocumentValueObject.ts | 100 | 100 | 100 | 100 | EAddressType.ts | 100 | 100 | 100 | 100 | EDocumentType.ts | 100 | 100 | 100 | 100 | EEmailType.ts | 100 | 100 | 100 | 100 | EmailValueObject.ts | 100 | 100 | 100 | 100 | PhoneValueObject.ts | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | src/modules/port | 100 | 100 | 100 | 100 | BaseDomainEvent.ts | 100 | 100 | 100 | 100 | BaseModel.ts | 100 | 100 | 100 | 100 | BaseRepo.ts | 100 | 100 | 100 | 100 | BaseService.ts | 100 | 100 | 100 | 100 | ServiceResponse.ts | 100 | 100 | 100 | 100 | UUID.ts | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | operators.ts | 100 | 100 | 100 | 100 | relations.ts | 100 | 100 | 100 | 100 | setFilter.ts | 100 | 100 | 100 | 100 | setFilterAndPaging.ts | 100 | 100 | 100 | 100 | setPaging.ts | 100 | 100 | 100 | 100 | src/shared | 100 | 96.66 | 100 | 100 | utils.ts | 100 | 96.66 | 100 | 100 | 57 src/shared/decorators/guard | 100 | 100 | 100 | 100 | Authorize.ts | 100 | 100 | 100 | 100 | src/shared/openapi | 98.52 | 94.14 | 100 | 100 | OpenApi31DataEntity.ts | 98.52 | 94.14 | 100 | 100 | 70-82,89,114,137,157,218,379,436,449,477 src/shared/validators | 100 | 100 | 100 | 100 | index.ts | 100 | 100 | 100 | 100 | ------------------------------------------------------------------------|---------|----------|---------|---------|------------------------------------------ > aaa-typescript-boilerplate@0.0.2 build:dev > NODE_ENV=dev tsc
…#132) ## Summary - reorganize Jumentix docs by audience (consumers vs creators) - keep internal planning/migration/governance docs out of consumer-facing website content - add PT-BR documentation corpus across software docs (excluding .agents and .github) - add and update tooling scripts for PT-BR documentation generation and link handling - update website content source mapping to consumer-focused docs only ## Governance - requirement 076 updated to enforce no PT-BR mirroring for .agents/.github - technical docs hub split by audience and linked from root README ## Validation - pre-commit hooks passed (changelog update, lint, unit tests) - unit tests: 86/86 suites passed locally
Owner
Author
|
Full-matrix audit after the requirement expansion: failed closed.
The requirement amendment is prepared locally but is not committed or pushed because commits and pushes now require a green full matrix. This PR remains blocked; the earlier strict gate result is not sufficient full-matrix evidence and must not be treated as green. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds requirement 077 and makes one task per branch and pull request a mandatory delivery rule. Branch names and PR titles now identify the change nature, and Gate 5 blocks non-compliant delivery.
Closes #133
Project Tracking
Task Isolation and Naming
codex/governance/133-task-branch-pr-naminggovernance[Governance]Traceability
d842b945bed2f0fd3828f753b634f87d897e4efeChanges
.agents/requirements/077-task-owned-branch-and-pr-naming-governance.md.Validation Evidence
git diff --checkpnpm run lintRisk and Rollback
d842b94; no runtime or data migration is involved.