diff --git a/docs/adr/0015-list-separately-deployed-works.md b/docs/adr/0015-list-separately-deployed-works.md
new file mode 100644
index 0000000..501933e
--- /dev/null
+++ b/docs/adr/0015-list-separately-deployed-works.md
@@ -0,0 +1,12 @@
+# ADR-0015: List separately deployed works under furedea.com paths
+
+- Status: Accepted
+- Date: 2026-10-19
+
+In the context of a works section that links to projects served under this domain, such as
+`/effort-or-luck/`, by their own deployments rather than by this site's build, facing an
+internal-link check that resolves every same-origin link against the local preview, we decided
+for listing works in `src/data/works.ts` and skipping the paths of same-origin works in that
+check, and against copying their builds into this site or serving them from subdomains, to keep
+each project deploying from its own repository while linking from the home page, accepting that
+those links are checked only after the projects deploy.
diff --git a/scripts/verify_build.mjs b/scripts/verify_build.mjs
index 928677d..2412a23 100644
--- a/scripts/verify_build.mjs
+++ b/scripts/verify_build.mjs
@@ -42,6 +42,7 @@ const requiredHtml = {
"執行 凱斗",
"ソフトウェア工学",
"https://furedea.com/ja/",
+ "https://furedea.com/effort-or-luck/",
"/en/",
"https://github.com/",
"https://x.com/",
@@ -55,6 +56,7 @@ const requiredHtml = {
"Kaito Shigyo",
"Software Engineering",
"https://furedea.com/en/",
+ "https://furedea.com/effort-or-luck/",
"/ja/",
"https://github.com/",
"https://x.com/",
diff --git a/src/components/works_section.astro b/src/components/works_section.astro
new file mode 100644
index 0000000..25dccd5
--- /dev/null
+++ b/src/components/works_section.astro
@@ -0,0 +1,69 @@
+---
+import type { Lang } from "@i18n/ui";
+import { useTranslations, pickLocale } from "@i18n/utils";
+import { works } from "@data/works";
+import Section from "./section.astro";
+import TagList from "./tag_list.astro";
+
+interface Props {
+ lang: Lang;
+}
+
+const { lang } = Astro.props;
+const t = useTranslations(lang);
+---
+
+
+