6.6 KiB
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.initializedas 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_apptype 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
projectIdis repaired by Main with a generated UUID; the legacyinitializedBoolean 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_appdefault without presenting identity, type, or template choices. - Removed the
initializednavigation 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
initializedis 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绑定已有项目 IDis 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
initializedas 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.