diff --git a/.replworks/ARCHITECTURE.md b/.replworks/ARCHITECTURE.md
index 218283c..14c9532 100644
--- a/.replworks/ARCHITECTURE.md
+++ b/.replworks/ARCHITECTURE.md
@@ -297,8 +297,6 @@ ai-issue
Wifi Note
-ClayTube
-
ETERNOps
ETERN Labs
diff --git a/.replworks/PRODUCT_SPEC.md b/.replworks/PRODUCT_SPEC.md
index 8fbb6a5..1f8ca0e 100644
--- a/.replworks/PRODUCT_SPEC.md
+++ b/.replworks/PRODUCT_SPEC.md
@@ -478,17 +478,10 @@ Initial Entries
```text
REPL Works Website
-
ai-issue
-
Wifi Note
-
-ClayTube
-
ETERNOps
-
ETERN Labs
-
MMA
```
@@ -539,19 +532,17 @@ Featured flag
Sort order
```
-The homepage displays the four featured projects:
+The homepage displays these featured projects:
```text
REPL Works Website
ai-issue
-ClayTube
-
Wifi Note
```
-The Showcase page displays all seven projects. It shows the Lessons Learned
+The Showcase page displays all projects. It shows the Lessons Learned
summary on cards; the homepage may omit that field.
---
diff --git a/src/content/showcase/claytube.mdx b/src/content/showcase/claytube.mdx
deleted file mode 100644
index 3138965..0000000
--- a/src/content/showcase/claytube.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: '클래이튜브 (ClayTube)'
-version: 'v1'
-description: '장기간에 걸쳐 지속 확장되는 서비스에서 AI 모델 변경에도 견디는 프로젝트 연속성을 증명하는 REPL Works 호환 프로젝트'
-publishedAt: '2026-06-07T00:00:00Z'
----
-
-import MissionBox from '../../components/MissionBox.astro';
-import DocBadgeGrid from '../../components/DocBadgeGrid.astro';
-import SpecGrid from '../../components/SpecGrid.astro';
-import DocLink from '../../components/DocLink.astro';
-import WorkflowFlow from '../../components/WorkflowFlow.astro';
-
-## 1. 개요 (Overview)
-
-ClayTube는 장기간에 걸쳐 개발되고 실서비스 환경에서 운영되고 있는 프로덕트입니다.
-
-프로젝트의 주 목적은 기능 개발뿐만 아니라, **시간이 지나도 프로젝트의 초기 의도와 기술 맥락(Project Memory)을 100% 보존할 수 있는 AI 개발 프레임워크를 검증**하는 것입니다.
-
-
-
-
-
----
-
-## 2. 사용된 표준 문서 (Documents Used)
-
-ClayTube는 REPL Works 6+1종 표준 문서 헌법을 철저히 준수합니다.
-
-
-
----
-
-## Workflow Usage
-
-ClayTube 장기 운영 과정에서 적용된 REPL Works 연속성 워크플로입니다:
-
-1. **지속 가능한 기억 저장소**: 채팅 세션 메모리에 의존하지 않고 모든 기술 변경 사항을 `ARCHITECTURE.md` 및 `TASKS.md`에 기록
-2. **세션 복원 절차**: 새로운 개발 회차 진입 시 REPL Works 헌법 문서를 읽어 즉각 컨텍스트 동기화
-3. **1-Task = 1-Commit 단위 개발**: 에이전트 작업 실행 시 1개 작업 당 1개의 독립 커밋 작성하여 추적 가능성 극대화
-
-
-
----
-
-## Tools Used
-
-- **Production Service**: [ClayTube 서비스 보러가기](https://www.palgle.com/claytube/)
-- **Version Control & Memory**: GitHub Repository & Markdown Invariants
-- **AI Execution Stack**: Multi-LLM Agent Architecture (Discussion & Execution)
-
----
-
-## 5. 학습된 레슨 (Lessons Learned)
-
-
-
----
-
-## 6. 프로젝트 가치 및 검증 결과 (What This Project Proves)
-
-ClayTube는 REPL Works가 단기 1회성 프로토타이핑 도구가 아니라, **수개월 이상 유지보수되는 장기 서비스 개발의 연속성을 보장하는 검증된 프레임워크**임을 보여줍니다.
diff --git a/src/data/showcase.ts b/src/data/showcase.ts
index 5dd203b..776c6b0 100644
--- a/src/data/showcase.ts
+++ b/src/data/showcase.ts
@@ -65,20 +65,6 @@ export const showcaseProjects: ShowcaseProject[] = [
featured: true,
order: 4,
},
- {
- slug: 'claytube',
- name: '클래이튜브 (ClayTube)',
- description:
- '장기간에 걸쳐 지속 확장되는 서비스에서 AI 모델 변경에도 견디는 프로젝트 연속성을 증명하는 REPL Works 호환 프로젝트',
- tags: ['Tooling', 'CLI'],
- lesson:
- '장기 연속성은 내구성 있는 기억을 필요로 합니다: 수개월 동안 세션이 바뀌더라도 Git 문서가 있으면 맥락 유실이 없습니다.',
- detailUrl: '/showcase/claytube/',
- website: 'https://www.palgle.com/claytube/',
- github: 'https://github.com/eternops/claytube',
- featured: true,
- order: 5,
- },
{
slug: 'eternops',
name: '이터놉스 (ETERNOps)',
diff --git a/src/site-invariants.test.ts b/src/site-invariants.test.ts
index d4aaa6a..c25b8bd 100644
--- a/src/site-invariants.test.ts
+++ b/src/site-invariants.test.ts
@@ -67,7 +67,7 @@ describe('REPL Works content invariants', () => {
const showcaseDirectory = resolve(root, 'src/content/showcase');
for (const entry of [
'ai-issue.mdx',
- 'claytube.mdx',
+ 'coolrestore.mdx',
'etern-labs.mdx',
'eternops.mdx',
'mma.mdx',
@@ -76,15 +76,16 @@ describe('REPL Works content invariants', () => {
]) {
expect(existsSync(resolve(showcaseDirectory, entry))).toBe(true);
}
+ expect(existsSync(resolve(showcaseDirectory, 'claytube.mdx'))).toBe(false);
});
it('keeps the shared showcase data complete for home and Showcase', () => {
- expect(showcaseProjects).toHaveLength(8);
+ expect(showcaseProjects).toHaveLength(7);
expect(new Set(showcaseProjects.map((project) => project.slug)).size).toBe(
- 8,
+ 7,
);
expect(showcaseProjects.filter((project) => project.featured)).toHaveLength(
- 5,
+ 4,
);
for (const project of showcaseProjects) {