152 lines
5.5 KiB
JSON
152 lines
5.5 KiB
JSON
{
|
|
"schema_version": "vtuber_dev_baseline_owner_decision_v1",
|
|
"generated_at": "2026-06-24T14:08:41+08:00",
|
|
"product_id": "vtuber",
|
|
"local_path": "/Users/ogt/VTuber",
|
|
"gitea_repo": "wooo/vtuber",
|
|
"remote_refs": {
|
|
"main": "",
|
|
"dev": "",
|
|
"status": "repository_not_found"
|
|
},
|
|
"local_readback": {
|
|
"branch": "main",
|
|
"head": "invalid_unborn_or_no_commit_head",
|
|
"head_error": "fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree",
|
|
"tracked_modified_count": 0,
|
|
"tracked_deleted_count": 0,
|
|
"staged_addition_count": 2,
|
|
"untracked_file_count": 84,
|
|
"untracked_porcelain_entry_count": 30,
|
|
"status": "repository_identity_repair_required"
|
|
},
|
|
"remote_readback": {
|
|
"ls_remote": "failed_repository_not_found",
|
|
"error_summary": "Cannot find repository: wooo/vtuber"
|
|
},
|
|
"staged_additions_seen_but_not_modified": [
|
|
"apps/admin/public/.gitkeep",
|
|
"apps/web/public/.gitkeep"
|
|
],
|
|
"untracked_classification": {
|
|
"apps_web_count": 33,
|
|
"apps_admin_count": 15,
|
|
"apps_api_count": 13,
|
|
"packages_db_count": 5,
|
|
"packages_ui_count": 2,
|
|
"deploy_count": 4,
|
|
"scripts_count": 3,
|
|
"docs_count": 2,
|
|
"root_count": 7
|
|
},
|
|
"untracked_source_groups": {
|
|
"root": [
|
|
".env.example",
|
|
".gitignore",
|
|
"README.md",
|
|
"package.json",
|
|
"test-browser.js",
|
|
"test_glb.js",
|
|
"tsconfig.base.json"
|
|
],
|
|
"apps_admin": [
|
|
"apps/admin/.env.example",
|
|
"apps/admin/.eslintrc.json",
|
|
"apps/admin/Dockerfile",
|
|
"apps/admin/next-env.d.ts",
|
|
"apps/admin/next.config.js",
|
|
"apps/admin/package.json",
|
|
"apps/admin/src/app/inventory/page.tsx",
|
|
"apps/admin/src/app/operations/page.tsx",
|
|
"apps/admin/src/app/orders/page.tsx",
|
|
"apps/admin/src/app/products/page.tsx",
|
|
"apps/admin/src/lib/api.ts",
|
|
"apps/admin/tsconfig.json"
|
|
],
|
|
"apps_api": [
|
|
"apps/api/.env.example",
|
|
"apps/api/.eslintrc.json",
|
|
"apps/api/Dockerfile",
|
|
"apps/api/nest-cli.json",
|
|
"apps/api/package.json",
|
|
"apps/api/src/app.controller.ts",
|
|
"apps/api/src/app.module.ts",
|
|
"apps/api/src/app.service.ts",
|
|
"apps/api/src/database/database.module.ts",
|
|
"apps/api/src/database/prisma.service.ts",
|
|
"apps/api/src/main.ts",
|
|
"apps/api/tsconfig.build.json",
|
|
"apps/api/tsconfig.json"
|
|
],
|
|
"apps_web": [
|
|
"apps/web/.env.example",
|
|
"apps/web/.eslintrc.json",
|
|
"apps/web/Dockerfile",
|
|
"apps/web/next-env.d.ts",
|
|
"apps/web/next.config.js",
|
|
"apps/web/package.json",
|
|
"apps/web/public/models/realistic-host.glb",
|
|
"apps/web/public/models/xiaoyai.vrm",
|
|
"apps/web/src/app/[locale]/live/demo/page.tsx",
|
|
"apps/web/src/app/cart/page.tsx",
|
|
"apps/web/src/app/checkout/page.tsx",
|
|
"apps/web/src/app/live/page.tsx",
|
|
"apps/web/src/app/products/[slug]/page.tsx",
|
|
"apps/web/src/components/virtual-host.tsx",
|
|
"apps/web/src/lib/api.ts",
|
|
"apps/web/src/middleware.ts",
|
|
"apps/web/tsconfig.json",
|
|
"apps/web/tsconfig.tsbuildinfo"
|
|
],
|
|
"packages_deploy_and_docs": [
|
|
"deploy/apply-nginx-110-live-fallback.sh",
|
|
"deploy/deploy-prod.sh",
|
|
"deploy/docker-compose.prod.yml",
|
|
"deploy/vtuber-nginx-110-live-fallback.conf",
|
|
"deploy/.env.prod",
|
|
"deploy/.env.prod.example",
|
|
"docs/PRD.md",
|
|
"docs/TASKS.md",
|
|
"packages/db/prisma/schema.prisma",
|
|
"packages/db/prisma/seed.ts",
|
|
"packages/db/src/index.ts",
|
|
"packages/ui/src/index.ts",
|
|
"scripts/check-vtuber-offline-110.sh",
|
|
"scripts/deploy-and-verify-vtuber110.sh",
|
|
"scripts/verify-live-domain-110.sh"
|
|
]
|
|
},
|
|
"excluded_or_quarantined_by_default": [
|
|
"apps/web/tsconfig.tsbuildinfo",
|
|
"deploy/.env.prod"
|
|
],
|
|
"secret_or_env_paths_seen_but_not_read": [
|
|
".env.example",
|
|
"apps/admin/.env.example",
|
|
"apps/api/.env.example",
|
|
"apps/web/.env.example",
|
|
"deploy/.env.prod",
|
|
"deploy/.env.prod.example"
|
|
],
|
|
"risk_assessment": {
|
|
"secret_value_collected": false,
|
|
"env_file_read": false,
|
|
"runtime_write_performed": false,
|
|
"product_repo_write_performed": false,
|
|
"remote_write_performed": false,
|
|
"risk_level": "blocked_repository_identity_repair_required",
|
|
"reason": "The local repository has no valid HEAD, two staged .gitkeep files, 84 untracked files, and the expected Gitea repository wooo/vtuber is not found. This must be treated as repo bootstrap or repo identity repair before any source control action."
|
|
},
|
|
"owner_decision_required": [
|
|
"Decide whether VTuber is a new repository bootstrap or should map to another existing Gitea repository.",
|
|
"Approve creating or identifying the correct Gitea repository before any branch action.",
|
|
"Approve whether the two staged .gitkeep files should remain staged, be committed, or be reset in a new repo bootstrap flow.",
|
|
"Confirm deploy/.env.prod remains excluded and is not read or copied.",
|
|
"Confirm env example files are metadata-only and contain no real secrets before source control inclusion.",
|
|
"Approve or reject VRM / GLB model assets as source artifacts.",
|
|
"Approve or reject Nginx / compose / deploy scripts as part of the initial baseline.",
|
|
"Approve remote main / dev branch creation only after repository identity and initial source include list are accepted."
|
|
],
|
|
"recommended_next_step": "Resolve repository identity first, then create a bootstrap owner package before any Gitea repository creation, branch creation, or MacBook workspace bootstrap."
|
|
}
|