diff --git a/docs/backend/api-documentation.md b/docs/backend/api-documentation.md index bf3752f5..ca8f302d 100644 --- a/docs/backend/api-documentation.md +++ b/docs/backend/api-documentation.md @@ -76,14 +76,14 @@ G7 의 REST API 는 라우트 `->name()` 규약은 있으나 엔드포인트별 확장 API 문서의 발견성은 이 목차를 통해 확보한다. `api:docgen` 과 코어 인덱스 생성기 (`generate-docs-index.cjs`) 는 확장명을 하드코딩하지 않고 `{modules,plugins}/_bundled/*/docs/api/README.md` 를 **패턴 스캔**해, 코어 README 의 "확장 API 레퍼런스" -표와 CLAUDE.md·AGENTS.md·docs-index 에 자동 편입한다(동적 로딩 원칙 — 코어는 규약과 스캔 패턴만, 확장 +표와 AGENTS.md·docs-index 에 자동 편입한다(동적 로딩 원칙 — 코어는 규약과 스캔 패턴만, 확장 이름은 파일 시스템에서 발견). 문서 수·엔드포인트 수는 각 README 의 집계 라인 (`**문서 수**: N · **엔드포인트 수**: M`)에서 읽으므로, 이 라인 형식을 바꾸면 두 스캐너를 함께 갱신한다. 처음 진입하는 개발자/AI 의 도달 경로: ```text -README.md "API 레퍼런스" 또는 CLAUDE.md "API 레퍼런스 진입점" 표 +README.md "API 레퍼런스" 또는 AGENTS.md "API 레퍼런스 진입점" 표 → docs/backend/api/README.md (공통 규약 + 코어 목차 + 확장 목차) → {도메인}.md 또는 {확장}/docs/api/README.md → 엔드포인트별 파라미터·응답·예시 diff --git a/modules/_bundled/sirsoft-ecommerce/tests/Playwright/specs/admin/shipping-country-i18n.spec.ts b/modules/_bundled/sirsoft-ecommerce/tests/Playwright/specs/admin/shipping-country-i18n.spec.ts index a634be78..5d40a0e0 100644 --- a/modules/_bundled/sirsoft-ecommerce/tests/Playwright/specs/admin/shipping-country-i18n.spec.ts +++ b/modules/_bundled/sirsoft-ecommerce/tests/Playwright/specs/admin/shipping-country-i18n.spec.ts @@ -13,7 +13,7 @@ * - **국가명 문자열을 하드코딩하지 않는다**("South Korea" 등). 시드 데이터가 바뀌면 * 거짓 실패하고, 무엇보다 "ko 가 아닌 무언가"를 렌더한다는 사실만으로는 회귀를 못 잡는다. * API 응답에서 그 로케일의 기대값을 **런타임에 도출**해 화면과 대조한다. - * - **로케일 목록을 하드코딩하지 않는다**. 언어는 계속 추가된다(PO 지시). 설치된 언어는 + * - **로케일 목록을 하드코딩하지 않는다**. 언어는 계속 추가된다. 설치된 언어는 * `$locales` 에서 읽는다. * - 회귀(= ko 고정) 판정은 "en 값과 같다" 로는 부족하다. ko 와 en 이 같은 국가(예: 코드 * 폴백)만 골라 보면 통과해 버린다. **ko 값과 다른 국가가 하나라도 있는지** 먼저 확인한 @@ -54,7 +54,7 @@ async function derivedHeaderNames(page: Page): Promise { } /** - * 설치된 언어의 `{ 코드: 표시명 }` 맵. 하드코딩 금지 — 언어는 계속 추가된다(PO 지시). + * 설치된 언어의 `{ 코드: 표시명 }` 맵. 하드코딩 금지 — 언어는 계속 추가된다. * 레이아웃의 이름 입력칸 라벨이 쓰는 것과 동일한 출처(`appConfig.localeNames`)를 읽는다. */ async function localeDisplayNames(page: Page): Promise> { diff --git a/modules/_bundled/sirsoft-ecommerce/tests/Unit/Upgrades/PruneEmptyShippingCountryNameLocalesTest.php b/modules/_bundled/sirsoft-ecommerce/tests/Unit/Upgrades/PruneEmptyShippingCountryNameLocalesTest.php index 46f817e7..455d6405 100644 --- a/modules/_bundled/sirsoft-ecommerce/tests/Unit/Upgrades/PruneEmptyShippingCountryNameLocalesTest.php +++ b/modules/_bundled/sirsoft-ecommerce/tests/Unit/Upgrades/PruneEmptyShippingCountryNameLocalesTest.php @@ -17,7 +17,7 @@ use Modules\Sirsoft\Ecommerce\Tests\ModuleTestCase; * (settings.countries.{code}.name)이 읽기 시점에 보강하고, 운영자가 직접 추가한 국가는 * 운영자가 채운다. 따라서 빈 문자열 키는 제거해 "부재" 로 정규화한다. * - * 이름을 새로 채우지는 않는다(PO 결정) — 청소만 한다. + * 이름을 새로 채우지는 않는다 — 청소만 한다. */ class PruneEmptyShippingCountryNameLocalesTest extends ModuleTestCase { @@ -142,7 +142,7 @@ class PruneEmptyShippingCountryNameLocalesTest extends ModuleTestCase public function test_country_names_are_never_filled_in(): void { - // PO 결정: 이름을 새로 채우지 않는다. 부재 로케일은 언어팩이 읽기 시점에 보강한다. + // 이름을 새로 채우지 않는다. 부재 로케일은 언어팩이 읽기 시점에 보강한다. $this->writeSettings([ 'default_country' => 'KR', 'available_countries' => [