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:

  1. It checks the answers. The name is lowercase letters, digits and hyphens, starts with a letter, and equals the name in the answers.
  2. It writes the repository into a temporary folder: the template, the bench for the agent target, and the seed documents.
  3. It records a hash of every file mktrue owns in .mktrue.json.
  4. It installs with the pinned package manager and runs the template’s gates.
  5. 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:

applicationA 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-serviceAn 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.
landingA public page in two languages, with a request-access flow behind it. 8 questions: purpose, owner, audience, stakes, data, sign-in, languages, title.
infrastructureA 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

0true: the repository was written, every gate passed, and it was committed.
1findings: a gate failed. The folder is kept and its path printed.
2usage: a bad argument or answer. The finding names it.
3environment: Node, git or pnpm is missing or too old.
4a 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.

SEE ALSO