Files
makelore/.project-docs/30-worklog/tasks/20260906-remove-project-gate-7c31.md
T

6.6 KiB

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: f8eee430f4
  • 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.