MKTRUE-NEW(1)mktrue 0.3.1MKTRUE-NEW(1)
mktrue new
NAME
mktrue new — make a repository from a template, verified and committed
SYNOPSIS
mktrue new <template> <name> [--answers <file>] [--offline] [--target <name>] [--bench <dir>]
DESCRIPTION
new makes ./<name> from one of 4 templates. The answers come from --answers, or from questions in the terminal when it is left out. Then, in order:
- It checks the answers. The name is lowercase letters, digits and hyphens, starts with a letter, and equals the name in the answers.
- It writes the repository into a temporary folder: the template, the bench for the agent target, and the seed documents.
- It records a hash of every file mktrue owns in .mktrue.json.
- It installs with the pinned package manager and runs the template’s gates.
- Only if every gate passes: a new git repository, the first commit, and the folder moved into place. Otherwise the folder stays where it is, and the path is printed.
new writes only into a folder that does not exist yet. mktrue itself sends nothing; the install fetches the public packages the lockfile names.
The templates, and the questions each one asks:
| application | A whole product: an API and a web app that reaches it only from the server. 9 questions: purpose, owner, audience, stakes, data, sign-in, languages, web port, api port. |
| api-service | An API with no interface of its own, signed in and refusing by default. 8 questions: purpose, owner, audience, stakes, data, sign-in, languages, api port. |
| landing | A public page in two languages, with a request-access flow behind it. 8 questions: purpose, owner, audience, stakes, data, sign-in, languages, title. |
| infrastructure | A database and the private network your products reach it on. 8 questions: purpose, owner, audience, stakes, data, sign-in, languages, consumers. |
OPTIONS
--answers <file>- The answers to render from, as JSON. Without it, new asks its questions in a terminal.
--offline- Render the repository without installing, running the gates or committing. The verdict says not verified.
--target <name>- The agent target to render the bench for. The default is claude-code.
--bench <dir>- The kit to render from. The default for new is the kit embedded in this version.
--help- Print the usage of every command.
EXIT STATUS
| 0 | true: the repository was written, every gate passed, and it was committed. |
| 1 | findings: a gate failed. The folder is kept and its path printed. |
| 2 | usage: a bad argument or answer. The finding names it. |
| 3 | environment: Node, git or pnpm is missing or too old. |
| 4 | a decision is needed: the target folder already exists and is not empty. |
EXAMPLES
Make an application from an answers file.
exit 0
mktrue new application example --answers answers.jsonmktrue: templates · embeddedmktrue: new · application 0.1.0 · 196 files · .example.mktrue-new-DSmO2Omktrue: gate · pnpm install --frozen-lockfile · ✓ 8.9smktrue: gate · pnpm typecheck · ✓ 4.9smktrue: gate · pnpm test · ✓ 48.0smktrue: check · 5 of 5 ✓mktrue: budgets · rules 5 121 / 10 000 · state 333 / 2 500mktrue: budgets · decisions 0 · largest 0 / 12 000mktrue: bench · 34 entries · 23 slotsmktrue: tiers · 6 roles · 6 tieredmktrue: paths · 6 of 6 resolvemktrue: drift · 17 owned · 0 edited · 0 pinnedmktrue: git · chore: create example from mktrue 0.3.1 (application 0.1.0)mktrue: example is truemktrue: next · cd example, then /create-roadmap in your agent
Run it again in the same place. new refuses to write over what is there.
exit 4
mktrue new application example --answers answers.jsonmktrue: templates · embeddedmktrue: ✗ new · ./example already exists and is not an empty directory why new never writes into, or over, something that is already there fix choose another name, or move ./example aside exit 4
A name that does not match the answers.
exit 2
mktrue new application other --answers answers.jsonmktrue: templates · embeddedmktrue: ✗ new · the name other is not the answers' name example why two sources for one fact would disagree, and one would be rendered fix run it as mktrue new application example, or change name in the answersmktrue: 1 finding · exit 2
Real output from mktrue 0.3.1, captured with NO_COLOR set.