Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
25f42a4
Create pull_request_template.md
hdg0116 May 21, 2026
5824389
Create pr-labeler.yml
hdg0116 May 21, 2026
7307680
Create automatic-assign-reviewers.yml
hdg0116 May 21, 2026
ac1ef81
Add CI workflow for quality checks
hdg0116 May 21, 2026
810fe23
Update package.json
hdg0116 May 21, 2026
4b35aca
fix: apply prettier format
hdg0116 May 21, 2026
cb5bbc1
Create labeler.yml
hdg0116 May 21, 2026
6991c40
init: 폴더 구조 세팅
hdg0116 May 28, 2026
6691eee
chore: 배포 관련 파일 추가
joeun-01 Jun 2, 2026
471fdd9
chore: Github Actions 무한 대기 문제 해결
joeun-01 Jun 2, 2026
b61dec4
Setting: 폴더 구조 확정 (#3)
hdg0116 Jun 3, 2026
e125706
fix: format 적용 (#3)
hdg0116 Jun 3, 2026
45dd044
Merge pull request #4 from Room-In-Us/setting/3-foider-structure
hdg0116 Jun 3, 2026
b0ffbf3
Setting: 프로젝트 에이전트 컨벤션 세팅 (#5)
hdg0116 Jul 30, 2026
3366747
Setting: CI 워크플로우 경량화 (#5)
hdg0116 Jul 30, 2026
2ab0204
Setting: 브랜치명 이슈 번호 표기 규칙 변경 (#5)
hdg0116 Jul 30, 2026
a27355b
Style: 에이전트 문서 포맷 정리 (#5)
hdg0116 Jul 30, 2026
ae135cc
Setting: CI 및 에이전트 스킬 기준 정리 (#5)
hdg0116 Aug 4, 2026
dae75c5
Docs: 브랜치 네이밍 규칙 명확화 (#5)
hdg0116 Aug 4, 2026
2089a2d
Setting: 코드래빗 리뷰 기준 추가 (#5)
hdg0116 Aug 4, 2026
1fb0584
Setting: 리뷰 지적사항 반영 (#5)
hdg0116 Aug 4, 2026
b007052
Docs: 컨벤션 기준 중복 제거 (#5)
hdg0116 Aug 4, 2026
4ce727e
Docs: 패키지 매니저 기준 명시 (#5)
hdg0116 Aug 4, 2026
44fef36
Merge pull request #6 from Room-In-Us/setting/#5-ci-workflow
hdg0116 Aug 4, 2026
618bc4e
Setting: 디자인 토큰 및 전역 폰트 설정 (#7)
hdg0116 Aug 6, 2026
3309fb6
Docs: 이슈 워크플로우 템플릿 규칙 수정 (#7)
hdg0116 Aug 6, 2026
22676fd
Fix: pnpm format 적용 (#7)
hdg0116 Aug 6, 2026
df60a65
Setting: 라벨러 규칙 정리 (#7)
hdg0116 Aug 12, 2026
2556501
Setting: 리뷰 지적사항 반영 (#7)
hdg0116 Aug 12, 2026
a4d9341
Setting: 라벨러 워크플로 보안 강화 (#7)
hdg0116 Aug 12, 2026
4957046
Setting: 라벨러 액션 고정 (#7)
hdg0116 Aug 12, 2026
558d1fe
Merge pull request #8 from Room-In-Us/setting/7-design-tokens-workflow
hdg0116 Aug 12, 2026
8930bc5
Setting: 공통 에셋 생성 환경 추가 (#9)
hdg0116 Aug 13, 2026
642439d
Setting: 디자인 토큰 기반 정리 (#9)
hdg0116 Aug 13, 2026
f7a75ef
Feat: 공통 UI 컴포넌트 구현 (#9)
hdg0116 Aug 13, 2026
01d2dc1
Style: 공통 UI 포맷 정리 (#9)
hdg0116 Aug 13, 2026
39852e0
Fix: 공통 UI 접근성 보완 (#9)
hdg0116 Aug 13, 2026
2bd501f
Fix: 공통 UI 키보드 동작 보완 (#9)
hdg0116 Aug 13, 2026
84b86b7
Fix: 공통 UI 선택 상태 정규화 (#9)
hdg0116 Aug 13, 2026
95eda77
Merge pull request #10 from Room-In-Us/feature/9-admin-common-ui
hdg0116 Aug 13, 2026
916fa5b
Feat: 어드민 로그인 화면 구현 (#11)
hdg0116 Aug 14, 2026
25d1042
Remove: 미사용 프리뷰 파일 제거 (#11)
hdg0116 Aug 14, 2026
1753428
Docs: 앱 구조 진화 스킬 추가 (#11)
hdg0116 Aug 14, 2026
e686981
Style: 로그인 화면 포맷 정리 (#11)
hdg0116 Aug 14, 2026
4a4824f
Fix: 리뷰 피드백 반영 (#11)
hdg0116 Aug 14, 2026
853d12f
Fix: 로그인 버튼 하이드레이션 오류 수정 (#11)
hdg0116 Aug 14, 2026
3a997c1
Merge pull request #12 from Room-In-Us/feature/11-admin-login
hdg0116 Aug 14, 2026
03e78ca
Fix: 한글 문구 복구 (#13)
hdg0116 Aug 19, 2026
25d5a18
Feat: 대시보드 레이아웃 구현 (#13)
hdg0116 Aug 19, 2026
971cc3b
Feat: 매장 관리 UI 구현 (#13)
hdg0116 Aug 19, 2026
8954ac0
Style: 포맷 체크 오류 수정 (#13)
hdg0116 Aug 19, 2026
feec0a8
Fix: 대시보드 리뷰 코멘트 반영 (#13)
hdg0116 Aug 19, 2026
0ea17e4
Refactor: 매장 관리 클라이언트 경계 분리 (#13)
hdg0116 Aug 19, 2026
5104bbd
Merge pull request #14 from Room-In-Us/feature/13-dashboard-store-man…
hdg0116 Aug 19, 2026
4c8a90b
Refactor: 매장관리 구조 및 경계 분리 (#15)
hdg0116 Aug 20, 2026
dedc2a0
Docs: 컴포넌트 경계 규칙 문서화 (#15)
hdg0116 Aug 20, 2026
a91fc53
Fix: prettier format 적용 (#15)
hdg0116 Aug 20, 2026
4faca1f
Feat: 매장 수정 모달 추가 (#15)
hdg0116 Aug 20, 2026
aa00c5e
Fix: 매장 수정 버튼 활성 상태 표시 (#15)
hdg0116 Aug 20, 2026
53098e7
Fix: 매장 수정 버튼 스타일 복구 (#15)
hdg0116 Aug 20, 2026
a1d4fe3
Fix: 매장 작업 삭제 버튼 비활성 제거 (#15)
hdg0116 Aug 20, 2026
9b26976
Merge pull request #16 from Room-In-Us/refactor/15-store-management-b…
hdg0116 Aug 20, 2026
ed1a80f
Feat: 테마관리 페이지 추가 (#15)
hdg0116 Aug 21, 2026
0628995
Refactor: 공용 모달 레이아웃 분리 (#17)
hdg0116 Aug 21, 2026
fedf0eb
Feat: 히스토리 관리 화면 구현 (#17)
hdg0116 Aug 21, 2026
98d4859
Feat: 후기 관리 화면 구현 (#17)
hdg0116 Aug 21, 2026
17a33b8
Chore: 아이콘 자산 갱신 (#17)
hdg0116 Aug 21, 2026
75651e2
Style: 히스토리 테이블 포맷 정리 (#17)
hdg0116 Aug 21, 2026
3c3ca98
Fix: 리뷰 코멘트 반영 (#17)
hdg0116 Aug 21, 2026
aa858a1
Merge pull request #18 from Room-In-Us/feature/17-history-review-mana…
hdg0116 Aug 21, 2026
6ab44bb
Setting: 관리자 API 타입 생성 설정 (#19)
hdg0116 Aug 27, 2026
ffbb513
Feat: 관리자 API 공통 클라이언트 추가 (#19)
hdg0116 Aug 27, 2026
2ecb8af
Style: 관리자 API 파일 포맷 정리 (#19)
hdg0116 Aug 27, 2026
4c72510
Fix: 관리자 API 클라이언트 리뷰 반영 (#19)
hdg0116 Aug 27, 2026
d624b56
Merge pull request #20 from Room-In-Us/setting/19-admin-api-setup
hdg0116 Aug 27, 2026
6ab9604
Setting: Query Provider 공통 설정 (#21)
hdg0116 Aug 27, 2026
e17d4ad
Setting: 앱에 Query Provider 연결 (#21)
hdg0116 Aug 27, 2026
076082c
Merge pull request #22 from Room-In-Us/setting/21-query-provider-setup
hdg0116 Aug 27, 2026
98f2fe1
Feat: Auth BFF 공통 유틸 추가 (#23)
hdg0116 Aug 27, 2026
2e5f028
Feat: Auth BFF 라우트 핸들러 추가 (#23)
hdg0116 Aug 27, 2026
f40574e
Merge pull request #24 from Room-In-Us/feature/23-auth-bff-route-hand…
hdg0116 Aug 27, 2026
57465fc
Fix: 로그인 요청 본문 검증 추가 (#23)
hdg0116 Aug 27, 2026
14a7850
Fix: 인증 요청 리다이렉트 차단 (#23)
hdg0116 Aug 27, 2026
c92b115
Merge pull request #25 from Room-In-Us/feature/23-auth-bff-route-hand…
hdg0116 Aug 27, 2026
9905070
Chore: 운영 배포 관련 파일 추가
joeun-01 Aug 30, 2026
9d8d7c0
Fix: 자동 커밋 되돌리기
joeun-01 Aug 30, 2026
a189f5a
Merge pull request #26 from Room-In-Us/chore/deploy.yml
joeun-01 Aug 30, 2026
4c5ee9e
Feat: 관리자 로그인 API 연동 (#27)
hdg0116 Aug 31, 2026
97474e6
Fix: 액세스 토큰 재발급 연동 수정 (#27)
hdg0116 Aug 31, 2026
ccad58b
Style: 배포 설정 파일 포맷 정리 (#29)
hdg0116 Aug 31, 2026
214b728
Merge pull request #30 from Room-In-Us/style/29-deploy-format
hdg0116 Aug 31, 2026
df529db
Merge branch 'develop' of https://github.com/Room-In-Us/Room-In-Us-Fr…
hdg0116 Aug 31, 2026
d8ef423
Fix: 로그인 테스트 계정 노출 조건 보강 (#27)
hdg0116 Aug 31, 2026
818ff0a
Merge pull request #28 from Room-In-Us/feature/27-admin-login-api
hdg0116 Aug 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .agents/skills/api-integration-workflow/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: api-integration-workflow
description: Use this when adding API helpers, request/response types, TanStack Query hooks, query keys, or cache behavior.
---

# API Integration Workflow

## Purpose

Implement predictable API boundaries and React Query usage for Roominus Admin.

## Read First

- `AGENTS.md`
- `.agents/skills/project-conventions-workflow/SKILL.md` for file naming and commit conventions when relevant
- Existing API/client/query patterns in `src/features` and `src/shared`
- Endpoint docs or backend contract supplied by the user

## Required Inputs

- HTTP method and path
- Request params, search params, or body
- Response shape
- Expected error shape, if known
- Usage site or page

If the API contract is unclear and cannot be inferred from local code, ask before inventing fields.

## Rules

- Keep request/response types close to the API boundary.
- Include every response-changing input in the query key.
- Prefer domain-local API helpers first. Promote to `src/shared` only when multiple real users exist.
- Do not add optimistic updates, retries, or broad invalidation unless the UX needs them.
- Surface errors explicitly enough for the page to render useful states.
- Keep mapping/normalization near the boundary when it protects the UI from backend shape changes.

## Implementation Flow

1. Find existing `axios` and `@tanstack/react-query` usage.
2. Add or reuse a typed API helper.
3. Add query keys before hooks when caching is involved.
4. Add query or mutation hooks with narrow inputs and readable return values.
5. Wire the hook into the page or component without mixing transport details into UI.
6. Verify lint/build according to change risk.

## Done Criteria

- Types describe the API boundary.
- Query keys include response-changing inputs.
- Cache invalidation or update behavior is intentional.
- Errors are not silently swallowed.
- Verification is run or the skipped check is explained.
6 changes: 6 additions & 0 deletions .agents/skills/api-integration-workflow/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
interface:
display_name: 'API Integration Workflow'
short_description: 'Add API helpers and React Query hooks.'
default_prompt: '$api-integration-workflow로 API 연동과 query key/cache 동작까지 구현해줘.'
policy:
allow_implicit_invocation: true
111 changes: 111 additions & 0 deletions .agents/skills/app-structure-evolution-workflow/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
name: app-structure-evolution-workflow
description: Use this when deciding whether Roominus Admin should evolve from route-local pages into a domain-oriented Next.js App Router structure, especially when referencing the DONGCHIMI client folder structure, adding multiple related admin pages, creating route groups, or moving code between src/app, src/features, src/domains, and src/shared.
---

# App Structure Evolution Workflow

## Purpose

Guide structural decisions for Roominus Admin as it grows. Use DONGCHIMI client as a reference pattern, but adapt it conservatively to this repo's current size, stack, and admin product needs.

## Read First

- `AGENTS.md`
- Nearby files in `src/app`, `src/features`, `src/shared`, and `src/assets`
- When the user explicitly provides a reference project path, inspect only the relevant route, domain or feature, and shared folders from that path.

## Current Baseline

- Keep `src/app` as the routing layer.
- Keep small route-only UI close to the route while the app is still shallow.
- Use `src/shared` only for code reused by more than one page or clearly app-wide primitives.
- Use `src/features` for domain-specific code only when a feature has enough substance to justify the folder.
- Do not introduce Vanilla Extract, a monorepo package, generators, or DONGCHIMI-only infrastructure unless the user explicitly asks and the repo has the need.

## Reference Pattern From DONGCHIMI

DONGCHIMI client uses this dependency direction:

```text
app -> domains -> shared
```

Its main idea is:

- `src/app`: Next route entries, route groups, layouts, metadata, providers, route handlers.
- `src/domains/{domain}`: real page composition, domain APIs, hooks, models, query keys.
- `src/shared`: app-wide API clients, reusable UI, auth helpers, constants, query setup, hooks, utilities.

Treat this as a growth target, not an immediate migration plan.

Use the current repository's `src/app`, `src/features`, and `src/shared` as the default inputs for structure decisions. Compare with DONGCHIMI or any other reference project only when the user provides that reference path for the current task.

## When To Stay Route-Local

Keep code inside `src/app/{route}` or a nearby route-local component when:

- The page is one screen with little logic.
- Components are not reused elsewhere.
- There is no domain API, query key, mutation, or shared model yet.
- Moving files would create ceremony without reducing complexity.

Example:

```text
src/app/login/page.tsx
```

## When To Introduce A Domain Folder

Introduce a domain folder when at least two of these are true:

- A route has several sections, components, hooks, or utilities.
- Multiple pages share one business domain.
- API helpers, query hooks, request/response models, or query keys appear.
- Page logic is becoming hard to scan inside `src/app`.
- A route group or admin shell separates auth pages from authenticated pages.

Prefer this shape:

```text
src/app/(auth)/login/page.tsx
src/features/auth/login/LoginPage.tsx
src/features/auth/login/components/
src/features/auth/login/sections/
```

If this repo later standardizes on `src/domains`, update `AGENTS.md` and this skill first, then migrate intentionally.

## App Router Rules

- Keep route files thin: parse `params` and `searchParams`, connect layouts, then render page composition.
- Keep pages and layouts as Server Components by default.
- Put `'use client'` only in the smallest component that needs state, events, browser APIs, effects, providers, or TanStack Query hooks.
- Use route groups only when they clarify layout or access boundaries, such as `(auth)` and `(admin)`.
- Put route constants in `src/shared/constants/routes.ts` once paths are referenced in multiple places.

## API And State Placement

- Keep request/response types near the API boundary.
- Put shared API helpers under `src/shared/api` only when more than one feature needs them.
- Put feature-specific API helpers and hooks under `src/features/{domain}` when they are not broadly reusable.
- Include response-changing inputs in React Query keys.
- Keep transport and mutation logic out of presentational components.

## Migration Flow

1. Identify the route or feature that is becoming large.
2. List the code that is route-only, feature/domain-level, and shared.
3. Move only the code whose new owner is clear.
4. Keep the route entry thin and Server Component compatible.
5. Update imports without renaming public routes unless requested.
6. Run the lightest useful verification: use `git diff --check` for docs-only or agent-only changes, `pnpm lint` for applicable code changes, and `pnpm build` for route, layout, or boundary changes.

## Done Criteria

- `src/app` remains focused on routing and Next conventions.
- New folders have a clear owner and are not speculative.
- Shared code is actually shared or obviously app-wide.
- Server/Client boundaries are still minimal.
- The result is easier to navigate than the previous structure.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
interface:
display_name: 'App Structure Evolution Workflow'
short_description: 'Evolve Roominus Admin structure using DONGCHIMI as a reference.'
default_prompt: '$app-structure-evolution-workflow로 Roominus Admin의 Next.js 폴더 구조를 점검하고 성장 방향을 제안해줘.'
policy:
allow_implicit_invocation: true
57 changes: 57 additions & 0 deletions .agents/skills/form-flow-workflow/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
name: form-flow-workflow
description: Use this when implementing form validation, submit flows, mutations, and loading/error/success states.
---

# Form Flow Workflow

## Purpose

Implement predictable form behavior for Roominus Admin screens, including validation, submit state, server errors, and success handling.

Use this with `api-integration-workflow` when a form submits to an API or uses a React Query mutation.

## Read First

- `AGENTS.md`
- `.agents/skills/page-feature-workflow/SKILL.md` for route ownership
- `.agents/skills/api-integration-workflow/SKILL.md` when submit calls an API
- Existing forms or input patterns in `src/app`, `src/features`, and `src/shared`

## Required Inputs

- Fields and input types
- Validation rules and user-facing error messages
- Submit behavior
- Loading, disabled, failure, and success behavior
- API request and error shape when server-backed

If validation or submit behavior is unclear and cannot be inferred from nearby code, ask before inventing business rules.

## Rules

- Keep field state, validation, submit orchestration, and transport concerns separated enough to read.
- Do not hide server errors silently.
- Disable submit only for intentional conditions such as invalid input, unchanged state, or in-flight submission.
- Keep validation messages close to the relevant field when possible.
- Ensure labels, focus-visible states, keyboard submission, and error association are usable.
- Keep API payload mapping near the API boundary when it protects UI code.

## Implementation Flow

1. Decide whether the form belongs in the page, a route-local component, a feature component, or shared UI.
2. Map each field to its source of truth, validation rule, and displayed error.
3. Separate client validation from server error handling.
4. Add mutation or submit logic with explicit loading and failure states.
5. Handle success intentionally: refetch, invalidate, navigate, close dialog, or show feedback.
6. Check keyboard flow, disabled behavior, and layout stability.
7. Run targeted verification.

## Done Criteria

- Validation matches the requested behavior.
- Submit state and disabled state are intentional.
- Server errors are visible or otherwise handled deliberately.
- Loading, failure, and success states are consistent.
- Accessibility basics are covered for labels, focus, and error text.
- Verification is run or the skipped check is explained.
6 changes: 6 additions & 0 deletions .agents/skills/form-flow-workflow/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
interface:
display_name: 'Form Flow Workflow'
short_description: 'Implement validation and submit state for forms.'
default_prompt: '$form-flow-workflow로 Roominus Admin 폼 흐름을 구현해줘.'
policy:
allow_implicit_invocation: true
65 changes: 65 additions & 0 deletions .agents/skills/frontend-fundamentals-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
name: frontend-fundamentals-review
description: Use this when reviewing frontend diffs for readability, predictability, cohesion, coupling, and logic composition.
---

# Frontend Fundamentals Review

## Purpose

Review frontend changes for maintainability risks beyond formatter, lint, and build results.

Use this for non-trivial React, page, component, hook, or API wiring changes. Skip it for docs-only or formatting-only edits.

## Read First

- `AGENTS.md`
- The current diff or requested files
- Nearby components, hooks, API helpers, and usage sites
- Relevant workflow skills for the changed area, such as `page-feature-workflow`, `shared-component-workflow`, `form-flow-workflow`, or `api-integration-workflow`

## Review Criteria

- Readability: names, control flow, component shape, and JSX structure are easy to scan.
- Predictability: props, state, effects, keys, memoization, and return values behave as callers expect.
- Cohesion: responsibilities stay close to the code that owns them.
- Coupling: route, copy, API, analytics, and styling details do not leak into generic code.
- Logic composition: extracted helpers or hooks have a real responsibility and stable usage sites.

## Common Checks

- Avoid render-time side effects.
- Avoid copying props into state without a clear synchronization rule.
- Avoid conditional hook calls, unstable list keys, and unnecessary `useMemo` or `useCallback`.
- Keep presentational components free of transport details.
- Keep route-only behavior out of shared components.
- Do not extract a hook only because a component is long.
- Prefer pure helpers for mapping, formatting, grouping, and validation that do not need React state.

## Output Shape

When reviewing, lead with findings:

```markdown
Findings:

- [Severity] `path/to/file.tsx:line` - Issue.
Fix: Suggested change.

Open questions:

- Question, if any.

Residual risk:

- Anything not checked.
```

If no issues are found, say that clearly and mention any remaining verification gap.

## Done Criteria

- Findings are tied to files and lines when possible.
- Suggestions are actionable and scoped.
- Taste-only preferences are separated from correctness or maintainability risks.
- Lint/build results are not treated as a substitute for review judgment.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
interface:
display_name: 'Frontend Fundamentals Review'
short_description: 'Review frontend diffs for maintainability risks.'
default_prompt: '$frontend-fundamentals-review로 현재 프론트엔드 변경사항을 리뷰해줘.'
policy:
allow_implicit_invocation: true
42 changes: 42 additions & 0 deletions .agents/skills/frontend-quality-verification/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: frontend-quality-verification
description: Use this after Roominus Admin frontend changes to choose and run the smallest useful verification commands.
---

# Frontend Quality Verification

## Purpose

Pick checks that match the actual change. Keep verification light, but do enough to prove the work.

## Read First

- `package.json`
- Changed files from `git status --short` or `git diff --name-only`

## Verification Ladder

| Change Type | Checks |
| ---------------------------------------------------------------------- | ------------------- |
| Docs or agent files only | `git diff --check` |
| Formatting-sensitive docs or code | `pnpm format:check` |
| TypeScript, React, or shared UI changes | `pnpm lint` |
| Next route, config, build, or Server/Client Component boundary changes | `pnpm build` |

Use `npm run ...` only if pnpm is not available in the environment.

## Rules

- Do not claim a check passed unless it was run successfully.
- If a check fails, separate failures caused by the current change from pre-existing failures when possible.
- If a check cannot run because dependencies or environment are missing, report that plainly.
- For UI changes, mention any manual browser check that still matters.

## Output Shape

```markdown
Verification:

- `command`: pass/fail/not run
- Notes:
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
interface:
display_name: 'Frontend Quality Verification'
short_description: 'Choose and run the right frontend checks.'
default_prompt: '$frontend-quality-verification으로 이번 변경에 맞는 검증을 해줘.'
policy:
allow_implicit_invocation: true
Loading
Loading