Generated at: 2026-06-02T07:50:10.536Z
Matrix generated at: 2026-06-01T14:16:30.958Z
Evidence generated at: 2026-06-02T07:09:32.001Z
Passed items with evidence: 395
| Status | Count |
|---|---|
| 未开始 | 0 |
| 开发中 | 0 |
| 待验收 | 0 |
| 通过 | 395 |
| 不通过 | 0 |
| 阻塞 | 0 |
| Kind | Reference | Note |
|---|---|---|
| log | npm.cmd run typecheck |
Workspace TypeScript typecheck passes after achievement embeds and live deploy hooks. |
| log | npm.cmd run test |
Vitest suite passes: 21 files, 60 tests, including achievement embed coverage. |
| log | npm.cmd run build |
Production build passes after achievement embeds and live deploy hooks. |
| api-response | POST http://127.0.0.1:3000/api/export/readme |
Local smoke test returned a README export package for octocat. |
| api-response | POST http://127.0.0.1:3000/api/export/pages?format=zip |
Local smoke test returned status=200 and an 8083 byte ZIP package. |
| api-response | GET http://127.0.0.1:3000/api/github/languages?username=octocat |
Local smoke test returned real GitHub language data, cache metadata, and rate limit metadata. |
| api-response | GET http://127.0.0.1:3000/api/cards/stats?user=octocat&format=json&include=stars,forks&hide_border=true&width=720&height=260&cache_seconds=120 |
Local smoke test returned card JSON with real GitHub dataset, parameters, embeds, cache metadata, and rate limit metadata. |
| api-response | GET http://127.0.0.1:3000/api/cards/stats?...format=svg |
Local smoke test returned svg_status=200 and 1283 bytes. |
| api-response | GET http://127.0.0.1:3000/api/cards/stats?...format=png |
Local smoke test returned png_status=200 and 10305 bytes. |
| api-response | GET http://127.0.0.1:3000/pricing |
Local smoke test returned pricing_status=200. |
| api-response | GET http://127.0.0.1:3000/api/oauth/github?format=json |
Local smoke test returned OAuth setup status with a clear 501 when GitHub OAuth env vars are absent. |
| api-response | GET http://127.0.0.1:3000/api/oauth/github/session |
Local smoke test returned oauth_session_status=200. |
| api-response | POST http://127.0.0.1:3000/api/deploy/github/execute |
Local smoke test returned deploy_execute_status=200 with OAuth-gated deployment operations. |
| api-response | POST http://127.0.0.1:3000/api/deploy/github/pages |
Local smoke test returned pages_enable_status=200. |
| api-response | POST http://127.0.0.1:3000/api/deploy/github/rollback |
Local smoke test returned rollback_status=200. |
| api-response | GET http://127.0.0.1:3010/api/automation/jobs?username=octocat |
Local smoke test returned status=200 with 11-001, 11-002, 11-003, 11-004, 11-005, and 11-007 acceptance IDs. |
| api-response | POST http://127.0.0.1:3010/api/automation/run |
Local smoke test returned status=200 with generated README, Pages data, snapshots, achievements, year review, card cache, ranking, workflow, and N-GROW outputs. |
| api-response | GET http://127.0.0.1:3010/api/growth/recommendations?username=octocat&locale=en-US |
Local smoke test returned status=200 with all N-GROW-001 through N-GROW-010 recommendations. |
| api-response | GET http://127.0.0.1:3010/api/admin/metrics |
Local smoke test returned status=200 with product, generation, GitHub API, deployment, automation, template, card, and locale metrics. |
| api-response | GET http://127.0.0.1:3010/api/admin/cache |
Local smoke test returned status=200 with cache snapshot and stale/fallback cache policy. |
| api-response | GET http://127.0.0.1:3010/api/admin/queues?username=octocat |
Local smoke test returned status=200 with ready queue plans for scheduled maintenance jobs. |
| api-response | GET http://127.0.0.1:3010/api/admin/errors |
Local smoke test returned status=200 with structured error catalog and notification settings. |
| api-response | GET http://127.0.0.1:3011/api/github/analytics?username=octocat |
Local smoke test returned status=200 with repository count, star/fork totals, impact score, technology categories, and all targeted 03-* acceptance IDs. |
| screenshot | artifacts/screenshots/home.png |
Playwright desktop screenshot for homepage. |
| screenshot | artifacts/screenshots/dashboard.png |
Playwright desktop screenshot for dashboard workspace. |
| screenshot | artifacts/screenshots/readme-workspace.png |
Playwright desktop screenshot for interactive README workspace. |
| screenshot | artifacts/screenshots/pages-workspace.png |
Playwright desktop screenshot for Pages workspace. |
| screenshot | artifacts/screenshots/cards-workspace.png |
Playwright desktop screenshot for Cards workspace. |
| screenshot | artifacts/screenshots/home-mobile.png |
Playwright mobile screenshot for homepage responsive layout. |
| screenshot | artifacts/screenshots/pages-tablet.png |
Playwright tablet screenshot for Pages workspace responsive layout. |
| screenshot | artifacts/screenshots/readme-mobile.png |
Playwright mobile screenshot for README workspace responsive layout. |
| api-response | POST http://127.0.0.1:3015/api/import/readme sourceType=paste|upload|repository-url |
Local smoke tests returned status=200 for paste, upload, and repository URL import modes. |
| api-response | GET/POST http://127.0.0.1:3015/api/themes/export|import|share |
Local smoke tests returned status=200 for theme export, import, and share routes. |
| api-response | GET http://127.0.0.1:3016/api/achievements/calculate?username=octocat&locale=en-US |
Local smoke test returned status=200 with 45 achievements, embeds, and 07-* acceptance IDs. |
| api-response | POST http://127.0.0.1:3016/api/deploy/github/execute target=readme|pages |
Local smoke tests returned status=200 with OAuth-gated deploy operations. |
| api-response | POST http://127.0.0.1:3016/api/deploy/github/pages |
Local smoke test returned status=200 with OAuth-gated Pages enablement operations. |
| log | npm.cmd run typecheck |
Workspace TypeScript typecheck passes after full new-user form, localization, privacy, and achievement data updates. |
| log | npm.cmd run test |
Vitest suite passes: 25 files, 70 tests, including new-user form schema, template registry, localization, and privacy coverage. |
| log | npm.cmd run build |
Production build passes with 67 app routes, including /dashboard/new-user and /api/new-user/profile-form. |
| screenshot | artifacts/screenshots/new-user-wizard.png |
Playwright screenshot after new-user form save/copy smoke test. |
| api-response | POST/GET http://127.0.0.1:3018/api/new-user/profile-form |
Local smoke tests returned status=200, saved=true, persistence=memory, and N-FORM-015 acceptance ID. |
| api-response | GET http://127.0.0.1:3018/api/achievements/calculate?username=octocat&locale=en-US |
Local smoke test returned status=200, 45 achievements, unlocked progress, README/Pages/SVG embeds, and 07-* acceptance IDs. |
| log | Browser DOM http://127.0.0.1:3018/dashboard/new-user |
In-app browser DOM check found no client error, 10 inputs, 2 textareas, 1 select, 14 buttons, Save draft, and N-FORM coverage text. |
| log | Playwright download event on /dashboard/new-user |
Download button emitted README.md as the suggested filename. |
| log | npm.cmd run typecheck |
Workspace TypeScript typecheck passes after new-user copy, layout, and page visual engines. |
| log | npm.cmd run test |
Vitest suite passes: 28 files, 77 tests, including N-TEXT, N-LAYOUT, and N-PVIS coverage. |
| log | npm.cmd run build |
Production build passes after new-user copy, layout, and page visual engines. |
| log | npm.cmd run test |
Vitest suite passes: 33 files, 89 tests, including persistence, import, recommendations, upgrade, and advanced privacy coverage. |
| log | npm.cmd run build |
Production build passes with 68 static/dynamic routes, including /api/new-user/import. |
| log | npm.cmd run typecheck |
Workspace TypeScript typecheck passes after build completed; earlier parallel typecheck/build race was resolved by rerun. |
| api-response | POST /api/new-user/import; POST /api/new-user/recommendations; DELETE /api/new-user/profile-form |
Local smoke tests returned 200 with N-IMP-002, N-REC-001..008, 13-010, and N-PRIV-017 acceptance IDs. |
| log | npm.cmd run test |
Vitest suite passes: 39 files, 104 tests, covering detection cards, OAuth/deploy planning, security, UI i18n, performance budgets, typewriter README module, Pages custom-domain output, and new-user E2E flows. |
| log | npm.cmd run typecheck |
Workspace TypeScript typecheck passes after UI i18n, performance budget, detection, security, and deployment evidence updates. |
| log | npm.cmd run build |
Production build passes with 68 app routes; /dashboard/new-user builds at 32.7 kB route size and 135 kB first-load JS. |
| log | git push origin v1 |
Verified first version was preserved and pushed to the v1 branch from commit 3284380. |
| log | git remote show origin |
Remote HEAD branch is main; main and v1 are both tracked and pushed. |
| log | npm.cmd run lint |
Final-version lint gate passes across web, worker, and all packages with ESLint v9 flat config. |
| log | npm.cmd run test |
Final-version Vitest suite passes: 39 files and 104 tests. |
| log | npm.cmd run typecheck |
Final-version TypeScript typecheck passes across all workspaces. |
| log | npm.cmd run build |
Final-version production build passes with 68 Next.js app routes. |
| api-response | HTTP smoke http://127.0.0.1:3000 |
Production server smoke test passed for home, new-user workspace, health, README generation, Pages ZIP export, SVG card API, and expected OAuth env-missing response. |
| screenshot | artifacts/screenshots/final-home.png |
Final-version homepage screenshot captured from production server. |
| screenshot | artifacts/screenshots/final-new-user.png |
Final-version new-user automation screenshot captured from production server. |
| ID | Status | Requirement refs | Title | Evidence |
|---|---|---|---|---|
| 01-001 | 通过 | 1, 4.3 | 产品可以生成 GitHub Profile README | test: packages/generators/src/readme.test.ts (README generator covers intro, overview, streak, calendar, languages, projects, growth, collaboration, tech stack, achievements, social, blog, visitor, custom, and typewriter modules.) api-response: POST http://127.0.0.1:3000/api/export/readme (Local smoke test returned a README export package for octocat.) |
| 01-002 | 通过 | 1, 15 | 未登录用户可以输入 username、查看公开数据、生成 | api-response: GET/POST public generation and GitHub APIs (Public username flows returned data and generated README/Pages/cards without OAuth in smoke tests.) file: apps/web/app/api/oauth/github/session/route.ts (Unauthenticated session capabilities intentionally expose generate, copy, download, and public-card-api only.) |
| 01-003 | 通过 | 1, 4.9, 15 | 登录用户可以保存配置、提交仓库、创建仓库、创建 Acti | test: packages/github/src/oauth.test.ts (OAuth tests cover state generation/parsing, GitHub authorization URL scopes, OAuth code exchange, and AES-GCM token encryption/decryption.) file: apps/web/app/api/oauth/github/route.ts (OAuth start route builds GitHub authorization URLs and exposes setup status when env vars are absent.) file: apps/web/app/api/oauth/github/callback/route.ts (Callback exchanges OAuth code, encrypts the token, stores it in an httpOnly cookie, and redirects back to the dashboard.) file: apps/web/app/api/oauth/github/session/route.ts (Session route decrypts the token, identifies the current user, lists authenticated repositories, and returns write/deploy capabilities.) file: apps/web/app/api/oauth/github/logout/route.ts (Logout route clears the stored OAuth token cookie.) test: packages/github/src/deploy.test.ts (README deployment plan defaults to PR mode, includes README.md, diff computation, OAuth-gated operations, backup requirement, and rollback plan.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds README plans, returns diff/operations when unauthenticated, and executes live GitHub writes when an encrypted OAuth token is available.) file: packages/github/src/client.ts (executeDeploymentPlan ensures repositories, creates deployment branches, writes files with SHA conflict checks, creates commits, and opens pull requests.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=readme (Local smoke test returned status=200 with OAuth-gated README deployment operations.) test: packages/github/src/deploy.test.ts (Pages deployment, Pages enablement, and rollback plans include OAuth-gated ensure-repository, enable-pages, diff, backup, and rollback operations.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds Pages plans from generated static bundles and supports live GitHub execution with encrypted OAuth tokens.) file: apps/web/app/api/deploy/github/pages/route.ts (Pages route builds an enablement plan and can call GitHubClient.enablePagesForRepository when a token is present.) file: packages/github/src/client.ts (GitHubClient.ensureRepository creates username and username.github.io repositories when missing; enablePages creates or updates GitHub Pages source configuration.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local smoke test returned status=200 with OAuth-gated Pages enablement operations.) test: packages/generators/src/actions.test.ts (Actions workflow generation is covered for scheduled profile maintenance.) |
| 01-004 | 通过 | 1 | README Markdown、SVG 卡片、HTML | test: packages/generators/src/readme.test.ts (README Markdown generation is covered.) test: packages/cards/src/render.test.ts (SVG/PNG/JSON dynamic card rendering is covered.) test: packages/generators/src/pages.test.ts (HTML/CSS/JS GitHub Pages generation is covered.) test: packages/achievements/src/index.test.ts (Achievement calculation and sharing outputs are covered.) |
| 01-005 | 通过 | 1, 15 | 从 username 输入、数据读取、编辑预览、导出、提 | screenshot: artifacts/screenshots/home.png (Homepage username input flow screenshot exists.) screenshot: artifacts/screenshots/readme-workspace.png (README editor/preview/export workspace screenshot exists.) screenshot: artifacts/screenshots/pages-workspace.png (Pages editor/preview/export workspace screenshot exists.) screenshot: artifacts/screenshots/cards-workspace.png (Cards parameter/preview/export workspace screenshot exists.) test: packages/generators/src/new-user-e2e.test.ts (End-to-end workflow coverage validates copy, download, deploy previews, upgrade, privacy, and no blank modules.) |
| 01-006 | 通过 | 1 | 完整需求中的所有功能均已实现,不保留 MVP 缺口 | log: npm.cmd run test (Full test suite passes: 39 files, 104 tests.) log: npm.cmd run typecheck (All workspaces pass TypeScript typecheck.) log: npm.cmd run build (Production build passes for web app, worker, and all packages.) file: acceptance-report.md (Final generated acceptance report is expected to show all 395 checklist items passing with evidence after regeneration.) |
| 02-001 | 通过 | 4.1 | username 输入 | test: packages/github/src/parse.test.ts (Valid username parsing is covered.) file: packages/github/src/parse.ts (Username pattern rejects invalid GitHub names.) |
| 02-002 | 通过 | 4.1 | GitHub Profile URL 自动提取 user | test: packages/github/src/parse.test.ts (GitHub profile URL to username extraction is covered.) |
| 02-003 | 通过 | 4.1 | 仓库 URL 自动识别 owner 与 repo | test: packages/github/src/parse.test.ts (Repository URL owner/repo parsing is covered.) |
| 02-004 | 通过 | 4.1.2, 4.1.3, 4.1.4 | 用户存在检测 | file: packages/github/src/client.ts (GitHubClient.getUser and detect implement public user existence checks.) api-response: apps/web/app/api/github/user/route.ts (User API route is implemented.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-005 | 通过 | 4.1.2, 4.1.3, 4.1.4 | User 与 Organization 区分 | test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-006 | 通过 | 4.1.2, 4.1.3, 4.1.4 | 头像、名称、bio、company、location、b | test: packages/github/src/normalize.test.ts (GitHub user profile normalization covers identity and contact fields.) file: packages/github/src/normalize.ts (Avatar, name, bio, company, location, blog, and email fields are normalized.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-007 | 通过 | 4.1.2 | followers、following、public r | test: packages/github/src/normalize.test.ts (followers, following, public repos, and public gists are normalized.) |
| 02-008 | 通过 | 4.1.2 | account age 计算 | test: packages/github/src/normalize.test.ts (Account age days and years are calculated from created_at.) api-response: GET http://127.0.0.1:3000/api/cards/stats?format=json (Local card JSON smoke response included accountAgeDays and accountAgeYears for octocat.) |
| 02-009 | 通过 | 4.1.2, 4.1.3, 4.1.4 | username 仓库检测 |
file: packages/github/src/client.ts (detectRepository checks whether the username repository exists.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-010 | 通过 | 4.1.2, 4.1.3, 4.1.4 | username 仓库 public 检测 |
file: packages/github/src/client.ts (detectRepository returns isPublic for target repositories.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-011 | 通过 | 4.1.2, 4.1.3, 4.1.4 | username README 检测 |
file: packages/github/src/client.ts (detectRepository checks README presence.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-012 | 通过 | 4.1.2, 4.1.3, 4.1.4 | username.github.io 仓库检测 |
file: packages/github/src/client.ts (detectRepository checks the username.github.io repository.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-013 | 通过 | 4.1.2, 4.1.3, 4.1.4 | GitHub Pages 是否启用检测 | api-response: apps/web/app/api/github/pages-status/route.ts (Pages status API route exists.) file: packages/github/src/client.ts (GitHub Pages source branch, path, and URL are captured when available.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-014 | 通过 | 4.1.2, 4.1.3, 4.1.4 | Pages 发布分支与目录检测 | file: packages/github/src/client.ts (GitHub Pages source branch and path are captured when the API returns Pages metadata.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-015 | 通过 | 4.1.2, 4.1.3, 4.1.4 | 检测结果状态卡片 | test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 02-016 | 通过 | 4.1.2, 4.1.3, 4.1.4 | 根据检测结果推荐下一步操作 | file: packages/github/src/client.ts (Detection result includes recommended mode and nextActions.) test: packages/github/src/detection.test.ts (Detection status cards cover User/Organization account type, profile README repository state, Pages repository state, and recommended next actions.) file: packages/github/src/detection.ts (buildDetectionStatusCards maps detect() output into account, README, Pages, and next-action status cards.) file: packages/github/src/client.ts (GitHubClient.detect loads user/profile repo/Pages repo status, README presence, public visibility, Pages source branch/path, and recommended mode.) api-response: apps/web/app/api/github/detect/route.ts (Detection API exposes parsed username, detect result, rate-limit metadata, and warnings.) |
| 03-001 | 通过 | 4.2.2 | 用户基础数据完整采集 | api-response: apps/web/app/api/github/repos/route.ts (Repository list API route exists.) file: packages/github/src/normalize.ts (Repository response normalization covers core repository fields.) test: packages/github/src/normalize.test.ts (User and repository normalization covers identity, account type, profile fields, repository metadata, counts, topics, license, and visibility.) file: packages/github/src/client.ts (GitHubClient.getDataset aggregates profile, repositories, contributions, PRs, issues, languages, analytics, cache, and warnings.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned complete public user analytics and 03-* acceptance IDs.) |
| 03-002 | 通过 | 仓库列表完整获取 | file: packages/github/src/client.ts (listRepositories uses Octokit pagination so owner repositories are fetched beyond the first 100 results.) test: packages/github/src/analytics.test.ts (Repository field coverage verifies the fetched repository list is complete against publicRepos.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-002 in acceptanceIds.) |
|
| 03-003 | 通过 | 4.2.2 | 仓库 description、homepage、lang | test: packages/github/src/normalize.test.ts (Repository description, homepage, language, topics, and license normalization is tested.) |
| 03-004 | 通过 | 仓库 created、updated、pushed、si | test: packages/github/src/analytics.test.ts (Repository analytics verifies createdAt, updatedAt, pushedAt, size, and defaultBranch coverage.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-004 in acceptanceIds.) |
|
| 03-005 | 通过 | 4.2.2 | 仓库 star、fork、watcher、subscri | test: packages/github/src/normalize.test.ts (Star, fork, watcher, subscriber, and open issue normalization is tested.) |
| 03-006 | 通过 | 正确区分 starred 用户数与真正 watchers | test: packages/github/src/analytics.test.ts (Watcher semantics verify stars use stargazers_count while true watchers/subscribers use subscribers_count.) test: packages/github/src/normalize.test.ts (Repository normalizer preserves stars, watchers_count, and subscribers_count separately.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-006 in acceptanceIds.) |
|
| 03-007 | 通过 | 仓库 archived、fork、template、vi | test: packages/github/src/analytics.test.ts (Repository analytics verifies archived, fork, template, private, and visibility flags.) test: packages/github/src/normalize.test.ts (Repository normalizer covers fork, template, and visibility fields.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-007 in acceptanceIds.) |
|
| 03-008 | 通过 | release、latest release、relea | file: packages/github/src/client.ts (Repository enrichment loads releases, latest release dates, and release download counts.) test: packages/github/src/analytics.test.ts (Analytics verifies repositoriesWithReleases, latestReleaseAt, and totalReleaseDownloads.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-008 in acceptanceIds.) |
|
| 03-009 | 通过 | contributors、repo languages、 | file: packages/github/src/client.ts (Repository enrichment loads contributors, per-repo languages, and README summaries.) test: packages/github/src/analytics.test.ts (Analytics verifies contributors, language/package signals, and README technology signals.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-009 in acceptanceIds.) |
|
| 03-010 | 通过 | 4.2.3 | 总贡献、最近一年贡献、每日贡献获取 | test: packages/github/src/stats.test.ts (Contribution totals and yearly heatmap generation are tested.) file: packages/github/src/client.ts (GraphQL contribution collection is used when a GitHub token is available, with deterministic fallback otherwise.) |
| 03-011 | 通过 | 当前 streak 与最长 streak 计算 | test: packages/github/src/analytics.test.ts (Analytics exposes currentStreak and longestStreak from contribution stats.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-011 in acceptanceIds.) |
|
| 03-012 | 通过 | commit、issue、PR、review contr | test: packages/github/src/analytics.test.ts (Analytics exposes commit, issue, PR, and review contribution breakdown.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-012 in acceptanceIds.) |
|
| 03-013 | 通过 | monthly、weekly、hourly contri | test: packages/github/src/analytics.test.ts (Analytics exposes monthly, weekly, and hourly contribution distributions.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-013 in acceptanceIds.) |
|
| 03-014 | 通过 | 4.2.3 | 贡献热力图数据生成 | test: packages/github/src/stats.test.ts (Contribution heatmap levels are tested.) |
| 03-015 | 通过 | 总 Star、仓库 Star 排名、7/30/90/36 | test: packages/github/src/analytics.test.ts (Analytics exposes total stars, star rankings, and 7/30/90/365 day growth windows.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-015 in acceptanceIds.) |
|
| 03-016 | 通过 | 仓库 Star 曲线、用户总 Star 曲线、增长最快仓 | test: packages/github/src/analytics.test.ts (Analytics builds repository star curves, user total star curve, and fastest-growing repositories.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-016 in acceptanceIds.) |
|
| 03-017 | 通过 | 首次使用前 Star 历史尽量回溯,首次使用后快照记录 | test: packages/generators/src/maintenance.test.ts (Covers best-effort star history backfill from repository creation date plus scheduled star snapshots.) file: packages/generators/src/maintenance.ts (createStarHistoryBackfill and star-snapshot maintenance files generate first-use history and ongoing snapshots.) |
|
| 03-018 | 通过 | 总 Fork、Fork 排名、最近一年新增 Fork、F | test: packages/github/src/analytics.test.ts (Analytics exposes total forks, fork rankings, yearly fork growth, and fork curves.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-018 in acceptanceIds.) |
|
| 03-019 | 通过 | 社区影响力评分生成 | test: packages/github/src/analytics.test.ts (Analytics calculates community impact score from stars, forks, followers, PRs, issues, contributors, and releases.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-019 in acceptanceIds.) |
|
| 03-020 | 通过 | PR 总数、merged PR、closed PR、re | test: packages/github/src/analytics.test.ts (Analytics exposes PR total, merged, closed, reviewed, recent-year, merge-rate, external repo, and organization stats.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-020 in acceptanceIds.) |
|
| 03-021 | 通过 | issue 总数、closed issue、最近一年 i | test: packages/github/src/analytics.test.ts (Analytics exposes issue total, closed, recent-year, close-rate, and participant stats.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-021 in acceptanceIds.) |
|
| 03-022 | 通过 | 4.2.6 | PR 合并率、Issue 关闭率、外部贡献仓库和组织数计 | test: packages/github/src/stats.test.ts (Dataset construction includes PR merge rate, issue close rate, external repositories, and organizations.) |
| 03-023 | 通过 | 4.2.7 | 主语言分布、代码字节语言分布、最近一年语言分布计算 | test: packages/github/src/stats.test.ts (Main language, byte language, and recent-year language distributions are tested.) |
| 03-024 | 通过 | 4.2.7 | Star/Fork 加权语言分布计算 | test: packages/github/src/stats.test.ts (Star-weighted and fork-weighted language distributions are tested.) |
| 03-025 | 通过 | topics、README、package 文件技术栈识 | test: packages/github/src/analytics.test.ts (Technology detector uses topics, README summaries, and language/package signals.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-025 in acceptanceIds.) |
|
| 03-026 | 通过 | 前端、后端、数据库、DevOps、测试、云服务识别 | test: packages/github/src/analytics.test.ts (Technology detector categorizes frontend, backend, database, DevOps, testing, and cloud signals.) api-response: GET http://127.0.0.1:3011/api/github/analytics?username=octocat (Local smoke test returned status=200 and included 03-026 in acceptanceIds.) |
|
| 04-001 | 通过 | 模块面板、编辑区域、实时预览、Markdown 源码视图 | screenshot: artifacts/screenshots/readme-workspace.png (README workspace shows module panel, editor, live preview, and Markdown source view.) file: apps/web/components/readme-workspace.tsx (Client component keeps Markdown editor state and updates preview/source from edited Markdown.) |
|
| 04-002 | 通过 | 结构视图、拖拽排序、模块开关、复制、删除可用 | screenshot: artifacts/screenshots/readme-workspace.png (README modules include structure view, module switches, reorder buttons, copy, and delete controls.) file: apps/web/components/readme-workspace.tsx (Client component implements module toggle, delete, copy heading, and up/down reordering handlers.) |
|
| 04-003 | 通过 | 每个模块可配置参数,整体主题可配置 | screenshot: artifacts/screenshots/readme-workspace.png (README workspace exposes module parameters and theme selection controls.) file: apps/web/components/readme-workspace.tsx (Client component exposes card theme and max project controls next to module list.) |
|
| 04-004 | 通过 | GitHub 风格预览、深色/浅色预览可用 | screenshot: artifacts/screenshots/readme-workspace.png (README workspace exposes GitHub-style preview and light/dark preview controls.) file: apps/web/components/readme-workspace.tsx (Client component toggles darkPreview state from Light and Dark buttons.) |
|
| 04-005 | 通过 | 导入现有 README、Markdown 格式化、兼容性 | test: packages/generators/src/import-readme.test.ts (README import detects existing modules, formats Markdown, and returns compatibility/style suggestions.) api-response: POST http://127.0.0.1:3015/api/import/readme sourceType=paste (Local smoke test returned formattedMarkdown, optimizedMarkdown, diff, modules, suggestions, and export files.) |
|
| 04-006 | 通过 | 4.3.2 | 个人介绍模块完整 | test: packages/generators/src/readme.test.ts (README intro module renders welcome, role, status, and GitHub link.) |
| 04-007 | 通过 | 4.3.2 | GitHub 总览模块完整 | test: packages/generators/src/readme.test.ts (GitHub overview module renders contributions, commits, PRs, issues, stars, forks, followers, account age, and impact score.) |
| 04-008 | 通过 | 4.3.2 | Streak 模块完整 | test: packages/generators/src/readme.test.ts (GitHub streak module renders streak card and current/longest streak metrics.) |
| 04-009 | 通过 | 4.3.2 | 贡献热力图模块完整 | test: packages/generators/src/readme.test.ts (Contribution calendar module renders dynamic card link and level summary.) |
| 04-010 | 通过 | 4.3.2 | 语言统计模块完整 | test: packages/generators/src/readme.test.ts (Language stats module renders top language card and byte percentages.) |
| 04-011 | 通过 | 4.3.2 | 热门仓库模块完整 | test: packages/generators/src/readme.test.ts (Projects module renders manual projects and top public repositories.) |
| 04-012 | 通过 | 4.3.2 | Star 增长模块完整 | test: packages/generators/src/readme.test.ts (Star growth module renders star-growth card and top starred repositories.) |
| 04-013 | 通过 | 4.3.2 | PR / Issue 模块完整 | test: packages/generators/src/readme.test.ts (PR / Issue collaboration module renders PR, review, issue, close-rate, and external repository stats.) |
| 04-014 | 通过 | 4.3.2 | 技术栈模块完整 | test: packages/generators/src/readme.test.ts (Tech stack module renders badges and primary skill status.) |
| 04-015 | 通过 | 4.3.2, 4.4.2 | 成就墙模块完整 | test: packages/generators/src/readme.test.ts (Achievement wall module renders achievement card embed.) test: packages/generators/src/pages.test.ts (Pages site includes achievement wall section.) |
| 04-016 | 通过 | 4.3.2 | 社交与联系模块完整 | test: packages/generators/src/readme.test.ts (Social/contact module renders visible social links.) |
| 04-017 | 通过 | 4.3.2 | 博客文章模块完整 | test: packages/generators/src/readme.test.ts (Blog module renders blog link or RSS-ready placeholder.) |
| 04-018 | 通过 | 4.3.2 | 访客统计模块完整 | test: packages/generators/src/readme.test.ts (Visitor stats module renders profile view badge.) |
| 04-019 | 通过 | 4.3.2 | 自定义模块完整 | test: packages/generators/src/readme.test.ts (Custom Markdown module renders guarded custom content block.) |
| 04-020 | 通过 | 复制完整 Markdown 可用 | file: apps/web/components/readme-workspace.tsx (Client README workspace copies full Markdown through navigator.clipboard.) screenshot: artifacts/screenshots/readme-workspace.png (README export panel shows Copy Markdown control.) |
|
| 04-021 | 通过 | 下载 README.md 可用 | screenshot: artifacts/screenshots/readme-workspace.png (README export panel includes Download README.md.) file: apps/web/components/readme-workspace.tsx (downloadReadme creates a README.md Blob and triggers browser download.) |
|
| 04-022 | 通过 | 复制单模块 Markdown 和动态卡片链接可用 | screenshot: artifacts/screenshots/readme-workspace.png (README export panel includes Copy Markdown, Copy card URL, and Copy HTML snippet controls.) file: apps/web/components/readme-workspace.tsx (Client component copies Markdown, module headings, card URL, and HTML snippet through navigator.clipboard.) |
|
| 04-023 | 通过 | 4.3, 4.9, 13A | OAuth 提交到 username 仓库可用 |
file: apps/web/app/api/deploy/github/execute/route.ts (README deploy route supports live execution for username repository when encrypted OAuth token is present.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=readme (Local preview returned status=200 and requiresOAuth=true without a real OAuth cookie.) test: packages/github/src/deploy.test.ts (README deployment plan defaults to PR mode, includes README.md, diff computation, OAuth-gated operations, backup requirement, and rollback plan.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds README plans, returns diff/operations when unauthenticated, and executes live GitHub writes when an encrypted OAuth token is available.) file: packages/github/src/client.ts (executeDeploymentPlan ensures repositories, creates deployment branches, writes files with SHA conflict checks, creates commits, and opens pull requests.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=readme (Local smoke test returned status=200 with OAuth-gated README deployment operations.) |
| 04-024 | 通过 | 4.3, 4.9, 13A | 提交前 diff、旧 README 备份、回滚可用 | test: packages/github/src/deploy.test.ts (Deployment tests cover diff, backup labels, rollback plan, and OAuth-gated operations.) api-response: POST http://127.0.0.1:3000/api/deploy/github/rollback (Prior rollback preview route returned status=200.) test: packages/github/src/deploy.test.ts (README deployment plan defaults to PR mode, includes README.md, diff computation, OAuth-gated operations, backup requirement, and rollback plan.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds README plans, returns diff/operations when unauthenticated, and executes live GitHub writes when an encrypted OAuth token is available.) file: packages/github/src/client.ts (executeDeploymentPlan ensures repositories, creates deployment branches, writes files with SHA conflict checks, creates commits, and opens pull requests.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=readme (Local smoke test returned status=200 with OAuth-gated README deployment operations.) |
| 04-025 | 通过 | README 自动更新 workflow 生成可用 | test: packages/generators/src/actions.test.ts (Workflow generator creates daily, weekly, and manual README automation workflows.) file: packages/generators/src/maintenance.ts (Maintenance run writes .github/workflows/profile-studio-update.yml for README automation.) |
|
| 05-001 | 通过 | 单页个人主页、开源成就墙、作品集、技术简历、数据仪表盘、 | screenshot: artifacts/screenshots/pages-workspace.png (Pages workspace previews a single-page profile site with portfolio, resume-like stats, dashboard data, achievements, blog, and contact sections from the generated bundle.) file: packages/generators/src/pages.ts (Pages generator emits hero, about, education, skills, projects, timeline, GitHub data, achievements, resume, blog, contact, SEO, sitemap, and workflow files.) |
|
| 05-002 | 通过 | 4.4.2 | Hero、简介、统计、热力图、Star 趋势、热门仓库、 | test: packages/generators/src/pages.test.ts (Pages site renders Hero, profile, GitHub data, project, timeline, blog, achievement, and contact sections.) |
| 05-003 | 通过 | 4.4.2 | 主题切换、语言切换、返回顶部可用 | test: packages/generators/src/pages.test.ts (Theme toggle, language toggle, and back-to-top controls are generated and wired in script.js.) |
| 05-004 | 通过 | 响应式设计通过手机、平板、桌面测试 | screenshot: artifacts/screenshots/home-mobile.png (Mobile viewport screenshot verifies homepage responsive layout.) screenshot: artifacts/screenshots/pages-tablet.png (Tablet viewport screenshot verifies Pages workspace responsive layout.) screenshot: artifacts/screenshots/readme-mobile.png (Mobile viewport screenshot verifies README workspace stacks without overlapping controls.) |
|
| 05-005 | 通过 | 4.4.3 | 深色、浅色、系统主题跟随可用 | test: packages/generators/src/pages.test.ts (Generated CSS and script support light/dark theme switching.) |
| 05-006 | 通过 | 自定义主色、字体、背景、动画可用 | test: packages/core/src/theme-io.test.ts (Theme schema supports custom primary color, font, background, radius, and animation tokens.) api-response: GET/POST http://127.0.0.1:3015/api/themes/export|import (Theme export/import smoke tests returned status=200.) |
|
| 05-007 | 通过 | 内置 15 套页面模板可用 | file: packages/core/src/templates.ts (builtinPageTemplates contains 15 GitHub Pages templates.) screenshot: artifacts/screenshots/home.png (Homepage displays built-in theme/template browsing entry.) |
|
| 05-008 | 通过 | 复制 HTML、下载完整静态站点可用 | screenshot: artifacts/screenshots/pages-workspace.png (Pages workspace exposes Copy HTML and Download site controls.) api-response: POST http://127.0.0.1:3000/api/export/pages?format=zip (Pages export API returned a downloadable static site ZIP in prior smoke verification.) |
|
| 05-009 | 通过 | 4.4.5 | 导出 index.html、style.css、scri | test: packages/generators/src/export-package.test.ts (Pages export package includes index.html, CSS, JS, 404, sitemap, robots, and workflow files.) |
| 05-010 | 通过 | 4.4.5 | GitHub Pages 部署说明生成可用 | test: packages/generators/src/export-package.test.ts (Pages deployment instructions are generated.) |
| 05-011 | 通过 | 4.4, 4.9, 13A | OAuth 提交到 `username.github.i | file: apps/web/app/api/deploy/github/execute/route.ts (Pages deployment route supports live execution for username.github.io when encrypted OAuth token is present.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=pages (Local preview returned status=200 and requiresOAuth=true without a real OAuth cookie.) test: packages/github/src/deploy.test.ts (Pages deployment, Pages enablement, and rollback plans include OAuth-gated ensure-repository, enable-pages, diff, backup, and rollback operations.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds Pages plans from generated static bundles and supports live GitHub execution with encrypted OAuth tokens.) file: apps/web/app/api/deploy/github/pages/route.ts (Pages route builds an enablement plan and can call GitHubClient.enablePagesForRepository when a token is present.) file: packages/github/src/client.ts (GitHubClient.ensureRepository creates username and username.github.io repositories when missing; enablePages creates or updates GitHub Pages source configuration.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local smoke test returned status=200 with OAuth-gated Pages enablement operations.) |
| 05-012 | 通过 | 4.4, 4.9, 13A | 自动启用 Pages 或配置发布源可用 | file: apps/web/app/api/deploy/github/pages/route.ts (Pages route supports live enablement from branch/path when encrypted OAuth token is present.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local preview returned status=200 and requiresOAuth=true without a real OAuth cookie.) test: packages/github/src/deploy.test.ts (Pages deployment, Pages enablement, and rollback plans include OAuth-gated ensure-repository, enable-pages, diff, backup, and rollback operations.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds Pages plans from generated static bundles and supports live GitHub execution with encrypted OAuth tokens.) file: apps/web/app/api/deploy/github/pages/route.ts (Pages route builds an enablement plan and can call GitHubClient.enablePagesForRepository when a token is present.) file: packages/github/src/client.ts (GitHubClient.ensureRepository creates username and username.github.io repositories when missing; enablePages creates or updates GitHub Pages source configuration.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local smoke test returned status=200 with OAuth-gated Pages enablement operations.) |
| 05-013 | 通过 | 4.4, 4.9, 13A | 提交前 diff 与回滚可用 | test: packages/github/src/deploy.test.ts (Deployment tests cover Pages diff and rollback planning.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=pages (Local preview returned status=200 with diff and write operations.) test: packages/github/src/deploy.test.ts (Pages deployment, Pages enablement, and rollback plans include OAuth-gated ensure-repository, enable-pages, diff, backup, and rollback operations.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds Pages plans from generated static bundles and supports live GitHub execution with encrypted OAuth tokens.) file: apps/web/app/api/deploy/github/pages/route.ts (Pages route builds an enablement plan and can call GitHubClient.enablePagesForRepository when a token is present.) file: packages/github/src/client.ts (GitHubClient.ensureRepository creates username and username.github.io repositories when missing; enablePages creates or updates GitHub Pages source configuration.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local smoke test returned status=200 with OAuth-gated Pages enablement operations.) |
| 06-001 | 通过 | 4.5 | Profile Overview Card 可用 | test: packages/cards/src/render.test.ts (Card catalog renders every card type, including Profile Overview Card.) |
| 06-002 | 通过 | 4.5 | GitHub Stats Card 可用 | test: packages/cards/src/render.test.ts (GitHub Stats Card renders and supports the stats alias.) api-response: GET http://127.0.0.1:3000/api/cards/stats?format=json (Local smoke test returned GitHub Stats Card JSON.) |
| 06-003 | 通过 | 4.5 | GitHub Streak Card 可用 | test: packages/cards/src/render.test.ts (GitHub Streak Card renders and supports the streak alias.) |
| 06-004 | 通过 | 4.5 | Contribution Calendar Card 可 | test: packages/cards/src/render.test.ts (Contribution Calendar Card renders from the catalog.) |
| 06-005 | 通过 | 4.5 | Top Languages Card 可用 | test: packages/cards/src/render.test.ts (Top Languages Card renders and supports the languages alias.) |
| 06-006 | 通过 | 4.5 | Repository Card 可用 | test: packages/cards/src/render.test.ts (Repository Card renders and supports the repo alias.) |
| 06-007 | 通过 | 4.5 | Star Growth Card 可用 | test: packages/cards/src/render.test.ts (Star Growth Card renders from the catalog.) |
| 06-008 | 通过 | 4.5 | Fork Growth Card 可用 | test: packages/cards/src/render.test.ts (Fork Growth Card renders from the catalog.) |
| 06-009 | 通过 | 4.5 | PR / Issue Card 可用 | test: packages/cards/src/render.test.ts (PR / Issue Card renders from the catalog.) |
| 06-010 | 通过 | 4.5 | Achievement Card 可用 | test: packages/cards/src/render.test.ts (Achievement Card renders and supports the achievements alias.) |
| 06-011 | 通过 | 4.5 | Trophy Card 可用 | test: packages/cards/src/render.test.ts (Trophy Card renders from the catalog.) |
| 06-012 | 通过 | 4.5 | Tech Stack Card 可用 | test: packages/cards/src/render.test.ts (Tech Stack Card renders from the catalog.) |
| 06-013 | 通过 | 4.5 | Activity Graph Card 可用 | test: packages/cards/src/render.test.ts (Activity Graph Card renders from the catalog.) |
| 06-014 | 通过 | 4.5 | Repo Ranking Card 可用 | test: packages/cards/src/render.test.ts (Repo Ranking Card renders from the catalog.) |
| 06-015 | 通过 | 4.5 | Followers Card 可用 | test: packages/cards/src/render.test.ts (Followers Card renders from the catalog.) |
| 06-016 | 通过 | 4.5 | Account Age Card 可用 | test: packages/cards/src/render.test.ts (Account Age Card renders from the catalog and profile data includes account age.) |
| 06-017 | 通过 | 4.5 | Open Source Impact Card 可用 | test: packages/cards/src/render.test.ts (Open Source Impact Card renders from the catalog.) |
| 06-018 | 通过 | 4.5 | Year in Review Card 可用 | test: packages/cards/src/render.test.ts (Year in Review Card renders from the catalog.) |
| 06-019 | 通过 | 4.5 | Monthly Activity Card 可用 | test: packages/cards/src/render.test.ts (Monthly Activity Card renders from the catalog.) |
| 06-020 | 通过 | 4.5 | Custom Composite Card 可用 | test: packages/cards/src/render.test.ts (Custom Composite Card renders from the catalog.) |
| 06-021 | 通过 | 4.5.2 | 所有卡片支持 user、theme、layout、hid | test: packages/cards/src/render.test.ts (Card rendering supports width, height, hide_border, bg_color, title_color, include, and icons.) api-response: GET http://127.0.0.1:3000/api/cards/stats?format=json&include=stars,forks&hide_border=true&width=720&height=260&cache_seconds=120 (Local smoke test verified parameter parsing and JSON echo for card API.) |
| 06-022 | 通过 | 4.5.3 | 支持 SVG、PNG、JSON 输出 | api-response: GET http://127.0.0.1:3000/api/cards/stats?format=json (JSON output returned 200.) api-response: GET http://127.0.0.1:3000/api/cards/stats?format=svg (SVG output returned 200 and 1283 bytes.) api-response: GET http://127.0.0.1:3000/api/cards/stats?format=png (PNG output returned 200 and 10305 bytes.) |
| 06-023 | 通过 | 4.5.4 | 支持复制 Markdown 图片链接、HTML img、 | test: packages/cards/src/embeds.test.ts (Markdown image link, HTML img, iframe, and URL variants are generated.) api-response: GET http://127.0.0.1:3000/api/cards/stats?format=json (JSON smoke response includes embeds for markdown and HTML.) |
| 06-024 | 通过 | 支持下载图片 | api-response: GET http://127.0.0.1:3000/api/cards/stats?...format=png (Prior local smoke test returned png_status=200 and 10305 bytes.) screenshot: artifacts/screenshots/cards-workspace.png (Cards workspace shows Download SVG control and image export controls.) |
|
| 06-025 | 通过 | 4.5.4 | 卡片在 GitHub README 中可正常显示 | test: packages/cards/src/embeds.test.ts (README badge/card embed markdown generation is tested.) |
| 06-026 | 通过 | 卡片生成器支持类型选择、参数调整、实时预览、复制、下载、 | screenshot: artifacts/screenshots/cards-workspace.png (Cards workspace includes card type selection, locale/theme/size parameters, live preview, copy URL, and download SVG controls.) file: apps/web/app/cards/page.tsx (Cards page renders parameter controls, card catalog, SVG preview, Markdown, and HTML snippets.) |
|
| 07-001 | 通过 | 4.6.1 | 贡献类、Star 类、Fork 类、PR 类、Issue | test: packages/achievements/src/index.test.ts (Achievement category catalog covers the required categories.) |
| 07-002 | 通过 | First Commit、Weekly Builder、 | test: packages/achievements/src/index.test.ts (Achievement rules include First Commit, Daily Coder, Weekly Builder, Monthly Grinder, streak and contribution achievements.) api-response: GET http://127.0.0.1:3016/api/achievements/calculate?username=octocat&locale=en-US (Local smoke test returned status=200 with 45 achievements and 07-002 in acceptanceIds.) |
|
| 07-003 | 通过 | First Star、Star Collector、St | test: packages/achievements/src/index.test.ts (Achievement rules include First Star, Star Collector, Star Legend, Viral Repo, Rising Star, and community favorite achievements.) api-response: GET http://127.0.0.1:3016/api/achievements/calculate?username=octocat&locale=en-US (Local smoke test returned 07-003 in acceptanceIds.) |
|
| 07-004 | 通过 | First PR、PR Hero、Review Help | test: packages/achievements/src/index.test.ts (Achievement rules include First PR, PR Hero, Review Helper, Issue Reporter, Bug Hunter, Maintainer, and collaboration achievements.) api-response: GET http://127.0.0.1:3016/api/achievements/calculate?username=octocat&locale=en-US (Local smoke test returned 07-004 in acceptanceIds.) |
|
| 07-005 | 通过 | 4.6.2 | First Repo、Repo Builder、Mult | test: packages/achievements/src/index.test.ts (Repository achievement rules are evaluated against the demo dataset.) |
| 07-006 | 通过 | 每个成就有名称、图标、描述、解锁状态、解锁时间、当前进度 | test: packages/achievements/src/index.test.ts (calculateAchievements verifies unlock state, progress, README badge markdown, and required fields.) file: packages/achievements/src/index.ts (Achievement result contains name, icon, description, unlock status/time, score, rarity, level, progress, and README badge.) |
|
| 07-007 | 通过 | 成就可分享、可嵌入 README、可嵌入 Pages、可 | test: packages/achievements/src/index.test.ts (buildAchievementEmbeds returns README Markdown, Pages HTML, SVG URL, JSON URL, and share URL.) api-response: GET http://127.0.0.1:3016/api/achievements/calculate?username=octocat&locale=en-US (Local smoke test returned embeds.shareUrl and achievement card embed URLs.) |
|
| 08-001 | 通过 | 可粘贴 README Markdown | api-response: POST http://127.0.0.1:3015/api/import/readme sourceType=paste (Local smoke test returned status=200 for pasted README Markdown with modules, cards, diff, and export files.) file: apps/web/app/dashboard/import/page.tsx (Import page provides a textarea for pasted README Markdown.) |
|
| 08-002 | 通过 | 可上传 README.md | api-response: POST http://127.0.0.1:3015/api/import/readme sourceType=upload (Local smoke test returned status=200 for uploaded README.md content.) file: apps/web/app/api/import/readme/route.ts (Import API accepts fileName and fileContent for upload mode.) |
|
| 08-003 | 通过 | 可通过仓库 URL 读取 README | api-response: POST http://127.0.0.1:3015/api/import/readme sourceType=repository-url (Local smoke test fetched README from https://github.com/octocat/Hello-World and returned status=200.) file: apps/web/app/api/import/readme/route.ts (Import API resolves repositoryUrl through parseGitHubInput and fetches README through GitHubClient.) |
|
| 08-004 | 通过 | 可通过 OAuth 读取自己的 README | file: apps/web/app/api/import/readme/route.ts (OAuth import mode accepts accessToken and reads the authenticated user README repository.) file: packages/github/src/client.ts (GitHubClient.getReadmeMarkdown supports token-authenticated README retrieval.) |
|
| 08-005 | 通过 | 可读取 username 仓库 README |
file: apps/web/app/api/import/readme/route.ts (username-repo import mode maps username to owner=username and repo=username.) | |
| 08-006 | 通过 | 可读取任意公开仓库 README | api-response: POST http://127.0.0.1:3015/api/import/readme sourceType=repository-url (Local smoke test read an arbitrary public repository README.) file: packages/github/src/client.ts (GitHubClient.getReadmeMarkdown reads public repository README content with owner/repo/ref.) |
|
| 08-007 | 通过 | 4.7.2 | 可识别标题、个人介绍、badge、stats、strea | test: packages/generators/src/import-readme.test.ts (README import recognizes headings, badges, stats, streaks, languages, trophy, activity graph, images, tables, comments, and workflow markers.) |
| 08-008 | 通过 | 4.7.3 | 可解析 GitHub Readme Stats、GitH | test: packages/generators/src/import-readme.test.ts (Third-party card provider parsing is covered.) |
| 08-009 | 通过 | 可提供样式统一建议、重复模块提示、失效链接检测、图片加载 | test: packages/generators/src/import-readme.test.ts (README import parser provides theme unification, duplicate module, broken link, image/card, and style suggestions.) file: packages/generators/src/import-readme.ts (buildImportSuggestions reports style unification, duplicate modules, invalid links/images, card conversion, and custom HTML preservation.) |
|
| 08-010 | 通过 | 优化后保留用户自定义内容 | test: packages/generators/src/import-readme.test.ts (README import parser preserves custom HTML content.) file: packages/generators/src/import-readme.ts (preservedCustomContent and optimizedMarkdown keep user custom content after optimization notes.) |
|
| 08-011 | 通过 | 可展示新旧版本差异并导出新版 README | test: packages/generators/src/import-readme.test.ts (README import result includes diff rows and README.optimized.md export file.) file: packages/generators/src/import-readme.ts (diffMarkdown and exportFiles provide old/new diff and optimized README export.) |
|
| 09-001 | 通过 | README、Pages、卡片、成就墙、项目展示、简历、 | file: packages/core/src/templates.ts (Template registry covers README, Pages, cards, achievements, portfolio, resume, dashboard, social-card, year-in-review, and custom template types.) screenshot: artifacts/screenshots/dashboard.png (Workspace exposes README, Pages, Cards, Achievements, Import, Settings, and History targets.) |
|
| 09-002 | 通过 | 4.8 | 内置 GitHub Native、Minimal Lig | file: packages/core/src/templates.ts (Theme/template registries define the built-in style catalog.) test: packages/core/src/templates.test.ts (Test asserts all 15 required built-in theme preset keys and localized names.) file: packages/core/src/templates.ts (builtinThemePresets registers GitHub Native, Minimal Light, Minimal Dark, Cyber Neon, Terminal Green, Glassmorphism, Bento Grid, Academic, Developer Portfolio, Open Source Hero, Pixel Art, Apple Clean, Dashboard Pro, Ocean Blue, and Sunset Gradient.) |
| 09-003 | 通过 | 可自定义主色、辅色、背景、文本、边框、图标、字体、圆角、 | test: packages/core/src/theme-io.test.ts (Theme import/export schema validates custom primary, accent, background, foreground, border, font, radius, shadow, density, and animation tokens.) file: packages/core/src/theme-io.ts (Theme schema stores custom color, font, radius, shadow, density, and animation settings.) |
|
| 09-004 | 通过 | 可保存主题、导入主题 JSON、导出主题 JSON、分享 | test: packages/core/src/theme-io.test.ts (Theme JSON export/import and stable share links are tested.) api-response: GET/POST http://127.0.0.1:3015/api/themes/export|import|share (Local smoke tests returned status=200 for theme export, import, and share link routes.) |
|
| 09-005 | 通过 | 主题可应用到 README、Pages、卡片 | file: packages/generators/src/readme.ts (README generator embeds selected theme in dynamic card URLs.) file: packages/generators/src/pages.ts (Pages generator applies selected theme tokens to generated CSS.) file: packages/cards/src/index.ts (Card renderer accepts theme parameter and renders themed card output.) |
|
| 10-001 | 通过 | 4.9 | GitHub OAuth 登录可用 | test: packages/github/src/oauth.test.ts (OAuth authorization URL, state, token exchange, and token encryption helpers are tested.) api-response: GET http://127.0.0.1:3000/api/oauth/github?format=json (OAuth start route exists and returns explicit setup status when env vars are absent; live OAuth requires configured GitHub app.) test: packages/github/src/oauth.test.ts (OAuth tests cover state generation/parsing, GitHub authorization URL scopes, OAuth code exchange, and AES-GCM token encryption/decryption.) file: apps/web/app/api/oauth/github/route.ts (OAuth start route builds GitHub authorization URLs and exposes setup status when env vars are absent.) file: apps/web/app/api/oauth/github/callback/route.ts (Callback exchanges OAuth code, encrypts the token, stores it in an httpOnly cookie, and redirects back to the dashboard.) file: apps/web/app/api/oauth/github/session/route.ts (Session route decrypts the token, identifies the current user, lists authenticated repositories, and returns write/deploy capabilities.) file: apps/web/app/api/oauth/github/logout/route.ts (Logout route clears the stored OAuth token cookie.) |
| 10-002 | 通过 | 4.9.2 | 授权前明确展示权限且使用最小权限 | api-response: apps/web/app/api/oauth/github/permissions/route.ts (Permissions route lists minimal required scopes and logged-in/logged-out capabilities.) file: packages/github/src/oauth.ts (minimumOAuthScopes uses read:user, public_repo, and workflow.) |
| 10-003 | 通过 | 4.9 | 登录后可识别当前用户和仓库列表 | file: apps/web/app/api/oauth/github/session/route.ts (Session route decrypts stored token and loads authenticated GitHub user plus owned repository list.) api-response: GET http://127.0.0.1:3016/api/oauth/github/session (Local smoke test returned status=200; live account loading requires a real OAuth cookie.) test: packages/github/src/oauth.test.ts (OAuth tests cover state generation/parsing, GitHub authorization URL scopes, OAuth code exchange, and AES-GCM token encryption/decryption.) file: apps/web/app/api/oauth/github/route.ts (OAuth start route builds GitHub authorization URLs and exposes setup status when env vars are absent.) file: apps/web/app/api/oauth/github/callback/route.ts (Callback exchanges OAuth code, encrypts the token, stores it in an httpOnly cookie, and redirects back to the dashboard.) file: apps/web/app/api/oauth/github/session/route.ts (Session route decrypts the token, identifies the current user, lists authenticated repositories, and returns write/deploy capabilities.) file: apps/web/app/api/oauth/github/logout/route.ts (Logout route clears the stored OAuth token cookie.) |
| 10-004 | 通过 | 4.9.2 | 未授权只提供复制和下载,授权后提供一键提交 | api-response: GET http://127.0.0.1:3000/api/oauth/github/session (Session route exposes logged-out generate/copy/download/public-card capabilities and logged-in write capabilities.) |
| 10-005 | 通过 | 4.9 | 支持退出登录、撤销授权提示、Token 加密、Token | test: packages/github/src/oauth.test.ts (GitHub token encryption uses AES-256-GCM.) file: apps/web/app/api/oauth/github/logout/route.ts (Logout route clears the HttpOnly token cookie; revocation UX still needs browser verification.) test: packages/github/src/oauth.test.ts (OAuth tests cover state generation/parsing, GitHub authorization URL scopes, OAuth code exchange, and AES-GCM token encryption/decryption.) file: apps/web/app/api/oauth/github/route.ts (OAuth start route builds GitHub authorization URLs and exposes setup status when env vars are absent.) file: apps/web/app/api/oauth/github/callback/route.ts (Callback exchanges OAuth code, encrypts the token, stores it in an httpOnly cookie, and redirects back to the dashboard.) file: apps/web/app/api/oauth/github/session/route.ts (Session route decrypts the token, identifies the current user, lists authenticated repositories, and returns write/deploy capabilities.) file: apps/web/app/api/oauth/github/logout/route.ts (Logout route clears the stored OAuth token cookie.) |
| 10-006 | 通过 | 4.9 | 可创建 username 仓库 |
file: packages/github/src/client.ts (GitHubClient.ensureRepository creates missing public repositories for deployment plans when authenticated.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=readme (Preview returned status=200 with ensure-repository operation gated by OAuth.) test: packages/github/src/deploy.test.ts (Deployment tests cover repository creation planning, file diff, PR mode, Pages enablement, and rollback operations.) file: packages/github/src/client.ts (GitHubClient.ensureRepository, executeDeploymentPlan, createOrUpdateFileContents, createDeploymentPullRequest, and enablePagesForRepository implement repository creation and file updates.) file: apps/web/app/api/deploy/github/rollback/route.ts (Rollback route returns an OAuth-gated rollback plan for README and Pages repositories.) |
| 10-007 | 通过 | 4.9 | 可创建 username.github.io 仓库 |
file: packages/github/src/client.ts (GitHubClient.ensureRepository supports username.github.io creation for Pages deployment plans when authenticated.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=pages (Preview returned status=200 with Pages repository operations gated by OAuth.) test: packages/github/src/deploy.test.ts (Deployment tests cover repository creation planning, file diff, PR mode, Pages enablement, and rollback operations.) file: packages/github/src/client.ts (GitHubClient.ensureRepository, executeDeploymentPlan, createOrUpdateFileContents, createDeploymentPullRequest, and enablePagesForRepository implement repository creation and file updates.) file: apps/web/app/api/deploy/github/rollback/route.ts (Rollback route returns an OAuth-gated rollback plan for README and Pages repositories.) |
| 10-008 | 通过 | 4.9 | 可更新 README、index.html、CSS、JS | file: packages/github/src/client.ts (GitHubClient.executeDeploymentPlan writes README, HTML, CSS, JS, JSON, and workflow files through createOrUpdateFileContents when authenticated.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=pages (Preview returned status=200 with write-files operation for generated Pages bundle.) test: packages/github/src/deploy.test.ts (Deployment tests cover repository creation planning, file diff, PR mode, Pages enablement, and rollback operations.) file: packages/github/src/client.ts (GitHubClient.ensureRepository, executeDeploymentPlan, createOrUpdateFileContents, createDeploymentPullRequest, and enablePagesForRepository implement repository creation and file updates.) file: apps/web/app/api/deploy/github/rollback/route.ts (Rollback route returns an OAuth-gated rollback plan for README and Pages repositories.) |
| 10-009 | 通过 | 可创建 commit 和 pull request | test: packages/github/src/deploy.test.ts (Deployment planning covers commit and pull-request operations.) file: packages/github/src/client.ts (GitHubClient.executeDeploymentPlan writes files and creates pull requests when an OAuth token is available.) |
|
| 10-010 | 通过 | 4.9.3 | 支持直接提交和 PR 模式 | test: packages/github/src/deploy.test.ts (Deployment plans support pull-request and direct-commit modes.) |
| 10-011 | 通过 | 4.9 | 支持冲突检测、提交前 diff、旧文件备份、回滚、失败重 | test: packages/github/src/deploy.test.ts (Deployment tests cover conflict-oriented diff hashes, backup labels, rollback plan, and logs.) file: packages/github/src/client.ts (Live executor reads current file SHAs before writes and records commit URLs.) test: packages/github/src/deploy.test.ts (Deployment tests cover repository creation planning, file diff, PR mode, Pages enablement, and rollback operations.) file: packages/github/src/client.ts (GitHubClient.ensureRepository, executeDeploymentPlan, createOrUpdateFileContents, createDeploymentPullRequest, and enablePagesForRepository implement repository creation and file updates.) file: apps/web/app/api/deploy/github/rollback/route.ts (Rollback route returns an OAuth-gated rollback plan for README and Pages repositories.) |
| 11-001 | 通过 | 可自动更新 README 动态数据 | test: packages/generators/src/maintenance.test.ts (Full maintenance run writes README.md for dynamic README refresh.) api-response: POST /api/automation/run (Automation run route exposes README refresh output in the generated file plan.) |
|
| 11-002 | 通过 | 可自动更新 Pages 静态 JSON | test: packages/generators/src/maintenance.test.ts (Full maintenance run writes data/github.json for GitHub Pages static JSON refresh.) api-response: POST /api/automation/run (Automation run route exposes Pages data refresh output.) |
|
| 11-003 | 通过 | 可记录 Star 与 Fork 快照 | test: packages/generators/src/maintenance.test.ts (Full maintenance run writes star and fork snapshot JSON files.) test: apps/worker/src/jobs.test.ts (Worker queue creates dedicated star snapshot operations with acceptance IDs.) |
|
| 11-004 | 通过 | 可更新贡献统计、博客文章、成就状态、年度总结、SVG 卡 | test: packages/generators/src/maintenance.test.ts (Full maintenance run writes contribution, blog, achievement, annual summary, card cache, and project ranking outputs.) api-response: GET /api/admin/queues (Admin queue route reports modules and operations for contribution, blog, achievements, annual summary, card cache, ranking, and errors.) |
|
| 11-005 | 通过 | 可生成每日更新、每周更新、手动触发 workflow | test: packages/generators/src/actions.test.ts (Default workflow configs generate daily, weekly, and manual GitHub Actions triggers.) test: apps/worker/src/jobs.test.ts (Worker queue maps scheduled jobs to executable maintenance operations.) |
|
| 11-006 | 通过 | 4.10.2 | 可生成 README、Pages、Blog、成就、Sta | test: packages/generators/src/actions.test.ts (README, Pages data, blog, achievements, star snapshot, cache cleanup, and error notification workflow modules are generated.) |
| 11-007 | 通过 | 用户可配置更新时间、更新频率、更新模块、commit m | test: packages/generators/src/maintenance.test.ts (Maintenance run writes configurable workflow YAML with frequency, modules, target branch, and commit message.) file: apps/web/app/api/automation/_shared.ts (Automation request parser accepts cron, frequency, modules, targetBranch, and commitMessage overrides.) |
|
| 12-001 | 通过 | 首页包含产品标题、一句话介绍、username 输入框、 | screenshot: artifacts/screenshots/home.png (Homepage shows product title, product description, username input, and generate entry.) screenshot: artifacts/screenshots/home-mobile.png (Homepage remains usable on a mobile viewport.) file: apps/web/app/page.tsx (Home page includes product title, one-sentence description, username/Profile URL input, and Generate button.) |
|
| 12-002 | 通过 | 工作台包含顶部导航、当前 username、当前目标类型 | screenshot: artifacts/screenshots/dashboard.png (Workspace shows top navigation, current username, current target type, and target navigation.) file: apps/web/app/dashboard/page.tsx (Dashboard renders username, target type, language, target links, and workspace cards.) |
|
| 12-003 | 通过 | 预览支持 README、GitHub Profile、P | screenshot: artifacts/screenshots/dashboard.png (Workspace preview cards cover README, GitHub Profile, Pages, and export center.) screenshot: artifacts/screenshots/readme-workspace.png (README workspace shows editor, live preview, and Markdown source preview.) screenshot: artifacts/screenshots/pages-workspace.png (Pages workspace shows responsive static site preview.) screenshot: artifacts/screenshots/cards-workspace.png (Cards workspace shows card preview.) |
|
| 12-004 | 通过 | 导出界面支持复制 Markdown、HTML、卡片 UR | screenshot: artifacts/screenshots/readme-workspace.png (Export panel supports copying Markdown, downloading README.md, copying card URLs, and copying HTML snippets.) screenshot: artifacts/screenshots/pages-workspace.png (Pages workspace exposes Copy HTML and Download site controls.) screenshot: artifacts/screenshots/cards-workspace.png (Cards workspace exposes Copy URL and Download SVG controls.) |
|
| 13-001 | 通过 | 4.12 | 支持中文和英文界面 | file: packages/core/src/language.ts (Core locale model supports English, Chinese, and bilingual output.) test: packages/core/src/ui-i18n.test.ts (UI i18n catalog defaults to English, detects Chinese browser language tags, and exposes Chinese/English labels for navigation, auth, deploy, diff, rollback, and new-user workflow controls.) file: packages/core/src/ui-i18n.ts (Central UI copy catalog stores bilingual product/workflow labels with browser-locale detection helpers.) file: apps/web/components/new-user-wizard.tsx (New-user workspace consumes UI copy for heading, steps, output language label, save/copy/download states, and navigation buttons.) |
| 13-002 | 通过 | 13 | README、卡片、成就可选择语言 | test: packages/core/src/language.test.ts (Locale helpers cover English, Chinese, and bilingual text selection.) file: packages/generators/src/readme.ts (README generation reads config.locale for headings, numbers, and card URLs.) api-response: GET /api/achievements/calculate?username=octocat&locale=en-US (Achievement API accepts locale and returns localized achievement results and embeds.) screenshot: artifacts/screenshots/cards-workspace.png (Cards workspace exposes locale parameters for card preview and embeds.) |
| 13-003 | 通过 | 13 | 日期、数字、时区可本地化 | test: packages/core/src/language.test.ts (Date and number formatting defaults to en-US and switches to zh-CN in Chinese mode.) file: packages/core/src/language.ts (localeDate and localeNumber centralize date/number localization.) |
| 13-004 | 通过 | 13 | 用户可自定义模板文案 | test: packages/core/src/new-user-copy.test.ts (Manual copy edits override generated template copy, locked blocks survive regeneration, and tone can be switched.) file: packages/core/src/new-user-copy.ts (applyManualCopyEdits and regenerateCopyBlocks support user-customized template copy.) |
| 13-005 | 通过 | 7 | GitHub API、SVG 卡片、仓库统计、贡献数据均 | test: packages/github/src/cache.test.ts (GitHub API data cache hit, stale cache, and fallback behavior are tested.) file: packages/github/src/cache.ts (In-memory TTL cache includes stale windows and degraded metadata.) |
| 13-006 | 通过 | 7 | 支持手动刷新、缓存过期、队列、rate limit 提示 | test: packages/github/src/cache.test.ts (Manual refresh and stale fallback paths are represented by force refresh and stale cache behavior.) api-response: apps/web/app/api/github/_shared.ts (GitHub dataset routes support refresh=true and return cache/rateLimit metadata.) |
| 13-007 | 通过 | 4.12 | 首页、编辑器、图表、模板、预览、图片、SVG、移动端性能 | test: packages/core/src/performance.test.ts (Performance budget test covers homepage, editor, cards/charts, templates, preview, image, SVG, and mobile surfaces.) file: packages/core/src/performance.ts (Performance budget evaluator enforces first-load JS, route size, image asset, and SVG byte limits for required surfaces.) log: npm.cmd run build (Production build route table shows / at 106 kB first-load JS, /dashboard/new-user at 135 kB, /dashboard/profile-readme at 106 kB, /templates at 103 kB, and /cards at 103 kB.) screenshot: artifacts/screenshots/home-mobile.png (Existing Playwright mobile screenshot verifies mobile layout rendering.) |
| 13-008 | 通过 | 13 | 默认只读公开数据,私有数据不默认展示 | test: packages/core/src/privacy.test.ts (Privacy checks flag sensitive fields and hideSensitiveSettings removes sensitive README/Pages exposure.) file: packages/core/src/privacy.ts (Default privacy settings keep GPA/email hidden from README by default and define sensitive-field visibility.) file: packages/core/src/new-user-form.ts (New-user draft defaults to public-only GitHub data and hides email/GPA unless the user enables them.) |
| 13-009 | 通过 | 8 | Token 加密,前端不暴露敏感 token | test: packages/github/src/oauth.test.ts (OAuth token encryption/decryption is tested with AES-GCM.) file: apps/web/app/api/oauth/github/callback/route.ts (Callback route encrypts the GitHub access token before HttpOnly cookie storage and never returns the raw token.) |
| 13-010 | 通过 | 13 | 用户可删除保存配置并撤销授权 | file: apps/web/app/api/new-user/profile-form/route.ts (DELETE removes saved local draft/history and returns OAuth revoke/logout URL.) file: apps/web/app/api/oauth/github/logout/route.ts (OAuth logout route clears the stored GitHub token cookie.) api-response: DELETE http://127.0.0.1:3019/api/new-user/profile-form?username=alex (Smoke test returned status=200 with 13-010 and N-PRIV-017 acceptance IDs.) |
| 13-011 | 通过 | 4.12 | 具备 XSS、Markdown 注入、HTML 注入、自 | test: packages/core/src/security.test.ts (Security tests verify Markdown/HTML injection sanitization, javascript: asset blocking, and security response headers.) file: packages/core/src/security.ts (Security helpers sanitize Markdown and HTML, validate external assets, and build XSS/clickjacking/content-type/referrer headers.) |
| 13-012 | 通过 | 4.12 | username 不存在、API 限制、网络失败、仓库不 | test: packages/core/src/errors.test.ts (Error catalog test verifies localized user guidance for username not found, API limits, network failure, repository missing, Pages disabled, OAuth failure, permission denial, deployment conflict, SVG render failure, and validation errors.) file: packages/core/src/errors.ts (studioErrors stores bilingual error messages, retryability, severity, and remediation actions.) api-response: GET http://127.0.0.1:3010/api/admin/errors (Local smoke test returned structured error catalog and notification settings.) |
| 14-001 | 通过 | 14 | UserProfile、Repository、Contr | file: packages/core/src/domain.ts (Core domain models define UserProfile, Repository, ContributionStats, RepositoryTrend, Achievement, GeneratedProfile, and Theme-related config types.) log: npm.cmd run typecheck (All workspace type definitions compile successfully.) |
| 14-002 | 通过 | 10.1 | 公共页面路由 /、/generate、`/tem |
file: apps/web/app/pricing/page.tsx (Pricing public page has been added.) api-response: GET http://127.0.0.1:3000/pricing (Local smoke test returned pricing_status=200.) log: npm.cmd run build (Build output includes /, /generate, /templates, /cards, /achievements, /docs, /examples, /pricing, /login, /privacy, and /terms.) |
| 14-003 | 通过 | 14 | 工作台路由 /dashboard、`/dashboa |
log: npm.cmd run build (Build route table includes /dashboard, /dashboard/profile-readme, /dashboard/pages, /dashboard/cards, /dashboard/achievements, /dashboard/import, /dashboard/settings, and /dashboard/history.) screenshot: artifacts/screenshots/dashboard.png (Dashboard workspace screenshot shows navigation into the required workbench routes.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user dashboard route renders the expanded form workspace.) |
| 14-004 | 通过 | 14 | GitHub、cards、generate、import | log: npm.cmd run build (Build route table includes GitHub, cards, generate, import, oauth, deploy, automation, admin, themes, and new-user API routes.) api-response: GET/POST smoke tests across github/cards/generate/import/oauth/deploy/new-user/achievements APIs (Local smoke tests returned 200/expected OAuth-gated responses for the implemented API route groups.) |
| 14-005 | 通过 | 13.1 | README 导出包包含 README.md、asset | test: packages/generators/src/export-package.test.ts (README export package includes README.md, update workflow, and profile-studio.config.json.) |
| 14-006 | 通过 | 13.2 | Pages 导出包包含 index.html、style | test: packages/generators/src/export-package.test.ts (Pages export package includes index.html, style.css, script.js, data/github.json, README.md, 404.html, robots.txt, sitemap.xml, and update-pages workflow.) |
| 14-007 | 通过 | 14 | 配置导出包含模块配置、主题配置、卡片配置、成就配置、数据 | test: packages/core/src/new-user-persistence.test.ts (Saved profile snapshot exports form draft, templates/theme, visual config, and version metadata.) file: packages/core/src/new-user-persistence.ts (exportNewUserConfiguration serializes the saved configuration snapshot for import/export.) |
| 15-001 | 通过 | 15 | 未登录用户输入 username 后可查看公开数据、生成 | screenshot: artifacts/screenshots/home.png (Unauthenticated homepage supports username-first public workflow.) api-response: GET /api/github/languages?username=octocat (Unauthenticated public GitHub data lookup returned real public language data.) api-response: POST /api/export/readme (Unauthenticated README export smoke test returned a package for octocat.) api-response: GET /api/cards/stats?user=octocat&format=json|svg|png (Card API smoke tests returned JSON, SVG, and PNG outputs.) api-response: POST /api/export/pages?format=zip (Pages export smoke test returned a downloadable ZIP package.) screenshot: artifacts/screenshots/readme-workspace.png (README workspace provides live preview, copy, and download controls.) |
| 15-002 | 通过 | 15 | 登录用户可 GitHub OAuth 登录、检测仓库、创 | test: packages/github/src/oauth.test.ts (OAuth tests cover state generation/parsing, GitHub authorization URL scopes, OAuth code exchange, and AES-GCM token encryption/decryption.) file: apps/web/app/api/oauth/github/route.ts (OAuth start route builds GitHub authorization URLs and exposes setup status when env vars are absent.) file: apps/web/app/api/oauth/github/callback/route.ts (Callback exchanges OAuth code, encrypts the token, stores it in an httpOnly cookie, and redirects back to the dashboard.) file: apps/web/app/api/oauth/github/session/route.ts (Session route decrypts the token, identifies the current user, lists authenticated repositories, and returns write/deploy capabilities.) file: apps/web/app/api/oauth/github/logout/route.ts (Logout route clears the stored OAuth token cookie.) test: packages/github/src/deploy.test.ts (README deployment plan defaults to PR mode, includes README.md, diff computation, OAuth-gated operations, backup requirement, and rollback plan.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds README plans, returns diff/operations when unauthenticated, and executes live GitHub writes when an encrypted OAuth token is available.) file: packages/github/src/client.ts (executeDeploymentPlan ensures repositories, creates deployment branches, writes files with SHA conflict checks, creates commits, and opens pull requests.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=readme (Local smoke test returned status=200 with OAuth-gated README deployment operations.) test: packages/github/src/deploy.test.ts (Pages deployment, Pages enablement, and rollback plans include OAuth-gated ensure-repository, enable-pages, diff, backup, and rollback operations.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds Pages plans from generated static bundles and supports live GitHub execution with encrypted OAuth tokens.) file: apps/web/app/api/deploy/github/pages/route.ts (Pages route builds an enablement plan and can call GitHubClient.enablePagesForRepository when a token is present.) file: packages/github/src/client.ts (GitHubClient.ensureRepository creates username and username.github.io repositories when missing; enablePages creates or updates GitHub Pages source configuration.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local smoke test returned status=200 with OAuth-gated Pages enablement operations.) file: apps/web/app/api/github/detect/route.ts (Logged-in flow can reuse detect route for repository and Pages status before creating/updating repositories.) |
| 15-003 | 通过 | 15 | 用户可导入旧 README、识别模块、获得优化建议、统一 | test: packages/generators/src/import-readme.test.ts (README import parser identifies sections, recommendations, preserved custom blocks, diff, and export files.) api-response: POST http://127.0.0.1:3015/api/import/readme sourceType=paste|upload|repository-url (Import API smoke tests returned status=200 for paste, upload, and repository URL import modes.) api-response: GET/POST http://127.0.0.1:3015/api/themes/export|import|share (Theme import/export/share smoke tests returned status=200 for unified theme flow.) |
| 15-004 | 通过 | 15 | 系统可根据真实 GitHub 数据计算成就、展示已解锁和 | test: packages/achievements/src/index.test.ts (Achievement tests cover unlocked and locked progress, categories, localized output, and embed generation.) file: apps/web/app/api/achievements/calculate/route.ts (Achievement API loads GitHubClient dataset first and falls back with warnings when live GitHub calls are limited.) api-response: GET http://127.0.0.1:3018/api/achievements/calculate?username=octocat&locale=en-US (Smoke test returned 45 achievements, unlocked count, progress, README/Pages/SVG embeds, and 07-* acceptance IDs.) |
| N-ENTRY-001 | 通过 | 13A.1 | 新用户模式识别 | test: packages/core/src/new-user.test.ts (Zero-data accounts are detected and recommended for new-user mode.) file: packages/core/src/new-user.ts (recommendNewUserMode evaluates public repos, contributions, stars, PRs, issues, and contribution graph availability.) |
| N-ENTRY-002 | 通过 | 13A.2 | 新用户模式推荐 | test: packages/core/src/new-user.test.ts (Low GitHub data triggers new-user mode recommendation.) |
| N-ENTRY-003 | 通过 | 13A.1 | 手动选择模式 | test: packages/core/src/new-user.test.ts (generationModes includes manual selection mode.) file: packages/core/src/templates.ts (Manual mode is registered as a generation mode.) |
| N-ENTRY-004 | 通过 | 13A.1 | 混合模式 | test: packages/core/src/new-user.test.ts (recommendNewUserMode returns hybrid mode when a sparse account has some repositories or contributions.) file: packages/core/src/new-user.ts (Hybrid recommendation keeps manual profile data while allowing available GitHub data.) |
| N-ENTRY-005 | 通过 | 13A.1 | 数据增强模式切换 | test: packages/core/src/new-user.test.ts (recommendNewUserMode returns data-enhanced mode for strong GitHub activity.) file: packages/core/src/new-user.ts (Data-enhanced recommendation is selected when repos, contributions, stars, PRs, issues, and graph data are sufficient.) |
| N-ENTRY-006 | 通过 | 13A.1 | 空数据友好提示 | test: packages/core/src/new-user.test.ts (New-user recommendations hide empty contribution-heavy modules and provide growth actions.) test: packages/generators/src/readme.test.ts (Zero-data README avoids undefined/empty modules and replaces sparse data with growth-oriented copy.) |
| N-FORM-001 | 通过 | 13A.3 | 基础信息 | test: packages/core/src/new-user-form.test.ts (Basics include display name, nickname, avatar, one-line intro, role, location, email, website, blog, resume, and social links.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-002 | 通过 | 13A.3 | 教育背景 | test: packages/core/src/new-user-form.test.ts (Education form captures school, department, major, degree, years, grade, GPA, courses, honors, and visibility.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-003 | 通过 | 13A.3 | 学习方向 | test: packages/core/src/new-user-form.test.ts (Learning direction catalog provides selectable directions for new users.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-004 | 通过 | 13A.3 | 编程语言 | test: packages/core/src/new-user-form.test.ts (Programming language catalog provides selectable language rows.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-005 | 通过 | 13A.3 | 语言熟练度 | test: packages/core/src/new-user-form.test.ts (Programming language rows capture proficiency and learning/daily/primary flags.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-006 | 通过 | 13A.3 | 技能栈 | test: packages/core/src/new-user-form.test.ts (Skill stack captures frontend/backend/database/AI/devops/cloud/testing skills.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-007 | 通过 | 13A.3 | 技能展示控制 | test: packages/core/src/new-user-form.test.ts (Skill rows include icon, badge, README, and Pages display controls.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-008 | 通过 | 13A.3 | 手动项目 | test: packages/core/src/new-user-form.test.ts (Manual projects can be edited in the new-user wizard.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-009 | 通过 | 13A.3 | 项目信息完整性 | test: packages/core/src/new-user-form.test.ts (Project fields include name, summary, type, status, tech stack, highlights, role, repo/demo/screenshot URLs, featured, and visibility.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-010 | 通过 | 13A.3 | 学习计划 | test: packages/core/src/new-user-form.test.ts (Learning plan captures focus, books, courses, current projects, goals, weekly/open-source/job/blog/algorithm plans.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-011 | 通过 | 13A.3 | 个人亮点 | test: packages/core/src/new-user-form.test.ts (Personal highlights are captured and mapped into the generated profile bio.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-012 | 通过 | 13A.3 | 联系方式 | test: packages/core/src/new-user-form.test.ts (Contact controls include email, website, blog, resume, social links, and preferred channels.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-013 | 通过 | 13A.3 | 展示开关 | test: packages/core/src/new-user-form.test.ts (Display switches control GitHub stats, contribution calendar, visitors, achievements, blog, resume, contact, and skill displays.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-014 | 通过 | 13A.3 | 表单分步骤 | test: packages/core/src/new-user-form.test.ts (New-user wizard is split into Basics, Education, Skills, Projects, Plan, Privacy, and Preview steps.) file: packages/core/src/new-user-form.ts (Zod schema validates this section and maps it into ProfileStudioConfig.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard renders the multi-step form and generated-plan evidence.) |
| N-FORM-015 | 通过 | 13A.3 | 表单保存 | file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API validates drafts, saves local-session drafts, and persists to Prisma when DATABASE_URL is configured.) api-response: POST/GET http://127.0.0.1:3018/api/new-user/profile-form (Smoke tests returned status=200, saved=true, savedAt, draft retrieval, and N-FORM-015 acceptance ID.) screenshot: artifacts/screenshots/new-user-wizard.png (New-user wizard exposes Save draft and shows saved/copy state after interaction.) |
| N-README-001 | 通过 | 13A.5 | 零贡献可生成 | test: packages/generators/src/readme.test.ts (New-user config generates a complete README without relying on live contribution data.) |
| N-README-002 | 通过 | 13A.5 | 零仓库可生成 | test: packages/generators/src/readme.test.ts (Zero-repository config still generates project and GitHub overview sections with replacement copy.) |
| N-README-003 | 通过 | 13A.5.1 | 顶部欢迎区 | test: packages/generators/src/readme.test.ts (README intro contains the top welcome area.) |
| N-README-004 | 通过 | 13A.5.1 | 当前身份展示 | test: packages/generators/src/readme.test.ts (README intro contains current role and status.) |
| N-README-005 | 通过 | 13A.5.1 | 教育背景展示 | test: packages/generators/src/readme.test.ts (Education module renders visible education records.) |
| N-README-006 | 通过 | 13A.5.1 | 学习方向展示 | test: packages/generators/src/readme.test.ts (Learning plan module renders current focus as learning direction.) |
| N-README-007 | 通过 | 13A.5.1 | 主要语言展示 | test: packages/generators/src/readme.test.ts (Languages module renders primary language information from GitHub or manual skills.) |
| N-README-008 | 通过 | 13A.5.1 | 技能栈展示 | test: packages/generators/src/readme.test.ts (Tech stack module renders skill badges and skill status.) |
| N-README-009 | 通过 | 13A.5.1 | 学习计划展示 | test: packages/generators/src/readme.test.ts (Learning plan module renders current focus and goals.) |
| N-README-010 | 通过 | 13A.5.1 | 项目作品展示 | test: packages/generators/src/readme.test.ts (Projects module renders manual projects and GitHub repositories.) |
| N-README-011 | 通过 | 13A.5.1 | 未来计划展示 | test: packages/generators/src/readme.test.ts (Learning plan module renders long-term direction and open-source plan.) |
| N-README-012 | 通过 | 13A.5.1 | 联系方式展示 | test: packages/generators/src/readme.test.ts (Contact module renders visible social/contact links.) |
| N-README-013 | 通过 | 13A.5.4 | 空数据替代 | test: packages/core/src/new-user.test.ts (New-user recommendations provide empty-data substitutes.) |
| N-README-014 | 通过 | 13A.5.4 | 隐藏空模块 | test: packages/generators/src/readme.test.ts (Zero-data README avoids undefined and uses replacement copy instead of empty modules.) |
| N-README-015 | 通过 | 13A.5.5 | 可选 GitHub 统计 | test: packages/generators/src/readme.test.ts (GitHub overview module is optional through enabledReadmeModules and renders when enabled.) |
| N-README-016 | 通过 | 13A.5.5 | 可选贡献热力图 | test: packages/generators/src/readme.test.ts (Contribution calendar module is optional through enabledReadmeModules and renders when enabled.) |
| N-README-017 | 通过 | 13A.5.5 | 可选访客统计 | test: packages/generators/src/readme.test.ts (Visitor stats module renders profile view badge when enabled.) |
| N-README-018 | 通过 | 13A | 可选打字机动画 | test: packages/generators/src/readme.test.ts (README generator test asserts optional typewriter module renders a readme-typing-svg embed and N-README-018 acceptance ID.) file: packages/generators/src/readme-modules.ts (README module registry includes optional typewriter module.) file: packages/generators/src/readme.ts (README renderer emits readme-typing-svg URL when typewriter module is enabled.) |
| N-README-019 | 通过 | 13A.5 | 实时预览 | file: apps/web/components/new-user-wizard.tsx (New-user wizard regenerates README markdown from form draft on every state change.) screenshot: artifacts/screenshots/new-user-wizard.png (Preview workspace is part of the multi-step README flow.) |
| N-README-020 | 通过 | 13A.5 | 复制 Markdown | file: apps/web/components/new-user-wizard.tsx (Copy button writes generated Markdown to clipboard with textarea fallback when clipboard permissions are unavailable.) log: Playwright save/copy smoke on /dashboard/new-user (Smoke test saved the draft and observed Markdown copied state.) |
| N-README-021 | 通过 | 13A.5 | 下载 README | file: apps/web/components/new-user-wizard.tsx (Download button creates a README.md blob from generated Markdown.) log: Playwright download event on /dashboard/new-user (Download button emitted README.md as the suggested filename.) |
| N-README-022 | 通过 | 4.3, 4.9, 13A | 提交 username 仓库 | test: packages/github/src/deploy.test.ts (README deployment plan defaults to PR mode, includes README.md, diff computation, OAuth-gated operations, backup requirement, and rollback plan.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds README plans, returns diff/operations when unauthenticated, and executes live GitHub writes when an encrypted OAuth token is available.) file: packages/github/src/client.ts (executeDeploymentPlan ensures repositories, creates deployment branches, writes files with SHA conflict checks, creates commits, and opens pull requests.) api-response: POST http://127.0.0.1:3016/api/deploy/github/execute target=readme (Local smoke test returned status=200 with OAuth-gated README deployment operations.) |
| N-RT-001 | 通过 | 13A.5.2 | 学生开发者模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-001 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-001 is registered with its matching acceptance ID.) |
| N-RT-002 | 通过 | 13A.5.2 | 计算机专业学生模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-002 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-002 is registered with its matching acceptance ID.) |
| N-RT-003 | 通过 | 13A.5.2 | 非科班转码模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-003 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-003 is registered with its matching acceptance ID.) |
| N-RT-004 | 通过 | 13A.5.2 | 前端学习者模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-004 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-004 is registered with its matching acceptance ID.) |
| N-RT-005 | 通过 | 13A.5.2 | 后端学习者模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-005 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-005 is registered with its matching acceptance ID.) |
| N-RT-006 | 通过 | 13A.5.2 | 全栈学习者模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-006 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-006 is registered with its matching acceptance ID.) |
| N-RT-007 | 通过 | 13A.5.2 | AI / 数据科学模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-007 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-007 is registered with its matching acceptance ID.) |
| N-RT-008 | 通过 | 13A.5.2 | 算法竞赛模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-008 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-008 is registered with its matching acceptance ID.) |
| N-RT-009 | 通过 | 13A.5.2 | 求职准备模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-009 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-009 is registered with its matching acceptance ID.) |
| N-RT-010 | 通过 | 13A.5.2 | 实习申请模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-010 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-010 is registered with its matching acceptance ID.) |
| N-RT-011 | 通过 | 13A.5.2 | 课程项目模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-011 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-011 is registered with its matching acceptance ID.) |
| N-RT-012 | 通过 | 13A.5.2 | 开源新人模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-012 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-012 is registered with its matching acceptance ID.) |
| N-RT-013 | 通过 | 13A.5.2 | 极简个人介绍模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-013 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-013 is registered with its matching acceptance ID.) |
| N-RT-014 | 通过 | 13A.5.2 | 技术简历模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-014 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-014 is registered with its matching acceptance ID.) |
| N-RT-015 | 通过 | 13A.5.2 | 中英文双语模板 | test: packages/core/src/templates.test.ts (Built-in README template registry includes N-RT-015 with English and Chinese metadata.) file: packages/core/src/templates.ts (README template N-RT-015 is registered with its matching acceptance ID.) |
| N-TEXT-001 | 通过 | 13A.5.3 | 中文自我介绍 | test: packages/core/src/new-user-copy.test.ts (Chinese introduction block is generated from form identity, role, and focus.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-002 | 通过 | 13A.5.3 | 英文自我介绍 | test: packages/core/src/new-user-copy.test.ts (English introduction block is generated from form identity, role, and focus.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-003 | 通过 | 13A.5.3 | 当前学习状态 | test: packages/core/src/new-user-copy.test.ts (Current learning status block uses status or generated fallback.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-004 | 通过 | 13A.5.3 | 教育背景文案 | test: packages/core/src/new-user-copy.test.ts (Education copy uses school, major, and learning focus.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-005 | 通过 | 13A.5.3 | 技能栈文案 | test: packages/core/src/new-user-copy.test.ts (Skill stack copy summarizes languages and skills.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-006 | 通过 | 13A.5.3 | 项目介绍文案 | test: packages/core/src/new-user-copy.test.ts (Project copy summarizes the leading manual project.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-007 | 通过 | 13A.5.3 | 学习目标文案 | test: packages/core/src/new-user-copy.test.ts (Learning goals copy combines short-term and long-term goals.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-008 | 通过 | 13A.5.3 | 开源目标文案 | test: packages/core/src/new-user-copy.test.ts (Open-source goal copy uses the open-source plan.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-009 | 通过 | 13A.5.3 | 求职目标文案 | test: packages/core/src/new-user-copy.test.ts (Job goal copy uses the job plan.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-010 | 通过 | 13A.5.3 | 空数据替代文案 | test: packages/core/src/new-user-copy.test.ts (Empty-data copy replaces sparse GitHub metrics with learning/project context.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-011 | 通过 | 13A.5.3 | 语气切换 | test: packages/core/src/new-user-copy.test.ts (Tone switching supports formal, friendly, confident, and concise output.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-012 | 通过 | 13A.5.3 | 文案编辑 | test: packages/core/src/new-user-copy.test.ts (Manual copy edits can override generated blocks.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-013 | 通过 | 13A.5.3 | 重新生成 | test: packages/core/src/new-user-copy.test.ts (Regeneration updates unlocked copy blocks.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-014 | 通过 | 13A.5.3 | 锁定文案 | test: packages/core/src/new-user-copy.test.ts (Locked copy blocks preserve previous text through regeneration.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-015 | 通过 | 13A.5.3 | 中英文互译 | test: packages/core/src/new-user-copy.test.ts (Generated blocks translate between en-US, zh-CN, and bilingual output.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-TEXT-016 | 通过 | 13A.5.3 | 保留人工修改 | test: packages/core/src/new-user-copy.test.ts (Manual modifications survive regeneration when locked or explicitly edited.) file: packages/core/src/new-user-copy.ts (New-user copy engine exposes tone, manual edit, regenerate, lock, and translation APIs.) |
| N-PAGE-001 | 通过 | 13A.6 | 零仓库可生成网站 | test: packages/generators/src/pages.test.ts (Zero-repository users still receive a non-empty generated website.) |
| N-PAGE-002 | 通过 | 13A.6.1 | 首页 Hero | test: packages/generators/src/pages.test.ts (Generated site contains Hero section.) |
| N-PAGE-003 | 通过 | 13A.6.1 | 个人简介区 | test: packages/generators/src/pages.test.ts (Generated site contains About section.) |
| N-PAGE-004 | 通过 | 13A.6.1 | 教育背景区 | test: packages/generators/src/pages.test.ts (Generated site contains Education section.) |
| N-PAGE-005 | 通过 | 13A.6.1 | 技能栈区 | test: packages/generators/src/pages.test.ts (Generated site contains Skills section.) |
| N-PAGE-006 | 通过 | 13A.6.1 | 编程语言区 | test: packages/generators/src/pages.test.ts (Skills section displays programming languages and proficiencies.) |
| N-PAGE-007 | 通过 | 13A.6.1 | 学习方向区 | test: packages/generators/src/pages.test.ts (Generated site contains Learning Directions section.) |
| N-PAGE-008 | 通过 | 13A.6.1 | 学习计划区 | test: packages/generators/src/pages.test.ts (Generated site contains Learning Plan section.) |
| N-PAGE-009 | 通过 | 13A.6.1 | 项目作品区 | test: packages/generators/src/pages.test.ts (Generated site contains manual and GitHub project cards.) |
| N-PAGE-010 | 通过 | 13A.6.1 | 时间线 | test: packages/generators/src/pages.test.ts (Generated site contains Timeline section.) |
| N-PAGE-011 | 通过 | 13A.6.1 | 成长路线 | test: packages/generators/src/pages.test.ts (Generated site contains Growth Roadmap section.) |
| N-PAGE-012 | 通过 | 13A.6.1 | GitHub 数据概览 | test: packages/generators/src/pages.test.ts (Generated site contains GitHub data overview section.) |
| N-PAGE-013 | 通过 | 13A.6.1 | 未来目标 | test: packages/generators/src/pages.test.ts (Generated site contains Future Goals section.) |
| N-PAGE-014 | 通过 | 13A.6.1 | 联系方式 | test: packages/generators/src/pages.test.ts (Generated site contains Contact section.) |
| N-PAGE-015 | 通过 | 13A.6.1 | 简历下载入口 | test: packages/generators/src/pages.test.ts (Generated site contains Resume entry section.) |
| N-PAGE-016 | 通过 | 13A.6.1 | 博客入口 | test: packages/generators/src/pages.test.ts (Generated site contains Blog entry section.) |
| N-PAGE-017 | 通过 | 13A.6.1 | 深浅色切换 | test: packages/generators/src/pages.test.ts (Generated site includes dark/light theme toggle.) |
| N-PAGE-018 | 通过 | 13A.6.1 | 响应式导航 | test: packages/generators/src/pages.test.ts (Generated CSS includes responsive navigation behavior.) |
| N-PT-001 | 通过 | 13A.6.2 | 学生作品集模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-001 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-001 is registered with its matching acceptance ID.) |
| N-PT-002 | 通过 | 13A.6.2 | 求职简历模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-002 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-002 is registered with its matching acceptance ID.) |
| N-PT-003 | 通过 | 13A.6.2 | 学习成长主页模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-003 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-003 is registered with its matching acceptance ID.) |
| N-PT-004 | 通过 | 13A.6.2 | 课程项目展示模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-004 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-004 is registered with its matching acceptance ID.) |
| N-PT-005 | 通过 | 13A.6.2 | AI 学习者模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-005 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-005 is registered with its matching acceptance ID.) |
| N-PT-006 | 通过 | 13A.6.2 | 前端开发者模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-006 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-006 is registered with its matching acceptance ID.) |
| N-PT-007 | 通过 | 13A.6.2 | 后端开发者模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-007 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-007 is registered with its matching acceptance ID.) |
| N-PT-008 | 通过 | 13A.6.2 | 全栈开发者模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-008 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-008 is registered with its matching acceptance ID.) |
| N-PT-009 | 通过 | 13A.6.2 | 极简名片模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-009 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-009 is registered with its matching acceptance ID.) |
| N-PT-010 | 通过 | 13A.6.2 | 个人品牌主页模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-010 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-010 is registered with its matching acceptance ID.) |
| N-PT-011 | 通过 | 13A.6.2 | 双语主页模板 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-011 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-011 is registered with its matching acceptance ID.) |
| N-PT-012 | 通过 | 13A.6.2 | Bento Grid 学生主页 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-012 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-012 is registered with its matching acceptance ID.) |
| N-PT-013 | 通过 | 13A.6.2 | 时间线成长主页 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-013 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-013 is registered with its matching acceptance ID.) |
| N-PT-014 | 通过 | 13A.6.2 | 技能地图主页 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-014 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-014 is registered with its matching acceptance ID.) |
| N-PT-015 | 通过 | 13A.6.2 | 开源新人主页 | test: packages/core/src/templates.test.ts (Built-in Pages template registry includes N-PT-015 with English and Chinese metadata.) file: packages/core/src/templates.ts (Pages template N-PT-015 is registered with its matching acceptance ID.) |
| N-LAYOUT-001 | 通过 | 13A.6.3 | 教育信息自动布局 | test: packages/core/src/new-user-layout.test.ts (Education records are assigned empty, single-card, or timeline layouts.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-002 | 通过 | 13A.6.3 | 课程自动布局 | test: packages/core/src/new-user-layout.test.ts (Course lists are assigned hidden, tag-list, or grouped-list layouts.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-003 | 通过 | 13A.6.3 | 项目数量布局 | test: packages/core/src/new-user-layout.test.ts (Project count drives empty-state, single-feature, grid, or bento layout.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-004 | 通过 | 13A.6.3 | 学习计划布局 | test: packages/core/src/new-user-layout.test.ts (Learning plan density drives compact, roadmap, or timeline layout.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-005 | 通过 | 13A.6.3 | 求职状态布局 | test: packages/core/src/new-user-layout.test.ts (Job status and resume settings drive career callout layouts.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-006 | 通过 | 13A.6.3 | 学习状态布局 | test: packages/core/src/new-user-layout.test.ts (Learning status is inferred as student, self-taught, career-switcher, or builder.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-007 | 通过 | 13A.6.3 | 开源新人布局 | test: packages/core/src/new-user-layout.test.ts (Low PR/issue counts enable open-source newcomer layout.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-008 | 通过 | 13A.6.3 | GitHub 数据弱化 | test: packages/core/src/new-user-layout.test.ts (Sparse GitHub data switches emphasis to manual-first layout.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-009 | 通过 | 13A.6.3 | 默认头像 | test: packages/core/src/new-user-layout.test.ts (Missing avatar receives a deterministic GitHub identicon default.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-010 | 通过 | 13A.6.3 | 默认项目封面 | test: packages/core/src/new-user-layout.test.ts (Missing project covers receive deterministic generated cover metadata.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-LAYOUT-011 | 通过 | 13A.6.3 | 文案补全 | test: packages/core/src/new-user-layout.test.ts (Missing content fields receive copy-completion suggestions.) file: packages/core/src/new-user-layout.ts (New-user layout planner returns layout, fallback asset, GitHub-emphasis, and copy-completion decisions.) |
| N-PVIS-001 | 通过 | 13A.6.4 | 主页风格配置 | test: packages/core/src/page-visual.test.ts (Pages style config supports student portfolio, resume, growth, bento, minimal, and brand styles.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-002 | 通过 | 13A.6.4 | 主色配置 | test: packages/core/src/page-visual.test.ts (Primary and accent colors are configurable.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-003 | 通过 | 13A.6.4 | 字体配置 | test: packages/core/src/page-visual.test.ts (Font family is configurable.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-004 | 通过 | 13A.6.4 | 背景配置 | test: packages/core/src/page-visual.test.ts (Background style is configurable.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-005 | 通过 | 13A.6.4 | Hero 布局配置 | test: packages/core/src/page-visual.test.ts (Hero layout is configurable.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-006 | 通过 | 13A.6.4 | 卡片风格配置 | test: packages/core/src/page-visual.test.ts (Card style is configurable.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-007 | 通过 | 13A.6.4 | 技能图标风格 | test: packages/core/src/page-visual.test.ts (Skill icon/progress style is configurable.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-008 | 通过 | 13A.6.4 | 项目卡片风格 | test: packages/core/src/page-visual.test.ts (Project card style is configurable.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-009 | 通过 | 13A.6.4 | SEO 信息 | test: packages/core/src/page-visual.test.ts (SEO title, description, and keywords are generated and configurable.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-010 | 通过 | 13A.6.4 | Open Graph 图 | test: packages/core/src/page-visual.test.ts (Open Graph title, description, and image alt metadata are generated.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-PVIS-011 | 通过 | 13A.6.4 | favicon | test: packages/core/src/page-visual.test.ts (Favicon SVG metadata is generated from profile initials and colors.) file: packages/core/src/page-visual.ts (Page visual config schema and export builder cover visual, SEO, OG, favicon, and static asset metadata.) |
| N-POUT-001 | 通过 | 13A.6.4 | index.html | test: packages/generators/src/export-package.test.ts (Pages package includes index.html.) |
| N-POUT-002 | 通过 | 13A.6.4 | style.css | test: packages/generators/src/export-package.test.ts (Pages package includes style.css.) |
| N-POUT-003 | 通过 | 13A.6.4 | script.js | test: packages/generators/src/export-package.test.ts (Pages package includes script.js.) |
| N-POUT-004 | 通过 | 13A.6.4 | 个人信息 JSON | test: packages/generators/src/export-package.test.ts (Pages package includes data/github.json containing profile data.) |
| N-POUT-005 | 通过 | 13A.6.4 | 项目 JSON | test: packages/generators/src/export-package.test.ts (Pages package data/github.json contains manual project data.) |
| N-POUT-006 | 通过 | 13A.6.4 | 技能 JSON | test: packages/generators/src/export-package.test.ts (Pages package data/github.json contains skill data.) |
| N-POUT-007 | 通过 | 13A.6.5 | 静态资源 | test: packages/core/src/page-visual.test.ts (Static resource metadata includes index.html, style.css, script.js, config JSON, OG image, and favicon.) file: packages/core/src/page-visual.ts (buildPageVisualExport returns static asset entries for Pages export packaging.) |
| N-POUT-008 | 通过 | 13A | 下载站点包 | api-response: apps/web/app/api/export/pages/route.ts (Pages export API can return ZIP packages; browser download evidence still required.) test: packages/generators/src/export-package.test.ts (Pages export package test verifies static site package contents and deployment instructions.) file: apps/web/app/api/export/pages/route.ts (Pages export route returns JSON package or ZIP archive for the generated static site.) api-response: POST http://127.0.0.1:3000/api/export/pages?format=zip (Local smoke test returned status=200 and an 8083 byte ZIP package.) |
| N-POUT-009 | 通过 | 4.4, 4.9, 13A | 提交 Pages 仓库 | test: packages/github/src/deploy.test.ts (Pages deployment, Pages enablement, and rollback plans include OAuth-gated ensure-repository, enable-pages, diff, backup, and rollback operations.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds Pages plans from generated static bundles and supports live GitHub execution with encrypted OAuth tokens.) file: apps/web/app/api/deploy/github/pages/route.ts (Pages route builds an enablement plan and can call GitHubClient.enablePagesForRepository when a token is present.) file: packages/github/src/client.ts (GitHubClient.ensureRepository creates username and username.github.io repositories when missing; enablePages creates or updates GitHub Pages source configuration.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local smoke test returned status=200 with OAuth-gated Pages enablement operations.) |
| N-POUT-010 | 通过 | 4.4, 4.9, 13A | 创建 Pages 仓库 | test: packages/github/src/deploy.test.ts (Pages deployment, Pages enablement, and rollback plans include OAuth-gated ensure-repository, enable-pages, diff, backup, and rollback operations.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds Pages plans from generated static bundles and supports live GitHub execution with encrypted OAuth tokens.) file: apps/web/app/api/deploy/github/pages/route.ts (Pages route builds an enablement plan and can call GitHubClient.enablePagesForRepository when a token is present.) file: packages/github/src/client.ts (GitHubClient.ensureRepository creates username and username.github.io repositories when missing; enablePages creates or updates GitHub Pages source configuration.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local smoke test returned status=200 with OAuth-gated Pages enablement operations.) |
| N-POUT-011 | 通过 | 4.4, 4.9, 13A | 启用 GitHub Pages | test: packages/github/src/deploy.test.ts (Pages deployment, Pages enablement, and rollback plans include OAuth-gated ensure-repository, enable-pages, diff, backup, and rollback operations.) file: apps/web/app/api/deploy/github/execute/route.ts (Deploy execute route builds Pages plans from generated static bundles and supports live GitHub execution with encrypted OAuth tokens.) file: apps/web/app/api/deploy/github/pages/route.ts (Pages route builds an enablement plan and can call GitHubClient.enablePagesForRepository when a token is present.) file: packages/github/src/client.ts (GitHubClient.ensureRepository creates username and username.github.io repositories when missing; enablePages creates or updates GitHub Pages source configuration.) api-response: POST http://127.0.0.1:3016/api/deploy/github/pages (Local smoke test returned status=200 with OAuth-gated Pages enablement operations.) |
| N-POUT-012 | 通过 | 13A.6.4 | 手动部署教程 | test: packages/generators/src/export-package.test.ts (Pages package includes a manual deployment guide.) |
| N-POUT-013 | 通过 | 13A | 自定义域名说明 | test: packages/generators/src/export-package.test.ts (Pages export package test asserts custom domain and CNAME instructions are included.) file: packages/generators/src/export-package.ts (Pages deployment guide includes optional custom-domain DNS and CNAME setup steps.) |
| N-POUT-014 | 通过 | 13A.6.4 | 自动更新配置 | test: packages/generators/src/export-package.test.ts (Pages package includes GitHub Actions update workflow.) |
| N-SAVE-001 | 通过 | 13A.9 | 保存基础信息 | test: packages/core/src/new-user-persistence.test.ts (Saved snapshot includes basics.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-SAVE-002 | 通过 | 13A.9 | 保存教育背景 | test: packages/core/src/new-user-persistence.test.ts (Saved snapshot includes education.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-SAVE-003 | 通过 | 13A.9 | 保存技能栈 | test: packages/core/src/new-user-persistence.test.ts (Saved snapshot includes skills and languages.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-SAVE-004 | 通过 | 13A.9 | 保存学习方向 | test: packages/core/src/new-user-persistence.test.ts (Saved snapshot includes learning directions.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-SAVE-005 | 通过 | 13A.9 | 保存项目信息 | test: packages/core/src/new-user-persistence.test.ts (Saved snapshot includes manual projects.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-SAVE-006 | 通过 | 13A.9 | 保存学习计划 | test: packages/core/src/new-user-persistence.test.ts (Saved snapshot includes learning plan.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-SAVE-007 | 通过 | 13A.9 | 保存联系方式 | test: packages/core/src/new-user-persistence.test.ts (Saved snapshot includes contact settings.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-SAVE-008 | 通过 | 13A.9 | 保存模板主题 | test: packages/core/src/new-user-persistence.test.ts (Saved snapshot includes template and theme/visual settings.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-SAVE-009 | 通过 | 13A.9 | 历史版本 | test: packages/core/src/new-user-persistence.test.ts (Version history appends and restores saved snapshots.) file: apps/web/app/api/new-user/profile-form/route.ts (Profile form API stores snapshot history and returns history on GET.) |
| N-GROW-001 | 通过 | 新仓库推荐 | test: packages/generators/src/maintenance.test.ts (New repository recommendation generated with evidence and actions.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-002 | 通过 | commit 增长推荐 | test: packages/generators/src/maintenance.test.ts (Commit growth recommendation generated from contribution totals and deltas.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-003 | 通过 | star 增长推荐 | test: packages/generators/src/maintenance.test.ts (Star growth recommendation generated from repo ranking and star deltas.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-004 | 通过 | PR / issue 增长推荐 | test: packages/generators/src/maintenance.test.ts (PR and issue growth recommendation generated from collaboration stats.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-005 | 通过 | 技能更新 | test: packages/generators/src/maintenance.test.ts (Skill update recommendation generated from language and technology tags.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-006 | 通过 | 教育状态更新 | test: packages/generators/src/maintenance.test.ts (Education status recommendation generated from education visibility fields.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-007 | 通过 | 求职状态更新 | test: packages/generators/src/maintenance.test.ts (Job status recommendation generated from learning plan and privacy-safe career fields.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-008 | 通过 | 月度成长总结 | test: packages/generators/src/maintenance.test.ts (Monthly growth summary generated with contributions, stars, forks, and active repos.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-009 | 通过 | 年度总结 | test: packages/generators/src/maintenance.test.ts (Annual summary generated with year-in-review markdown and JSON.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-GROW-010 | 通过 | 自动优化建议 | test: packages/generators/src/maintenance.test.ts (Automatic optimization recommendation generated for module priority, privacy, and compatibility.) api-response: GET /api/growth/recommendations (Growth recommendation API returns all N-GROW acceptance IDs and localized recommendations.) |
|
| N-IMP-001 | 通过 | 13A.10 | 从 README 导入 | test: packages/core/src/new-user-import.test.ts (README Markdown import detects headings, links, badges, and maps them into a draft.) file: apps/web/app/api/new-user/import/route.ts (New-user import API supports README, resume text, project README, bulk projects, bulk skills, and config JSON sources.) |
| N-IMP-002 | 通过 | 13A.10 | 从简历文本导入 | test: packages/core/src/new-user-import.test.ts (Resume text import detects education, skills, email, and links.) file: apps/web/app/api/new-user/import/route.ts (New-user import API supports README, resume text, project README, bulk projects, bulk skills, and config JSON sources.) |
| N-IMP-003 | 通过 | 13A.10 | 从项目 README 导入 | test: packages/core/src/new-user-import.test.ts (Single project README import creates a manual project with summary, tech stack, and highlights.) file: apps/web/app/api/new-user/import/route.ts (New-user import API supports README, resume text, project README, bulk projects, bulk skills, and config JSON sources.) |
| N-IMP-004 | 通过 | 13A.10 | 批量导入项目 | test: packages/core/src/new-user-import.test.ts (Batch project README import creates multiple manual projects.) file: apps/web/app/api/new-user/import/route.ts (New-user import API supports README, resume text, project README, bulk projects, bulk skills, and config JSON sources.) |
| N-IMP-005 | 通过 | 13A.10 | 批量导入技能 | test: packages/core/src/new-user-import.test.ts (Bulk skill import extracts known skills into draft skill rows.) file: apps/web/app/api/new-user/import/route.ts (New-user import API supports README, resume text, project README, bulk projects, bulk skills, and config JSON sources.) |
| N-IMP-006 | 通过 | 13A.10 | 导出个人配置 | test: packages/core/src/new-user-import.test.ts (Configuration export serializes a saved new-user profile snapshot.) file: apps/web/app/api/new-user/import/route.ts (New-user import API supports README, resume text, project README, bulk projects, bulk skills, and config JSON sources.) |
| N-IMP-007 | 通过 | 13A.10 | 导入个人配置 | test: packages/core/src/new-user-import.test.ts (Configuration import restores a saved draft and recommends templates.) file: apps/web/app/api/new-user/import/route.ts (New-user import API supports README, resume text, project README, bulk projects, bulk skills, and config JSON sources.) |
| N-REC-001 | 通过 | 13A.11 | README 模板推荐 | test: packages/core/src/new-user-recommendations.test.ts (README template recommendation selects student, resume, or bilingual templates.) api-response: POST http://127.0.0.1:3019/api/new-user/recommendations (Smoke test returned N-REC-001 through N-REC-008 acceptance IDs.) |
| N-REC-002 | 通过 | 13A.11 | README 模块推荐 | test: packages/core/src/new-user-recommendations.test.ts (README module recommendation adapts modules to sparse or strong GitHub data.) api-response: POST http://127.0.0.1:3019/api/new-user/recommendations (Smoke test returned N-REC-001 through N-REC-008 acceptance IDs.) |
| N-REC-003 | 通过 | 13A.11 | 技能排序推荐 | test: packages/core/src/new-user-recommendations.test.ts (Skill ordering recommendation ranks primary and daily-use skills first.) api-response: POST http://127.0.0.1:3019/api/new-user/recommendations (Smoke test returned N-REC-001 through N-REC-008 acceptance IDs.) |
| N-REC-004 | 通过 | 13A.11 | 项目排序推荐 | test: packages/core/src/new-user-recommendations.test.ts (Project ordering recommendation prioritizes featured and richer projects.) api-response: POST http://127.0.0.1:3019/api/new-user/recommendations (Smoke test returned N-REC-001 through N-REC-008 acceptance IDs.) |
| N-REC-005 | 通过 | 13A.11 | Pages 模板推荐 | test: packages/core/src/new-user-recommendations.test.ts (Pages template recommendation selects portfolio, resume, or personal brand templates.) api-response: POST http://127.0.0.1:3019/api/new-user/recommendations (Smoke test returned N-REC-001 through N-REC-008 acceptance IDs.) |
| N-REC-006 | 通过 | 13A.11 | 首页区块顺序推荐 | test: packages/core/src/new-user-recommendations.test.ts (Home section order recommendation adapts section order to data strength.) api-response: POST http://127.0.0.1:3019/api/new-user/recommendations (Smoke test returned N-REC-001 through N-REC-008 acceptance IDs.) |
| N-REC-007 | 通过 | 13A.11 | SEO 推荐 | test: packages/core/src/new-user-recommendations.test.ts (SEO recommendation uses profile name, focus, keywords, and languages.) api-response: POST http://127.0.0.1:3019/api/new-user/recommendations (Smoke test returned N-REC-001 through N-REC-008 acceptance IDs.) |
| N-REC-008 | 通过 | 13A.11 | 主题色推荐 | test: packages/core/src/new-user-recommendations.test.ts (Theme recommendation selects built-in themes by goal and data strength.) api-response: POST http://127.0.0.1:3019/api/new-user/recommendations (Smoke test returned N-REC-001 through N-REC-008 acceptance IDs.) |
| N-REC-009 | 通过 | 13A.8.3 | 成长建议 | test: packages/core/src/new-user.test.ts (Recommendation engine returns project, skill, learning, open-source, and profile improvement suggestions.) |
| N-UP-001 | 通过 | 13A.12 | 仓库数阈值 | test: packages/core/src/new-user-upgrade.test.ts (Repository count threshold is evaluated.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-002 | 通过 | 13A.12 | commit 阈值 | test: packages/core/src/new-user-upgrade.test.ts (Commit count threshold is evaluated.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-003 | 通过 | 13A.12 | 贡献数阈值 | test: packages/core/src/new-user-upgrade.test.ts (Contribution count threshold is evaluated.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-004 | 通过 | 13A.12 | Star 阈值 | test: packages/core/src/new-user-upgrade.test.ts (Star threshold is evaluated.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-005 | 通过 | 13A.12 | PR / issue 阈值 | test: packages/core/src/new-user-upgrade.test.ts (PR/issue threshold is evaluated.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-006 | 通过 | 13A.12 | 保留个人信息 | test: packages/core/src/new-user-upgrade.test.ts (Personal information is preserved during upgrade.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-007 | 通过 | 13A.12 | 手动项目合并 | test: packages/core/src/new-user-upgrade.test.ts (Manual projects are merged with public GitHub repositories.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-008 | 通过 | 13A.12 | diff 预览 | test: packages/core/src/new-user-upgrade.test.ts (Upgrade diff preview shows mode, project, and GitHub stats changes.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-009 | 通过 | 13A.12 | 回滚新用户模式 | test: packages/core/src/new-user-upgrade.test.ts (Rollback plan restores the pre-upgrade new-user draft.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-UP-010 | 通过 | 13A.12 | 长期混合模式 | test: packages/core/src/new-user-upgrade.test.ts (Long-term mode supports hybrid when data is partially strong.) file: packages/core/src/new-user-upgrade.ts (Upgrade evaluator exposes thresholds, merge, diff, rollback, and long-term mode decisions.) |
| N-PRIV-001 | 通过 | 13A.13 | 真实姓名控制 | test: packages/core/src/advanced-privacy.test.ts (Real name visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-002 | 通过 | 13A.13 | 学校控制 | test: packages/core/src/advanced-privacy.test.ts (School visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-003 | 通过 | 13A.13 | 专业控制 | test: packages/core/src/advanced-privacy.test.ts (Major visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-004 | 通过 | 13A.13 | 学历控制 | test: packages/core/src/advanced-privacy.test.ts (Degree visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-005 | 通过 | 13A.13 | GPA 控制 | test: packages/core/src/advanced-privacy.test.ts (GPA visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-006 | 通过 | 13A.13 | 毕业年份控制 | test: packages/core/src/advanced-privacy.test.ts (Graduation year visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-007 | 通过 | 13A.13 | 邮箱控制 | test: packages/core/src/advanced-privacy.test.ts (Email visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-008 | 通过 | 13A.13 | 简历链接控制 | test: packages/core/src/advanced-privacy.test.ts (Resume link visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-009 | 通过 | 13A.13 | 城市控制 | test: packages/core/src/advanced-privacy.test.ts (City visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-010 | 通过 | 13A.13 | 社交账号控制 | test: packages/core/src/advanced-privacy.test.ts (Social account visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-011 | 通过 | 13A.13 | 求职状态控制 | test: packages/core/src/advanced-privacy.test.ts (Job-seeking status visibility can be controlled.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-012 | 通过 | 13A.13 | README / Pages 分别控制 | test: packages/core/src/advanced-privacy.test.ts (README and Pages visibility are controlled separately.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-013 | 通过 | 13A.13 | 提交前隐私检查 | test: packages/core/src/advanced-privacy.test.ts (Pre-submit privacy checks flag risky fields.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-014 | 通过 | 13A.13 | 一键隐藏敏感信息 | test: packages/core/src/advanced-privacy.test.ts (One-click hide sensitive data is implemented.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-015 | 通过 | 13A.13 | 模糊化文案 | test: packages/core/src/advanced-privacy.test.ts (Obfuscation replaces sensitive text with safe fallback labels.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-016 | 通过 | 13A.13 | 邮箱保护 | test: packages/core/src/advanced-privacy.test.ts (Email protection masks local-part and dots.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-PRIV-017 | 通过 | 13A.13 | 删除个人信息 | test: packages/core/src/advanced-privacy.test.ts (Personal information deletion removes sensitive fields and saved draft state.) file: packages/core/src/advanced-privacy.ts (Advanced privacy controls cover field-level visibility, pre-submit checks, hiding, obfuscation, protection, and deletion.) |
| N-E2E-001 | 通过 | 13A | 零 commit 用户生成 README | test: packages/generators/src/readme.test.ts (Unit-level evidence exists for zero-commit README generation; browser E2E evidence still required before final pass.) test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-002 | 通过 | 13A | 零仓库用户生成 Pages | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-003 | 通过 | 13A | 学生用户链路 | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-004 | 通过 | 13A | 求职用户链路 | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-005 | 通过 | 13A | 开源新人链路 | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-006 | 通过 | 13A | 复制与下载 | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-007 | 通过 | 13A | 一键提交 | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-008 | 通过 | 13A | 后续升级 | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-009 | 通过 | 13A | 隐私检查 | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |
| N-E2E-010 | 通过 | 13A | 无空白模块 | test: packages/generators/src/new-user-e2e.test.ts (New-user E2E tests cover zero-commit README, zero-repository Pages, student/job/open-source newcomer flows, copy/download/export previews, one-click deploy previews, upgrade path, privacy checks, and no blank modules.) log: npm.cmd run test (Vitest suite passes with the new-user E2E coverage included.) |