원클릭으로
pr-reviewer
PR review checklist for SourceBase. Use when reviewing pull requests to verify architecture, conventions, tests, and code quality.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
PR review checklist for SourceBase. Use when reviewing pull requests to verify architecture, conventions, tests, and code quality.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Windows WPF tray-app architecture and conventions for SourceBase.Desktop (Jupiter). Use when writing or reviewing tray icon wiring, overlay windows, schedulers, settings persistence, or API sync code in SourceBase.Desktop.
Frontend Blazor components, Tailwind CSS layout patterns, and mobile-responsive design for SourceBase. Use when writing or reviewing Blazor components, UI layout, or responsive behavior — especially for mobile S (320px) viewports.
Backend architecture, API endpoints, handlers, entities, and conventions for SourceBase. Use when writing or reviewing API features, handlers, entities, validators, or infrastructure.
Integration test patterns and infrastructure for SourceBase. Use when writing, reviewing, or fixing tests.
| name | pr-reviewer |
| description | PR review checklist for SourceBase. Use when reviewing pull requests to verify architecture, conventions, tests, and code quality. |
| trigger | /pr-reviewer |
Review pull requests against SourceBase's architecture and conventions.
Start with the global /review skill for diff analysis, then apply the checklist below for project-specific concerns.
SourceBase.Application/Features/ as a single file (request, response, endpoint, handler, validator)IEndpoint / IRequestHandler<TRequest, TResponse>Api → Application ← Infrastructure ← DomainSourceBase.Application/Shared/Interfaces/; implementations in SourceBase.Infrastructure/Implementations/AppSettings.cs and appsettings.jsonMapEndpoint chain uses separate lines (.MapXxx, then auth, then .WithTags)PATCH (not PUT) with partial semantics — MapPatch, not MapPutId is a route param marked [property: SwaggerIgnore] on the request recordRequireAuthorization() present, or .AllowAnonymous() intentionalPagingRequest base + feature-specific OrderBy enum + .PaginateAsync()BaseAuditableEntity; audit fields (CreatedOn/By, UpdatedOn/By) never set manuallyEnumToStringConverterNotFoundException, BadRequestException, etc.) — no raw status codesPATCH (not PUT)entity.Field = request.Field ?? entity.Field (null-coalescing), not if-guards.When(x => x.Field is not null)MustAsync, not in the handlerSourceBase.Tests/Features/ path{FEATURE}-{ACTION}-{NNN} format in DisplayNameMethodName_WithCondition_ReturnsExpectedCreateTodoEndpoint.Route (strong-typed) — no hardcoded URL stringsGetLatestEmailCodeAsync — no manually generated tokensWithDbContextAsync only used when asserting on a DB field not returned by the APIAction-returning or Func<Task>-returning methods