From e5770dfbc8a8d92451213bf5609c81aa1cf353b2 Mon Sep 17 00:00:00 2001 From: DongHyeonka Date: Mon, 24 Aug 2026 17:35:46 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20Decision=20=EB=AF=B8=EB=A6=AC=EB=B3=B4?= =?UTF-8?q?=EA=B8=B0=20=EC=98=A4=EB=A5=98=EA=B0=80=20=ED=95=A0=20=EC=9D=BC?= =?UTF-8?q?=EC=9D=84=20=EB=A7=90=ED=95=98=EA=B2=8C=20=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "PROJECT public path is required" 는 사실이지만 작성자가 무엇을 해야 하는지 말하지 않는다. Decision 의 공개 주소는 프로젝트 주소 아래에 있으므로, 프로젝트를 먼저 게시해야 한다는 것과 그 화면이 어디인지 적는다. 프로젝트를 고르지 않았을 때의 문구도 같이 바꾼다. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01XEHXspz4rv5pB5wiiSsVDu --- .../content-format/project-public-render-model.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/features/tech-log/domain/content-format/project-public-render-model.ts b/src/features/tech-log/domain/content-format/project-public-render-model.ts index fd0b105..4f028f2 100644 --- a/src/features/tech-log/domain/content-format/project-public-render-model.ts +++ b/src/features/tech-log/domain/content-format/project-public-render-model.ts @@ -131,7 +131,18 @@ function renderContext( function publicPath(input: WorkingCopyInput, project: CatalogEntry | null) { if (input.kind === "PROJECT_DECISION") { - if (!project?.publicPath) fail("PROJECT public path is required"); + /* + Decision 의 공개 주소는 자기 slug 가 아니라 프로젝트 주소 아래에 있다. 그래서 프로젝트가 + 공개되어 있지 않으면 이 문서에는 아직 주소가 없다. + + 예전 문구는 "PROJECT public path is required" 였다. 사실이지만 작성자가 할 일을 말해 주지 + 않는다 — 무엇을 어디서 눌러야 하는지 적는다. + */ + if (!project?.publicPath) { + fail( + "이 Decision 의 공개 주소는 프로젝트 주소 아래에 있습니다. 주제·프로젝트 화면에서 이 프로젝트를 먼저 게시해 주세요.", + ); + } return `${project.publicPath}/decisions#${input.slug}`; } const prefix = @@ -186,7 +197,7 @@ export function projectWorkingCopy( const project = catalogEntry(catalog, input.projectId, "PROJECT", false); if (!topic) fail("TOPIC catalog entry is required"); if (input.kind === "PROJECT_DECISION" && !project) { - fail("PROJECT catalog entry is required"); + fail("Decision 은 프로젝트에 속합니다. 기본 정보에서 프로젝트를 골라 주세요."); } const base = {