creating-projects
A new project is judged by everything except its code: the toolchain, CI, release and docs must work from the first commit, while the code itself stays a placeholder until the user asks for logic.
Read guide.md before writing any file. It explains how to read the request, what you may change in a template and why, how to write the docs, and what to do when no template fits.
Required initialization gate
For a completely new project, finish the managed project initialization before writing any scaffold or project files:
- Load the
$global-projectsskill and use its paired resolver to find the configured project root and project CLI. - Resolve the repository owner and name. If either is missing or ambiguous, ask the user before creating the project directory.
- Resolve whether the repository should be public or private. If the user did not specify visibility, ask before continuing. "Private" only sets the GitHub repository visibility, never
private: truein a package. - Resolve a one-sentence description of what the project does. If the request doesn't say, ask instead of describing the scaffold.
- Run the selected CLI's
initcommand with the explicit visibility option from<root>/<owner>/<repo>. - Verify the local path and
originremote, then create the scaffold inside that initialized repository (see Templates).
An explicit request to create or initialize a new project authorizes the managed initialization. Once the owner, name, visibility, and description are known, do not ask for a second confirmation before running moi init --public, moi init --private, or the paired mo command.
Do not create the project anywhere else (the current task directory, work/, outputs/), and do not use plain git init instead of the managed init. If a required choice is missing, ask for it instead of skipping the initialization.