Skip to content

[DONE] 커뮤니티 메뉴에서 Atlas 가 빠지고, 아틀라스는 쪽 아래 Archive 링크로 닿는 읽기 전용 보관함이 된다 - #271

Merged
patternflow-bot merged 5 commits into
devfrom
claude/lsh-pf-round104-u3as36
Oct 26, 2026
Merged

patternflow-bot merged 5 commits into
devfrom
claude/lsh-pf-round104-u3as36

Conversation

@patternflow-bot

@patternflow-bot patternflow-bot commented Oct 26, 2026 •

Copy link
Copy Markdown

lsh / https://claude.ai/code/session_01NPsm8VF1zyxJApnjw53w1V

창작자 지시 9 대로 아틀라스를 보관함으로 돌렸어요. 커뮤니티 위 메뉴에서 Atlas 를 빼고 쪽 아래 Archive 링크로만 닿게 했고, 아틀라스 맨 위에 보관한 지도라는 한 줄을 두고, 핀을 올리고 옮기고 내리던 단추와 쓰기 API 를 닫았어요. 머지하면 메뉴는 Patterns · Decks 둘이고, 지도와 핀과 프롬프트는 그대로 읽혀요.

좋아지는 것: 커뮤니티 메뉴가 패턴과 덱 둘로 준다 — 보관한 지도는 아래 링크로 그대로 열린다

체크리스트

한 일

  • CommunityNav.tsx: Atlas 줄을 뺐어요. 폰 탭(MobileTabBar.tsx)은 Decks · Patterns · You 라 고칠 게 없었어요.
  • app/community/layout.tsx: footer 의 「Terms & Privacy · Report something」 뒤에 「Archive」(/community/atlas) 하나를 더했어요. 아틀라스로 가는 링크는 이제 이것뿐이에요.
  • app/api/community/atlas/route.ts: GET 은 그대로예요. POST 와 DELETE 는 몸을 읽지 않고 405 와 Allow: GET, OPTIONS, JSON 오류 「The atlas is an archive now, and its pins stay where they are.」 를 돌려줘요. Origin 막기와 CORS 는 다른 경로와 같아요. 자리 검사, 비율 제한, 쓰기 코드는 지웠어요.
  • AtlasClient.tsx: 머리 줄 「Experimental — a map for exploring more patterns.」 를 「Archived in October 2026. The pins stay where their authors left them, and no new ones go up.」(한국어: 「2026년 10월에 보관한 지도. …」)로 바꿨어요. 「Add my pattern」 고르개, 놓는 중 띠, 핀 끌기, 「Made from prompt」 고르기 칸, 연구 기록으로 내리기 · 타일로 올리기 · 「Remove from the map」 단추, 쓰기 오류 줄을 걷었어요. 핀이 나온 프롬프트는 누구에게나 그 점으로 가는 단추로 보여요. 받던 props 셋(viewerId, isAdmin, myPatterns)과 쓰지 않게 된 핀 칸 둘(isPublic, userId)도 뺐어요. 1297줄이 927줄이 됐어요.
  • app/community/atlas/page.tsx: 고르개용 listPatternsByUser 를 더 부르지 않아요. 세션은 아직 읽어요. 비공개 연구 기록은 작성자와 운영자에게만 보여서예요. 쪽 제목은 「Atlas archive / Patternflow Community」 예요.
  • Atlas.module.css: 아무 컴포넌트도 읽지 않게 된 클래스 15개(picker* 아홉, placeBanner, bannerLink, researchTag, moveHint, removeBtn, writeError, fromSelect)의 규칙과 [data-placing], [data-draggable] 규칙, 폰에서 고르개를 걸던 .toolbar 규칙을 걷었어요. 831줄이 645줄이 됐어요.
  • 가이드 연습 커뮤니티의 머리 메뉴(components/guide/desk/community/pages.tsx)에서도 Atlas 를 뺐어요. 그 단추만 띄우던 쪽지 「elsewhere」(영어 · 한국어)도 같이 지웠어요.
  • schema.ts 의 atlasPins 주석과 web/ARCHITECTURE.md 의 /community/** 줄에 보관한 날과 길을 적었어요.

증거

web/ 에서, 코드 커밋 2cc157c 로:

npm ci                           → exit 0
npm run lint -- --max-warnings=0 → exit 0 (출력 없음)
npm run typecheck                → exit 0
npm run build                    → exit 0, 라우트 표에 ƒ /community/atlas · ƒ /api/community/atlas 그대로
npm run check:ci                 → exit 0
   Test Files  105 passed (105)
        Tests  1281 passed (1281)
   skipped  links-absolute · skipped  roadmap (gh 로그인 없음. drift.yml 이 다시 돌려요), 나머지 drift 14개 passed
npm run check:human-lock         → this diff touches 0 locked files
npm run check:voice              → read: 196 added lines in 9 files / nothing found

PR 의 검사(head 12a9b27, dev merge 뒤): Web CI success · Drift checks success · Docs point at files that exist success. merge 앞 9bc1bf1 에서도 셋 다 success 였어요.

새 시험 src/app/api/community/atlas/route.test.ts(운영자 세션과 Lab 의 Origin 으로 진짜 경로를 돌려요)를 dev 의 route.ts 에 대고 돌린 것과 고친 뒤:

dev 의 route.ts:
   × refuses moving a pin with a 405 the Lab can read   → expected 200 to be 405
   × refuses placing a new one with a 405 the Lab can read → expected 200 to be 405
   × refuses removing one with a 405 the Lab can read   → expected 200 to be 405
   × still reads the pins → expected [ { patternId: 'p2', x: 70, y: 20 } ] to deeply equal [ { patternId: 'p1', x: 40, y: 60 } ]
      Tests  4 failed (4)
고친 뒤:  ✓ src/app/api/community/atlas/route.test.ts (4 tests)

AtlasClient.test.tsx 의 쓰기 실패 시험 여섯과 고르개 · 고르기 칸 이름 시험 둘은 걷은 화면 몫이라 지웠어요. 대신 「the atlas is an archive」 셋을 뒀어요. 맨 위 보관 줄(두 언어), 핀을 열어도 쓰는 단추와 고르기 칸이 없고 출신 프롬프트 단추가 그 점을 여는지, Edit layout 을 켜고 핀을 끌어도 x 40 · y 60 그대로이고 fetch 가 한 번도 불리지 않는지예요. nullBody.test.ts 에선 몸을 더 읽지 않는 atlas 두 줄을 뺐어요.

빌드한 사이트 둘(앞 dev 351b1ba 는 :3200, 뒤는 :3100)을 COMMUNITY_ENABLED=1 과 같은 스크래치 DB 로 띄웠어요. ada 로 가입해 패턴 둘을 두고, 앞 사이트로 핀 하나를 놓았어요.

앞 POST   /api/community/atlas {tide01 → 40,60, clifford}  200 {"ok":true}
뒤 POST   /api/community/atlas {tide01 → 10,10}   405 allow: GET, OPTIONS {"error":"The atlas is an archive now, and its pins stay where they are."}
뒤 POST   /api/community/atlas {ember02 → 70,20}  405 allow: GET, OPTIONS (같은 글)
뒤 DELETE /api/community/atlas {tide01}           405 allow: GET, OPTIONS (같은 글)
뒤 GET    /api/community/atlas                    200 [('tide01', 40, 60, 'clifford')]
/community/atlas                                  앞 200 · 뒤 200

Playwright 로 ada 세션을 실어 DOM 을 읽은 것(핀 「Slow tide」 를 연 뒤):

앞 데스크톱 메뉴 ["Patterns","Decks","Atlas"]   footer ["Terms & Privacy","Report something"]
뒤 데스크톱 메뉴 ["Patterns","Decks"]           footer ["Terms & Privacy","Report something","Archive → /community/atlas"]
앞 아틀라스 단추 ["Add my pattern","Edit layout","File as research (hide the tile)","Remove from the map"] · select 1
뒤 아틀라스 단추 ["Edit layout"] · select 0
뒤 폰 390 footer 가 한 줄에 들고 가로 넘침 없음(scrollWidth ≤ clientWidth)

데스크톱 1440 · 뒤, 아틀라스(맨 위 보관 줄, 핀 패널에 편집 없음)

데스크톱 1440 · 뒤 · 아틀라스

데스크톱 1440 · 뒤, 커뮤니티(메뉴 Patterns · Decks, 아래 Archive)

데스크톱 1440 · 뒤 · 커뮤니티

폰 390 · 뒤, 아틀라스

폰 390 · 뒤 · 아틀라스

데스크톱 1440 · 앞(dev), 아틀라스

데스크톱 1440 · 앞 · 아틀라스

데스크톱 1440 · 앞(dev), 커뮤니티

데스크톱 1440 · 앞 · 커뮤니티

폰 390 · 뒤, 커뮤니티(아래 footer 에 Archive)

폰 390 · 뒤 · 커뮤니티

실행법

web/ 에서 npm ci && npm run build 뒤 COMMUNITY_ENABLED=1 COMMUNITY_DB_PATH=<스크래치>/community.db BETTER_AUTH_SECRET=<아무 긴 값> npx next start -p 3100. http://localhost:3100/community 의 위 메뉴와 맨 아래 Archive 를 보고, Archive 를 눌러 아틀라스 맨 위 줄을 봐요. curl -X POST http://localhost:3100/api/community/atlas -H 'Content-Type: application/json' -d '{}' 가 405 예요.

가정

  • 작업 글은 댓글 다음에 「후보」 표 차례라고 해요. incoming/ROUND.md 고르는 차례 0 은 창작자 지시를 1~9 보다 먼저 둬서 지시 9 를 골랐어요. 103바퀴([DONE] 커뮤니티 메뉴와 폰 탭에서 Workshop 이 빠지고, 옛 워크숍 주소는 커뮤니티 첫 화면으로 간다 #268)도 같은 길로 지시 8 을 했어요.
  • 405 를 골랐어요. 주소가 남아 GET 이 되니 410(Gone)은 맞지 않고, 403 은 권한 문제로 읽혀요. 다른 경로처럼 JSON 오류와 CORS 를 붙여서, 다른 origin 의 Lab 도 까닭을 읽어요.
  • Edit layout 과 Copy layout 은 남겼어요. 서버에 아무것도 쓰지 않고, 점 자리를 JSON 으로 복사해 lib/atlas/data.ts 에 굽는 도구예요. 핀은 Edit layout 에서도 이제 끌리지 않아요. 안내 글의 「that is how the map grows」 도 이 도구 이야기라 그대로 두었어요.
  • 화면 글은 「Archived in October 2026」 처럼 달까지만 적었어요. 배포가 26일 뒤일 수 있어서예요. 코드 주석은 지시가 온 날(26 October 2026)로 적었어요. [DONE] 커뮤니티 메뉴와 폰 탭에서 Workshop 이 빠지고, 옛 워크숍 주소는 커뮤니티 첫 화면으로 간다 #268 이 워크숍을 그날로 적은 것과 같아요.
  • docs/investigations/2026-10-doc-parity.csv 는 지운 UI 문구(addPattern, cancel 같은 것) 줄을 아직 들고 있어요. npm run doc-map 이 쓰는 스냅숏이고 어느 검사도 맞대 보지 않아요. 정리 단계를 닫는 PR 이 다시 써서 이번엔 두었어요.
  • 표 밖에서 본 것(고치지 않았어요): lib/community/server/schema.ts 의 atlasPins.entryId 와 kind 주석이 아직 작성자가 핀을 놓고 바꾸는 흐름을 지금 일처럼 말해요. 표 머리 주석에 보관한 날을 더한 것으로 두었어요.

Changelog

Web

  • The community atlas is a read-only archive. It is off the community menu and reached from the footer's Archive link, with a line at the top saying so. The pin picker and the pin editor are gone, and /api/community/atlas answers a write with a 405; the map, its pins and the prompts stay readable.

경험

언제: 바퀴 컨테이너에서 dev 를 따로 빌드해 앞뒤 화면을 찍을 때
교훈: worktree 의 web/node_modules 를 심링크로 두면 Turbopack 이 빌드를 멈추니, cp -al 로 하드링크 복사해요(몇 초, 디스크는 거의 안 들어요)
근거: #271 에서 ln -s 로 둔 dev worktree 의 npm run build 가 「Symlink node_modules could not be resolved」 로 exit 1 이었고, cp -al 로 바꾸니 바로 지났어요

바퀴

바퀴 104 · 지시 9 「아틀라스는 보관으로 둬요」

다음 바퀴

  • 지시 10 「커뮤니티로 「후보」 표를 다시 채워요」: 8 과 9 가 끝났으니 다음 바퀴가 「후보 채우기」대로 커뮤니티 표를 30줄쯤 새로 채워요. 바퀴 105 부터 132 까지 그 표를 써요.
  • 지난 표 11 「Lab 밖에서 아무도 읽지 않는 이름 다섯이 빠진다」: 지시 10 이 지난 표의 Lab 정리 줄을 빼라고 해서, 새 표에 다시 넣을지는 그 바퀴가 재서 정해요. lib/community/workshop.ts 의 FLOOR_COLUMNS 는 [DONE] 커뮤니티 메뉴와 폰 탭에서 Workshop 이 빠지고, 옛 워크숍 주소는 커뮤니티 첫 화면으로 간다 #268 이 파일째 지웠어요.
  • 지난 표 12 「타입 검사가 import type 을 바라고, 닿지 않는 코드를 잡는다」: 커뮤니티의 CommunityFeedClient.tsx:5 가 그 열 곳 가운데 하나라 새 표의 근간 줄로 이어질 수 있어요.

https://claude.ai/code/session_01NPsm8VF1zyxJApnjw53w1V


Generated by Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPsm8VF1zyxJApnjw53w1V
@patternflow-bot patternflow-bot changed the title [WIP] pf 104바퀴 — 이번 바퀴에 고칠 것을 고르는 중 [WIP] 커뮤니티 메뉴와 폰 탭에서 Atlas 가 빠지고, 아틀라스는 쪽 아래 Archive 링크로 닿는 읽기 전용 보관함이 된다 Oct 26, 2026
Off the menu, reached from the footer's Archive link; the atlas route
refuses writes with a 405 and the map drops its pin editor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPsm8VF1zyxJApnjw53w1V
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPsm8VF1zyxJApnjw53w1V
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPsm8VF1zyxJApnjw53w1V
@patternflow-bot patternflow-bot changed the title [WIP] 커뮤니티 메뉴와 폰 탭에서 Atlas 가 빠지고, 아틀라스는 쪽 아래 Archive 링크로 닿는 읽기 전용 보관함이 된다 [WIP] 커뮤니티 메뉴에서 Atlas 가 빠지고, 아틀라스는 쪽 아래 Archive 링크로 닿는 읽기 전용 보관함이 된다 Oct 26, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPsm8VF1zyxJApnjw53w1V
@patternflow-bot patternflow-bot changed the title [WIP] 커뮤니티 메뉴에서 Atlas 가 빠지고, 아틀라스는 쪽 아래 Archive 링크로 닿는 읽기 전용 보관함이 된다 [DONE] 커뮤니티 메뉴에서 Atlas 가 빠지고, 아틀라스는 쪽 아래 Archive 링크로 닿는 읽기 전용 보관함이 된다 Oct 26, 2026
@patternflow-bot
patternflow-bot marked this pull request as ready for review October 26, 2026 10:09
@patternflow-bot
patternflow-bot merged commit 39944bd into dev Oct 26, 2026
3 checks passed
@patternflow-bot
patternflow-bot deleted the claude/lsh-pf-round104-u3as36 branch October 26, 2026 10:10
engmung pushed a commit to engmung/Patternflow that referenced this pull request Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants