diff --git a/.agents/task-briefs/24-openvideo-product-site.md b/.agents/task-briefs/24-openscene-product-site.md similarity index 73% rename from .agents/task-briefs/24-openvideo-product-site.md rename to .agents/task-briefs/24-openscene-product-site.md index a88be28..4f6ce37 100644 --- a/.agents/task-briefs/24-openvideo-product-site.md +++ b/.agents/task-briefs/24-openscene-product-site.md @@ -1,12 +1,12 @@ -# Task brief: OpenVideo product site +# Task brief: OpenScene product site **Issue:** #24 -**Branch:** `feat/24-openvideo-product-site` -**Canonical host:** `https://open-video.app` +**Branch:** `feat/24-openscene-product-site` +**Canonical host:** `https://openscene.app` ## Deliverable -A separate, static, independently deployable Next.js product site under `apps/openvideo/`, plus documentation and workspace integration. It must present OpenVideo as a local-first Electron recording and editing studio and point visitors to the official source and releases pages. +A separate, static, independently deployable Next.js product site under `apps/openscene/`, plus documentation and workspace integration. It must present OpenScene as a local-first Electron recording and editing studio and point visitors to the official source and releases pages. ## Required public facts @@ -17,8 +17,8 @@ A separate, static, independently deployable Next.js product site under `apps/op ## Required external destinations -- Source: `https://github.com/Theorvane/openvideo` -- Releases: `https://github.com/Theorvane/openvideo/releases` +- Source: `https://github.com/Theorvane/openscene` +- Releases: `https://github.com/Theorvane/openscene/releases` - Studio: `https://theorvane.tech/` ## Quality gates diff --git a/.agents/task-briefs/40-openvideo-hybrid-ai-direction.md b/.agents/task-briefs/40-openscene-hybrid-ai-direction.md similarity index 85% rename from .agents/task-briefs/40-openvideo-hybrid-ai-direction.md rename to .agents/task-briefs/40-openscene-hybrid-ai-direction.md index d303e57..a8931b9 100644 --- a/.agents/task-briefs/40-openvideo-hybrid-ai-direction.md +++ b/.agents/task-briefs/40-openscene-hybrid-ai-direction.md @@ -1,11 +1,11 @@ -# Task brief: OpenVideo hybrid AI editor product direction +# Task brief: OpenScene hybrid AI editor product direction **Issue:** #40 -**Branch:** `docs/40-openvideo-hybrid-ai-direction` +**Branch:** `docs/40-openscene-hybrid-ai-direction` ## Outcome -Record the approved OpenVideo direction: a hybrid AI video editor built on a local-first editing workflow, with optional local models or explicitly selected external AI services. +Record the approved OpenScene direction: a hybrid AI video editor built on a local-first editing workflow, with optional local models or explicitly selected external AI services. ## Scope diff --git a/.agents/task-briefs/52-rybbit-tracking-scripts.md b/.agents/task-briefs/52-rybbit-tracking-scripts.md index 03af03a..23f76c6 100644 --- a/.agents/task-briefs/52-rybbit-tracking-scripts.md +++ b/.agents/task-briefs/52-rybbit-tracking-scripts.md @@ -7,7 +7,7 @@ Add the approved RybbIt tracking script to the document head of each independently deployed Next.js application. Each app must carry its own immutable site ID: -- OpenVideo: `765035acbe87` +- OpenScene: `c2c0972a916f` (superseded `765035acbe87` when the site moved to `openscene.app`, which is a distinct RybbIt site) - TypeMCP: `c37c7591084c` - Theorvane: `13051a0ca43f` @@ -15,7 +15,7 @@ All scripts load from `https://rybbit.handgarden.kr/api/script.js` with deferred ## Non-goals -- Do not modify the OpenVideo desktop application. +- Do not modify the OpenScene desktop application. - Do not introduce another provider, consent UI, cookies, runtime configuration, or deployment configuration. ## Quality gates diff --git a/.agents/task-briefs/72-four-site-landing-refresh.md b/.agents/task-briefs/72-four-site-landing-refresh.md index 29d5b42..d5cc858 100644 --- a/.agents/task-briefs/72-four-site-landing-refresh.md +++ b/.agents/task-briefs/72-four-site-landing-refresh.md @@ -10,7 +10,7 @@ ## Approved scope -Refresh the public landing pages in `apps/theorvane`, `apps/type-mcp`, `apps/type-chain`, and `apps/openvideo`. They share a conversion and accessibility rhythm, but each keeps its own color, typography, product copy, and truthful runtime boundary. +Refresh the public landing pages in `apps/theorvane`, `apps/type-mcp`, `apps/type-chain`, and `apps/openscene`. They share a conversion and accessibility rhythm, but each keeps its own color, typography, product copy, and truthful runtime boundary. ## Required evidence @@ -18,4 +18,4 @@ Use focused RED/GREEN tests for the affected page contracts and responsive CSS c ## Prohibited claims -Do not introduce fabricated social proof. Preserve the published TypeMCP and TypeChain package boundaries. Present OpenVideo AI functions only as planned if mentioned; do not describe them as released. +Do not introduce fabricated social proof. Preserve the published TypeMCP and TypeChain package boundaries. Present OpenScene AI functions only as planned if mentioned; do not describe them as released. diff --git a/.agents/task-briefs/82-four-site-scroll-world-design.md b/.agents/task-briefs/82-four-site-scroll-world-design.md index 0e172b2..1ed5c86 100644 --- a/.agents/task-briefs/82-four-site-scroll-world-design.md +++ b/.agents/task-briefs/82-four-site-scroll-world-design.md @@ -17,7 +17,7 @@ ## Guardrails - Do not generate assets, spend credits, purchase services, modify secrets, deploy, or change application product boundaries until the spec and production plan receive explicit review/approval. -- Keep TypeMCP, TypeChain, and OpenVideo claims within their published capability boundaries. +- Keep TypeMCP, TypeChain, and OpenScene claims within their published capability boundaries. - Preserve semantic content, reduced-motion, media-failure, keyboard, and low-bandwidth fallbacks. ## Design artifact diff --git a/.agents/task-briefs/84-theorvane-scroll-world-pilot-plan.md b/.agents/task-briefs/84-theorvane-scroll-world-pilot-plan.md index 255b9d3..0d1f233 100644 --- a/.agents/task-briefs/84-theorvane-scroll-world-pilot-plan.md +++ b/.agents/task-briefs/84-theorvane-scroll-world-pilot-plan.md @@ -17,4 +17,4 @@ This documentation task creates an executable plan only. It does not create an i - Verify TDD order and commands are exact for every code task. - Verify distinct native 16:9/9:16 media and actual-frame connector requirements remain mandatory. - Verify the cost gate needs explicit active-conversation approval for both calibration and the full production batch. -- Verify all TypeMCP, TypeChain, and OpenVideo boundaries remain consumer/local-owned as defined in the merged design. +- Verify all TypeMCP, TypeChain, and OpenScene boundaries remain consumer/local-owned as defined in the merged design. diff --git a/AGENTS.md b/AGENTS.md index ac08c07..d9a388c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,7 +7,7 @@ This repository delivers four independently deployable public Next.js applicatio - `apps/theorvane/`: the Theorvane brand site, canonical at `https://theorvane.tech` - `apps/type-mcp/`: the TypeMCP product site, canonical at `https://typemcp.theorvane.tech` - `apps/type-chain/`: the TypeChain product site, canonical at `https://typechain.theorvane.tech` -- `apps/openvideo/`: the OpenVideo local-first product site, canonical at `https://open-video.app`, with bilingual usage documentation at `/docs` (English) and `/docs/ko` (Korean) +- `apps/openscene/`: the OpenScene local-first product site, canonical at `https://openscene.app`, with bilingual usage documentation at `/docs` (English) and `/docs/ko` (Korean) - `packages/`: neutral shared UI and design tokens only - `docs/`: approved product and design specifications - `.agents/`: tracked task briefs and agent operating aids; never imported by application runtime code @@ -66,7 +66,7 @@ Keep labels focused; do not add unrelated labels merely for coverage. - Pin GitHub Actions to immutable full commit SHAs. - Do not put tokens, credentials, or secrets in repository files, logs, commits, or task briefs. -- Preserve canonical host behavior: `www.theorvane.tech` redirects permanently to `theorvane.tech`, and `openvideo.theorvane.tech` redirects permanently to `open-video.app`. The former OpenVideo subdomain must stay attached to its Vercel project for that redirect to be reached. +- Preserve canonical host behavior: `www.theorvane.tech` redirects permanently to `theorvane.tech`, and `openvideo.theorvane.tech`, `open-video.app`, and `www.open-video.app` each redirect permanently to `openscene.app`. Every former OpenScene hostname must stay attached to its Vercel project for those redirects to be reached. - Keep website claims aligned with the published TypeMCP capability boundary. - Generated output such as `.next/`, `dist/`, coverage, logs, and `node_modules/` must not be committed. diff --git a/README.md b/README.md index 5427aa8..f8e3818 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,24 @@ # Theorvane website -A Next.js monorepo containing independently deployable public websites for **Theorvane**, **TypeMCP**, **TypeChain**, and **OpenVideo**. +A Next.js monorepo containing independently deployable public websites for **Theorvane**, **TypeMCP**, **TypeChain**, and **OpenScene**. ## Apps - `apps/theorvane` — the Theorvane brand homepage at `https://theorvane.tech` - `apps/type-mcp` — the TypeMCP product site and technical documentation at `https://typemcp.theorvane.tech` - `apps/type-chain` — the TypeChain product site and technical documentation at `https://typechain.theorvane.tech` -- `apps/openvideo` — the OpenVideo local-first hybrid AI video-editor product site at `https://open-video.app`; current AI capabilities remain explicitly availability-scoped in the approved product direction +- `apps/openscene` — the OpenScene local-first hybrid AI video-editor product site at `https://openscene.app`; current AI capabilities remain explicitly availability-scoped in the approved product direction -## OpenVideo documentation +## OpenScene documentation -The OpenVideo usage documentation is published at `https://open-video.app/docs` in English and `https://open-video.app/docs/ko` in Korean. Unlike the TypeMCP portal it is authored in this repository as typed content blocks under `apps/openvideo/lib/docs/`, because it documents how to use the desktop application rather than mirroring approved documents from a source repository. +The OpenScene usage documentation is published at `https://openscene.app/docs` in English and `https://openscene.app/docs/ko` in Korean. Unlike the TypeMCP portal it is authored in this repository as typed content blocks under `apps/openscene/lib/docs/`, because it documents how to use the desktop application rather than mirroring approved documents from a source repository. - `content.en.ts` and `content.ko.ts` hold one entry per page; both must cover every slug in the outline or `validateContent()` fails the build. - `manifest.ts` owns the outline, reading order, and locale-aware paths. English is served unprefixed; other locales sit under their own segment. -- Screenshots live in `apps/openvideo/public/docs/` and are declared with fixed dimensions in `lib/docs/types.ts` so the browser reserves layout before they load. +- Screenshots live in `apps/openscene/public/docs/` and are declared with fixed dimensions in `lib/docs/types.ts` so the browser reserves layout before they load. - Every page publishes a canonical URL, `hreflang` alternates for both locales, and `TechArticle` plus `BreadcrumbList` JSON-LD. The sitemap lists each localized route with its alternates. -Claims in this documentation must match OpenVideo's actual build. Pre-release limits — no packaged installer, no auto-update, Sora reference images unsupported — are stated rather than omitted. +Claims in this documentation must match OpenScene's actual build. Pre-release limits — no packaged installer, no auto-update, Sora reference images unsupported — are stated rather than omitted. ## TypeMCP documentation @@ -51,4 +51,4 @@ npm test npm run build ``` -See [`docs/superpowers/specs/2026-07-22-theorvane-and-type-mcp-websites-design.md`](docs/superpowers/specs/2026-07-22-theorvane-and-type-mcp-websites-design.md), [`docs/superpowers/specs/2026-07-22-typemcp-documentation-portal-design.md`](docs/superpowers/specs/2026-07-22-typemcp-documentation-portal-design.md), and [`docs/superpowers/specs/2026-07-23-openvideo-product-site-design.md`](docs/superpowers/specs/2026-07-23-openvideo-product-site-design.md) for the approved scope. +See [`docs/superpowers/specs/2026-07-22-theorvane-and-type-mcp-websites-design.md`](docs/superpowers/specs/2026-07-22-theorvane-and-type-mcp-websites-design.md), [`docs/superpowers/specs/2026-07-22-typemcp-documentation-portal-design.md`](docs/superpowers/specs/2026-07-22-typemcp-documentation-portal-design.md), and [`docs/superpowers/specs/2026-07-23-openscene-product-site-design.md`](docs/superpowers/specs/2026-07-23-openscene-product-site-design.md) for the approved scope. diff --git a/apps/openvideo/app/apple-icon.png b/apps/openscene/app/apple-icon.png similarity index 100% rename from apps/openvideo/app/apple-icon.png rename to apps/openscene/app/apple-icon.png diff --git a/apps/openvideo/app/docs/[[...slug]]/page.tsx b/apps/openscene/app/docs/[[...slug]]/page.tsx similarity index 95% rename from apps/openvideo/app/docs/[[...slug]]/page.tsx rename to apps/openscene/app/docs/[[...slug]]/page.tsx index 4068d02..83efb0f 100644 --- a/apps/openvideo/app/docs/[[...slug]]/page.tsx +++ b/apps/openscene/app/docs/[[...slug]]/page.tsx @@ -7,7 +7,7 @@ import { docGroups, docHref, docRoutes, docSlugs, findPage, isLocale, strings } import { defaultLocale, type Locale, locales } from "../../../lib/docs/types"; import "../docs.css"; -const siteUrl = "https://open-video.app"; +const siteUrl = "https://openscene.app"; type RouteParams = { readonly slug?: string[] }; @@ -45,7 +45,7 @@ export async function generateMetadata({ params }: { params: Promise [candidate, docHref(candidate, slug)])), "x-default": docHref(defaultLocale, slug) }, }, - openGraph: { type: "article", url: `${siteUrl}${path}`, title, description, siteName: "OpenVideo", locale: locale === "ko" ? "ko_KR" : "en_US" }, + openGraph: { type: "article", url: `${siteUrl}${path}`, title, description, siteName: "OpenScene", locale: locale === "ko" ? "ko_KR" : "en_US" }, twitter: { card: "summary_large_image", title, description }, }; } @@ -55,7 +55,7 @@ function schemaFor(locale: Locale, slug?: string | undefined) { const page = slug ? findPage(locale, slug) : undefined; const url = `${siteUrl}${docHref(locale, slug)}`; const crumbs = [ - { "@type": "ListItem", position: 1, name: "OpenVideo", item: `${siteUrl}/` }, + { "@type": "ListItem", position: 1, name: "OpenScene", item: `${siteUrl}/` }, { "@type": "ListItem", position: 2, name: text.indexTitle, item: `${siteUrl}${docHref(locale)}` }, ...(page ? [{ "@type": "ListItem", position: 3, name: page.title, item: url }] : []), ]; @@ -119,7 +119,7 @@ export default async function DocsPage({ params }: { params: Promise -