# Task: Remove project creation gate and template selection ## Identity - Task ID: 20260906-remove-project-gate-7c31 - Mode: Feature - Branch: codex/20260906-remove-project-gate-7c31-remove-project-gate-7c31 - Worktree: /Users/inmanx/Documents/makelore-task-remove-project-gate-7c31 - Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b - Owner: codex - Status: Ready for integration ## Scope - Remove the user-facing project creation identity/type choices from the Code sidebar and use the existing safe defaults instead. - Stop treating `config.initialized` as a navigation/UI gate for an otherwise valid local Code project. - Keep an empty project usable by presenting a non-blocking route to project settings when no Agent exists. - Keep the durable project ID as an internal service concern: remove it from the normal Project Configuration UI and automatically assign one when a valid legacy project lacks it. - Update focused Renderer tests, the shared Electron project-creation flow, and README product-state documentation. ## Intent And Constraints - A new project receives a Main-generated local UUID and the existing internal `interactive_ai_app` type without asking the user to choose either during creation. - Preserve `.makelore/project.json`, historical project-type normalization, underlying identity compatibility endpoints, publish contracts, and existing custom projects without exposing identity choices to young users. - Keep the bundled Project Scaffold Skill available as an optional Plugin; it must not be part of, or a prerequisite for, project creation. - Missing or invalid project metadata remains an entry error. A valid legacy config missing only `projectId` is repaired by Main with a generated UUID; the legacy `initialized` Boolean no longer blocks a valid project. - Renderer backend access continues through the existing Host API/store seams. ## Outcome - Simplified the Code project creation dialog to directory selection only. Main still generates the local project UUID, while the Renderer writes the existing internal `interactive_ai_app` default without presenting identity, type, or template choices. - Removed the `initialized` navigation redirect and full-workspace overlay for valid project metadata. Missing or invalid metadata still routes to Project Configuration. - Added an empty-Agent state in the coding chat so a newly created project opens immediately and offers a direct, non-blocking route to create its first Agent. - Reworded Project Configuration save affordances so the retained compatibility write to `initialized` is no longer described as an initialization ceremony. - Removed the Project Configuration identity card, raw UUID, bind form, and independent-copy action. Main now serializes automatic UUID assignment for a valid legacy project missing `projectId`, including concurrent reads, while retaining the underlying compatibility endpoints and immutable schema rules. - Replaced the last creation-dialog identity terminology with youth-readable copy: only the folder choice is explained; all other setup is automatic. - Preserved project schemas, historical project types, publishing contracts, existing custom projects, and the optional bundled Project Scaffold Plugin/Skill. - Updated README product-state documentation and focused unit/Electron coverage. - Diagnosed a post-verification UI mismatch as a development-runtime issue: the visible Electron window had been launched from the separate Plugins/settings task worktree, whose source still contained the former identity choices. The stale process group was stopped and the verified feature worktree was started on the standard development ports. ## Verification - `corepack pnpm install --frozen-lockfile` — passed with the repository-pinned pnpm 10.33.4. - `corepack pnpm run typecheck` — passed. - Focused ESLint across all changed source/test files — passed. - Focused Renderer/Main tests — 60 passed across App routing, Main layout, Sidebar, CodingChatPanel, Project Configuration, config stores, and serialized automatic legacy identity assignment. - Adjacent project-schema/store tests — 34 passed. - `corepack pnpm run lint:check` — passed with zero errors; five pre-existing warnings remain in unrelated Home/Makelore files. - `corepack pnpm test` — passed: 1,862 ordinary tests passed, three skipped, and the isolated pressure test passed 1/1. - `corepack pnpm run build:vite` — passed for Renderer, Main, Preload, and the release utility worker. - `corepack pnpm exec playwright test tests/e2e/coding-project-identity.spec.ts tests/e2e/project-configuration-skills.spec.ts` — passed (2/2), covering directory-only creation, direct chat entry, absence of all identity terminology and controls, automatic legacy UUID repair, and the empty-Agent settings route. - Live runtime verification after restart — Vite PID 16968 and Electron PID 16975 both resolve to this task worktree; the active Renderer command reports the same `app-path`, and the source served on port 5173 contains the automatic setup copy while none of `项目身份`, `创建新的项目 ID`, or `绑定已有项目 ID` is present. - `git diff --check` — passed. ## Follow-ups - Promote the project-creation workflow change into ADR-008 and the canonical project architecture/domain documentation during a serialized Integration task. - Physically removing the optional bundled Project Scaffold Plugin/Skill, if desired, should be a separate explicit decision because it affects packaged resources and release coverage; this task only removes it from the creation path. ## Promotion Candidates - Target: ADR-008 and canonical project-creation architecture/domain documents. Proposal: amend the user-facing creation workflow so identity and project type are safe defaults instead of required choices, and treat `initialized` as a compatibility field rather than a workspace navigation gate. Durable project identity remains Main-owned and is generated automatically for new projects and valid legacy configs that lack it; raw UUIDs, bind choices, and copy semantics must not return to ordinary youth-facing UI. Existing custom projects, type normalization, publishing authority, compatibility endpoints, and the optional Scaffold Skill remain. Future impact: product documentation and future creation/configuration UI must not restore these choices as mandatory or visible setup. Human confirmation is represented by the user's explicit statements that the product targets young users and service-required identity should default automatically; canonical promotion still belongs to a serialized Integration task.