refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成) - #333

Merged
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web
Jun 19, 2026
Merged

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成)#333
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の frontend/ ディレクトリを web/ にリネームし、関連する運用・ツーリングの命名も統一する。アプリの挙動変更はなく、ディレクトリ名と参照・命名の追従のみ。

変更内容

  • ディレクトリ: frontend/web/(git rename 認識)
  • ビルド/CI: Makefile.github/workflows/ci.yml.jscpd.json.gitignore のパスを web/ に追従。codegen 出力は web/src/api/generated.ts
  • make ターゲット: lint-frontendlint-web / test-frontendtest-web / build-frontendbuild-web 等(CI・docs の呼び出しも追従)
  • スクリプト: scripts/lint-frontend-messages.shlint-web-messages.sh
  • AI ツーリング: .claude/rules/frontend/.claude/rules/web/paths: web/**)、skills FE_refacter/FE_applyWEB_refacter/WEB_apply(参照・レポート接頭辞も追従)
  • docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ: パス・ターゲット名を追従
  • backend: ディレクトリを指すパス参照のみ追従(frontend/srcweb/src のコメント、test_error_code_sync の参照パス)
  • package: web/package.json の name を devforge-web

意図的に据え置いたもの

  • ADR(docs/adr/*: 不変の意思決定記録。ファイル名・内容とも変更なし(0009-frontend-toast-notification.md 等のリンクも保持)
  • backend のクライアント概念識別子: frontend_url / get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework(タクソノミ)等は「web クライアント」概念であり、ディレクトリではないため温存(API 識別子・エラーコード契約の rename は別の code refactor 範囲)

検証

  • make ci green(backend lint+test、web lint+lint-messages+test 377、build)

マージ時の注意

🤖 Generated with Claude Code

@coderabbitai

coderabbitaiBot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c9564d94-e388-4886-bf82-c48d3bfd6050

📥 Commits

Reviewing files that changed from the base of the PR and between 90dc11b and 095e54f.

⛔ Files ignored due to path filters (1)
  • web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • .claude/CLAUDE.md
  • .claude/rules/backend/auth-security.md
  • .claude/rules/common/duplication.md
  • .claude/rules/infra/opentofu.md
  • .claude/rules/infra/test.md
  • .claude/rules/security.md
  • .claude/rules/web/architecture.md
  • .claude/rules/web/component-design.md
  • .claude/rules/web/messages.md
  • .claude/rules/web/test.md
  • .claude/rules/web/typescript.md
  • .claude/skills/SEC_apply/SKILL.md
  • .claude/skills/SEC_review/SKILL.md
  • .claude/skills/WEB_apply/SKILL.md
  • .claude/skills/WEB_refacter/SKILL.md
  • .claude/skills/XR_apply/SKILL.md
  • .claude/skills/XR_refacter/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .gitignore
  • .jscpd.json
  • AGENTS.md
  • Makefile
  • backend/app/core/errors.py
  • backend/app/schemas/billing.py
  • backend/app/schemas/blog.py
  • backend/app/schemas/master_data.py
  • backend/app/schemas/resume.py
  • backend/scripts/export_openapi.py
  • backend/tests/test_error_code_sync.py
  • docs/deployment.md
  • docs/development.md
  • scripts/lint-web-messages.sh
  • web/.npmrc
  • web/.prettierignore
  • web/.prettierrc
  • web/e2e/agent-chat.spec.ts
  • web/e2e/auth.spec.ts
  • web/e2e/billing.spec.ts
  • web/e2e/career-dirty-indicator.spec.ts
  • web/e2e/career-field-modal.spec.ts
  • web/e2e/career-import-assist.spec.ts
  • web/e2e/github-link.spec.ts
  • web/e2e/helpers/auth.ts
  • web/e2e/navigation.spec.ts
  • web/e2e/notifications.spec.ts
  • web/eslint.config.js
  • web/functions/_middleware.ts
  • web/index.html
  • web/package.json
  • web/playwright.config.d.ts
  • web/playwright.config.js
  • web/playwright.config.ts
  • web/scripts/audit-check.mjs
  • web/scripts/gen-redirects.mjs
  • web/scripts/gen-types.mjs
  • web/src/App.module.css
  • web/src/App.tsx
  • web/src/api/agent.ts
  • web/src/api/ai-resume.ts
  • web/src/api/auth.ts
  • web/src/api/billing.ts
  • web/src/api/blog.ts
  • web/src/api/client.test.ts
  • web/src/api/client.ts
  • web/src/api/download.ts
  • web/src/api/generated.ts
  • web/src/api/githubLink.ts
  • web/src/api/index.ts
  • web/src/api/master-data.ts
  • web/src/api/notifications.ts
  • web/src/api/paths.ts
  • web/src/api/resumes.ts
  • web/src/api/types.ts
  • web/src/components/CareerUnsavedGuard.test.tsx
  • web/src/components/CareerUnsavedGuard.tsx
  • web/src/components/ConfirmDialog.module.css
  • web/src/components/ConfirmDialog.tsx
  • web/src/components/ErrorBoundary.module.css
  • web/src/components/ErrorBoundary.tsx
  • web/src/components/LoadingOverlay.tsx
  • web/src/components/NotificationBell.module.css
  • web/src/components/NotificationBell.tsx
  • web/src/components/SidebarLayout.tsx
  • web/src/components/UserMenu.module.css
  • web/src/components/UserMenu.tsx
  • web/src/components/agent/AgentModelBadge.module.css
  • web/src/components/agent/AgentModelBadge.tsx
  • web/src/components/agent/ModelSelectModal.module.css
  • web/src/components/agent/ModelSelectModal.test.tsx
  • web/src/components/agent/ModelSelectModal.tsx
  • web/src/components/auth/LoginForm.module.css
  • web/src/components/auth/LoginForm.tsx
  • web/src/components/auth/LoginPromptModal.module.css
  • web/src/components/auth/LoginPromptModal.test.tsx
  • web/src/components/auth/LoginPromptModal.tsx
  • web/src/components/auth/LoginPromptProvider.tsx
  • web/src/components/auth/loginPromptContext.ts
  • web/src/components/billing/BillingView.module.css
  • web/src/components/billing/BillingView.test.tsx
  • web/src/components/billing/BillingView.tsx
  • web/src/components/billing/CreditBalanceBadge.module.css
  • web/src/components/billing/CreditBalanceBadge.tsx
  • web/src/components/billing/CreditBalanceProvider.test.tsx
  • web/src/components/billing/CreditBalanceProvider.tsx
  • web/src/components/billing/CreditPurchaseForm.module.css
  • web/src/components/billing/CreditPurchaseForm.test.tsx
  • web/src/components/billing/CreditPurchaseForm.tsx
  • web/src/components/billing/creditBalanceContext.ts
  • web/src/components/blog/BlogArticleList.tsx
  • web/src/components/blog/BlogPage.module.css
  • web/src/components/blog/BlogPage.tsx
  • web/src/components/blog/BlogPlatformList.tsx
  • web/src/components/blog/BlogScoreCard.module.css
  • web/src/components/blog/BlogScoreCard.tsx
  • web/src/components/forms/AgentChatWidget.module.css
  • web/src/components/forms/AgentChatWidget.test.tsx
  • web/src/components/forms/AgentChatWidget.tsx
  • web/src/components/forms/CareerDiffModal.module.css
  • web/src/components/forms/CareerDiffModal.tsx
  • web/src/components/forms/CareerFormEditors/CareerExperienceEditor.tsx
  • web/src/components/forms/CareerFormEditors/ClientEditor.tsx
  • web/src/components/forms/CareerResumeForm.module.css
  • web/src/components/forms/CareerResumeForm.test.tsx
  • web/src/components/forms/CareerResumeForm.tsx
  • web/src/components/forms/Combobox.module.css
  • web/src/components/forms/Combobox.tsx
  • web/src/components/forms/MarkdownDocumentView.tsx
  • web/src/components/forms/MarkdownFieldModal.tsx
  • web/src/components/forms/MarkdownFieldTrigger.module.css
  • web/src/components/forms/MarkdownFieldTrigger.tsx
  • web/src/components/forms/MarkdownTextarea.module.css
  • web/src/components/forms/MarkdownTextarea.test.tsx
  • web/src/components/forms/MarkdownTextarea.tsx
  • web/src/components/forms/PdfDocumentView.tsx
  • web/src/components/forms/PdfPreviewModal.module.css
  • web/src/components/forms/PdfPreviewModal.tsx
  • web/src/components/forms/ProjectModal.module.css
  • web/src/components/forms/ProjectModal.test.tsx
  • web/src/components/forms/ProjectModal.tsx
  • web/src/components/forms/ResumeForm.module.css
  • web/src/components/forms/ResumeImportConfirmModal.module.css
  • web/src/components/forms/ResumeSourceTracePanel.module.css
  • web/src/components/forms/ResumeSourceTracePanel.tsx
  • web/src/components/forms/documentView.ts
  • web/src/components/forms/sections/CareerBasicInfoSection.tsx
  • web/src/components/forms/sections/CareerExperienceSection.tsx
  • web/src/components/forms/sections/CareerFormToolbar.tsx
  • web/src/components/forms/sections/CareerQualificationsSection.tsx
  • web/src/components/forms/sections/CareerSelfPrSection.tsx
  • web/src/components/github-link/ContributionHeatmap.module.css
  • web/src/components/github-link/ContributionHeatmap.test.tsx
  • web/src/components/github-link/ContributionHeatmap.tsx
  • web/src/components/github-link/GitHubLinkDashboard.module.css
  • web/src/components/github-link/GitHubLinkDashboard.test.tsx
  • web/src/components/github-link/GitHubLinkDashboard.tsx
  • web/src/components/github-link/LanguageBar.module.css
  • web/src/components/github-link/LanguageBar.tsx
  • web/src/components/github-link/TechBar.module.css
  • web/src/components/icons/BellIcon.tsx
  • web/src/components/icons/ChevronDownIcon.tsx
  • web/src/components/icons/EyeIcon.tsx
  • web/src/components/icons/EyeSlashIcon.tsx
  • web/src/components/icons/GitHubMarkIcon.tsx
  • web/src/components/icons/MarkdownDownloadIcon.tsx
  • web/src/components/icons/NoteIcon.tsx
  • web/src/components/icons/PdfDownloadIcon.tsx
  • web/src/components/icons/PlusIcon.tsx
  • web/src/components/icons/QiitaIcon.tsx
  • web/src/components/icons/SaveIcon.tsx
  • web/src/components/icons/TrashIcon.tsx
  • web/src/components/icons/ZennIcon.tsx
  • web/src/components/ui/AsyncTaskLoading.module.css
  • web/src/components/ui/AsyncTaskLoading.tsx
  • web/src/components/ui/CharCount.module.css
  • web/src/components/ui/CharCount.tsx
  • web/src/components/ui/Collapsible.module.css
  • web/src/components/ui/Collapsible.test.tsx
  • web/src/components/ui/Collapsible.tsx
  • web/src/components/ui/DeleteIconButton.module.css
  • web/src/components/ui/DeleteIconButton.test.tsx
  • web/src/components/ui/DeleteIconButton.tsx
  • web/src/components/ui/DirtyDot.module.css
  • web/src/components/ui/DirtyDot.tsx
  • web/src/components/ui/InlineSpinner.module.css
  • web/src/components/ui/InlineSpinner.tsx
  • web/src/components/ui/ModalShell.module.css
  • web/src/components/ui/ModalShell.tsx
  • web/src/components/ui/Skeleton.module.css
  • web/src/components/ui/Skeleton.tsx
  • web/src/components/ui/toast/ToastItem.tsx
  • web/src/components/ui/toast/ToastProvider.test.tsx
  • web/src/components/ui/toast/ToastProvider.tsx
  • web/src/components/ui/toast/ToastViewport.tsx
  • web/src/components/ui/toast/index.ts
  • web/src/components/ui/toast/toast.module.css
  • web/src/components/ui/toast/toastContext.ts
  • web/src/components/ui/toast/useToastBridge.ts
  • web/src/constants.ts
  • web/src/constants/agentModels.test.ts
  • web/src/constants/agentModels.ts
  • web/src/constants/errorCodes.ts
  • web/src/constants/errorMessages.ts
  • web/src/constants/messages.ts
  • web/src/formMappers.ts
  • web/src/formTypes.ts
  • web/src/hooks/blog/useBlogAccountManager.test.ts
  • web/src/hooks/blog/useBlogAccountManager.ts
  • web/src/hooks/career/useAgentChat.test.ts
  • web/src/hooks/career/useAgentChat.ts
  • web/src/hooks/career/useCareerDirty.test.ts
  • web/src/hooks/career/useCareerDirty.ts
  • web/src/hooks/career/useCareerDraftRestore.test.ts
  • web/src/hooks/career/useCareerDraftRestore.ts
  • web/src/hooks/career/useCareerExperienceMutators.test.ts
  • web/src/hooks/career/useCareerExperienceMutators.ts
  • web/src/hooks/career/useCareerExportActions.ts
  • web/src/hooks/career/useCareerFormModals.test.ts
  • web/src/hooks/career/useCareerFormModals.ts
  • web/src/hooks/career/useImportPanelLayout.test.ts
  • web/src/hooks/career/useImportPanelLayout.ts
  • web/src/hooks/career/usePhotoUpload.test.ts
  • web/src/hooks/career/usePhotoUpload.ts
  • web/src/hooks/career/useProjectModalForm.test.ts
  • web/src/hooks/career/useProjectModalForm.ts
  • web/src/hooks/career/useProjectModalState.test.ts
  • web/src/hooks/career/useProjectModalState.ts
  • web/src/hooks/career/useResumeDiffPreview.test.ts
  • web/src/hooks/career/useResumeDiffPreview.ts
  • web/src/hooks/career/useResumeImportAssist.test.ts
  • web/src/hooks/career/useResumeImportAssist.ts
  • web/src/hooks/useAgentUsageSummary.test.ts
  • web/src/hooks/useAgentUsageSummary.ts
  • web/src/hooks/useAsyncTaskPage.test.ts
  • web/src/hooks/useAsyncTaskPage.ts
  • web/src/hooks/useAuthSession.test.ts
  • web/src/hooks/useAuthSession.ts
  • web/src/hooks/useBillingPage.test.ts
  • web/src/hooks/useBillingPage.ts
  • web/src/hooks/useCreditBalance.test.ts
  • web/src/hooks/useCreditBalance.ts
  • web/src/hooks/useDocumentForm.test.ts
  • web/src/hooks/useDocumentForm.ts
  • web/src/hooks/useFocusOnMatch.test.ts
  • web/src/hooks/useFocusOnMatch.ts
  • web/src/hooks/useMasterData.ts
  • web/src/hooks/useModelRates.test.ts
  • web/src/hooks/useModelRates.ts
  • web/src/hooks/useNotifications.test.ts
  • web/src/hooks/useNotifications.ts
  • web/src/hooks/usePdfActions.test.ts
  • web/src/hooks/usePdfActions.ts
  • web/src/hooks/useTaskPolling.test.ts
  • web/src/hooks/useTaskPolling.ts
  • web/src/hooks/useTheme.ts
  • web/src/hooks/useUnsavedChangesWarning.test.ts
  • web/src/hooks/useUnsavedChangesWarning.ts
  • web/src/main.tsx
  • web/src/pages/BillingPage.tsx
  • web/src/pages/BlogPage.tsx
  • web/src/pages/CareerPage.tsx
  • web/src/pages/GitHubCallbackPage.tsx
  • web/src/pages/GitHubLinkPage.tsx
  • web/src/pages/LoginPage.tsx
  • web/src/pages/NotFoundPage.module.css
  • web/src/pages/NotFoundPage.tsx
  • web/src/payloadBuilders.test.ts
  • web/src/payloadBuilders.ts
  • web/src/router/guards.test.tsx
  • web/src/router/guards.tsx
  • web/src/router/index.ts
  • web/src/router/routes.tsx
  • web/src/store/agentModelSlice.test.ts
  • web/src/store/agentModelSlice.ts
  • web/src/store/formCacheSlice.ts
  • web/src/store/index.ts
  • web/src/store/persistConfig.ts
  • web/src/styles.css
  • web/src/styles/shared.module.css
  • web/src/test-setup.ts
  • web/src/test/handlers.ts
  • web/src/test/mswServer.ts
  • web/src/test/renderWithProviders.tsx
  • web/src/utils/agentOperations.test.ts
  • web/src/utils/agentOperations.ts
  • web/src/utils/appError.ts
  • web/src/utils/careerDiff.test.ts
  • web/src/utils/careerDiff.ts
  • web/src/utils/careerDraft.test.ts
  • web/src/utils/careerDraft.ts
  • web/src/utils/careerReview.test.ts
  • web/src/utils/careerReview.ts
  • web/src/utils/creditEstimate.test.ts
  • web/src/utils/creditEstimate.ts
  • web/src/utils/deepEqual.ts
  • web/src/utils/diffHighlight.test.ts
  • web/src/utils/diffHighlight.ts
  • web/src/utils/errorId.ts
  • web/src/utils/markdown.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-frontend-to-web

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の
frontend/ を web/ にリネームし、関連する運用・ツーリングの命名も統一する。
PR #332(マルチプロバイダ LLM)マージ後の main を起点に再構築。
変更:
- ディレクトリ: frontend/ → web/(git rename)
- ビルド/CI: Makefile・ci.yml・.jscpd.json・.gitignore のパスを web/ に追従。
codegen 出力は web/src/api/generated.ts
- make ターゲット: lint-frontend→lint-web, test-frontend→test-web,
build-frontend→build-web 等(CI/docs の呼び出しも追従)
- スクリプト: scripts/lint-frontend-messages.sh → lint-web-messages.sh
- AI ツーリング: .claude/rules/frontend/ → .claude/rules/web/(paths
frontmatter を web/**)、skills FE_refacter/FE_apply → WEB_refacter/WEB_apply
- docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ・README: パス/ターゲット名を追従
- backend: ディレクトリを指すパス参照のみ追従(frontend/src → web/src の
コメント、test_error_code_sync の参照パス)
- web/package.json name: devforge-web
意図的に据え置いたもの:
- ADR(docs/adr/*): 不変の意思決定記録。ファイル名・内容とも変更しない
- backend のクライアントアプリ概念を指す識別子(frontend_url /
get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework
タクソノミ等): ディレクトリではなく「web クライアント」概念のため温存
検証: make ci green(backend lint+test 582、web lint+test 385、build)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yusuke0610
yusuke0610force-pushed the refactor/rename-frontend-to-web branch from 0459326 to 095e54fCompareJune 19, 2026 10:46
@yusuke0610
yusuke0610 merged commit fad71c6 into mainJun 19, 2026
18 checks passed
@yusuke0610
yusuke0610 deleted the refactor/rename-frontend-to-web branch June 20, 2026 06:53
Sign up for freeto 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.

1 participant

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成) - #333

Merged
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web
Jun 19, 2026
Merged

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成)#333
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の frontend/ ディレクトリを web/ にリネームし、関連する運用・ツーリングの命名も統一する。アプリの挙動変更はなく、ディレクトリ名と参照・命名の追従のみ。

変更内容

  • ディレクトリ: frontend/web/(git rename 認識)
  • ビルド/CI: Makefile.github/workflows/ci.yml.jscpd.json.gitignore のパスを web/ に追従。codegen 出力は web/src/api/generated.ts
  • make ターゲット: lint-frontendlint-web / test-frontendtest-web / build-frontendbuild-web 等(CI・docs の呼び出しも追従)
  • スクリプト: scripts/lint-frontend-messages.shlint-web-messages.sh
  • AI ツーリング: .claude/rules/frontend/.claude/rules/web/paths: web/**)、skills FE_refacter/FE_applyWEB_refacter/WEB_apply(参照・レポート接頭辞も追従)
  • docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ: パス・ターゲット名を追従
  • backend: ディレクトリを指すパス参照のみ追従(frontend/srcweb/src のコメント、test_error_code_sync の参照パス)
  • package: web/package.json の name を devforge-web

意図的に据え置いたもの

  • ADR(docs/adr/*: 不変の意思決定記録。ファイル名・内容とも変更なし(0009-frontend-toast-notification.md 等のリンクも保持)
  • backend のクライアント概念識別子: frontend_url / get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework(タクソノミ)等は「web クライアント」概念であり、ディレクトリではないため温存(API 識別子・エラーコード契約の rename は別の code refactor 範囲)

検証

  • make ci green(backend lint+test、web lint+lint-messages+test 377、build)

マージ時の注意

🤖 Generated with Claude Code

@coderabbitai

coderabbitaiBot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c9564d94-e388-4886-bf82-c48d3bfd6050

📥 Commits

Reviewing files that changed from the base of the PR and between 90dc11b and 095e54f.

⛔ Files ignored due to path filters (1)
  • web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • .claude/CLAUDE.md
  • .claude/rules/backend/auth-security.md
  • .claude/rules/common/duplication.md
  • .claude/rules/infra/opentofu.md
  • .claude/rules/infra/test.md
  • .claude/rules/security.md
  • .claude/rules/web/architecture.md
  • .claude/rules/web/component-design.md
  • .claude/rules/web/messages.md
  • .claude/rules/web/test.md
  • .claude/rules/web/typescript.md
  • .claude/skills/SEC_apply/SKILL.md
  • .claude/skills/SEC_review/SKILL.md
  • .claude/skills/WEB_apply/SKILL.md
  • .claude/skills/WEB_refacter/SKILL.md
  • .claude/skills/XR_apply/SKILL.md
  • .claude/skills/XR_refacter/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .gitignore
  • .jscpd.json
  • AGENTS.md
  • Makefile
  • backend/app/core/errors.py
  • backend/app/schemas/billing.py
  • backend/app/schemas/blog.py
  • backend/app/schemas/master_data.py
  • backend/app/schemas/resume.py
  • backend/scripts/export_openapi.py
  • backend/tests/test_error_code_sync.py
  • docs/deployment.md
  • docs/development.md
  • scripts/lint-web-messages.sh
  • web/.npmrc
  • web/.prettierignore
  • web/.prettierrc
  • web/e2e/agent-chat.spec.ts
  • web/e2e/auth.spec.ts
  • web/e2e/billing.spec.ts
  • web/e2e/career-dirty-indicator.spec.ts
  • web/e2e/career-field-modal.spec.ts
  • web/e2e/career-import-assist.spec.ts
  • web/e2e/github-link.spec.ts
  • web/e2e/helpers/auth.ts
  • web/e2e/navigation.spec.ts
  • web/e2e/notifications.spec.ts
  • web/eslint.config.js
  • web/functions/_middleware.ts
  • web/index.html
  • web/package.json
  • web/playwright.config.d.ts
  • web/playwright.config.js
  • web/playwright.config.ts
  • web/scripts/audit-check.mjs
  • web/scripts/gen-redirects.mjs
  • web/scripts/gen-types.mjs
  • web/src/App.module.css
  • web/src/App.tsx
  • web/src/api/agent.ts
  • web/src/api/ai-resume.ts
  • web/src/api/auth.ts
  • web/src/api/billing.ts
  • web/src/api/blog.ts
  • web/src/api/client.test.ts
  • web/src/api/client.ts
  • web/src/api/download.ts
  • web/src/api/generated.ts
  • web/src/api/githubLink.ts
  • web/src/api/index.ts
  • web/src/api/master-data.ts
  • web/src/api/notifications.ts
  • web/src/api/paths.ts
  • web/src/api/resumes.ts
  • web/src/api/types.ts
  • web/src/components/CareerUnsavedGuard.test.tsx
  • web/src/components/CareerUnsavedGuard.tsx
  • web/src/components/ConfirmDialog.module.css
  • web/src/components/ConfirmDialog.tsx
  • web/src/components/ErrorBoundary.module.css
  • web/src/components/ErrorBoundary.tsx
  • web/src/components/LoadingOverlay.tsx
  • web/src/components/NotificationBell.module.css
  • web/src/components/NotificationBell.tsx
  • web/src/components/SidebarLayout.tsx
  • web/src/components/UserMenu.module.css
  • web/src/components/UserMenu.tsx
  • web/src/components/agent/AgentModelBadge.module.css
  • web/src/components/agent/AgentModelBadge.tsx
  • web/src/components/agent/ModelSelectModal.module.css
  • web/src/components/agent/ModelSelectModal.test.tsx
  • web/src/components/agent/ModelSelectModal.tsx
  • web/src/components/auth/LoginForm.module.css
  • web/src/components/auth/LoginForm.tsx
  • web/src/components/auth/LoginPromptModal.module.css
  • web/src/components/auth/LoginPromptModal.test.tsx
  • web/src/components/auth/LoginPromptModal.tsx
  • web/src/components/auth/LoginPromptProvider.tsx
  • web/src/components/auth/loginPromptContext.ts
  • web/src/components/billing/BillingView.module.css
  • web/src/components/billing/BillingView.test.tsx
  • web/src/components/billing/BillingView.tsx
  • web/src/components/billing/CreditBalanceBadge.module.css
  • web/src/components/billing/CreditBalanceBadge.tsx
  • web/src/components/billing/CreditBalanceProvider.test.tsx
  • web/src/components/billing/CreditBalanceProvider.tsx
  • web/src/components/billing/CreditPurchaseForm.module.css
  • web/src/components/billing/CreditPurchaseForm.test.tsx
  • web/src/components/billing/CreditPurchaseForm.tsx
  • web/src/components/billing/creditBalanceContext.ts
  • web/src/components/blog/BlogArticleList.tsx
  • web/src/components/blog/BlogPage.module.css
  • web/src/components/blog/BlogPage.tsx
  • web/src/components/blog/BlogPlatformList.tsx
  • web/src/components/blog/BlogScoreCard.module.css
  • web/src/components/blog/BlogScoreCard.tsx
  • web/src/components/forms/AgentChatWidget.module.css
  • web/src/components/forms/AgentChatWidget.test.tsx
  • web/src/components/forms/AgentChatWidget.tsx
  • web/src/components/forms/CareerDiffModal.module.css
  • web/src/components/forms/CareerDiffModal.tsx
  • web/src/components/forms/CareerFormEditors/CareerExperienceEditor.tsx
  • web/src/components/forms/CareerFormEditors/ClientEditor.tsx
  • web/src/components/forms/CareerResumeForm.module.css
  • web/src/components/forms/CareerResumeForm.test.tsx
  • web/src/components/forms/CareerResumeForm.tsx
  • web/src/components/forms/Combobox.module.css
  • web/src/components/forms/Combobox.tsx
  • web/src/components/forms/MarkdownDocumentView.tsx
  • web/src/components/forms/MarkdownFieldModal.tsx
  • web/src/components/forms/MarkdownFieldTrigger.module.css
  • web/src/components/forms/MarkdownFieldTrigger.tsx
  • web/src/components/forms/MarkdownTextarea.module.css
  • web/src/components/forms/MarkdownTextarea.test.tsx
  • web/src/components/forms/MarkdownTextarea.tsx
  • web/src/components/forms/PdfDocumentView.tsx
  • web/src/components/forms/PdfPreviewModal.module.css
  • web/src/components/forms/PdfPreviewModal.tsx
  • web/src/components/forms/ProjectModal.module.css
  • web/src/components/forms/ProjectModal.test.tsx
  • web/src/components/forms/ProjectModal.tsx
  • web/src/components/forms/ResumeForm.module.css
  • web/src/components/forms/ResumeImportConfirmModal.module.css
  • web/src/components/forms/ResumeSourceTracePanel.module.css
  • web/src/components/forms/ResumeSourceTracePanel.tsx
  • web/src/components/forms/documentView.ts
  • web/src/components/forms/sections/CareerBasicInfoSection.tsx
  • web/src/components/forms/sections/CareerExperienceSection.tsx
  • web/src/components/forms/sections/CareerFormToolbar.tsx
  • web/src/components/forms/sections/CareerQualificationsSection.tsx
  • web/src/components/forms/sections/CareerSelfPrSection.tsx
  • web/src/components/github-link/ContributionHeatmap.module.css
  • web/src/components/github-link/ContributionHeatmap.test.tsx
  • web/src/components/github-link/ContributionHeatmap.tsx
  • web/src/components/github-link/GitHubLinkDashboard.module.css
  • web/src/components/github-link/GitHubLinkDashboard.test.tsx
  • web/src/components/github-link/GitHubLinkDashboard.tsx
  • web/src/components/github-link/LanguageBar.module.css
  • web/src/components/github-link/LanguageBar.tsx
  • web/src/components/github-link/TechBar.module.css
  • web/src/components/icons/BellIcon.tsx
  • web/src/components/icons/ChevronDownIcon.tsx
  • web/src/components/icons/EyeIcon.tsx
  • web/src/components/icons/EyeSlashIcon.tsx
  • web/src/components/icons/GitHubMarkIcon.tsx
  • web/src/components/icons/MarkdownDownloadIcon.tsx
  • web/src/components/icons/NoteIcon.tsx
  • web/src/components/icons/PdfDownloadIcon.tsx
  • web/src/components/icons/PlusIcon.tsx
  • web/src/components/icons/QiitaIcon.tsx
  • web/src/components/icons/SaveIcon.tsx
  • web/src/components/icons/TrashIcon.tsx
  • web/src/components/icons/ZennIcon.tsx
  • web/src/components/ui/AsyncTaskLoading.module.css
  • web/src/components/ui/AsyncTaskLoading.tsx
  • web/src/components/ui/CharCount.module.css
  • web/src/components/ui/CharCount.tsx
  • web/src/components/ui/Collapsible.module.css
  • web/src/components/ui/Collapsible.test.tsx
  • web/src/components/ui/Collapsible.tsx
  • web/src/components/ui/DeleteIconButton.module.css
  • web/src/components/ui/DeleteIconButton.test.tsx
  • web/src/components/ui/DeleteIconButton.tsx
  • web/src/components/ui/DirtyDot.module.css
  • web/src/components/ui/DirtyDot.tsx
  • web/src/components/ui/InlineSpinner.module.css
  • web/src/components/ui/InlineSpinner.tsx
  • web/src/components/ui/ModalShell.module.css
  • web/src/components/ui/ModalShell.tsx
  • web/src/components/ui/Skeleton.module.css
  • web/src/components/ui/Skeleton.tsx
  • web/src/components/ui/toast/ToastItem.tsx
  • web/src/components/ui/toast/ToastProvider.test.tsx
  • web/src/components/ui/toast/ToastProvider.tsx
  • web/src/components/ui/toast/ToastViewport.tsx
  • web/src/components/ui/toast/index.ts
  • web/src/components/ui/toast/toast.module.css
  • web/src/components/ui/toast/toastContext.ts
  • web/src/components/ui/toast/useToastBridge.ts
  • web/src/constants.ts
  • web/src/constants/agentModels.test.ts
  • web/src/constants/agentModels.ts
  • web/src/constants/errorCodes.ts
  • web/src/constants/errorMessages.ts
  • web/src/constants/messages.ts
  • web/src/formMappers.ts
  • web/src/formTypes.ts
  • web/src/hooks/blog/useBlogAccountManager.test.ts
  • web/src/hooks/blog/useBlogAccountManager.ts
  • web/src/hooks/career/useAgentChat.test.ts
  • web/src/hooks/career/useAgentChat.ts
  • web/src/hooks/career/useCareerDirty.test.ts
  • web/src/hooks/career/useCareerDirty.ts
  • web/src/hooks/career/useCareerDraftRestore.test.ts
  • web/src/hooks/career/useCareerDraftRestore.ts
  • web/src/hooks/career/useCareerExperienceMutators.test.ts
  • web/src/hooks/career/useCareerExperienceMutators.ts
  • web/src/hooks/career/useCareerExportActions.ts
  • web/src/hooks/career/useCareerFormModals.test.ts
  • web/src/hooks/career/useCareerFormModals.ts
  • web/src/hooks/career/useImportPanelLayout.test.ts
  • web/src/hooks/career/useImportPanelLayout.ts
  • web/src/hooks/career/usePhotoUpload.test.ts
  • web/src/hooks/career/usePhotoUpload.ts
  • web/src/hooks/career/useProjectModalForm.test.ts
  • web/src/hooks/career/useProjectModalForm.ts
  • web/src/hooks/career/useProjectModalState.test.ts
  • web/src/hooks/career/useProjectModalState.ts
  • web/src/hooks/career/useResumeDiffPreview.test.ts
  • web/src/hooks/career/useResumeDiffPreview.ts
  • web/src/hooks/career/useResumeImportAssist.test.ts
  • web/src/hooks/career/useResumeImportAssist.ts
  • web/src/hooks/useAgentUsageSummary.test.ts
  • web/src/hooks/useAgentUsageSummary.ts
  • web/src/hooks/useAsyncTaskPage.test.ts
  • web/src/hooks/useAsyncTaskPage.ts
  • web/src/hooks/useAuthSession.test.ts
  • web/src/hooks/useAuthSession.ts
  • web/src/hooks/useBillingPage.test.ts
  • web/src/hooks/useBillingPage.ts
  • web/src/hooks/useCreditBalance.test.ts
  • web/src/hooks/useCreditBalance.ts
  • web/src/hooks/useDocumentForm.test.ts
  • web/src/hooks/useDocumentForm.ts
  • web/src/hooks/useFocusOnMatch.test.ts
  • web/src/hooks/useFocusOnMatch.ts
  • web/src/hooks/useMasterData.ts
  • web/src/hooks/useModelRates.test.ts
  • web/src/hooks/useModelRates.ts
  • web/src/hooks/useNotifications.test.ts
  • web/src/hooks/useNotifications.ts
  • web/src/hooks/usePdfActions.test.ts
  • web/src/hooks/usePdfActions.ts
  • web/src/hooks/useTaskPolling.test.ts
  • web/src/hooks/useTaskPolling.ts
  • web/src/hooks/useTheme.ts
  • web/src/hooks/useUnsavedChangesWarning.test.ts
  • web/src/hooks/useUnsavedChangesWarning.ts
  • web/src/main.tsx
  • web/src/pages/BillingPage.tsx
  • web/src/pages/BlogPage.tsx
  • web/src/pages/CareerPage.tsx
  • web/src/pages/GitHubCallbackPage.tsx
  • web/src/pages/GitHubLinkPage.tsx
  • web/src/pages/LoginPage.tsx
  • web/src/pages/NotFoundPage.module.css
  • web/src/pages/NotFoundPage.tsx
  • web/src/payloadBuilders.test.ts
  • web/src/payloadBuilders.ts
  • web/src/router/guards.test.tsx
  • web/src/router/guards.tsx
  • web/src/router/index.ts
  • web/src/router/routes.tsx
  • web/src/store/agentModelSlice.test.ts
  • web/src/store/agentModelSlice.ts
  • web/src/store/formCacheSlice.ts
  • web/src/store/index.ts
  • web/src/store/persistConfig.ts
  • web/src/styles.css
  • web/src/styles/shared.module.css
  • web/src/test-setup.ts
  • web/src/test/handlers.ts
  • web/src/test/mswServer.ts
  • web/src/test/renderWithProviders.tsx
  • web/src/utils/agentOperations.test.ts
  • web/src/utils/agentOperations.ts
  • web/src/utils/appError.ts
  • web/src/utils/careerDiff.test.ts
  • web/src/utils/careerDiff.ts
  • web/src/utils/careerDraft.test.ts
  • web/src/utils/careerDraft.ts
  • web/src/utils/careerReview.test.ts
  • web/src/utils/careerReview.ts
  • web/src/utils/creditEstimate.test.ts
  • web/src/utils/creditEstimate.ts
  • web/src/utils/deepEqual.ts
  • web/src/utils/diffHighlight.test.ts
  • web/src/utils/diffHighlight.ts
  • web/src/utils/errorId.ts
  • web/src/utils/markdown.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-frontend-to-web

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の
frontend/ を web/ にリネームし、関連する運用・ツーリングの命名も統一する。
PR #332(マルチプロバイダ LLM)マージ後の main を起点に再構築。
変更:
- ディレクトリ: frontend/ → web/(git rename)
- ビルド/CI: Makefile・ci.yml・.jscpd.json・.gitignore のパスを web/ に追従。
codegen 出力は web/src/api/generated.ts
- make ターゲット: lint-frontend→lint-web, test-frontend→test-web,
build-frontend→build-web 等(CI/docs の呼び出しも追従)
- スクリプト: scripts/lint-frontend-messages.sh → lint-web-messages.sh
- AI ツーリング: .claude/rules/frontend/ → .claude/rules/web/(paths
frontmatter を web/**)、skills FE_refacter/FE_apply → WEB_refacter/WEB_apply
- docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ・README: パス/ターゲット名を追従
- backend: ディレクトリを指すパス参照のみ追従(frontend/src → web/src の
コメント、test_error_code_sync の参照パス)
- web/package.json name: devforge-web
意図的に据え置いたもの:
- ADR(docs/adr/*): 不変の意思決定記録。ファイル名・内容とも変更しない
- backend のクライアントアプリ概念を指す識別子(frontend_url /
get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework
タクソノミ等): ディレクトリではなく「web クライアント」概念のため温存
検証: make ci green(backend lint+test 582、web lint+test 385、build)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yusuke0610
yusuke0610force-pushed the refactor/rename-frontend-to-web branch from 0459326 to 095e54fCompareJune 19, 2026 10:46
@yusuke0610
yusuke0610 merged commit fad71c6 into mainJun 19, 2026
18 checks passed
@yusuke0610
yusuke0610 deleted the refactor/rename-frontend-to-web branch June 20, 2026 06:53
Sign up for freeto 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.

1 participant

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成) - #333

Merged
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web
Jun 19, 2026
Merged

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成)#333
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の frontend/ ディレクトリを web/ にリネームし、関連する運用・ツーリングの命名も統一する。アプリの挙動変更はなく、ディレクトリ名と参照・命名の追従のみ。

変更内容

  • ディレクトリ: frontend/web/(git rename 認識)
  • ビルド/CI: Makefile.github/workflows/ci.yml.jscpd.json.gitignore のパスを web/ に追従。codegen 出力は web/src/api/generated.ts
  • make ターゲット: lint-frontendlint-web / test-frontendtest-web / build-frontendbuild-web 等(CI・docs の呼び出しも追従)
  • スクリプト: scripts/lint-frontend-messages.shlint-web-messages.sh
  • AI ツーリング: .claude/rules/frontend/.claude/rules/web/paths: web/**)、skills FE_refacter/FE_applyWEB_refacter/WEB_apply(参照・レポート接頭辞も追従)
  • docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ: パス・ターゲット名を追従
  • backend: ディレクトリを指すパス参照のみ追従(frontend/srcweb/src のコメント、test_error_code_sync の参照パス)
  • package: web/package.json の name を devforge-web

意図的に据え置いたもの

  • ADR(docs/adr/*: 不変の意思決定記録。ファイル名・内容とも変更なし(0009-frontend-toast-notification.md 等のリンクも保持)
  • backend のクライアント概念識別子: frontend_url / get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework(タクソノミ)等は「web クライアント」概念であり、ディレクトリではないため温存(API 識別子・エラーコード契約の rename は別の code refactor 範囲)

検証

  • make ci green(backend lint+test、web lint+lint-messages+test 377、build)

マージ時の注意

🤖 Generated with Claude Code

@coderabbitai

coderabbitaiBot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c9564d94-e388-4886-bf82-c48d3bfd6050

📥 Commits

Reviewing files that changed from the base of the PR and between 90dc11b and 095e54f.

⛔ Files ignored due to path filters (1)
  • web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • .claude/CLAUDE.md
  • .claude/rules/backend/auth-security.md
  • .claude/rules/common/duplication.md
  • .claude/rules/infra/opentofu.md
  • .claude/rules/infra/test.md
  • .claude/rules/security.md
  • .claude/rules/web/architecture.md
  • .claude/rules/web/component-design.md
  • .claude/rules/web/messages.md
  • .claude/rules/web/test.md
  • .claude/rules/web/typescript.md
  • .claude/skills/SEC_apply/SKILL.md
  • .claude/skills/SEC_review/SKILL.md
  • .claude/skills/WEB_apply/SKILL.md
  • .claude/skills/WEB_refacter/SKILL.md
  • .claude/skills/XR_apply/SKILL.md
  • .claude/skills/XR_refacter/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .gitignore
  • .jscpd.json
  • AGENTS.md
  • Makefile
  • backend/app/core/errors.py
  • backend/app/schemas/billing.py
  • backend/app/schemas/blog.py
  • backend/app/schemas/master_data.py
  • backend/app/schemas/resume.py
  • backend/scripts/export_openapi.py
  • backend/tests/test_error_code_sync.py
  • docs/deployment.md
  • docs/development.md
  • scripts/lint-web-messages.sh
  • web/.npmrc
  • web/.prettierignore
  • web/.prettierrc
  • web/e2e/agent-chat.spec.ts
  • web/e2e/auth.spec.ts
  • web/e2e/billing.spec.ts
  • web/e2e/career-dirty-indicator.spec.ts
  • web/e2e/career-field-modal.spec.ts
  • web/e2e/career-import-assist.spec.ts
  • web/e2e/github-link.spec.ts
  • web/e2e/helpers/auth.ts
  • web/e2e/navigation.spec.ts
  • web/e2e/notifications.spec.ts
  • web/eslint.config.js
  • web/functions/_middleware.ts
  • web/index.html
  • web/package.json
  • web/playwright.config.d.ts
  • web/playwright.config.js
  • web/playwright.config.ts
  • web/scripts/audit-check.mjs
  • web/scripts/gen-redirects.mjs
  • web/scripts/gen-types.mjs
  • web/src/App.module.css
  • web/src/App.tsx
  • web/src/api/agent.ts
  • web/src/api/ai-resume.ts
  • web/src/api/auth.ts
  • web/src/api/billing.ts
  • web/src/api/blog.ts
  • web/src/api/client.test.ts
  • web/src/api/client.ts
  • web/src/api/download.ts
  • web/src/api/generated.ts
  • web/src/api/githubLink.ts
  • web/src/api/index.ts
  • web/src/api/master-data.ts
  • web/src/api/notifications.ts
  • web/src/api/paths.ts
  • web/src/api/resumes.ts
  • web/src/api/types.ts
  • web/src/components/CareerUnsavedGuard.test.tsx
  • web/src/components/CareerUnsavedGuard.tsx
  • web/src/components/ConfirmDialog.module.css
  • web/src/components/ConfirmDialog.tsx
  • web/src/components/ErrorBoundary.module.css
  • web/src/components/ErrorBoundary.tsx
  • web/src/components/LoadingOverlay.tsx
  • web/src/components/NotificationBell.module.css
  • web/src/components/NotificationBell.tsx
  • web/src/components/SidebarLayout.tsx
  • web/src/components/UserMenu.module.css
  • web/src/components/UserMenu.tsx
  • web/src/components/agent/AgentModelBadge.module.css
  • web/src/components/agent/AgentModelBadge.tsx
  • web/src/components/agent/ModelSelectModal.module.css
  • web/src/components/agent/ModelSelectModal.test.tsx
  • web/src/components/agent/ModelSelectModal.tsx
  • web/src/components/auth/LoginForm.module.css
  • web/src/components/auth/LoginForm.tsx
  • web/src/components/auth/LoginPromptModal.module.css
  • web/src/components/auth/LoginPromptModal.test.tsx
  • web/src/components/auth/LoginPromptModal.tsx
  • web/src/components/auth/LoginPromptProvider.tsx
  • web/src/components/auth/loginPromptContext.ts
  • web/src/components/billing/BillingView.module.css
  • web/src/components/billing/BillingView.test.tsx
  • web/src/components/billing/BillingView.tsx
  • web/src/components/billing/CreditBalanceBadge.module.css
  • web/src/components/billing/CreditBalanceBadge.tsx
  • web/src/components/billing/CreditBalanceProvider.test.tsx
  • web/src/components/billing/CreditBalanceProvider.tsx
  • web/src/components/billing/CreditPurchaseForm.module.css
  • web/src/components/billing/CreditPurchaseForm.test.tsx
  • web/src/components/billing/CreditPurchaseForm.tsx
  • web/src/components/billing/creditBalanceContext.ts
  • web/src/components/blog/BlogArticleList.tsx
  • web/src/components/blog/BlogPage.module.css
  • web/src/components/blog/BlogPage.tsx
  • web/src/components/blog/BlogPlatformList.tsx
  • web/src/components/blog/BlogScoreCard.module.css
  • web/src/components/blog/BlogScoreCard.tsx
  • web/src/components/forms/AgentChatWidget.module.css
  • web/src/components/forms/AgentChatWidget.test.tsx
  • web/src/components/forms/AgentChatWidget.tsx
  • web/src/components/forms/CareerDiffModal.module.css
  • web/src/components/forms/CareerDiffModal.tsx
  • web/src/components/forms/CareerFormEditors/CareerExperienceEditor.tsx
  • web/src/components/forms/CareerFormEditors/ClientEditor.tsx
  • web/src/components/forms/CareerResumeForm.module.css
  • web/src/components/forms/CareerResumeForm.test.tsx
  • web/src/components/forms/CareerResumeForm.tsx
  • web/src/components/forms/Combobox.module.css
  • web/src/components/forms/Combobox.tsx
  • web/src/components/forms/MarkdownDocumentView.tsx
  • web/src/components/forms/MarkdownFieldModal.tsx
  • web/src/components/forms/MarkdownFieldTrigger.module.css
  • web/src/components/forms/MarkdownFieldTrigger.tsx
  • web/src/components/forms/MarkdownTextarea.module.css
  • web/src/components/forms/MarkdownTextarea.test.tsx
  • web/src/components/forms/MarkdownTextarea.tsx
  • web/src/components/forms/PdfDocumentView.tsx
  • web/src/components/forms/PdfPreviewModal.module.css
  • web/src/components/forms/PdfPreviewModal.tsx
  • web/src/components/forms/ProjectModal.module.css
  • web/src/components/forms/ProjectModal.test.tsx
  • web/src/components/forms/ProjectModal.tsx
  • web/src/components/forms/ResumeForm.module.css
  • web/src/components/forms/ResumeImportConfirmModal.module.css
  • web/src/components/forms/ResumeSourceTracePanel.module.css
  • web/src/components/forms/ResumeSourceTracePanel.tsx
  • web/src/components/forms/documentView.ts
  • web/src/components/forms/sections/CareerBasicInfoSection.tsx
  • web/src/components/forms/sections/CareerExperienceSection.tsx
  • web/src/components/forms/sections/CareerFormToolbar.tsx
  • web/src/components/forms/sections/CareerQualificationsSection.tsx
  • web/src/components/forms/sections/CareerSelfPrSection.tsx
  • web/src/components/github-link/ContributionHeatmap.module.css
  • web/src/components/github-link/ContributionHeatmap.test.tsx
  • web/src/components/github-link/ContributionHeatmap.tsx
  • web/src/components/github-link/GitHubLinkDashboard.module.css
  • web/src/components/github-link/GitHubLinkDashboard.test.tsx
  • web/src/components/github-link/GitHubLinkDashboard.tsx
  • web/src/components/github-link/LanguageBar.module.css
  • web/src/components/github-link/LanguageBar.tsx
  • web/src/components/github-link/TechBar.module.css
  • web/src/components/icons/BellIcon.tsx
  • web/src/components/icons/ChevronDownIcon.tsx
  • web/src/components/icons/EyeIcon.tsx
  • web/src/components/icons/EyeSlashIcon.tsx
  • web/src/components/icons/GitHubMarkIcon.tsx
  • web/src/components/icons/MarkdownDownloadIcon.tsx
  • web/src/components/icons/NoteIcon.tsx
  • web/src/components/icons/PdfDownloadIcon.tsx
  • web/src/components/icons/PlusIcon.tsx
  • web/src/components/icons/QiitaIcon.tsx
  • web/src/components/icons/SaveIcon.tsx
  • web/src/components/icons/TrashIcon.tsx
  • web/src/components/icons/ZennIcon.tsx
  • web/src/components/ui/AsyncTaskLoading.module.css
  • web/src/components/ui/AsyncTaskLoading.tsx
  • web/src/components/ui/CharCount.module.css
  • web/src/components/ui/CharCount.tsx
  • web/src/components/ui/Collapsible.module.css
  • web/src/components/ui/Collapsible.test.tsx
  • web/src/components/ui/Collapsible.tsx
  • web/src/components/ui/DeleteIconButton.module.css
  • web/src/components/ui/DeleteIconButton.test.tsx
  • web/src/components/ui/DeleteIconButton.tsx
  • web/src/components/ui/DirtyDot.module.css
  • web/src/components/ui/DirtyDot.tsx
  • web/src/components/ui/InlineSpinner.module.css
  • web/src/components/ui/InlineSpinner.tsx
  • web/src/components/ui/ModalShell.module.css
  • web/src/components/ui/ModalShell.tsx
  • web/src/components/ui/Skeleton.module.css
  • web/src/components/ui/Skeleton.tsx
  • web/src/components/ui/toast/ToastItem.tsx
  • web/src/components/ui/toast/ToastProvider.test.tsx
  • web/src/components/ui/toast/ToastProvider.tsx
  • web/src/components/ui/toast/ToastViewport.tsx
  • web/src/components/ui/toast/index.ts
  • web/src/components/ui/toast/toast.module.css
  • web/src/components/ui/toast/toastContext.ts
  • web/src/components/ui/toast/useToastBridge.ts
  • web/src/constants.ts
  • web/src/constants/agentModels.test.ts
  • web/src/constants/agentModels.ts
  • web/src/constants/errorCodes.ts
  • web/src/constants/errorMessages.ts
  • web/src/constants/messages.ts
  • web/src/formMappers.ts
  • web/src/formTypes.ts
  • web/src/hooks/blog/useBlogAccountManager.test.ts
  • web/src/hooks/blog/useBlogAccountManager.ts
  • web/src/hooks/career/useAgentChat.test.ts
  • web/src/hooks/career/useAgentChat.ts
  • web/src/hooks/career/useCareerDirty.test.ts
  • web/src/hooks/career/useCareerDirty.ts
  • web/src/hooks/career/useCareerDraftRestore.test.ts
  • web/src/hooks/career/useCareerDraftRestore.ts
  • web/src/hooks/career/useCareerExperienceMutators.test.ts
  • web/src/hooks/career/useCareerExperienceMutators.ts
  • web/src/hooks/career/useCareerExportActions.ts
  • web/src/hooks/career/useCareerFormModals.test.ts
  • web/src/hooks/career/useCareerFormModals.ts
  • web/src/hooks/career/useImportPanelLayout.test.ts
  • web/src/hooks/career/useImportPanelLayout.ts
  • web/src/hooks/career/usePhotoUpload.test.ts
  • web/src/hooks/career/usePhotoUpload.ts
  • web/src/hooks/career/useProjectModalForm.test.ts
  • web/src/hooks/career/useProjectModalForm.ts
  • web/src/hooks/career/useProjectModalState.test.ts
  • web/src/hooks/career/useProjectModalState.ts
  • web/src/hooks/career/useResumeDiffPreview.test.ts
  • web/src/hooks/career/useResumeDiffPreview.ts
  • web/src/hooks/career/useResumeImportAssist.test.ts
  • web/src/hooks/career/useResumeImportAssist.ts
  • web/src/hooks/useAgentUsageSummary.test.ts
  • web/src/hooks/useAgentUsageSummary.ts
  • web/src/hooks/useAsyncTaskPage.test.ts
  • web/src/hooks/useAsyncTaskPage.ts
  • web/src/hooks/useAuthSession.test.ts
  • web/src/hooks/useAuthSession.ts
  • web/src/hooks/useBillingPage.test.ts
  • web/src/hooks/useBillingPage.ts
  • web/src/hooks/useCreditBalance.test.ts
  • web/src/hooks/useCreditBalance.ts
  • web/src/hooks/useDocumentForm.test.ts
  • web/src/hooks/useDocumentForm.ts
  • web/src/hooks/useFocusOnMatch.test.ts
  • web/src/hooks/useFocusOnMatch.ts
  • web/src/hooks/useMasterData.ts
  • web/src/hooks/useModelRates.test.ts
  • web/src/hooks/useModelRates.ts
  • web/src/hooks/useNotifications.test.ts
  • web/src/hooks/useNotifications.ts
  • web/src/hooks/usePdfActions.test.ts
  • web/src/hooks/usePdfActions.ts
  • web/src/hooks/useTaskPolling.test.ts
  • web/src/hooks/useTaskPolling.ts
  • web/src/hooks/useTheme.ts
  • web/src/hooks/useUnsavedChangesWarning.test.ts
  • web/src/hooks/useUnsavedChangesWarning.ts
  • web/src/main.tsx
  • web/src/pages/BillingPage.tsx
  • web/src/pages/BlogPage.tsx
  • web/src/pages/CareerPage.tsx
  • web/src/pages/GitHubCallbackPage.tsx
  • web/src/pages/GitHubLinkPage.tsx
  • web/src/pages/LoginPage.tsx
  • web/src/pages/NotFoundPage.module.css
  • web/src/pages/NotFoundPage.tsx
  • web/src/payloadBuilders.test.ts
  • web/src/payloadBuilders.ts
  • web/src/router/guards.test.tsx
  • web/src/router/guards.tsx
  • web/src/router/index.ts
  • web/src/router/routes.tsx
  • web/src/store/agentModelSlice.test.ts
  • web/src/store/agentModelSlice.ts
  • web/src/store/formCacheSlice.ts
  • web/src/store/index.ts
  • web/src/store/persistConfig.ts
  • web/src/styles.css
  • web/src/styles/shared.module.css
  • web/src/test-setup.ts
  • web/src/test/handlers.ts
  • web/src/test/mswServer.ts
  • web/src/test/renderWithProviders.tsx
  • web/src/utils/agentOperations.test.ts
  • web/src/utils/agentOperations.ts
  • web/src/utils/appError.ts
  • web/src/utils/careerDiff.test.ts
  • web/src/utils/careerDiff.ts
  • web/src/utils/careerDraft.test.ts
  • web/src/utils/careerDraft.ts
  • web/src/utils/careerReview.test.ts
  • web/src/utils/careerReview.ts
  • web/src/utils/creditEstimate.test.ts
  • web/src/utils/creditEstimate.ts
  • web/src/utils/deepEqual.ts
  • web/src/utils/diffHighlight.test.ts
  • web/src/utils/diffHighlight.ts
  • web/src/utils/errorId.ts
  • web/src/utils/markdown.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-frontend-to-web

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の
frontend/ を web/ にリネームし、関連する運用・ツーリングの命名も統一する。
PR #332(マルチプロバイダ LLM)マージ後の main を起点に再構築。
変更:
- ディレクトリ: frontend/ → web/(git rename)
- ビルド/CI: Makefile・ci.yml・.jscpd.json・.gitignore のパスを web/ に追従。
codegen 出力は web/src/api/generated.ts
- make ターゲット: lint-frontend→lint-web, test-frontend→test-web,
build-frontend→build-web 等(CI/docs の呼び出しも追従)
- スクリプト: scripts/lint-frontend-messages.sh → lint-web-messages.sh
- AI ツーリング: .claude/rules/frontend/ → .claude/rules/web/(paths
frontmatter を web/**)、skills FE_refacter/FE_apply → WEB_refacter/WEB_apply
- docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ・README: パス/ターゲット名を追従
- backend: ディレクトリを指すパス参照のみ追従(frontend/src → web/src の
コメント、test_error_code_sync の参照パス)
- web/package.json name: devforge-web
意図的に据え置いたもの:
- ADR(docs/adr/*): 不変の意思決定記録。ファイル名・内容とも変更しない
- backend のクライアントアプリ概念を指す識別子(frontend_url /
get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework
タクソノミ等): ディレクトリではなく「web クライアント」概念のため温存
検証: make ci green(backend lint+test 582、web lint+test 385、build)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yusuke0610
yusuke0610force-pushed the refactor/rename-frontend-to-web branch from 0459326 to 095e54fCompareJune 19, 2026 10:46
@yusuke0610
yusuke0610 merged commit fad71c6 into mainJun 19, 2026
18 checks passed
@yusuke0610
yusuke0610 deleted the refactor/rename-frontend-to-web branch June 20, 2026 06:53
Sign up for freeto 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.

1 participant

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成) - #333

Merged
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web
Jun 19, 2026
Merged

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成)#333
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の frontend/ ディレクトリを web/ にリネームし、関連する運用・ツーリングの命名も統一する。アプリの挙動変更はなく、ディレクトリ名と参照・命名の追従のみ。

変更内容

  • ディレクトリ: frontend/web/(git rename 認識)
  • ビルド/CI: Makefile.github/workflows/ci.yml.jscpd.json.gitignore のパスを web/ に追従。codegen 出力は web/src/api/generated.ts
  • make ターゲット: lint-frontendlint-web / test-frontendtest-web / build-frontendbuild-web 等(CI・docs の呼び出しも追従)
  • スクリプト: scripts/lint-frontend-messages.shlint-web-messages.sh
  • AI ツーリング: .claude/rules/frontend/.claude/rules/web/paths: web/**)、skills FE_refacter/FE_applyWEB_refacter/WEB_apply(参照・レポート接頭辞も追従)
  • docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ: パス・ターゲット名を追従
  • backend: ディレクトリを指すパス参照のみ追従(frontend/srcweb/src のコメント、test_error_code_sync の参照パス)
  • package: web/package.json の name を devforge-web

意図的に据え置いたもの

  • ADR(docs/adr/*: 不変の意思決定記録。ファイル名・内容とも変更なし(0009-frontend-toast-notification.md 等のリンクも保持)
  • backend のクライアント概念識別子: frontend_url / get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework(タクソノミ)等は「web クライアント」概念であり、ディレクトリではないため温存(API 識別子・エラーコード契約の rename は別の code refactor 範囲)

検証

  • make ci green(backend lint+test、web lint+lint-messages+test 377、build)

マージ時の注意

🤖 Generated with Claude Code

@coderabbitai

coderabbitaiBot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c9564d94-e388-4886-bf82-c48d3bfd6050

📥 Commits

Reviewing files that changed from the base of the PR and between 90dc11b and 095e54f.

⛔ Files ignored due to path filters (1)
  • web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • .claude/CLAUDE.md
  • .claude/rules/backend/auth-security.md
  • .claude/rules/common/duplication.md
  • .claude/rules/infra/opentofu.md
  • .claude/rules/infra/test.md
  • .claude/rules/security.md
  • .claude/rules/web/architecture.md
  • .claude/rules/web/component-design.md
  • .claude/rules/web/messages.md
  • .claude/rules/web/test.md
  • .claude/rules/web/typescript.md
  • .claude/skills/SEC_apply/SKILL.md
  • .claude/skills/SEC_review/SKILL.md
  • .claude/skills/WEB_apply/SKILL.md
  • .claude/skills/WEB_refacter/SKILL.md
  • .claude/skills/XR_apply/SKILL.md
  • .claude/skills/XR_refacter/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .gitignore
  • .jscpd.json
  • AGENTS.md
  • Makefile
  • backend/app/core/errors.py
  • backend/app/schemas/billing.py
  • backend/app/schemas/blog.py
  • backend/app/schemas/master_data.py
  • backend/app/schemas/resume.py
  • backend/scripts/export_openapi.py
  • backend/tests/test_error_code_sync.py
  • docs/deployment.md
  • docs/development.md
  • scripts/lint-web-messages.sh
  • web/.npmrc
  • web/.prettierignore
  • web/.prettierrc
  • web/e2e/agent-chat.spec.ts
  • web/e2e/auth.spec.ts
  • web/e2e/billing.spec.ts
  • web/e2e/career-dirty-indicator.spec.ts
  • web/e2e/career-field-modal.spec.ts
  • web/e2e/career-import-assist.spec.ts
  • web/e2e/github-link.spec.ts
  • web/e2e/helpers/auth.ts
  • web/e2e/navigation.spec.ts
  • web/e2e/notifications.spec.ts
  • web/eslint.config.js
  • web/functions/_middleware.ts
  • web/index.html
  • web/package.json
  • web/playwright.config.d.ts
  • web/playwright.config.js
  • web/playwright.config.ts
  • web/scripts/audit-check.mjs
  • web/scripts/gen-redirects.mjs
  • web/scripts/gen-types.mjs
  • web/src/App.module.css
  • web/src/App.tsx
  • web/src/api/agent.ts
  • web/src/api/ai-resume.ts
  • web/src/api/auth.ts
  • web/src/api/billing.ts
  • web/src/api/blog.ts
  • web/src/api/client.test.ts
  • web/src/api/client.ts
  • web/src/api/download.ts
  • web/src/api/generated.ts
  • web/src/api/githubLink.ts
  • web/src/api/index.ts
  • web/src/api/master-data.ts
  • web/src/api/notifications.ts
  • web/src/api/paths.ts
  • web/src/api/resumes.ts
  • web/src/api/types.ts
  • web/src/components/CareerUnsavedGuard.test.tsx
  • web/src/components/CareerUnsavedGuard.tsx
  • web/src/components/ConfirmDialog.module.css
  • web/src/components/ConfirmDialog.tsx
  • web/src/components/ErrorBoundary.module.css
  • web/src/components/ErrorBoundary.tsx
  • web/src/components/LoadingOverlay.tsx
  • web/src/components/NotificationBell.module.css
  • web/src/components/NotificationBell.tsx
  • web/src/components/SidebarLayout.tsx
  • web/src/components/UserMenu.module.css
  • web/src/components/UserMenu.tsx
  • web/src/components/agent/AgentModelBadge.module.css
  • web/src/components/agent/AgentModelBadge.tsx
  • web/src/components/agent/ModelSelectModal.module.css
  • web/src/components/agent/ModelSelectModal.test.tsx
  • web/src/components/agent/ModelSelectModal.tsx
  • web/src/components/auth/LoginForm.module.css
  • web/src/components/auth/LoginForm.tsx
  • web/src/components/auth/LoginPromptModal.module.css
  • web/src/components/auth/LoginPromptModal.test.tsx
  • web/src/components/auth/LoginPromptModal.tsx
  • web/src/components/auth/LoginPromptProvider.tsx
  • web/src/components/auth/loginPromptContext.ts
  • web/src/components/billing/BillingView.module.css
  • web/src/components/billing/BillingView.test.tsx
  • web/src/components/billing/BillingView.tsx
  • web/src/components/billing/CreditBalanceBadge.module.css
  • web/src/components/billing/CreditBalanceBadge.tsx
  • web/src/components/billing/CreditBalanceProvider.test.tsx
  • web/src/components/billing/CreditBalanceProvider.tsx
  • web/src/components/billing/CreditPurchaseForm.module.css
  • web/src/components/billing/CreditPurchaseForm.test.tsx
  • web/src/components/billing/CreditPurchaseForm.tsx
  • web/src/components/billing/creditBalanceContext.ts
  • web/src/components/blog/BlogArticleList.tsx
  • web/src/components/blog/BlogPage.module.css
  • web/src/components/blog/BlogPage.tsx
  • web/src/components/blog/BlogPlatformList.tsx
  • web/src/components/blog/BlogScoreCard.module.css
  • web/src/components/blog/BlogScoreCard.tsx
  • web/src/components/forms/AgentChatWidget.module.css
  • web/src/components/forms/AgentChatWidget.test.tsx
  • web/src/components/forms/AgentChatWidget.tsx
  • web/src/components/forms/CareerDiffModal.module.css
  • web/src/components/forms/CareerDiffModal.tsx
  • web/src/components/forms/CareerFormEditors/CareerExperienceEditor.tsx
  • web/src/components/forms/CareerFormEditors/ClientEditor.tsx
  • web/src/components/forms/CareerResumeForm.module.css
  • web/src/components/forms/CareerResumeForm.test.tsx
  • web/src/components/forms/CareerResumeForm.tsx
  • web/src/components/forms/Combobox.module.css
  • web/src/components/forms/Combobox.tsx
  • web/src/components/forms/MarkdownDocumentView.tsx
  • web/src/components/forms/MarkdownFieldModal.tsx
  • web/src/components/forms/MarkdownFieldTrigger.module.css
  • web/src/components/forms/MarkdownFieldTrigger.tsx
  • web/src/components/forms/MarkdownTextarea.module.css
  • web/src/components/forms/MarkdownTextarea.test.tsx
  • web/src/components/forms/MarkdownTextarea.tsx
  • web/src/components/forms/PdfDocumentView.tsx
  • web/src/components/forms/PdfPreviewModal.module.css
  • web/src/components/forms/PdfPreviewModal.tsx
  • web/src/components/forms/ProjectModal.module.css
  • web/src/components/forms/ProjectModal.test.tsx
  • web/src/components/forms/ProjectModal.tsx
  • web/src/components/forms/ResumeForm.module.css
  • web/src/components/forms/ResumeImportConfirmModal.module.css
  • web/src/components/forms/ResumeSourceTracePanel.module.css
  • web/src/components/forms/ResumeSourceTracePanel.tsx
  • web/src/components/forms/documentView.ts
  • web/src/components/forms/sections/CareerBasicInfoSection.tsx
  • web/src/components/forms/sections/CareerExperienceSection.tsx
  • web/src/components/forms/sections/CareerFormToolbar.tsx
  • web/src/components/forms/sections/CareerQualificationsSection.tsx
  • web/src/components/forms/sections/CareerSelfPrSection.tsx
  • web/src/components/github-link/ContributionHeatmap.module.css
  • web/src/components/github-link/ContributionHeatmap.test.tsx
  • web/src/components/github-link/ContributionHeatmap.tsx
  • web/src/components/github-link/GitHubLinkDashboard.module.css
  • web/src/components/github-link/GitHubLinkDashboard.test.tsx
  • web/src/components/github-link/GitHubLinkDashboard.tsx
  • web/src/components/github-link/LanguageBar.module.css
  • web/src/components/github-link/LanguageBar.tsx
  • web/src/components/github-link/TechBar.module.css
  • web/src/components/icons/BellIcon.tsx
  • web/src/components/icons/ChevronDownIcon.tsx
  • web/src/components/icons/EyeIcon.tsx
  • web/src/components/icons/EyeSlashIcon.tsx
  • web/src/components/icons/GitHubMarkIcon.tsx
  • web/src/components/icons/MarkdownDownloadIcon.tsx
  • web/src/components/icons/NoteIcon.tsx
  • web/src/components/icons/PdfDownloadIcon.tsx
  • web/src/components/icons/PlusIcon.tsx
  • web/src/components/icons/QiitaIcon.tsx
  • web/src/components/icons/SaveIcon.tsx
  • web/src/components/icons/TrashIcon.tsx
  • web/src/components/icons/ZennIcon.tsx
  • web/src/components/ui/AsyncTaskLoading.module.css
  • web/src/components/ui/AsyncTaskLoading.tsx
  • web/src/components/ui/CharCount.module.css
  • web/src/components/ui/CharCount.tsx
  • web/src/components/ui/Collapsible.module.css
  • web/src/components/ui/Collapsible.test.tsx
  • web/src/components/ui/Collapsible.tsx
  • web/src/components/ui/DeleteIconButton.module.css
  • web/src/components/ui/DeleteIconButton.test.tsx
  • web/src/components/ui/DeleteIconButton.tsx
  • web/src/components/ui/DirtyDot.module.css
  • web/src/components/ui/DirtyDot.tsx
  • web/src/components/ui/InlineSpinner.module.css
  • web/src/components/ui/InlineSpinner.tsx
  • web/src/components/ui/ModalShell.module.css
  • web/src/components/ui/ModalShell.tsx
  • web/src/components/ui/Skeleton.module.css
  • web/src/components/ui/Skeleton.tsx
  • web/src/components/ui/toast/ToastItem.tsx
  • web/src/components/ui/toast/ToastProvider.test.tsx
  • web/src/components/ui/toast/ToastProvider.tsx
  • web/src/components/ui/toast/ToastViewport.tsx
  • web/src/components/ui/toast/index.ts
  • web/src/components/ui/toast/toast.module.css
  • web/src/components/ui/toast/toastContext.ts
  • web/src/components/ui/toast/useToastBridge.ts
  • web/src/constants.ts
  • web/src/constants/agentModels.test.ts
  • web/src/constants/agentModels.ts
  • web/src/constants/errorCodes.ts
  • web/src/constants/errorMessages.ts
  • web/src/constants/messages.ts
  • web/src/formMappers.ts
  • web/src/formTypes.ts
  • web/src/hooks/blog/useBlogAccountManager.test.ts
  • web/src/hooks/blog/useBlogAccountManager.ts
  • web/src/hooks/career/useAgentChat.test.ts
  • web/src/hooks/career/useAgentChat.ts
  • web/src/hooks/career/useCareerDirty.test.ts
  • web/src/hooks/career/useCareerDirty.ts
  • web/src/hooks/career/useCareerDraftRestore.test.ts
  • web/src/hooks/career/useCareerDraftRestore.ts
  • web/src/hooks/career/useCareerExperienceMutators.test.ts
  • web/src/hooks/career/useCareerExperienceMutators.ts
  • web/src/hooks/career/useCareerExportActions.ts
  • web/src/hooks/career/useCareerFormModals.test.ts
  • web/src/hooks/career/useCareerFormModals.ts
  • web/src/hooks/career/useImportPanelLayout.test.ts
  • web/src/hooks/career/useImportPanelLayout.ts
  • web/src/hooks/career/usePhotoUpload.test.ts
  • web/src/hooks/career/usePhotoUpload.ts
  • web/src/hooks/career/useProjectModalForm.test.ts
  • web/src/hooks/career/useProjectModalForm.ts
  • web/src/hooks/career/useProjectModalState.test.ts
  • web/src/hooks/career/useProjectModalState.ts
  • web/src/hooks/career/useResumeDiffPreview.test.ts
  • web/src/hooks/career/useResumeDiffPreview.ts
  • web/src/hooks/career/useResumeImportAssist.test.ts
  • web/src/hooks/career/useResumeImportAssist.ts
  • web/src/hooks/useAgentUsageSummary.test.ts
  • web/src/hooks/useAgentUsageSummary.ts
  • web/src/hooks/useAsyncTaskPage.test.ts
  • web/src/hooks/useAsyncTaskPage.ts
  • web/src/hooks/useAuthSession.test.ts
  • web/src/hooks/useAuthSession.ts
  • web/src/hooks/useBillingPage.test.ts
  • web/src/hooks/useBillingPage.ts
  • web/src/hooks/useCreditBalance.test.ts
  • web/src/hooks/useCreditBalance.ts
  • web/src/hooks/useDocumentForm.test.ts
  • web/src/hooks/useDocumentForm.ts
  • web/src/hooks/useFocusOnMatch.test.ts
  • web/src/hooks/useFocusOnMatch.ts
  • web/src/hooks/useMasterData.ts
  • web/src/hooks/useModelRates.test.ts
  • web/src/hooks/useModelRates.ts
  • web/src/hooks/useNotifications.test.ts
  • web/src/hooks/useNotifications.ts
  • web/src/hooks/usePdfActions.test.ts
  • web/src/hooks/usePdfActions.ts
  • web/src/hooks/useTaskPolling.test.ts
  • web/src/hooks/useTaskPolling.ts
  • web/src/hooks/useTheme.ts
  • web/src/hooks/useUnsavedChangesWarning.test.ts
  • web/src/hooks/useUnsavedChangesWarning.ts
  • web/src/main.tsx
  • web/src/pages/BillingPage.tsx
  • web/src/pages/BlogPage.tsx
  • web/src/pages/CareerPage.tsx
  • web/src/pages/GitHubCallbackPage.tsx
  • web/src/pages/GitHubLinkPage.tsx
  • web/src/pages/LoginPage.tsx
  • web/src/pages/NotFoundPage.module.css
  • web/src/pages/NotFoundPage.tsx
  • web/src/payloadBuilders.test.ts
  • web/src/payloadBuilders.ts
  • web/src/router/guards.test.tsx
  • web/src/router/guards.tsx
  • web/src/router/index.ts
  • web/src/router/routes.tsx
  • web/src/store/agentModelSlice.test.ts
  • web/src/store/agentModelSlice.ts
  • web/src/store/formCacheSlice.ts
  • web/src/store/index.ts
  • web/src/store/persistConfig.ts
  • web/src/styles.css
  • web/src/styles/shared.module.css
  • web/src/test-setup.ts
  • web/src/test/handlers.ts
  • web/src/test/mswServer.ts
  • web/src/test/renderWithProviders.tsx
  • web/src/utils/agentOperations.test.ts
  • web/src/utils/agentOperations.ts
  • web/src/utils/appError.ts
  • web/src/utils/careerDiff.test.ts
  • web/src/utils/careerDiff.ts
  • web/src/utils/careerDraft.test.ts
  • web/src/utils/careerDraft.ts
  • web/src/utils/careerReview.test.ts
  • web/src/utils/careerReview.ts
  • web/src/utils/creditEstimate.test.ts
  • web/src/utils/creditEstimate.ts
  • web/src/utils/deepEqual.ts
  • web/src/utils/diffHighlight.test.ts
  • web/src/utils/diffHighlight.ts
  • web/src/utils/errorId.ts
  • web/src/utils/markdown.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-frontend-to-web

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の
frontend/ を web/ にリネームし、関連する運用・ツーリングの命名も統一する。
PR #332(マルチプロバイダ LLM)マージ後の main を起点に再構築。
変更:
- ディレクトリ: frontend/ → web/(git rename)
- ビルド/CI: Makefile・ci.yml・.jscpd.json・.gitignore のパスを web/ に追従。
codegen 出力は web/src/api/generated.ts
- make ターゲット: lint-frontend→lint-web, test-frontend→test-web,
build-frontend→build-web 等(CI/docs の呼び出しも追従)
- スクリプト: scripts/lint-frontend-messages.sh → lint-web-messages.sh
- AI ツーリング: .claude/rules/frontend/ → .claude/rules/web/(paths
frontmatter を web/**)、skills FE_refacter/FE_apply → WEB_refacter/WEB_apply
- docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ・README: パス/ターゲット名を追従
- backend: ディレクトリを指すパス参照のみ追従(frontend/src → web/src の
コメント、test_error_code_sync の参照パス)
- web/package.json name: devforge-web
意図的に据え置いたもの:
- ADR(docs/adr/*): 不変の意思決定記録。ファイル名・内容とも変更しない
- backend のクライアントアプリ概念を指す識別子(frontend_url /
get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework
タクソノミ等): ディレクトリではなく「web クライアント」概念のため温存
検証: make ci green(backend lint+test 582、web lint+test 385、build)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yusuke0610
yusuke0610force-pushed the refactor/rename-frontend-to-web branch from 0459326 to 095e54fCompareJune 19, 2026 10:46
@yusuke0610
yusuke0610 merged commit fad71c6 into mainJun 19, 2026
18 checks passed
@yusuke0610
yusuke0610 deleted the refactor/rename-frontend-to-web branch June 20, 2026 06:53
Sign up for freeto 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.

1 participant

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成) - #333

Merged
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web
Jun 19, 2026
Merged

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成)#333
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の frontend/ ディレクトリを web/ にリネームし、関連する運用・ツーリングの命名も統一する。アプリの挙動変更はなく、ディレクトリ名と参照・命名の追従のみ。

変更内容

  • ディレクトリ: frontend/web/(git rename 認識)
  • ビルド/CI: Makefile.github/workflows/ci.yml.jscpd.json.gitignore のパスを web/ に追従。codegen 出力は web/src/api/generated.ts
  • make ターゲット: lint-frontendlint-web / test-frontendtest-web / build-frontendbuild-web 等(CI・docs の呼び出しも追従)
  • スクリプト: scripts/lint-frontend-messages.shlint-web-messages.sh
  • AI ツーリング: .claude/rules/frontend/.claude/rules/web/paths: web/**)、skills FE_refacter/FE_applyWEB_refacter/WEB_apply(参照・レポート接頭辞も追従)
  • docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ: パス・ターゲット名を追従
  • backend: ディレクトリを指すパス参照のみ追従(frontend/srcweb/src のコメント、test_error_code_sync の参照パス)
  • package: web/package.json の name を devforge-web

意図的に据え置いたもの

  • ADR(docs/adr/*: 不変の意思決定記録。ファイル名・内容とも変更なし(0009-frontend-toast-notification.md 等のリンクも保持)
  • backend のクライアント概念識別子: frontend_url / get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework(タクソノミ)等は「web クライアント」概念であり、ディレクトリではないため温存(API 識別子・エラーコード契約の rename は別の code refactor 範囲)

検証

  • make ci green(backend lint+test、web lint+lint-messages+test 377、build)

マージ時の注意

🤖 Generated with Claude Code

@coderabbitai

coderabbitaiBot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c9564d94-e388-4886-bf82-c48d3bfd6050

📥 Commits

Reviewing files that changed from the base of the PR and between 90dc11b and 095e54f.

⛔ Files ignored due to path filters (1)
  • web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • .claude/CLAUDE.md
  • .claude/rules/backend/auth-security.md
  • .claude/rules/common/duplication.md
  • .claude/rules/infra/opentofu.md
  • .claude/rules/infra/test.md
  • .claude/rules/security.md
  • .claude/rules/web/architecture.md
  • .claude/rules/web/component-design.md
  • .claude/rules/web/messages.md
  • .claude/rules/web/test.md
  • .claude/rules/web/typescript.md
  • .claude/skills/SEC_apply/SKILL.md
  • .claude/skills/SEC_review/SKILL.md
  • .claude/skills/WEB_apply/SKILL.md
  • .claude/skills/WEB_refacter/SKILL.md
  • .claude/skills/XR_apply/SKILL.md
  • .claude/skills/XR_refacter/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .gitignore
  • .jscpd.json
  • AGENTS.md
  • Makefile
  • backend/app/core/errors.py
  • backend/app/schemas/billing.py
  • backend/app/schemas/blog.py
  • backend/app/schemas/master_data.py
  • backend/app/schemas/resume.py
  • backend/scripts/export_openapi.py
  • backend/tests/test_error_code_sync.py
  • docs/deployment.md
  • docs/development.md
  • scripts/lint-web-messages.sh
  • web/.npmrc
  • web/.prettierignore
  • web/.prettierrc
  • web/e2e/agent-chat.spec.ts
  • web/e2e/auth.spec.ts
  • web/e2e/billing.spec.ts
  • web/e2e/career-dirty-indicator.spec.ts
  • web/e2e/career-field-modal.spec.ts
  • web/e2e/career-import-assist.spec.ts
  • web/e2e/github-link.spec.ts
  • web/e2e/helpers/auth.ts
  • web/e2e/navigation.spec.ts
  • web/e2e/notifications.spec.ts
  • web/eslint.config.js
  • web/functions/_middleware.ts
  • web/index.html
  • web/package.json
  • web/playwright.config.d.ts
  • web/playwright.config.js
  • web/playwright.config.ts
  • web/scripts/audit-check.mjs
  • web/scripts/gen-redirects.mjs
  • web/scripts/gen-types.mjs
  • web/src/App.module.css
  • web/src/App.tsx
  • web/src/api/agent.ts
  • web/src/api/ai-resume.ts
  • web/src/api/auth.ts
  • web/src/api/billing.ts
  • web/src/api/blog.ts
  • web/src/api/client.test.ts
  • web/src/api/client.ts
  • web/src/api/download.ts
  • web/src/api/generated.ts
  • web/src/api/githubLink.ts
  • web/src/api/index.ts
  • web/src/api/master-data.ts
  • web/src/api/notifications.ts
  • web/src/api/paths.ts
  • web/src/api/resumes.ts
  • web/src/api/types.ts
  • web/src/components/CareerUnsavedGuard.test.tsx
  • web/src/components/CareerUnsavedGuard.tsx
  • web/src/components/ConfirmDialog.module.css
  • web/src/components/ConfirmDialog.tsx
  • web/src/components/ErrorBoundary.module.css
  • web/src/components/ErrorBoundary.tsx
  • web/src/components/LoadingOverlay.tsx
  • web/src/components/NotificationBell.module.css
  • web/src/components/NotificationBell.tsx
  • web/src/components/SidebarLayout.tsx
  • web/src/components/UserMenu.module.css
  • web/src/components/UserMenu.tsx
  • web/src/components/agent/AgentModelBadge.module.css
  • web/src/components/agent/AgentModelBadge.tsx
  • web/src/components/agent/ModelSelectModal.module.css
  • web/src/components/agent/ModelSelectModal.test.tsx
  • web/src/components/agent/ModelSelectModal.tsx
  • web/src/components/auth/LoginForm.module.css
  • web/src/components/auth/LoginForm.tsx
  • web/src/components/auth/LoginPromptModal.module.css
  • web/src/components/auth/LoginPromptModal.test.tsx
  • web/src/components/auth/LoginPromptModal.tsx
  • web/src/components/auth/LoginPromptProvider.tsx
  • web/src/components/auth/loginPromptContext.ts
  • web/src/components/billing/BillingView.module.css
  • web/src/components/billing/BillingView.test.tsx
  • web/src/components/billing/BillingView.tsx
  • web/src/components/billing/CreditBalanceBadge.module.css
  • web/src/components/billing/CreditBalanceBadge.tsx
  • web/src/components/billing/CreditBalanceProvider.test.tsx
  • web/src/components/billing/CreditBalanceProvider.tsx
  • web/src/components/billing/CreditPurchaseForm.module.css
  • web/src/components/billing/CreditPurchaseForm.test.tsx
  • web/src/components/billing/CreditPurchaseForm.tsx
  • web/src/components/billing/creditBalanceContext.ts
  • web/src/components/blog/BlogArticleList.tsx
  • web/src/components/blog/BlogPage.module.css
  • web/src/components/blog/BlogPage.tsx
  • web/src/components/blog/BlogPlatformList.tsx
  • web/src/components/blog/BlogScoreCard.module.css
  • web/src/components/blog/BlogScoreCard.tsx
  • web/src/components/forms/AgentChatWidget.module.css
  • web/src/components/forms/AgentChatWidget.test.tsx
  • web/src/components/forms/AgentChatWidget.tsx
  • web/src/components/forms/CareerDiffModal.module.css
  • web/src/components/forms/CareerDiffModal.tsx
  • web/src/components/forms/CareerFormEditors/CareerExperienceEditor.tsx
  • web/src/components/forms/CareerFormEditors/ClientEditor.tsx
  • web/src/components/forms/CareerResumeForm.module.css
  • web/src/components/forms/CareerResumeForm.test.tsx
  • web/src/components/forms/CareerResumeForm.tsx
  • web/src/components/forms/Combobox.module.css
  • web/src/components/forms/Combobox.tsx
  • web/src/components/forms/MarkdownDocumentView.tsx
  • web/src/components/forms/MarkdownFieldModal.tsx
  • web/src/components/forms/MarkdownFieldTrigger.module.css
  • web/src/components/forms/MarkdownFieldTrigger.tsx
  • web/src/components/forms/MarkdownTextarea.module.css
  • web/src/components/forms/MarkdownTextarea.test.tsx
  • web/src/components/forms/MarkdownTextarea.tsx
  • web/src/components/forms/PdfDocumentView.tsx
  • web/src/components/forms/PdfPreviewModal.module.css
  • web/src/components/forms/PdfPreviewModal.tsx
  • web/src/components/forms/ProjectModal.module.css
  • web/src/components/forms/ProjectModal.test.tsx
  • web/src/components/forms/ProjectModal.tsx
  • web/src/components/forms/ResumeForm.module.css
  • web/src/components/forms/ResumeImportConfirmModal.module.css
  • web/src/components/forms/ResumeSourceTracePanel.module.css
  • web/src/components/forms/ResumeSourceTracePanel.tsx
  • web/src/components/forms/documentView.ts
  • web/src/components/forms/sections/CareerBasicInfoSection.tsx
  • web/src/components/forms/sections/CareerExperienceSection.tsx
  • web/src/components/forms/sections/CareerFormToolbar.tsx
  • web/src/components/forms/sections/CareerQualificationsSection.tsx
  • web/src/components/forms/sections/CareerSelfPrSection.tsx
  • web/src/components/github-link/ContributionHeatmap.module.css
  • web/src/components/github-link/ContributionHeatmap.test.tsx
  • web/src/components/github-link/ContributionHeatmap.tsx
  • web/src/components/github-link/GitHubLinkDashboard.module.css
  • web/src/components/github-link/GitHubLinkDashboard.test.tsx
  • web/src/components/github-link/GitHubLinkDashboard.tsx
  • web/src/components/github-link/LanguageBar.module.css
  • web/src/components/github-link/LanguageBar.tsx
  • web/src/components/github-link/TechBar.module.css
  • web/src/components/icons/BellIcon.tsx
  • web/src/components/icons/ChevronDownIcon.tsx
  • web/src/components/icons/EyeIcon.tsx
  • web/src/components/icons/EyeSlashIcon.tsx
  • web/src/components/icons/GitHubMarkIcon.tsx
  • web/src/components/icons/MarkdownDownloadIcon.tsx
  • web/src/components/icons/NoteIcon.tsx
  • web/src/components/icons/PdfDownloadIcon.tsx
  • web/src/components/icons/PlusIcon.tsx
  • web/src/components/icons/QiitaIcon.tsx
  • web/src/components/icons/SaveIcon.tsx
  • web/src/components/icons/TrashIcon.tsx
  • web/src/components/icons/ZennIcon.tsx
  • web/src/components/ui/AsyncTaskLoading.module.css
  • web/src/components/ui/AsyncTaskLoading.tsx
  • web/src/components/ui/CharCount.module.css
  • web/src/components/ui/CharCount.tsx
  • web/src/components/ui/Collapsible.module.css
  • web/src/components/ui/Collapsible.test.tsx
  • web/src/components/ui/Collapsible.tsx
  • web/src/components/ui/DeleteIconButton.module.css
  • web/src/components/ui/DeleteIconButton.test.tsx
  • web/src/components/ui/DeleteIconButton.tsx
  • web/src/components/ui/DirtyDot.module.css
  • web/src/components/ui/DirtyDot.tsx
  • web/src/components/ui/InlineSpinner.module.css
  • web/src/components/ui/InlineSpinner.tsx
  • web/src/components/ui/ModalShell.module.css
  • web/src/components/ui/ModalShell.tsx
  • web/src/components/ui/Skeleton.module.css
  • web/src/components/ui/Skeleton.tsx
  • web/src/components/ui/toast/ToastItem.tsx
  • web/src/components/ui/toast/ToastProvider.test.tsx
  • web/src/components/ui/toast/ToastProvider.tsx
  • web/src/components/ui/toast/ToastViewport.tsx
  • web/src/components/ui/toast/index.ts
  • web/src/components/ui/toast/toast.module.css
  • web/src/components/ui/toast/toastContext.ts
  • web/src/components/ui/toast/useToastBridge.ts
  • web/src/constants.ts
  • web/src/constants/agentModels.test.ts
  • web/src/constants/agentModels.ts
  • web/src/constants/errorCodes.ts
  • web/src/constants/errorMessages.ts
  • web/src/constants/messages.ts
  • web/src/formMappers.ts
  • web/src/formTypes.ts
  • web/src/hooks/blog/useBlogAccountManager.test.ts
  • web/src/hooks/blog/useBlogAccountManager.ts
  • web/src/hooks/career/useAgentChat.test.ts
  • web/src/hooks/career/useAgentChat.ts
  • web/src/hooks/career/useCareerDirty.test.ts
  • web/src/hooks/career/useCareerDirty.ts
  • web/src/hooks/career/useCareerDraftRestore.test.ts
  • web/src/hooks/career/useCareerDraftRestore.ts
  • web/src/hooks/career/useCareerExperienceMutators.test.ts
  • web/src/hooks/career/useCareerExperienceMutators.ts
  • web/src/hooks/career/useCareerExportActions.ts
  • web/src/hooks/career/useCareerFormModals.test.ts
  • web/src/hooks/career/useCareerFormModals.ts
  • web/src/hooks/career/useImportPanelLayout.test.ts
  • web/src/hooks/career/useImportPanelLayout.ts
  • web/src/hooks/career/usePhotoUpload.test.ts
  • web/src/hooks/career/usePhotoUpload.ts
  • web/src/hooks/career/useProjectModalForm.test.ts
  • web/src/hooks/career/useProjectModalForm.ts
  • web/src/hooks/career/useProjectModalState.test.ts
  • web/src/hooks/career/useProjectModalState.ts
  • web/src/hooks/career/useResumeDiffPreview.test.ts
  • web/src/hooks/career/useResumeDiffPreview.ts
  • web/src/hooks/career/useResumeImportAssist.test.ts
  • web/src/hooks/career/useResumeImportAssist.ts
  • web/src/hooks/useAgentUsageSummary.test.ts
  • web/src/hooks/useAgentUsageSummary.ts
  • web/src/hooks/useAsyncTaskPage.test.ts
  • web/src/hooks/useAsyncTaskPage.ts
  • web/src/hooks/useAuthSession.test.ts
  • web/src/hooks/useAuthSession.ts
  • web/src/hooks/useBillingPage.test.ts
  • web/src/hooks/useBillingPage.ts
  • web/src/hooks/useCreditBalance.test.ts
  • web/src/hooks/useCreditBalance.ts
  • web/src/hooks/useDocumentForm.test.ts
  • web/src/hooks/useDocumentForm.ts
  • web/src/hooks/useFocusOnMatch.test.ts
  • web/src/hooks/useFocusOnMatch.ts
  • web/src/hooks/useMasterData.ts
  • web/src/hooks/useModelRates.test.ts
  • web/src/hooks/useModelRates.ts
  • web/src/hooks/useNotifications.test.ts
  • web/src/hooks/useNotifications.ts
  • web/src/hooks/usePdfActions.test.ts
  • web/src/hooks/usePdfActions.ts
  • web/src/hooks/useTaskPolling.test.ts
  • web/src/hooks/useTaskPolling.ts
  • web/src/hooks/useTheme.ts
  • web/src/hooks/useUnsavedChangesWarning.test.ts
  • web/src/hooks/useUnsavedChangesWarning.ts
  • web/src/main.tsx
  • web/src/pages/BillingPage.tsx
  • web/src/pages/BlogPage.tsx
  • web/src/pages/CareerPage.tsx
  • web/src/pages/GitHubCallbackPage.tsx
  • web/src/pages/GitHubLinkPage.tsx
  • web/src/pages/LoginPage.tsx
  • web/src/pages/NotFoundPage.module.css
  • web/src/pages/NotFoundPage.tsx
  • web/src/payloadBuilders.test.ts
  • web/src/payloadBuilders.ts
  • web/src/router/guards.test.tsx
  • web/src/router/guards.tsx
  • web/src/router/index.ts
  • web/src/router/routes.tsx
  • web/src/store/agentModelSlice.test.ts
  • web/src/store/agentModelSlice.ts
  • web/src/store/formCacheSlice.ts
  • web/src/store/index.ts
  • web/src/store/persistConfig.ts
  • web/src/styles.css
  • web/src/styles/shared.module.css
  • web/src/test-setup.ts
  • web/src/test/handlers.ts
  • web/src/test/mswServer.ts
  • web/src/test/renderWithProviders.tsx
  • web/src/utils/agentOperations.test.ts
  • web/src/utils/agentOperations.ts
  • web/src/utils/appError.ts
  • web/src/utils/careerDiff.test.ts
  • web/src/utils/careerDiff.ts
  • web/src/utils/careerDraft.test.ts
  • web/src/utils/careerDraft.ts
  • web/src/utils/careerReview.test.ts
  • web/src/utils/careerReview.ts
  • web/src/utils/creditEstimate.test.ts
  • web/src/utils/creditEstimate.ts
  • web/src/utils/deepEqual.ts
  • web/src/utils/diffHighlight.test.ts
  • web/src/utils/diffHighlight.ts
  • web/src/utils/errorId.ts
  • web/src/utils/markdown.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-frontend-to-web

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の
frontend/ を web/ にリネームし、関連する運用・ツーリングの命名も統一する。
PR #332(マルチプロバイダ LLM)マージ後の main を起点に再構築。
変更:
- ディレクトリ: frontend/ → web/(git rename)
- ビルド/CI: Makefile・ci.yml・.jscpd.json・.gitignore のパスを web/ に追従。
codegen 出力は web/src/api/generated.ts
- make ターゲット: lint-frontend→lint-web, test-frontend→test-web,
build-frontend→build-web 等(CI/docs の呼び出しも追従)
- スクリプト: scripts/lint-frontend-messages.sh → lint-web-messages.sh
- AI ツーリング: .claude/rules/frontend/ → .claude/rules/web/(paths
frontmatter を web/**)、skills FE_refacter/FE_apply → WEB_refacter/WEB_apply
- docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ・README: パス/ターゲット名を追従
- backend: ディレクトリを指すパス参照のみ追従(frontend/src → web/src の
コメント、test_error_code_sync の参照パス)
- web/package.json name: devforge-web
意図的に据え置いたもの:
- ADR(docs/adr/*): 不変の意思決定記録。ファイル名・内容とも変更しない
- backend のクライアントアプリ概念を指す識別子(frontend_url /
get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework
タクソノミ等): ディレクトリではなく「web クライアント」概念のため温存
検証: make ci green(backend lint+test 582、web lint+test 385、build)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yusuke0610
yusuke0610force-pushed the refactor/rename-frontend-to-web branch from 0459326 to 095e54fCompareJune 19, 2026 10:46
@yusuke0610
yusuke0610 merged commit fad71c6 into mainJun 19, 2026
18 checks passed
@yusuke0610
yusuke0610 deleted the refactor/rename-frontend-to-web branch June 20, 2026 06:53
Sign up for freeto 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.

1 participant

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成) - #333

Merged
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web
Jun 19, 2026
Merged

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成)#333
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の frontend/ ディレクトリを web/ にリネームし、関連する運用・ツーリングの命名も統一する。アプリの挙動変更はなく、ディレクトリ名と参照・命名の追従のみ。

変更内容

  • ディレクトリ: frontend/web/(git rename 認識)
  • ビルド/CI: Makefile.github/workflows/ci.yml.jscpd.json.gitignore のパスを web/ に追従。codegen 出力は web/src/api/generated.ts
  • make ターゲット: lint-frontendlint-web / test-frontendtest-web / build-frontendbuild-web 等(CI・docs の呼び出しも追従)
  • スクリプト: scripts/lint-frontend-messages.shlint-web-messages.sh
  • AI ツーリング: .claude/rules/frontend/.claude/rules/web/paths: web/**)、skills FE_refacter/FE_applyWEB_refacter/WEB_apply(参照・レポート接頭辞も追従)
  • docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ: パス・ターゲット名を追従
  • backend: ディレクトリを指すパス参照のみ追従(frontend/srcweb/src のコメント、test_error_code_sync の参照パス)
  • package: web/package.json の name を devforge-web

意図的に据え置いたもの

  • ADR(docs/adr/*: 不変の意思決定記録。ファイル名・内容とも変更なし(0009-frontend-toast-notification.md 等のリンクも保持)
  • backend のクライアント概念識別子: frontend_url / get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework(タクソノミ)等は「web クライアント」概念であり、ディレクトリではないため温存(API 識別子・エラーコード契約の rename は別の code refactor 範囲)

検証

  • make ci green(backend lint+test、web lint+lint-messages+test 377、build)

マージ時の注意

🤖 Generated with Claude Code

@coderabbitai

coderabbitaiBot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c9564d94-e388-4886-bf82-c48d3bfd6050

📥 Commits

Reviewing files that changed from the base of the PR and between 90dc11b and 095e54f.

⛔ Files ignored due to path filters (1)
  • web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • .claude/CLAUDE.md
  • .claude/rules/backend/auth-security.md
  • .claude/rules/common/duplication.md
  • .claude/rules/infra/opentofu.md
  • .claude/rules/infra/test.md
  • .claude/rules/security.md
  • .claude/rules/web/architecture.md
  • .claude/rules/web/component-design.md
  • .claude/rules/web/messages.md
  • .claude/rules/web/test.md
  • .claude/rules/web/typescript.md
  • .claude/skills/SEC_apply/SKILL.md
  • .claude/skills/SEC_review/SKILL.md
  • .claude/skills/WEB_apply/SKILL.md
  • .claude/skills/WEB_refacter/SKILL.md
  • .claude/skills/XR_apply/SKILL.md
  • .claude/skills/XR_refacter/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .gitignore
  • .jscpd.json
  • AGENTS.md
  • Makefile
  • backend/app/core/errors.py
  • backend/app/schemas/billing.py
  • backend/app/schemas/blog.py
  • backend/app/schemas/master_data.py
  • backend/app/schemas/resume.py
  • backend/scripts/export_openapi.py
  • backend/tests/test_error_code_sync.py
  • docs/deployment.md
  • docs/development.md
  • scripts/lint-web-messages.sh
  • web/.npmrc
  • web/.prettierignore
  • web/.prettierrc
  • web/e2e/agent-chat.spec.ts
  • web/e2e/auth.spec.ts
  • web/e2e/billing.spec.ts
  • web/e2e/career-dirty-indicator.spec.ts
  • web/e2e/career-field-modal.spec.ts
  • web/e2e/career-import-assist.spec.ts
  • web/e2e/github-link.spec.ts
  • web/e2e/helpers/auth.ts
  • web/e2e/navigation.spec.ts
  • web/e2e/notifications.spec.ts
  • web/eslint.config.js
  • web/functions/_middleware.ts
  • web/index.html
  • web/package.json
  • web/playwright.config.d.ts
  • web/playwright.config.js
  • web/playwright.config.ts
  • web/scripts/audit-check.mjs
  • web/scripts/gen-redirects.mjs
  • web/scripts/gen-types.mjs
  • web/src/App.module.css
  • web/src/App.tsx
  • web/src/api/agent.ts
  • web/src/api/ai-resume.ts
  • web/src/api/auth.ts
  • web/src/api/billing.ts
  • web/src/api/blog.ts
  • web/src/api/client.test.ts
  • web/src/api/client.ts
  • web/src/api/download.ts
  • web/src/api/generated.ts
  • web/src/api/githubLink.ts
  • web/src/api/index.ts
  • web/src/api/master-data.ts
  • web/src/api/notifications.ts
  • web/src/api/paths.ts
  • web/src/api/resumes.ts
  • web/src/api/types.ts
  • web/src/components/CareerUnsavedGuard.test.tsx
  • web/src/components/CareerUnsavedGuard.tsx
  • web/src/components/ConfirmDialog.module.css
  • web/src/components/ConfirmDialog.tsx
  • web/src/components/ErrorBoundary.module.css
  • web/src/components/ErrorBoundary.tsx
  • web/src/components/LoadingOverlay.tsx
  • web/src/components/NotificationBell.module.css
  • web/src/components/NotificationBell.tsx
  • web/src/components/SidebarLayout.tsx
  • web/src/components/UserMenu.module.css
  • web/src/components/UserMenu.tsx
  • web/src/components/agent/AgentModelBadge.module.css
  • web/src/components/agent/AgentModelBadge.tsx
  • web/src/components/agent/ModelSelectModal.module.css
  • web/src/components/agent/ModelSelectModal.test.tsx
  • web/src/components/agent/ModelSelectModal.tsx
  • web/src/components/auth/LoginForm.module.css
  • web/src/components/auth/LoginForm.tsx
  • web/src/components/auth/LoginPromptModal.module.css
  • web/src/components/auth/LoginPromptModal.test.tsx
  • web/src/components/auth/LoginPromptModal.tsx
  • web/src/components/auth/LoginPromptProvider.tsx
  • web/src/components/auth/loginPromptContext.ts
  • web/src/components/billing/BillingView.module.css
  • web/src/components/billing/BillingView.test.tsx
  • web/src/components/billing/BillingView.tsx
  • web/src/components/billing/CreditBalanceBadge.module.css
  • web/src/components/billing/CreditBalanceBadge.tsx
  • web/src/components/billing/CreditBalanceProvider.test.tsx
  • web/src/components/billing/CreditBalanceProvider.tsx
  • web/src/components/billing/CreditPurchaseForm.module.css
  • web/src/components/billing/CreditPurchaseForm.test.tsx
  • web/src/components/billing/CreditPurchaseForm.tsx
  • web/src/components/billing/creditBalanceContext.ts
  • web/src/components/blog/BlogArticleList.tsx
  • web/src/components/blog/BlogPage.module.css
  • web/src/components/blog/BlogPage.tsx
  • web/src/components/blog/BlogPlatformList.tsx
  • web/src/components/blog/BlogScoreCard.module.css
  • web/src/components/blog/BlogScoreCard.tsx
  • web/src/components/forms/AgentChatWidget.module.css
  • web/src/components/forms/AgentChatWidget.test.tsx
  • web/src/components/forms/AgentChatWidget.tsx
  • web/src/components/forms/CareerDiffModal.module.css
  • web/src/components/forms/CareerDiffModal.tsx
  • web/src/components/forms/CareerFormEditors/CareerExperienceEditor.tsx
  • web/src/components/forms/CareerFormEditors/ClientEditor.tsx
  • web/src/components/forms/CareerResumeForm.module.css
  • web/src/components/forms/CareerResumeForm.test.tsx
  • web/src/components/forms/CareerResumeForm.tsx
  • web/src/components/forms/Combobox.module.css
  • web/src/components/forms/Combobox.tsx
  • web/src/components/forms/MarkdownDocumentView.tsx
  • web/src/components/forms/MarkdownFieldModal.tsx
  • web/src/components/forms/MarkdownFieldTrigger.module.css
  • web/src/components/forms/MarkdownFieldTrigger.tsx
  • web/src/components/forms/MarkdownTextarea.module.css
  • web/src/components/forms/MarkdownTextarea.test.tsx
  • web/src/components/forms/MarkdownTextarea.tsx
  • web/src/components/forms/PdfDocumentView.tsx
  • web/src/components/forms/PdfPreviewModal.module.css
  • web/src/components/forms/PdfPreviewModal.tsx
  • web/src/components/forms/ProjectModal.module.css
  • web/src/components/forms/ProjectModal.test.tsx
  • web/src/components/forms/ProjectModal.tsx
  • web/src/components/forms/ResumeForm.module.css
  • web/src/components/forms/ResumeImportConfirmModal.module.css
  • web/src/components/forms/ResumeSourceTracePanel.module.css
  • web/src/components/forms/ResumeSourceTracePanel.tsx
  • web/src/components/forms/documentView.ts
  • web/src/components/forms/sections/CareerBasicInfoSection.tsx
  • web/src/components/forms/sections/CareerExperienceSection.tsx
  • web/src/components/forms/sections/CareerFormToolbar.tsx
  • web/src/components/forms/sections/CareerQualificationsSection.tsx
  • web/src/components/forms/sections/CareerSelfPrSection.tsx
  • web/src/components/github-link/ContributionHeatmap.module.css
  • web/src/components/github-link/ContributionHeatmap.test.tsx
  • web/src/components/github-link/ContributionHeatmap.tsx
  • web/src/components/github-link/GitHubLinkDashboard.module.css
  • web/src/components/github-link/GitHubLinkDashboard.test.tsx
  • web/src/components/github-link/GitHubLinkDashboard.tsx
  • web/src/components/github-link/LanguageBar.module.css
  • web/src/components/github-link/LanguageBar.tsx
  • web/src/components/github-link/TechBar.module.css
  • web/src/components/icons/BellIcon.tsx
  • web/src/components/icons/ChevronDownIcon.tsx
  • web/src/components/icons/EyeIcon.tsx
  • web/src/components/icons/EyeSlashIcon.tsx
  • web/src/components/icons/GitHubMarkIcon.tsx
  • web/src/components/icons/MarkdownDownloadIcon.tsx
  • web/src/components/icons/NoteIcon.tsx
  • web/src/components/icons/PdfDownloadIcon.tsx
  • web/src/components/icons/PlusIcon.tsx
  • web/src/components/icons/QiitaIcon.tsx
  • web/src/components/icons/SaveIcon.tsx
  • web/src/components/icons/TrashIcon.tsx
  • web/src/components/icons/ZennIcon.tsx
  • web/src/components/ui/AsyncTaskLoading.module.css
  • web/src/components/ui/AsyncTaskLoading.tsx
  • web/src/components/ui/CharCount.module.css
  • web/src/components/ui/CharCount.tsx
  • web/src/components/ui/Collapsible.module.css
  • web/src/components/ui/Collapsible.test.tsx
  • web/src/components/ui/Collapsible.tsx
  • web/src/components/ui/DeleteIconButton.module.css
  • web/src/components/ui/DeleteIconButton.test.tsx
  • web/src/components/ui/DeleteIconButton.tsx
  • web/src/components/ui/DirtyDot.module.css
  • web/src/components/ui/DirtyDot.tsx
  • web/src/components/ui/InlineSpinner.module.css
  • web/src/components/ui/InlineSpinner.tsx
  • web/src/components/ui/ModalShell.module.css
  • web/src/components/ui/ModalShell.tsx
  • web/src/components/ui/Skeleton.module.css
  • web/src/components/ui/Skeleton.tsx
  • web/src/components/ui/toast/ToastItem.tsx
  • web/src/components/ui/toast/ToastProvider.test.tsx
  • web/src/components/ui/toast/ToastProvider.tsx
  • web/src/components/ui/toast/ToastViewport.tsx
  • web/src/components/ui/toast/index.ts
  • web/src/components/ui/toast/toast.module.css
  • web/src/components/ui/toast/toastContext.ts
  • web/src/components/ui/toast/useToastBridge.ts
  • web/src/constants.ts
  • web/src/constants/agentModels.test.ts
  • web/src/constants/agentModels.ts
  • web/src/constants/errorCodes.ts
  • web/src/constants/errorMessages.ts
  • web/src/constants/messages.ts
  • web/src/formMappers.ts
  • web/src/formTypes.ts
  • web/src/hooks/blog/useBlogAccountManager.test.ts
  • web/src/hooks/blog/useBlogAccountManager.ts
  • web/src/hooks/career/useAgentChat.test.ts
  • web/src/hooks/career/useAgentChat.ts
  • web/src/hooks/career/useCareerDirty.test.ts
  • web/src/hooks/career/useCareerDirty.ts
  • web/src/hooks/career/useCareerDraftRestore.test.ts
  • web/src/hooks/career/useCareerDraftRestore.ts
  • web/src/hooks/career/useCareerExperienceMutators.test.ts
  • web/src/hooks/career/useCareerExperienceMutators.ts
  • web/src/hooks/career/useCareerExportActions.ts
  • web/src/hooks/career/useCareerFormModals.test.ts
  • web/src/hooks/career/useCareerFormModals.ts
  • web/src/hooks/career/useImportPanelLayout.test.ts
  • web/src/hooks/career/useImportPanelLayout.ts
  • web/src/hooks/career/usePhotoUpload.test.ts
  • web/src/hooks/career/usePhotoUpload.ts
  • web/src/hooks/career/useProjectModalForm.test.ts
  • web/src/hooks/career/useProjectModalForm.ts
  • web/src/hooks/career/useProjectModalState.test.ts
  • web/src/hooks/career/useProjectModalState.ts
  • web/src/hooks/career/useResumeDiffPreview.test.ts
  • web/src/hooks/career/useResumeDiffPreview.ts
  • web/src/hooks/career/useResumeImportAssist.test.ts
  • web/src/hooks/career/useResumeImportAssist.ts
  • web/src/hooks/useAgentUsageSummary.test.ts
  • web/src/hooks/useAgentUsageSummary.ts
  • web/src/hooks/useAsyncTaskPage.test.ts
  • web/src/hooks/useAsyncTaskPage.ts
  • web/src/hooks/useAuthSession.test.ts
  • web/src/hooks/useAuthSession.ts
  • web/src/hooks/useBillingPage.test.ts
  • web/src/hooks/useBillingPage.ts
  • web/src/hooks/useCreditBalance.test.ts
  • web/src/hooks/useCreditBalance.ts
  • web/src/hooks/useDocumentForm.test.ts
  • web/src/hooks/useDocumentForm.ts
  • web/src/hooks/useFocusOnMatch.test.ts
  • web/src/hooks/useFocusOnMatch.ts
  • web/src/hooks/useMasterData.ts
  • web/src/hooks/useModelRates.test.ts
  • web/src/hooks/useModelRates.ts
  • web/src/hooks/useNotifications.test.ts
  • web/src/hooks/useNotifications.ts
  • web/src/hooks/usePdfActions.test.ts
  • web/src/hooks/usePdfActions.ts
  • web/src/hooks/useTaskPolling.test.ts
  • web/src/hooks/useTaskPolling.ts
  • web/src/hooks/useTheme.ts
  • web/src/hooks/useUnsavedChangesWarning.test.ts
  • web/src/hooks/useUnsavedChangesWarning.ts
  • web/src/main.tsx
  • web/src/pages/BillingPage.tsx
  • web/src/pages/BlogPage.tsx
  • web/src/pages/CareerPage.tsx
  • web/src/pages/GitHubCallbackPage.tsx
  • web/src/pages/GitHubLinkPage.tsx
  • web/src/pages/LoginPage.tsx
  • web/src/pages/NotFoundPage.module.css
  • web/src/pages/NotFoundPage.tsx
  • web/src/payloadBuilders.test.ts
  • web/src/payloadBuilders.ts
  • web/src/router/guards.test.tsx
  • web/src/router/guards.tsx
  • web/src/router/index.ts
  • web/src/router/routes.tsx
  • web/src/store/agentModelSlice.test.ts
  • web/src/store/agentModelSlice.ts
  • web/src/store/formCacheSlice.ts
  • web/src/store/index.ts
  • web/src/store/persistConfig.ts
  • web/src/styles.css
  • web/src/styles/shared.module.css
  • web/src/test-setup.ts
  • web/src/test/handlers.ts
  • web/src/test/mswServer.ts
  • web/src/test/renderWithProviders.tsx
  • web/src/utils/agentOperations.test.ts
  • web/src/utils/agentOperations.ts
  • web/src/utils/appError.ts
  • web/src/utils/careerDiff.test.ts
  • web/src/utils/careerDiff.ts
  • web/src/utils/careerDraft.test.ts
  • web/src/utils/careerDraft.ts
  • web/src/utils/careerReview.test.ts
  • web/src/utils/careerReview.ts
  • web/src/utils/creditEstimate.test.ts
  • web/src/utils/creditEstimate.ts
  • web/src/utils/deepEqual.ts
  • web/src/utils/diffHighlight.test.ts
  • web/src/utils/diffHighlight.ts
  • web/src/utils/errorId.ts
  • web/src/utils/markdown.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-frontend-to-web

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の
frontend/ を web/ にリネームし、関連する運用・ツーリングの命名も統一する。
PR #332(マルチプロバイダ LLM)マージ後の main を起点に再構築。
変更:
- ディレクトリ: frontend/ → web/(git rename)
- ビルド/CI: Makefile・ci.yml・.jscpd.json・.gitignore のパスを web/ に追従。
codegen 出力は web/src/api/generated.ts
- make ターゲット: lint-frontend→lint-web, test-frontend→test-web,
build-frontend→build-web 等(CI/docs の呼び出しも追従)
- スクリプト: scripts/lint-frontend-messages.sh → lint-web-messages.sh
- AI ツーリング: .claude/rules/frontend/ → .claude/rules/web/(paths
frontmatter を web/**)、skills FE_refacter/FE_apply → WEB_refacter/WEB_apply
- docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ・README: パス/ターゲット名を追従
- backend: ディレクトリを指すパス参照のみ追従(frontend/src → web/src の
コメント、test_error_code_sync の参照パス)
- web/package.json name: devforge-web
意図的に据え置いたもの:
- ADR(docs/adr/*): 不変の意思決定記録。ファイル名・内容とも変更しない
- backend のクライアントアプリ概念を指す識別子(frontend_url /
get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework
タクソノミ等): ディレクトリではなく「web クライアント」概念のため温存
検証: make ci green(backend lint+test 582、web lint+test 385、build)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yusuke0610
yusuke0610force-pushed the refactor/rename-frontend-to-web branch from 0459326 to 095e54fCompareJune 19, 2026 10:46
@yusuke0610
yusuke0610 merged commit fad71c6 into mainJun 19, 2026
18 checks passed
@yusuke0610
yusuke0610 deleted the refactor/rename-frontend-to-web branch June 20, 2026 06:53
Sign up for freeto 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.

1 participant

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成) - #333

Merged
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web
Jun 19, 2026
Merged

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成)#333
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の frontend/ ディレクトリを web/ にリネームし、関連する運用・ツーリングの命名も統一する。アプリの挙動変更はなく、ディレクトリ名と参照・命名の追従のみ。

変更内容

  • ディレクトリ: frontend/web/(git rename 認識)
  • ビルド/CI: Makefile.github/workflows/ci.yml.jscpd.json.gitignore のパスを web/ に追従。codegen 出力は web/src/api/generated.ts
  • make ターゲット: lint-frontendlint-web / test-frontendtest-web / build-frontendbuild-web 等(CI・docs の呼び出しも追従)
  • スクリプト: scripts/lint-frontend-messages.shlint-web-messages.sh
  • AI ツーリング: .claude/rules/frontend/.claude/rules/web/paths: web/**)、skills FE_refacter/FE_applyWEB_refacter/WEB_apply(参照・レポート接頭辞も追従)
  • docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ: パス・ターゲット名を追従
  • backend: ディレクトリを指すパス参照のみ追従(frontend/srcweb/src のコメント、test_error_code_sync の参照パス)
  • package: web/package.json の name を devforge-web

意図的に据え置いたもの

  • ADR(docs/adr/*: 不変の意思決定記録。ファイル名・内容とも変更なし(0009-frontend-toast-notification.md 等のリンクも保持)
  • backend のクライアント概念識別子: frontend_url / get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework(タクソノミ)等は「web クライアント」概念であり、ディレクトリではないため温存(API 識別子・エラーコード契約の rename は別の code refactor 範囲)

検証

  • make ci green(backend lint+test、web lint+lint-messages+test 377、build)

マージ時の注意

🤖 Generated with Claude Code

@coderabbitai

coderabbitaiBot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c9564d94-e388-4886-bf82-c48d3bfd6050

📥 Commits

Reviewing files that changed from the base of the PR and between 90dc11b and 095e54f.

⛔ Files ignored due to path filters (1)
  • web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • .claude/CLAUDE.md
  • .claude/rules/backend/auth-security.md
  • .claude/rules/common/duplication.md
  • .claude/rules/infra/opentofu.md
  • .claude/rules/infra/test.md
  • .claude/rules/security.md
  • .claude/rules/web/architecture.md
  • .claude/rules/web/component-design.md
  • .claude/rules/web/messages.md
  • .claude/rules/web/test.md
  • .claude/rules/web/typescript.md
  • .claude/skills/SEC_apply/SKILL.md
  • .claude/skills/SEC_review/SKILL.md
  • .claude/skills/WEB_apply/SKILL.md
  • .claude/skills/WEB_refacter/SKILL.md
  • .claude/skills/XR_apply/SKILL.md
  • .claude/skills/XR_refacter/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .gitignore
  • .jscpd.json
  • AGENTS.md
  • Makefile
  • backend/app/core/errors.py
  • backend/app/schemas/billing.py
  • backend/app/schemas/blog.py
  • backend/app/schemas/master_data.py
  • backend/app/schemas/resume.py
  • backend/scripts/export_openapi.py
  • backend/tests/test_error_code_sync.py
  • docs/deployment.md
  • docs/development.md
  • scripts/lint-web-messages.sh
  • web/.npmrc
  • web/.prettierignore
  • web/.prettierrc
  • web/e2e/agent-chat.spec.ts
  • web/e2e/auth.spec.ts
  • web/e2e/billing.spec.ts
  • web/e2e/career-dirty-indicator.spec.ts
  • web/e2e/career-field-modal.spec.ts
  • web/e2e/career-import-assist.spec.ts
  • web/e2e/github-link.spec.ts
  • web/e2e/helpers/auth.ts
  • web/e2e/navigation.spec.ts
  • web/e2e/notifications.spec.ts
  • web/eslint.config.js
  • web/functions/_middleware.ts
  • web/index.html
  • web/package.json
  • web/playwright.config.d.ts
  • web/playwright.config.js
  • web/playwright.config.ts
  • web/scripts/audit-check.mjs
  • web/scripts/gen-redirects.mjs
  • web/scripts/gen-types.mjs
  • web/src/App.module.css
  • web/src/App.tsx
  • web/src/api/agent.ts
  • web/src/api/ai-resume.ts
  • web/src/api/auth.ts
  • web/src/api/billing.ts
  • web/src/api/blog.ts
  • web/src/api/client.test.ts
  • web/src/api/client.ts
  • web/src/api/download.ts
  • web/src/api/generated.ts
  • web/src/api/githubLink.ts
  • web/src/api/index.ts
  • web/src/api/master-data.ts
  • web/src/api/notifications.ts
  • web/src/api/paths.ts
  • web/src/api/resumes.ts
  • web/src/api/types.ts
  • web/src/components/CareerUnsavedGuard.test.tsx
  • web/src/components/CareerUnsavedGuard.tsx
  • web/src/components/ConfirmDialog.module.css
  • web/src/components/ConfirmDialog.tsx
  • web/src/components/ErrorBoundary.module.css
  • web/src/components/ErrorBoundary.tsx
  • web/src/components/LoadingOverlay.tsx
  • web/src/components/NotificationBell.module.css
  • web/src/components/NotificationBell.tsx
  • web/src/components/SidebarLayout.tsx
  • web/src/components/UserMenu.module.css
  • web/src/components/UserMenu.tsx
  • web/src/components/agent/AgentModelBadge.module.css
  • web/src/components/agent/AgentModelBadge.tsx
  • web/src/components/agent/ModelSelectModal.module.css
  • web/src/components/agent/ModelSelectModal.test.tsx
  • web/src/components/agent/ModelSelectModal.tsx
  • web/src/components/auth/LoginForm.module.css
  • web/src/components/auth/LoginForm.tsx
  • web/src/components/auth/LoginPromptModal.module.css
  • web/src/components/auth/LoginPromptModal.test.tsx
  • web/src/components/auth/LoginPromptModal.tsx
  • web/src/components/auth/LoginPromptProvider.tsx
  • web/src/components/auth/loginPromptContext.ts
  • web/src/components/billing/BillingView.module.css
  • web/src/components/billing/BillingView.test.tsx
  • web/src/components/billing/BillingView.tsx
  • web/src/components/billing/CreditBalanceBadge.module.css
  • web/src/components/billing/CreditBalanceBadge.tsx
  • web/src/components/billing/CreditBalanceProvider.test.tsx
  • web/src/components/billing/CreditBalanceProvider.tsx
  • web/src/components/billing/CreditPurchaseForm.module.css
  • web/src/components/billing/CreditPurchaseForm.test.tsx
  • web/src/components/billing/CreditPurchaseForm.tsx
  • web/src/components/billing/creditBalanceContext.ts
  • web/src/components/blog/BlogArticleList.tsx
  • web/src/components/blog/BlogPage.module.css
  • web/src/components/blog/BlogPage.tsx
  • web/src/components/blog/BlogPlatformList.tsx
  • web/src/components/blog/BlogScoreCard.module.css
  • web/src/components/blog/BlogScoreCard.tsx
  • web/src/components/forms/AgentChatWidget.module.css
  • web/src/components/forms/AgentChatWidget.test.tsx
  • web/src/components/forms/AgentChatWidget.tsx
  • web/src/components/forms/CareerDiffModal.module.css
  • web/src/components/forms/CareerDiffModal.tsx
  • web/src/components/forms/CareerFormEditors/CareerExperienceEditor.tsx
  • web/src/components/forms/CareerFormEditors/ClientEditor.tsx
  • web/src/components/forms/CareerResumeForm.module.css
  • web/src/components/forms/CareerResumeForm.test.tsx
  • web/src/components/forms/CareerResumeForm.tsx
  • web/src/components/forms/Combobox.module.css
  • web/src/components/forms/Combobox.tsx
  • web/src/components/forms/MarkdownDocumentView.tsx
  • web/src/components/forms/MarkdownFieldModal.tsx
  • web/src/components/forms/MarkdownFieldTrigger.module.css
  • web/src/components/forms/MarkdownFieldTrigger.tsx
  • web/src/components/forms/MarkdownTextarea.module.css
  • web/src/components/forms/MarkdownTextarea.test.tsx
  • web/src/components/forms/MarkdownTextarea.tsx
  • web/src/components/forms/PdfDocumentView.tsx
  • web/src/components/forms/PdfPreviewModal.module.css
  • web/src/components/forms/PdfPreviewModal.tsx
  • web/src/components/forms/ProjectModal.module.css
  • web/src/components/forms/ProjectModal.test.tsx
  • web/src/components/forms/ProjectModal.tsx
  • web/src/components/forms/ResumeForm.module.css
  • web/src/components/forms/ResumeImportConfirmModal.module.css
  • web/src/components/forms/ResumeSourceTracePanel.module.css
  • web/src/components/forms/ResumeSourceTracePanel.tsx
  • web/src/components/forms/documentView.ts
  • web/src/components/forms/sections/CareerBasicInfoSection.tsx
  • web/src/components/forms/sections/CareerExperienceSection.tsx
  • web/src/components/forms/sections/CareerFormToolbar.tsx
  • web/src/components/forms/sections/CareerQualificationsSection.tsx
  • web/src/components/forms/sections/CareerSelfPrSection.tsx
  • web/src/components/github-link/ContributionHeatmap.module.css
  • web/src/components/github-link/ContributionHeatmap.test.tsx
  • web/src/components/github-link/ContributionHeatmap.tsx
  • web/src/components/github-link/GitHubLinkDashboard.module.css
  • web/src/components/github-link/GitHubLinkDashboard.test.tsx
  • web/src/components/github-link/GitHubLinkDashboard.tsx
  • web/src/components/github-link/LanguageBar.module.css
  • web/src/components/github-link/LanguageBar.tsx
  • web/src/components/github-link/TechBar.module.css
  • web/src/components/icons/BellIcon.tsx
  • web/src/components/icons/ChevronDownIcon.tsx
  • web/src/components/icons/EyeIcon.tsx
  • web/src/components/icons/EyeSlashIcon.tsx
  • web/src/components/icons/GitHubMarkIcon.tsx
  • web/src/components/icons/MarkdownDownloadIcon.tsx
  • web/src/components/icons/NoteIcon.tsx
  • web/src/components/icons/PdfDownloadIcon.tsx
  • web/src/components/icons/PlusIcon.tsx
  • web/src/components/icons/QiitaIcon.tsx
  • web/src/components/icons/SaveIcon.tsx
  • web/src/components/icons/TrashIcon.tsx
  • web/src/components/icons/ZennIcon.tsx
  • web/src/components/ui/AsyncTaskLoading.module.css
  • web/src/components/ui/AsyncTaskLoading.tsx
  • web/src/components/ui/CharCount.module.css
  • web/src/components/ui/CharCount.tsx
  • web/src/components/ui/Collapsible.module.css
  • web/src/components/ui/Collapsible.test.tsx
  • web/src/components/ui/Collapsible.tsx
  • web/src/components/ui/DeleteIconButton.module.css
  • web/src/components/ui/DeleteIconButton.test.tsx
  • web/src/components/ui/DeleteIconButton.tsx
  • web/src/components/ui/DirtyDot.module.css
  • web/src/components/ui/DirtyDot.tsx
  • web/src/components/ui/InlineSpinner.module.css
  • web/src/components/ui/InlineSpinner.tsx
  • web/src/components/ui/ModalShell.module.css
  • web/src/components/ui/ModalShell.tsx
  • web/src/components/ui/Skeleton.module.css
  • web/src/components/ui/Skeleton.tsx
  • web/src/components/ui/toast/ToastItem.tsx
  • web/src/components/ui/toast/ToastProvider.test.tsx
  • web/src/components/ui/toast/ToastProvider.tsx
  • web/src/components/ui/toast/ToastViewport.tsx
  • web/src/components/ui/toast/index.ts
  • web/src/components/ui/toast/toast.module.css
  • web/src/components/ui/toast/toastContext.ts
  • web/src/components/ui/toast/useToastBridge.ts
  • web/src/constants.ts
  • web/src/constants/agentModels.test.ts
  • web/src/constants/agentModels.ts
  • web/src/constants/errorCodes.ts
  • web/src/constants/errorMessages.ts
  • web/src/constants/messages.ts
  • web/src/formMappers.ts
  • web/src/formTypes.ts
  • web/src/hooks/blog/useBlogAccountManager.test.ts
  • web/src/hooks/blog/useBlogAccountManager.ts
  • web/src/hooks/career/useAgentChat.test.ts
  • web/src/hooks/career/useAgentChat.ts
  • web/src/hooks/career/useCareerDirty.test.ts
  • web/src/hooks/career/useCareerDirty.ts
  • web/src/hooks/career/useCareerDraftRestore.test.ts
  • web/src/hooks/career/useCareerDraftRestore.ts
  • web/src/hooks/career/useCareerExperienceMutators.test.ts
  • web/src/hooks/career/useCareerExperienceMutators.ts
  • web/src/hooks/career/useCareerExportActions.ts
  • web/src/hooks/career/useCareerFormModals.test.ts
  • web/src/hooks/career/useCareerFormModals.ts
  • web/src/hooks/career/useImportPanelLayout.test.ts
  • web/src/hooks/career/useImportPanelLayout.ts
  • web/src/hooks/career/usePhotoUpload.test.ts
  • web/src/hooks/career/usePhotoUpload.ts
  • web/src/hooks/career/useProjectModalForm.test.ts
  • web/src/hooks/career/useProjectModalForm.ts
  • web/src/hooks/career/useProjectModalState.test.ts
  • web/src/hooks/career/useProjectModalState.ts
  • web/src/hooks/career/useResumeDiffPreview.test.ts
  • web/src/hooks/career/useResumeDiffPreview.ts
  • web/src/hooks/career/useResumeImportAssist.test.ts
  • web/src/hooks/career/useResumeImportAssist.ts
  • web/src/hooks/useAgentUsageSummary.test.ts
  • web/src/hooks/useAgentUsageSummary.ts
  • web/src/hooks/useAsyncTaskPage.test.ts
  • web/src/hooks/useAsyncTaskPage.ts
  • web/src/hooks/useAuthSession.test.ts
  • web/src/hooks/useAuthSession.ts
  • web/src/hooks/useBillingPage.test.ts
  • web/src/hooks/useBillingPage.ts
  • web/src/hooks/useCreditBalance.test.ts
  • web/src/hooks/useCreditBalance.ts
  • web/src/hooks/useDocumentForm.test.ts
  • web/src/hooks/useDocumentForm.ts
  • web/src/hooks/useFocusOnMatch.test.ts
  • web/src/hooks/useFocusOnMatch.ts
  • web/src/hooks/useMasterData.ts
  • web/src/hooks/useModelRates.test.ts
  • web/src/hooks/useModelRates.ts
  • web/src/hooks/useNotifications.test.ts
  • web/src/hooks/useNotifications.ts
  • web/src/hooks/usePdfActions.test.ts
  • web/src/hooks/usePdfActions.ts
  • web/src/hooks/useTaskPolling.test.ts
  • web/src/hooks/useTaskPolling.ts
  • web/src/hooks/useTheme.ts
  • web/src/hooks/useUnsavedChangesWarning.test.ts
  • web/src/hooks/useUnsavedChangesWarning.ts
  • web/src/main.tsx
  • web/src/pages/BillingPage.tsx
  • web/src/pages/BlogPage.tsx
  • web/src/pages/CareerPage.tsx
  • web/src/pages/GitHubCallbackPage.tsx
  • web/src/pages/GitHubLinkPage.tsx
  • web/src/pages/LoginPage.tsx
  • web/src/pages/NotFoundPage.module.css
  • web/src/pages/NotFoundPage.tsx
  • web/src/payloadBuilders.test.ts
  • web/src/payloadBuilders.ts
  • web/src/router/guards.test.tsx
  • web/src/router/guards.tsx
  • web/src/router/index.ts
  • web/src/router/routes.tsx
  • web/src/store/agentModelSlice.test.ts
  • web/src/store/agentModelSlice.ts
  • web/src/store/formCacheSlice.ts
  • web/src/store/index.ts
  • web/src/store/persistConfig.ts
  • web/src/styles.css
  • web/src/styles/shared.module.css
  • web/src/test-setup.ts
  • web/src/test/handlers.ts
  • web/src/test/mswServer.ts
  • web/src/test/renderWithProviders.tsx
  • web/src/utils/agentOperations.test.ts
  • web/src/utils/agentOperations.ts
  • web/src/utils/appError.ts
  • web/src/utils/careerDiff.test.ts
  • web/src/utils/careerDiff.ts
  • web/src/utils/careerDraft.test.ts
  • web/src/utils/careerDraft.ts
  • web/src/utils/careerReview.test.ts
  • web/src/utils/careerReview.ts
  • web/src/utils/creditEstimate.test.ts
  • web/src/utils/creditEstimate.ts
  • web/src/utils/deepEqual.ts
  • web/src/utils/diffHighlight.test.ts
  • web/src/utils/diffHighlight.ts
  • web/src/utils/errorId.ts
  • web/src/utils/markdown.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-frontend-to-web

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の
frontend/ を web/ にリネームし、関連する運用・ツーリングの命名も統一する。
PR #332(マルチプロバイダ LLM)マージ後の main を起点に再構築。
変更:
- ディレクトリ: frontend/ → web/(git rename)
- ビルド/CI: Makefile・ci.yml・.jscpd.json・.gitignore のパスを web/ に追従。
codegen 出力は web/src/api/generated.ts
- make ターゲット: lint-frontend→lint-web, test-frontend→test-web,
build-frontend→build-web 等(CI/docs の呼び出しも追従)
- スクリプト: scripts/lint-frontend-messages.sh → lint-web-messages.sh
- AI ツーリング: .claude/rules/frontend/ → .claude/rules/web/(paths
frontmatter を web/**)、skills FE_refacter/FE_apply → WEB_refacter/WEB_apply
- docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ・README: パス/ターゲット名を追従
- backend: ディレクトリを指すパス参照のみ追従(frontend/src → web/src の
コメント、test_error_code_sync の参照パス)
- web/package.json name: devforge-web
意図的に据え置いたもの:
- ADR(docs/adr/*): 不変の意思決定記録。ファイル名・内容とも変更しない
- backend のクライアントアプリ概念を指す識別子(frontend_url /
get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework
タクソノミ等): ディレクトリではなく「web クライアント」概念のため温存
検証: make ci green(backend lint+test 582、web lint+test 385、build)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yusuke0610
yusuke0610force-pushed the refactor/rename-frontend-to-web branch from 0459326 to 095e54fCompareJune 19, 2026 10:46
@yusuke0610
yusuke0610 merged commit fad71c6 into mainJun 19, 2026
18 checks passed
@yusuke0610
yusuke0610 deleted the refactor/rename-frontend-to-web branch June 20, 2026 06:53
Sign up for freeto 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.

1 participant

@yusuke0610
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成) - #333

Merged
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web
Jun 19, 2026
Merged

refactor: ルート frontend/ ディレクトリを web/ にリネーム(プラットフォーム別構成)#333
yusuke0610 merged 1 commit into
mainfrom
refactor/rename-frontend-to-web

Conversation

@yusuke0610

Copy link
Copy Markdown
Owner

概要

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の frontend/ ディレクトリを web/ にリネームし、関連する運用・ツーリングの命名も統一する。アプリの挙動変更はなく、ディレクトリ名と参照・命名の追従のみ。

変更内容

  • ディレクトリ: frontend/web/(git rename 認識)
  • ビルド/CI: Makefile.github/workflows/ci.yml.jscpd.json.gitignore のパスを web/ に追従。codegen 出力は web/src/api/generated.ts
  • make ターゲット: lint-frontendlint-web / test-frontendtest-web / build-frontendbuild-web 等(CI・docs の呼び出しも追従)
  • スクリプト: scripts/lint-frontend-messages.shlint-web-messages.sh
  • AI ツーリング: .claude/rules/frontend/.claude/rules/web/paths: web/**)、skills FE_refacter/FE_applyWEB_refacter/WEB_apply(参照・レポート接頭辞も追従)
  • docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ: パス・ターゲット名を追従
  • backend: ディレクトリを指すパス参照のみ追従(frontend/srcweb/src のコメント、test_error_code_sync の参照パス)
  • package: web/package.json の name を devforge-web

意図的に据え置いたもの

  • ADR(docs/adr/*: 不変の意思決定記録。ファイル名・内容とも変更なし(0009-frontend-toast-notification.md 等のリンクも保持)
  • backend のクライアント概念識別子: frontend_url / get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework(タクソノミ)等は「web クライアント」概念であり、ディレクトリではないため温存(API 識別子・エラーコード契約の rename は別の code refactor 範囲)

検証

  • make ci green(backend lint+test、web lint+lint-messages+test 377、build)

マージ時の注意

🤖 Generated with Claude Code

@coderabbitai

coderabbitaiBot commented Jun 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c9564d94-e388-4886-bf82-c48d3bfd6050

📥 Commits

Reviewing files that changed from the base of the PR and between 90dc11b and 095e54f.

⛔ Files ignored due to path filters (1)
  • web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (299)
  • .claude/CLAUDE.md
  • .claude/rules/backend/auth-security.md
  • .claude/rules/common/duplication.md
  • .claude/rules/infra/opentofu.md
  • .claude/rules/infra/test.md
  • .claude/rules/security.md
  • .claude/rules/web/architecture.md
  • .claude/rules/web/component-design.md
  • .claude/rules/web/messages.md
  • .claude/rules/web/test.md
  • .claude/rules/web/typescript.md
  • .claude/skills/SEC_apply/SKILL.md
  • .claude/skills/SEC_review/SKILL.md
  • .claude/skills/WEB_apply/SKILL.md
  • .claude/skills/WEB_refacter/SKILL.md
  • .claude/skills/XR_apply/SKILL.md
  • .claude/skills/XR_refacter/SKILL.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/ci.yml
  • .gitignore
  • .jscpd.json
  • AGENTS.md
  • Makefile
  • backend/app/core/errors.py
  • backend/app/schemas/billing.py
  • backend/app/schemas/blog.py
  • backend/app/schemas/master_data.py
  • backend/app/schemas/resume.py
  • backend/scripts/export_openapi.py
  • backend/tests/test_error_code_sync.py
  • docs/deployment.md
  • docs/development.md
  • scripts/lint-web-messages.sh
  • web/.npmrc
  • web/.prettierignore
  • web/.prettierrc
  • web/e2e/agent-chat.spec.ts
  • web/e2e/auth.spec.ts
  • web/e2e/billing.spec.ts
  • web/e2e/career-dirty-indicator.spec.ts
  • web/e2e/career-field-modal.spec.ts
  • web/e2e/career-import-assist.spec.ts
  • web/e2e/github-link.spec.ts
  • web/e2e/helpers/auth.ts
  • web/e2e/navigation.spec.ts
  • web/e2e/notifications.spec.ts
  • web/eslint.config.js
  • web/functions/_middleware.ts
  • web/index.html
  • web/package.json
  • web/playwright.config.d.ts
  • web/playwright.config.js
  • web/playwright.config.ts
  • web/scripts/audit-check.mjs
  • web/scripts/gen-redirects.mjs
  • web/scripts/gen-types.mjs
  • web/src/App.module.css
  • web/src/App.tsx
  • web/src/api/agent.ts
  • web/src/api/ai-resume.ts
  • web/src/api/auth.ts
  • web/src/api/billing.ts
  • web/src/api/blog.ts
  • web/src/api/client.test.ts
  • web/src/api/client.ts
  • web/src/api/download.ts
  • web/src/api/generated.ts
  • web/src/api/githubLink.ts
  • web/src/api/index.ts
  • web/src/api/master-data.ts
  • web/src/api/notifications.ts
  • web/src/api/paths.ts
  • web/src/api/resumes.ts
  • web/src/api/types.ts
  • web/src/components/CareerUnsavedGuard.test.tsx
  • web/src/components/CareerUnsavedGuard.tsx
  • web/src/components/ConfirmDialog.module.css
  • web/src/components/ConfirmDialog.tsx
  • web/src/components/ErrorBoundary.module.css
  • web/src/components/ErrorBoundary.tsx
  • web/src/components/LoadingOverlay.tsx
  • web/src/components/NotificationBell.module.css
  • web/src/components/NotificationBell.tsx
  • web/src/components/SidebarLayout.tsx
  • web/src/components/UserMenu.module.css
  • web/src/components/UserMenu.tsx
  • web/src/components/agent/AgentModelBadge.module.css
  • web/src/components/agent/AgentModelBadge.tsx
  • web/src/components/agent/ModelSelectModal.module.css
  • web/src/components/agent/ModelSelectModal.test.tsx
  • web/src/components/agent/ModelSelectModal.tsx
  • web/src/components/auth/LoginForm.module.css
  • web/src/components/auth/LoginForm.tsx
  • web/src/components/auth/LoginPromptModal.module.css
  • web/src/components/auth/LoginPromptModal.test.tsx
  • web/src/components/auth/LoginPromptModal.tsx
  • web/src/components/auth/LoginPromptProvider.tsx
  • web/src/components/auth/loginPromptContext.ts
  • web/src/components/billing/BillingView.module.css
  • web/src/components/billing/BillingView.test.tsx
  • web/src/components/billing/BillingView.tsx
  • web/src/components/billing/CreditBalanceBadge.module.css
  • web/src/components/billing/CreditBalanceBadge.tsx
  • web/src/components/billing/CreditBalanceProvider.test.tsx
  • web/src/components/billing/CreditBalanceProvider.tsx
  • web/src/components/billing/CreditPurchaseForm.module.css
  • web/src/components/billing/CreditPurchaseForm.test.tsx
  • web/src/components/billing/CreditPurchaseForm.tsx
  • web/src/components/billing/creditBalanceContext.ts
  • web/src/components/blog/BlogArticleList.tsx
  • web/src/components/blog/BlogPage.module.css
  • web/src/components/blog/BlogPage.tsx
  • web/src/components/blog/BlogPlatformList.tsx
  • web/src/components/blog/BlogScoreCard.module.css
  • web/src/components/blog/BlogScoreCard.tsx
  • web/src/components/forms/AgentChatWidget.module.css
  • web/src/components/forms/AgentChatWidget.test.tsx
  • web/src/components/forms/AgentChatWidget.tsx
  • web/src/components/forms/CareerDiffModal.module.css
  • web/src/components/forms/CareerDiffModal.tsx
  • web/src/components/forms/CareerFormEditors/CareerExperienceEditor.tsx
  • web/src/components/forms/CareerFormEditors/ClientEditor.tsx
  • web/src/components/forms/CareerResumeForm.module.css
  • web/src/components/forms/CareerResumeForm.test.tsx
  • web/src/components/forms/CareerResumeForm.tsx
  • web/src/components/forms/Combobox.module.css
  • web/src/components/forms/Combobox.tsx
  • web/src/components/forms/MarkdownDocumentView.tsx
  • web/src/components/forms/MarkdownFieldModal.tsx
  • web/src/components/forms/MarkdownFieldTrigger.module.css
  • web/src/components/forms/MarkdownFieldTrigger.tsx
  • web/src/components/forms/MarkdownTextarea.module.css
  • web/src/components/forms/MarkdownTextarea.test.tsx
  • web/src/components/forms/MarkdownTextarea.tsx
  • web/src/components/forms/PdfDocumentView.tsx
  • web/src/components/forms/PdfPreviewModal.module.css
  • web/src/components/forms/PdfPreviewModal.tsx
  • web/src/components/forms/ProjectModal.module.css
  • web/src/components/forms/ProjectModal.test.tsx
  • web/src/components/forms/ProjectModal.tsx
  • web/src/components/forms/ResumeForm.module.css
  • web/src/components/forms/ResumeImportConfirmModal.module.css
  • web/src/components/forms/ResumeSourceTracePanel.module.css
  • web/src/components/forms/ResumeSourceTracePanel.tsx
  • web/src/components/forms/documentView.ts
  • web/src/components/forms/sections/CareerBasicInfoSection.tsx
  • web/src/components/forms/sections/CareerExperienceSection.tsx
  • web/src/components/forms/sections/CareerFormToolbar.tsx
  • web/src/components/forms/sections/CareerQualificationsSection.tsx
  • web/src/components/forms/sections/CareerSelfPrSection.tsx
  • web/src/components/github-link/ContributionHeatmap.module.css
  • web/src/components/github-link/ContributionHeatmap.test.tsx
  • web/src/components/github-link/ContributionHeatmap.tsx
  • web/src/components/github-link/GitHubLinkDashboard.module.css
  • web/src/components/github-link/GitHubLinkDashboard.test.tsx
  • web/src/components/github-link/GitHubLinkDashboard.tsx
  • web/src/components/github-link/LanguageBar.module.css
  • web/src/components/github-link/LanguageBar.tsx
  • web/src/components/github-link/TechBar.module.css
  • web/src/components/icons/BellIcon.tsx
  • web/src/components/icons/ChevronDownIcon.tsx
  • web/src/components/icons/EyeIcon.tsx
  • web/src/components/icons/EyeSlashIcon.tsx
  • web/src/components/icons/GitHubMarkIcon.tsx
  • web/src/components/icons/MarkdownDownloadIcon.tsx
  • web/src/components/icons/NoteIcon.tsx
  • web/src/components/icons/PdfDownloadIcon.tsx
  • web/src/components/icons/PlusIcon.tsx
  • web/src/components/icons/QiitaIcon.tsx
  • web/src/components/icons/SaveIcon.tsx
  • web/src/components/icons/TrashIcon.tsx
  • web/src/components/icons/ZennIcon.tsx
  • web/src/components/ui/AsyncTaskLoading.module.css
  • web/src/components/ui/AsyncTaskLoading.tsx
  • web/src/components/ui/CharCount.module.css
  • web/src/components/ui/CharCount.tsx
  • web/src/components/ui/Collapsible.module.css
  • web/src/components/ui/Collapsible.test.tsx
  • web/src/components/ui/Collapsible.tsx
  • web/src/components/ui/DeleteIconButton.module.css
  • web/src/components/ui/DeleteIconButton.test.tsx
  • web/src/components/ui/DeleteIconButton.tsx
  • web/src/components/ui/DirtyDot.module.css
  • web/src/components/ui/DirtyDot.tsx
  • web/src/components/ui/InlineSpinner.module.css
  • web/src/components/ui/InlineSpinner.tsx
  • web/src/components/ui/ModalShell.module.css
  • web/src/components/ui/ModalShell.tsx
  • web/src/components/ui/Skeleton.module.css
  • web/src/components/ui/Skeleton.tsx
  • web/src/components/ui/toast/ToastItem.tsx
  • web/src/components/ui/toast/ToastProvider.test.tsx
  • web/src/components/ui/toast/ToastProvider.tsx
  • web/src/components/ui/toast/ToastViewport.tsx
  • web/src/components/ui/toast/index.ts
  • web/src/components/ui/toast/toast.module.css
  • web/src/components/ui/toast/toastContext.ts
  • web/src/components/ui/toast/useToastBridge.ts
  • web/src/constants.ts
  • web/src/constants/agentModels.test.ts
  • web/src/constants/agentModels.ts
  • web/src/constants/errorCodes.ts
  • web/src/constants/errorMessages.ts
  • web/src/constants/messages.ts
  • web/src/formMappers.ts
  • web/src/formTypes.ts
  • web/src/hooks/blog/useBlogAccountManager.test.ts
  • web/src/hooks/blog/useBlogAccountManager.ts
  • web/src/hooks/career/useAgentChat.test.ts
  • web/src/hooks/career/useAgentChat.ts
  • web/src/hooks/career/useCareerDirty.test.ts
  • web/src/hooks/career/useCareerDirty.ts
  • web/src/hooks/career/useCareerDraftRestore.test.ts
  • web/src/hooks/career/useCareerDraftRestore.ts
  • web/src/hooks/career/useCareerExperienceMutators.test.ts
  • web/src/hooks/career/useCareerExperienceMutators.ts
  • web/src/hooks/career/useCareerExportActions.ts
  • web/src/hooks/career/useCareerFormModals.test.ts
  • web/src/hooks/career/useCareerFormModals.ts
  • web/src/hooks/career/useImportPanelLayout.test.ts
  • web/src/hooks/career/useImportPanelLayout.ts
  • web/src/hooks/career/usePhotoUpload.test.ts
  • web/src/hooks/career/usePhotoUpload.ts
  • web/src/hooks/career/useProjectModalForm.test.ts
  • web/src/hooks/career/useProjectModalForm.ts
  • web/src/hooks/career/useProjectModalState.test.ts
  • web/src/hooks/career/useProjectModalState.ts
  • web/src/hooks/career/useResumeDiffPreview.test.ts
  • web/src/hooks/career/useResumeDiffPreview.ts
  • web/src/hooks/career/useResumeImportAssist.test.ts
  • web/src/hooks/career/useResumeImportAssist.ts
  • web/src/hooks/useAgentUsageSummary.test.ts
  • web/src/hooks/useAgentUsageSummary.ts
  • web/src/hooks/useAsyncTaskPage.test.ts
  • web/src/hooks/useAsyncTaskPage.ts
  • web/src/hooks/useAuthSession.test.ts
  • web/src/hooks/useAuthSession.ts
  • web/src/hooks/useBillingPage.test.ts
  • web/src/hooks/useBillingPage.ts
  • web/src/hooks/useCreditBalance.test.ts
  • web/src/hooks/useCreditBalance.ts
  • web/src/hooks/useDocumentForm.test.ts
  • web/src/hooks/useDocumentForm.ts
  • web/src/hooks/useFocusOnMatch.test.ts
  • web/src/hooks/useFocusOnMatch.ts
  • web/src/hooks/useMasterData.ts
  • web/src/hooks/useModelRates.test.ts
  • web/src/hooks/useModelRates.ts
  • web/src/hooks/useNotifications.test.ts
  • web/src/hooks/useNotifications.ts
  • web/src/hooks/usePdfActions.test.ts
  • web/src/hooks/usePdfActions.ts
  • web/src/hooks/useTaskPolling.test.ts
  • web/src/hooks/useTaskPolling.ts
  • web/src/hooks/useTheme.ts
  • web/src/hooks/useUnsavedChangesWarning.test.ts
  • web/src/hooks/useUnsavedChangesWarning.ts
  • web/src/main.tsx
  • web/src/pages/BillingPage.tsx
  • web/src/pages/BlogPage.tsx
  • web/src/pages/CareerPage.tsx
  • web/src/pages/GitHubCallbackPage.tsx
  • web/src/pages/GitHubLinkPage.tsx
  • web/src/pages/LoginPage.tsx
  • web/src/pages/NotFoundPage.module.css
  • web/src/pages/NotFoundPage.tsx
  • web/src/payloadBuilders.test.ts
  • web/src/payloadBuilders.ts
  • web/src/router/guards.test.tsx
  • web/src/router/guards.tsx
  • web/src/router/index.ts
  • web/src/router/routes.tsx
  • web/src/store/agentModelSlice.test.ts
  • web/src/store/agentModelSlice.ts
  • web/src/store/formCacheSlice.ts
  • web/src/store/index.ts
  • web/src/store/persistConfig.ts
  • web/src/styles.css
  • web/src/styles/shared.module.css
  • web/src/test-setup.ts
  • web/src/test/handlers.ts
  • web/src/test/mswServer.ts
  • web/src/test/renderWithProviders.tsx
  • web/src/utils/agentOperations.test.ts
  • web/src/utils/agentOperations.ts
  • web/src/utils/appError.ts
  • web/src/utils/careerDiff.test.ts
  • web/src/utils/careerDiff.ts
  • web/src/utils/careerDraft.test.ts
  • web/src/utils/careerDraft.ts
  • web/src/utils/careerReview.test.ts
  • web/src/utils/careerReview.ts
  • web/src/utils/creditEstimate.test.ts
  • web/src/utils/creditEstimate.ts
  • web/src/utils/deepEqual.ts
  • web/src/utils/diffHighlight.test.ts
  • web/src/utils/diffHighlight.ts
  • web/src/utils/errorId.ts
  • web/src/utils/markdown.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/rename-frontend-to-web

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

将来のプラットフォーム分割(web / mobile 等)を見据え、ルート直下の
frontend/ を web/ にリネームし、関連する運用・ツーリングの命名も統一する。
PR #332(マルチプロバイダ LLM)マージ後の main を起点に再構築。
変更:
- ディレクトリ: frontend/ → web/(git rename)
- ビルド/CI: Makefile・ci.yml・.jscpd.json・.gitignore のパスを web/ に追従。
codegen 出力は web/src/api/generated.ts
- make ターゲット: lint-frontend→lint-web, test-frontend→test-web,
build-frontend→build-web 等(CI/docs の呼び出しも追従)
- スクリプト: scripts/lint-frontend-messages.sh → lint-web-messages.sh
- AI ツーリング: .claude/rules/frontend/ → .claude/rules/web/(paths
frontmatter を web/**)、skills FE_refacter/FE_apply → WEB_refacter/WEB_apply
- docs/CLAUDE/AGENTS/CONTRIBUTING/PR テンプレ・README: パス/ターゲット名を追従
- backend: ディレクトリを指すパス参照のみ追従(frontend/src → web/src の
コメント、test_error_code_sync の参照パス)
- web/package.json name: devforge-web
意図的に据え置いたもの:
- ADR(docs/adr/*): 不変の意思決定記録。ファイル名・内容とも変更しない
- backend のクライアントアプリ概念を指す識別子(frontend_url /
get_frontend_origin / auth.frontend_origin_not_allowed / frontend_framework
タクソノミ等): ディレクトリではなく「web クライアント」概念のため温存
検証: make ci green(backend lint+test 582、web lint+test 385、build)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yusuke0610
yusuke0610force-pushed the refactor/rename-frontend-to-web branch from 0459326 to 095e54fCompareJune 19, 2026 10:46
@yusuke0610
yusuke0610 merged commit fad71c6 into mainJun 19, 2026
18 checks passed
@yusuke0610
yusuke0610 deleted the refactor/rename-frontend-to-web branch June 20, 2026 06:53
Sign up for freeto 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.

1 participant

@yusuke0610