2.8 KiB
2.8 KiB
Makelore Development Guidance
Product boundary
Makelore is a cross-platform Electron application with two visible modules: Makelore Code|AI 编程 and Makelore Canvas|AI 绘画. The repository root is the complete product source tree. It does not depend on a sibling source checkout.
Do not restore Works gallery, asset gallery, publish/upload, or cloud-deploy workbench pages. /deliverables is a project output preview and remains supported.
Commands
Use the exact pnpm version pinned by packageManager in package.json.
| Task | Command |
|---|---|
| Install | pnpm install --frozen-lockfile |
| Desktop development | pnpm run dev |
| Local image-workspace development | pnpm run dev:image-workspace:local |
| Type check | pnpm run typecheck |
| Lint check | pnpm run lint:check |
| Unit tests | pnpm test |
| Production compile | pnpm run build:vite |
| Electron E2E | pnpm run test:e2e |
Architecture rules
- Renderer backend access goes through
src/lib/host-api.tsorsrc/lib/api-client.ts. - Do not add direct page/component IPC calls or direct local-runtime HTTP requests.
- Electron Main owns runtime startup, Host API routes, authentication, providers, secrets, synchronization, proxies, updates, and system integration.
- Keep AI programming project state local and project-scoped.
- Keep AI painting behind its Main-owned cloud workspace contract. The unpackaged local adapter is development-only and must never become a packaged fallback.
- Preserve internal
niancodecompatibility identifiers unless a separately approved migration covers app id, protocol, storage, environment, headers, backend contracts, and installed-user data. - Keep the product on the single Makelore light visual system. Do not add a dark-theme product mode.
Agent and project configuration
- Project configuration is authoritative in
.niancode/project.json. - Agent definitions and generated
.opencode/agent/files are project-owned. - Stable Agent ids preserve sessions; display names are editable.
- Do not refactor Agent templates, prompts, or OpenCode structure as an incidental part of unrelated work.
Verification
- Add or update focused tests for every behavior change.
- Run typecheck and relevant unit tests before the full suite.
- Run
pnpm run build:vitefor changes that affect Renderer, Main, Preload, packaging imports, or assets. - User-visible interaction changes should update an Electron E2E spec when the shared fixture is available.
- Never commit dependencies, downloaded runtimes, build output, reports, caches, secrets, or local user data.
Documentation
README.md is the current product-state document. Keep it synchronized with product behavior and architecture. Do not add task ledgers, historical worklogs, migration diaries, evidence archives, or superseded design plans to this repository.