From 1f9826ddae8bee51790dc2bda9c1fbd56e15d0dc Mon Sep 17 00:00:00 2001 From: jjangminii Date: Sun, 12 Jul 2026 18:34:43 +0900 Subject: [PATCH 1/2] =?UTF-8?q?docs(root):=20timo-refactor=20=EC=8A=A4?= =?UTF-8?q?=ED=82=AC=EC=97=90=20=EA=B3=B5=ED=86=B5=20=EC=9C=A0=ED=8B=B8=20?= =?UTF-8?q?=EB=B0=B0=EC=B9=98=20=EA=B8=B0=EC=A4=80=EC=9D=84=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=ED=95=9C=EB=8B=A4=20(#148)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 공통 유틸 추출 시 공통/도메인 종속 판단 기준과 JSDoc 작성 규칙을 추가했습니다 - 예시를 오래된 lib/format.ts 경로에서 실제 코드베이스 경로(apps/timo-web/utils, constants)로 갱신했습니다 --- .agents/skills/quality/timo-refactor/SKILL.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.agents/skills/quality/timo-refactor/SKILL.md b/.agents/skills/quality/timo-refactor/SKILL.md index 691b78b1..312928fa 100644 --- a/.agents/skills/quality/timo-refactor/SKILL.md +++ b/.agents/skills/quality/timo-refactor/SKILL.md @@ -70,11 +70,17 @@ After: _hooks/useLoginForm.ts 로 분리, 컴포넌트는 JSX만 반환 ### 공통 유틸 추출 -같은 변환·포맷 로직이 3곳 이상이면: +같은 변환·포맷 로직이 3곳 이상이면 아래 기준으로 위치를 정한다: + +- **공통** (여러 도메인에서 재사용 가능) → `apps/timo-web/utils`(함수) 또는 `apps/timo-web/constants`(상수)로 추출 +- **도메인 종속** (특정 기능에서만 사용) → 해당 도메인의 `_utils` 폴더 안에 유지 +- 새로 만들거나 옮길 때는 JSDoc(설명·`@param`·`@returns`·`@example`)을 반드시 작성한다 ```text -Before: 각 컴포넌트 안에 동일한 날짜 포맷 함수 -After: lib/format.ts 로 추출 후 임포트 +Before: apps/timo-web/app/[locale]/(main)/focus/_utils/duration.ts + (SECONDS_PER_MINUTE, convertDurationToMinutes 로컬 정의 — home/timer 등 다른 도메인에도 중복) +After: apps/timo-web/constants/time.ts (SECONDS_PER_MINUTE 등 공통 상수) + apps/timo-web/utils/convert-duration-to-minutes.ts (JSDoc 포함 공통 함수) ``` --- From 9184b740c742948e1455a893354d63aabb82f853 Mon Sep 17 00:00:00 2001 From: jjangminii Date: Sun, 12 Jul 2026 18:47:39 +0900 Subject: [PATCH 2/2] =?UTF-8?q?docs(root):=20timo-refactor=20=EC=8A=A4?= =?UTF-8?q?=ED=82=AC=EC=9D=98=20JSDoc=20=EA=B7=9C=EC=B9=99=EA=B3=BC=20?= =?UTF-8?q?=EC=98=88=EC=8B=9C=EB=A5=BC=20=EB=8B=A4=EB=93=AC=EB=8A=94?= =?UTF-8?q?=EB=8B=A4=20(#148)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - JSDoc 규칙을 함수(utils)/상수(constants)로 나눠 구체화했습니다 - Before/After 예시를 convertDurationToTimeText/convert-duration-to-time-text.ts 기준으로 수정했습니다 --- .agents/skills/quality/timo-refactor/SKILL.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.agents/skills/quality/timo-refactor/SKILL.md b/.agents/skills/quality/timo-refactor/SKILL.md index 312928fa..f34a8e48 100644 --- a/.agents/skills/quality/timo-refactor/SKILL.md +++ b/.agents/skills/quality/timo-refactor/SKILL.md @@ -74,13 +74,15 @@ After: _hooks/useLoginForm.ts 로 분리, 컴포넌트는 JSX만 반환 - **공통** (여러 도메인에서 재사용 가능) → `apps/timo-web/utils`(함수) 또는 `apps/timo-web/constants`(상수)로 추출 - **도메인 종속** (특정 기능에서만 사용) → 해당 도메인의 `_utils` 폴더 안에 유지 -- 새로 만들거나 옮길 때는 JSDoc(설명·`@param`·`@returns`·`@example`)을 반드시 작성한다 +- 새로 만들거나 옮길 때는 JSDoc을 반드시 작성한다 + - **함수(utils)**: 설명, `@param`, `@returns`, 필요 시 `@example` + - **상수(constants)**: 설명, 단위(있는 경우), 사용 범위(어디서/왜 쓰이는지) ```text Before: apps/timo-web/app/[locale]/(main)/focus/_utils/duration.ts - (SECONDS_PER_MINUTE, convertDurationToMinutes 로컬 정의 — home/timer 등 다른 도메인에도 중복) + (SECONDS_PER_MINUTE, convertDurationToTimeText 로컬 정의 — home/timer 등 다른 도메인에도 유사 로직 중복) After: apps/timo-web/constants/time.ts (SECONDS_PER_MINUTE 등 공통 상수) - apps/timo-web/utils/convert-duration-to-minutes.ts (JSDoc 포함 공통 함수) + apps/timo-web/utils/convert-duration-to-time-text.ts (convertDurationToTimeText, JSDoc 포함 공통 함수) ``` ---