diff --git a/README.md b/README.md index 470704c..d301146 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,11 @@ The MeteorTest Web preview is for console-surface validation. Local Agent execut - **iOS-Automation-Framework**: the companion test-code repository and `meteortest.yml` integration sample. - **senior-engineering-guardrails**: a coding-agent workflow discipline layer. - **douyin-video-toolkit**: a creator workflow automation toolkit. +- **MeteorVoice**: an early-stage voice-first English practice product experiment. +- **idea-to-app-spec**: a reusable AI workflow skill for turning rough ideas into build-ready handoff artifacts. +- **TimeTracker**: a utility backend service for user, device, event, and session tracking. -The website is intentionally project-led. It explains how these repositories relate to repeatable testing loops, local execution, reports, and AI-assisted operations. +The website is intentionally project-led. It explains how these repositories relate to repeatable testing loops, local execution, reports, AI-assisted operations, reusable workflow packaging, and product experiments. ## Key Projects @@ -53,6 +56,10 @@ The website is intentionally project-led. It explains how these repositories rel | --- | --- | --- | | MeteorTest | Flagship automation testing platform | [Web Preview](https://meteortest.jcmeteor.com/) / [GitHub](https://github.com/JunchenMeteor/MeteorTest) | | iOS-Automation-Framework | Companion iOS test project and integration sample | [GitHub](https://github.com/JunchenMeteor/iOS-Automation-Framework) | +| MeteorVoice | Early-stage voice practice product experiment | [GitHub](https://github.com/JunchenMeteor/MeteorVoice) | +| junchen-meteor | Personal website and project hub | [GitHub](https://github.com/JunchenMeteor/junchen-meteor) | +| TimeTracker | Utility backend service | [GitHub](https://github.com/JunchenMeteor/TimeTracker) | +| idea-to-app-spec | Reusable AI idea-to-spec workflow skill | [GitHub](https://github.com/JunchenMeteor/idea-to-app-spec) | | senior-engineering-guardrails | Agent workflow guardrails | [GitHub](https://github.com/JunchenMeteor/senior-engineering-guardrails) | | douyin-video-toolkit | Creator workflow automation toolkit | [GitHub](https://github.com/JunchenMeteor/douyin-video-toolkit) | diff --git a/README.zh-CN.md b/README.zh-CN.md index 6ef5165..5ce7193 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -44,8 +44,11 @@ https://meteortest.jcmeteor.com/ - **iOS-Automation-Framework**:配套测试代码仓库,也是 `meteortest.yml` 集成样例。 - **senior-engineering-guardrails**:面向 AI 编码 Agent 的工程工作规则。 - **douyin-video-toolkit**:创作者工作流自动化工具。 +- **MeteorVoice**:早期阶段的语音优先英语练习产品实验。 +- **idea-to-app-spec**:把模糊想法整理成可执行交付产物的可复用 AI 工作流 skill。 +- **TimeTracker**:用于用户、设备、事件和会话跟踪的实用型后端服务。 -这个网站以项目为核心,说明这些仓库如何围绕可复现测试闭环、本地执行、报告和 AI 辅助操作形成关系。 +这个网站以项目为核心,说明这些仓库如何围绕可复现测试闭环、本地执行、报告、AI 辅助操作、可复用工作流打包和产品实验形成关系。 ## 关键项目 @@ -53,6 +56,10 @@ https://meteortest.jcmeteor.com/ | --- | --- | --- | | MeteorTest | 主推自动化测试平台 | [Web 预览](https://meteortest.jcmeteor.com/) / [GitHub](https://github.com/JunchenMeteor/MeteorTest) | | iOS-Automation-Framework | iOS 配套测试项目和集成样例 | [GitHub](https://github.com/JunchenMeteor/iOS-Automation-Framework) | +| MeteorVoice | 早期语音练习产品实验 | [GitHub](https://github.com/JunchenMeteor/MeteorVoice) | +| junchen-meteor | 个人主页和项目入口 | [GitHub](https://github.com/JunchenMeteor/junchen-meteor) | +| TimeTracker | 实用型后端服务 | [GitHub](https://github.com/JunchenMeteor/TimeTracker) | +| idea-to-app-spec | 可复用 AI 想法转规格工作流 skill | [GitHub](https://github.com/JunchenMeteor/idea-to-app-spec) | | senior-engineering-guardrails | Agent 工作规则 | [GitHub](https://github.com/JunchenMeteor/senior-engineering-guardrails) | | douyin-video-toolkit | 创作者工作流自动化工具 | [GitHub](https://github.com/JunchenMeteor/douyin-video-toolkit) | diff --git a/src/content/projects.ts b/src/content/projects.ts index 8dbb5ac..d606a13 100644 --- a/src/content/projects.ts +++ b/src/content/projects.ts @@ -43,7 +43,20 @@ export type Project = { }; }; -export const projects: Project[] = [ +const projectDisplayOrder = [ + "meteortest", + "ios-automation-framework", + "meteorvoice", + "junchen-meteor", + "timetracker", + "idea-to-app-spec", + "senior-engineering-guardrails", + "douyin-video-toolkit" +]; + +const projectRank = new Map(projectDisplayOrder.map((slug, index) => [slug, index])); + +const projectEntries: Project[] = [ { slug: "meteortest", name: "MeteorTest", @@ -268,9 +281,235 @@ export const projects: Project[] = [ github: "https://github.com/JunchenMeteor/douyin-video-toolkit", docs: "https://github.com/JunchenMeteor/douyin-video-toolkit#readme" } + }, + { + slug: "junchen-meteor", + name: "junchen-meteor", + zhName: "JC Meteor 个人主页", + role: "companion", + status: "Active", + stack: ["Next.js", "TypeScript", "Localization", "Theme System"], + summary: { + en: "A bilingual personal website that presents JC Meteor's project hub, technical identity, and public project ecosystem.", + zh: "一个双语个人网站,用于展示 JC Meteor 的项目主页、技术身份和公开项目生态。" + }, + portfolio: { + why: { + en: "A personal homepage gives the project family one stable public entry point instead of scattering context across individual repositories.", + zh: "个人主页为项目家族提供一个稳定的公开入口,避免把上下文分散在各个仓库里。" + }, + built: { + en: [ + "Bilingual project showcase with localized routes and shared content modules.", + "Flagship project framing for MeteorTest and related companion projects.", + "Structured project pages that keep public project context easy to scan." + ], + zh: [ + "具备本地化路由和共享内容模块的双语项目展示。", + "围绕 MeteorTest 和配套项目构建主项目叙事。", + "结构化项目页面,方便快速浏览公开项目上下文。" + ] + }, + role: { + en: "Public project hub and portfolio site.", + zh: "公开项目主页和作品集站点。" + }, + next: { + en: "Keep the project list current as new repos land, and continue tightening the relationship between the homepage and each project detail page.", + zh: "随着新仓库增加持续更新项目列表,并继续加强首页与各项目详情页之间的关联。" + } + }, + highlights: { + en: [ + "Bilingual content structure", + "Localized project routes", + "Project ecosystem overview", + "Shared content modules" + ], + zh: [ + "双语内容结构", + "本地化项目路由", + "项目生态总览", + "共享内容模块" + ] + }, + links: { + github: "https://github.com/JunchenMeteor/junchen-meteor", + docs: "https://github.com/JunchenMeteor/junchen-meteor#readme" + } + }, + { + slug: "meteorvoice", + name: "MeteorVoice", + role: "companion", + status: "Active", + stack: ["Next.js", "Supabase", "LangGraph", "Vercel AI SDK", "TTS"], + summary: { + en: "An early-stage voice-first English speaking coach, with the first engineering loop in place and real accent providers still being integrated.", + zh: "一个早期阶段的语音优先英语陪练应用,已完成第一轮工程闭环,真实口音供应商仍在接入中。" + }, + portfolio: { + why: { + en: "The project explores whether a short voice-practice loop can make English speaking feedback easier to repeat and refine.", + zh: "这个项目用于探索短闭环语音练习是否能让英语口语反馈更容易反复使用和迭代。" + }, + built: { + en: [ + "First-pass Next.js app structure for practice sessions, correction items, preferences, and history.", + "Supabase-backed persistence for sessions, turns, correction items, and user preferences.", + "Mock AI, STT, and TTS providers that keep local development runnable before real voice-provider integration is complete." + ], + zh: [ + "完成第一版 Next.js 应用结构,覆盖练习会话、纠错项、偏好和历史记录。", + "基于 Supabase 持久化会话、轮次、纠错项和用户偏好。", + "提供 mock AI、STT 和 TTS 适配器,在真实语音供应商接入完成前保持本地开发可运行。" + ] + }, + role: { + en: "Early voice-coaching product experiment.", + zh: "早期语音陪练产品实验。" + }, + next: { + en: "Connect real STT/TTS providers, validate accent behavior, and tighten the correction loop after provider integration is stable.", + zh: "接入真实 STT/TTS 供应商,验证口音表现,并在供应商接入稳定后继续打磨纠错闭环。" + } + }, + highlights: { + en: [ + "First-pass voice practice loop", + "Mock provider development path", + "Supabase-backed session history", + "Real accent integration planned" + ], + zh: [ + "第一版语音练习闭环", + "Mock 供应商开发路径", + "Supabase 会话历史", + "计划接入真实口音" + ] + }, + links: { + github: "https://github.com/JunchenMeteor/MeteorVoice", + docs: "https://github.com/JunchenMeteor/MeteorVoice#readme" + } + }, + { + slug: "idea-to-app-spec", + name: "idea-to-app-spec", + role: "skill", + status: "Maintained", + stack: ["Codex", "Claude Code", "Workflow Design", "Chronicle"], + summary: { + en: "An AI workflow skill that turns rough ideas into specs, plans, one-shot prompts, and implementation handoff artifacts.", + zh: "一个 AI 工作流 skill,可把模糊想法转成 spec、plan、one-shot prompt 和 implementation handoff 产物。" + }, + portfolio: { + why: { + en: "Many AI builds fail because the idea is not shaped well enough before implementation starts.", + zh: "很多 AI 项目失败,是因为在开始实现前,想法还没有被整理清楚。" + }, + built: { + en: [ + "Explore, package, and skill-mining modes for shaping delivery workflows.", + "Spec, plan, one-shot prompt, handoff, chronicle, and skill suggestion outputs.", + "Codex and Claude Code installation guidance for reusable workflow packaging." + ], + zh: [ + "用于整理交付流程的 Explore、Package 和 Skill Mining 模式。", + "输出 spec、plan、one-shot prompt、handoff、chronicle 和 skill suggestion。", + "提供面向 Codex 和 Claude Code 的安装与复用说明。" + ] + }, + role: { + en: "Reusable AI workflow package.", + zh: "可复用的 AI 工作流包。" + }, + next: { + en: "Keep tightening the workflow packaging, documentation, and reusable skill suggestions.", + zh: "继续打磨工作流打包、文档和可复用 skill 建议。" + } + }, + highlights: { + en: [ + "Idea-to-spec workflow", + "One-shot prompt generation", + "Implementation handoff", + "Chronicle and skill mining" + ], + zh: [ + "想法转 spec 工作流", + "One-shot prompt 生成", + "实现交接", + "Chronicle 和 skill 挖掘" + ] + }, + links: { + github: "https://github.com/JunchenMeteor/idea-to-app-spec", + docs: "https://github.com/JunchenMeteor/idea-to-app-spec#readme" + } + }, + { + slug: "timetracker", + name: "TimeTracker", + zhName: "TimeTracker 后端服务", + role: "companion", + status: "Active", + stack: ["Java", "Spring Boot", "Docker", "MySQL", "Redis"], + summary: { + en: "A backend service for tracking users, devices, events, and daily sessions.", + zh: "一个用于跟踪用户、设备、事件和每日会话的后端服务。" + }, + portfolio: { + why: { + en: "Operational systems work better when attendance, device, and session data are structured instead of scattered in ad hoc records.", + zh: "当考勤、设备和会话数据被结构化管理,而不是散落在零散记录中时,运营系统会更好用。" + }, + built: { + en: [ + "REST APIs for registration, login, device reporting, and session queries.", + "Docker Compose setup for backend, MySQL, and Redis.", + "Simple service-layer structure for model, repository, controller, and security code." + ], + zh: [ + "用于注册、登录、设备上报和会话查询的 REST API。", + "提供后端、MySQL 和 Redis 的 Docker Compose 启动方案。", + "采用 model、repository、controller 和 security 分层的服务结构。" + ] + }, + role: { + en: "Utility backend service.", + zh: "实用型后端服务。" + }, + next: { + en: "Expand the reporting and workflow layer if it becomes part of a larger product system.", + zh: "如果它演进为更大产品体系的一部分,再扩展报表和流程层。" + } + }, + highlights: { + en: [ + "Device and session tracking", + "REST API service", + "Dockerized local stack", + "Simple layered backend design" + ], + zh: [ + "设备和会话跟踪", + "REST API 服务", + "Docker 化本地栈", + "简洁的后端分层设计" + ] + }, + links: { + github: "https://github.com/JunchenMeteor/TimeTracker", + docs: "https://github.com/JunchenMeteor/TimeTracker#readme" + } } ]; +export const projects = [...projectEntries].sort((left, right) => { + return (projectRank.get(left.slug) ?? Number.MAX_SAFE_INTEGER) - (projectRank.get(right.slug) ?? Number.MAX_SAFE_INTEGER); +}); + export function getProject(slug: string) { return projects.find((project) => project.slug === slug); } diff --git a/src/content/seo.ts b/src/content/seo.ts index ae0919a..1895485 100644 --- a/src/content/seo.ts +++ b/src/content/seo.ts @@ -27,7 +27,7 @@ const seoCopy = { projects: { title: "Projects | JC Meteor", description: - "Explore JC Meteor projects including MeteorTest, iOS-Automation-Framework, senior-engineering-guardrails, and creator workflow automation tools.", + "Explore JC Meteor projects including MeteorTest, iOS-Automation-Framework, MeteorVoice, idea-to-app-spec, and reusable AI workflow tools.", path: "/projects" } }, @@ -45,7 +45,7 @@ const seoCopy = { }, projects: { title: "项目 | JC Meteor", - description: "查看 JC Meteor 项目,包括 MeteorTest、iOS-Automation-Framework、senior-engineering-guardrails 和创作者工作流工具。", + description: "查看 JC Meteor 项目,包括 MeteorTest、iOS-Automation-Framework、MeteorVoice、idea-to-app-spec 和可复用 AI 工作流工具。", path: "/zh-CN/projects" } } diff --git a/src/content/ui.ts b/src/content/ui.ts index b51547a..792e894 100644 --- a/src/content/ui.ts +++ b/src/content/ui.ts @@ -53,7 +53,7 @@ export const uiCopy = { pageLabel: "Projects", pageTitle: "A project-led engineering portfolio", pageIntro: - "MeteorTest is the center of the current system, with companion repositories that cover test implementation, agent guardrails, and creator tooling.", + "MeteorTest is the center of the current system, with companion repositories that cover test implementation, agent guardrails, creator tooling, voice practice, workflow packaging, and the public homepage itself.", ecosystemRole: "Ecosystem role", validationResults: "Validation results", why: "Why it exists", @@ -114,7 +114,7 @@ export const uiCopy = { projects: { pageLabel: "项目", pageTitle: "以项目为核心的工程作品集", - pageIntro: "MeteorTest 是当前项目体系的中心,配套仓库覆盖测试实现、Agent 工作规则和创作工具。", + pageIntro: "MeteorTest 是当前项目体系的中心,配套仓库覆盖测试实现、Agent 工作规则、创作工具、语音练习、工作流打包和个人主页本身。", ecosystemRole: "生态角色", validationResults: "验证结果", why: "为什么存在",