This repository delivers four independently deployable public Next.js applications:
apps/theorvane/: the Theorvane brand site, canonical athttps://theorvane.techapps/type-mcp/: the TypeMCP product site, canonical athttps://typemcp.theorvane.techapps/type-chain/: the TypeChain product site, canonical athttps://typechain.theorvane.techapps/openscene/: the OpenScene local-first product site, canonical athttps://openscene.app, with bilingual usage documentation at/docs(English) and/docs/ko(Korean)packages/: neutral shared UI and design tokens onlydocs/: approved product and design specifications.agents/: tracked task briefs and agent operating aids; never imported by application runtime code
Keep runtime code strict TypeScript. Do not add server-side product features, CMS, auth, analytics, or package-runtime claims without an approved scope change.
- User-approved product decisions
docs/specifications and current product boundaries- The linked GitHub Issue acceptance criteria
- This file
- README and public-site copy
When sources conflict, stop and update the lower-priority source before implementation.
devis the default integration branch.mainis release-only. It accepts revieweddev→mainpromotion PRs only.- Never commit directly to
devormain. - Do not change branch protection, rulesets, reviewer state, approvals, or merge-policy settings. Repository instructions do not authorize bypassing these controls.
- Vercel Preview deployments are disabled. Only a merge or push to
mainmay create a production deployment.
Before implementation, create or update one focused GitHub Issue and assign it to sjungwon03.
Apply one primary type label and all applicable scope labels to the Issue and its PR:
- Primary type (exactly one):
type: feature,type: documentation, ortype: ci - Scope:
area: website,area: seo, and/orarea: brand - Release promotions:
release - Urgent or user-visible work:
priority: high
Keep labels focused; do not add unrelated labels merely for coverage.
- Inspect existing Issues and PRs; avoid duplicate work.
- Create or update one focused Issue with scope, acceptance criteria, non-goals, labels, and
sjungwon03as assignee. - Branch from current
origin/devusing<type>/<issue-number>-<short-description>. - For multi-behavior work, create
.agents/task-briefs/<issue-number>-<slug>.mdfrom the task brief convention. - Write a focused failing test before production code when behavior changes. Record the observed failure.
- Implement the smallest safe change; update public docs for user-visible behavior.
- Run applicable verification: focused tests,
npm test,npm run lint,npm run typecheck,npm run build,npm audit --omit=dev --audit-level=high, andgit diff --check. - Open a PR into
devwithCloses #<issue-number>, mirror the Issue labels, and assignsjungwon03. - Request formal independent review from
sjungwon03-ai. The request must be made against the latest head; do not dismiss, alter, or bypass review state. - Squash merge only after the latest-head approval and required checks pass.
- For a release, create a separate labeled
releasePR fromdevintomain. It requiresverify,release-promotion, and a latest-head independent approval before squash merge. - After a
mainmerge, verify the production deployment and relevant public routes. Close the linked release Issue only after that evidence exists.
- 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.techredirects permanently totheorvane.tech, andopenvideo.theorvane.tech,open-video.app, andwww.open-video.appeach redirect permanently toopenscene.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, andnode_modules/must not be committed.
A change is done only when its Issue and PR carry correct labels and owner, the PR has a current-head sjungwon03-ai formal review, relevant verification passes, the diff is scoped, and the documented branch/release path is followed.