mktrue
mktrue 0.3.1

Make it true.

Tú pones la idea. Los agentes la construyen como se debe.

mktrue convierte tus respuestas en un repositorio que un agente de código puede construir sin desviarse: el primer código, sus tests y las reglas con las que trabajan 6 agentes. Solo hace commit cuando pasa cada gate.

Qué pasa cuando lo ejecutas

  1. Primero comprueba tus respuestas. Una respuesta mala lo detiene antes de escribir nada.
  2. Escribe el repositorio en una carpeta temporal, lo instala y ejecuta cada gate.
  3. Solo cuando pasan todos los gates hace commit y mueve la carpeta a su sitio. Si uno falla, dice cuál y dónde está la carpeta.
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

Salida real de mktrue 0.3.1, capturada con NO_COLOR.

Qué llega, en un solo commit

el producto

El código de la plantilla y sus tests, el lockfile y un workflow de CI que ejecuta los gates. Es tuyo desde el primer commit.

.claude/ · el banquillo

6 agentes y 9 comandos: arquitecto, implementador, revisor, auditor de seguridad, ingeniero de interfaz y redactor de documentación, cada uno con su trabajo.

CLAUDE.md · las reglas

Las reglas que lee cada agente, con límites que vigila un gate: 10 000 caracteres para las reglas, 2 500 para el archivo de estado, 12 000 para una decisión.

reglas · 5 121 / 10 000
estado · 333 / 2 500
decisión más larga · 0 / 12 000

Lo usado en la ejecución de arriba.

docs/ · los documentos semilla

El estado, la hoja de ruta, el índice de decisiones, la carpeta de diseño y la primera entrada del registro, para que exista cada ruta que nombran las reglas.

.mktrue.json

Tus respuestas, las versiones de la plantilla y del kit, y un hash de cada uno de los 17 archivos que gestiona mktrue, para saber cuándo se editó uno.

Responde las preguntas

Elige una plantilla y responde sus preguntas. Al lado, el repositorio toma forma mientras escribes. Nada sale de esta página.

Plantilla
name

Minúsculas, dígitos y guiones. Será la carpeta y el nombre en cada archivo.

9 preguntas para application

Si una pregunta tiene valor por defecto, ya está puesto. Cambia lo que quieras.

purpose

sin valor por defecto · tus palabras

Encabeza las reglas y el encargo del arquitecto, así todos los agentes parten de la misma frase.

owner

sin valor por defecto · tus palabras

El redactor de documentación escribe para esta persona, dentro de unos meses.

audience

sin valor por defecto · tus palabras

El ingeniero de interfaz juzga cada pantalla por ese momento.

stakes

sin valor por defecto · tus palabras

El auditor de seguridad mide cada cambio contra esto.

data

en blanco significa ninguno

Cada tipo se nombra en las reglas y se mantiene fuera de logs, errores y URLs.

sign-in

por defecto · clerk

Queda escrito en las reglas, para que ningún agente invente otra forma de entrar.

languages

por defecto · en

Cada texto que lee una persona debe existir en cada uno. Añadir es añade sus propios archivos.

web port

por defecto · 4100

Elige uno que nada más use en tu máquina.

api port

por defecto · 4101

Elige uno que nada más use en tu máquina.

Vista previa

<name>/ · application · 196 archivos

el arnés
  • CLAUDE.md
  • .mktrue.json
  • .claude/agents/ 6 agentes
  • .claude/commands/ 9 comandos
  • docs/STATE.md
  • docs/ROADMAP.md
  • .github/workflows/mktrue.yml

Cambia una respuesta para ver en qué archivos se escribe.

gates que new ejecuta antes del commit
  • pnpm install --frozen-lockfile
  • pnpm typecheck
  • pnpm test
el repositorio
  • .claude/ 16
    • agents/ 7
      • README.md
      • architect.md
      • docs-writer.md
      • implementer.md
      • reviewer.md
      • security-auditor.md
      • ui-engineer.md
    • commands/ 9
      • close-slice.md
      • create-roadmap.md
      • new-module.md
      • plant.md
      • review-security.md
      • start-milestone.md
      • start-slice.md
      • update-roadmap.md
      • worktree.md
  • .github/ 2
    • workflows/ 2
      • ci.yml
      • mktrue.yml
  • apps/ 55
    • web/ 55
      • app/ 12
        • actions/ 1
          • profile.ts
        • components/ 4
          • api-failure-card.tsx
          • auth-not-configured.tsx
          • language-choice.tsx
          • sign-out-link.tsx
        • no-access/ 1
          • page.tsx
        • sign-in/ 1
          • [[...sign-in]]/ 1
            • page.tsx
        • error.tsx
        • globals.css
        • layout.tsx
        • not-found.tsx
        • page.tsx
      • dev-session/ 5
        • aliases.ts
        • bind.ts
        • clerk-nextjs-server.ts
        • clerk-nextjs.ts
        • serve.ts
      • i18n/ 4
        • accept-language.ts
        • catalogues.ts
        • locales.ts
        • request.ts
      • lib/ 9
        • api-failure.ts
        • api.ts
        • auth-enabled.ts
        • config.ts
        • example-item-status.ts
        • example-items.ts
        • fetch-failure.ts
        • owner-token.ts
        • profile.ts
      • messages/ 1
        • en.json
      • test/ 15
        • app/ 1
          • actions/ 1
            • profile.test.ts
        • dev-session/ 4
          • aliases.test.ts
          • bind.test.ts
          • serve.test.ts
          • stand-ins.test.ts
        • i18n/ 1
          • accept-language.test.ts
        • lib/ 6
          • api-failure.test.ts
          • api.test.ts
          • config.test.ts
          • example-item-status.test.ts
          • owner-token.test.ts
          • where-the-caller-comes-from.test.ts
        • test-support/ 1
          • server-only.ts
        • messages.test.ts
        • proxy.test.ts
      • .gitignore
      • global.d.ts
      • next-env.d.ts
      • next.config.ts
      • package.json
      • postcss.config.mjs
      • proxy.ts
      • tsconfig.json
      • vitest.config.ts
  • docs/ 8
    • decisions/ 1
      • index.md
    • design/ 1
      • README.md
    • log/ 1
      • {date}-created.md
    • ROADMAP.md
    • STATE.md
    • architecture.md
    • security.md
    • web.md
  • packages/ 14
    • contracts/ 14
      • src/ 9
        • api-error.ts
        • civil-date.ts
        • example-item.ts
        • example-stats.ts
        • health.ts
        • index.ts
        • me.ts
        • object-id.ts
        • profile.ts
      • test/ 3
        • api-error.test.ts
        • example-item.test.ts
        • profile.test.ts
      • package.json
      • tsconfig.json
  • services/ 91
    • api/ 91
      • src/ 62
        • app/ 4
          • config.ts
          • main.ts
          • serialize-by-user.ts
          • server.ts
        • contexts/ 32
          • auth/ 5
            • application/ 2
              • errors.ts
              • ports.ts
            • infrastructure/ 3
              • clerk-token-verifier.ts
              • dev-session-token-verifier.ts
              • null-token-verifier.ts
          • example/ 14
            • application/ 8
              • add-example-note.ts
              • count-example-items-by-status.ts
              • create-example-item.ts
              • errors.ts
              • list-example-items.ts
              • list-example-notes.ts
              • ports.ts
              • update-example-item.ts
            • domain/ 2
              • example-item.ts
              • example-note.ts
            • infrastructure/ 4
              • example-item-model.ts
              • example-note-model.ts
              • mongoose-example-item-repository.ts
              • mongoose-example-note-repository.ts
          • profile/ 8
            • application/ 5
              • errors.ts
              • get-profile.ts
              • ports.ts
              • resolve-time-zone.ts
              • update-profile.ts
            • domain/ 1
              • user-profile.ts
            • infrastructure/ 2
              • mongoose-user-profile-repository.ts
              • user-profile-model.ts
          • shared/ 5
            • application/ 1
              • ports.ts
            • domain/ 1
              • civil-date.ts
            • infrastructure/ 3
              • mongo.ts
              • object-id.ts
              • user-scoped-schema.ts
        • controllers/ 20
          • example-items/ 6
            • create.ts
            • index.ts
            • list.ts
            • notes.ts
            • to-dto.ts
            • update.ts
          • profile/ 4
            • index.ts
            • read.ts
            • to-profile-dto.ts
            • update.ts
          • stats/ 2
            • example-items.ts
            • index.ts
          • caller-clock.ts
          • caller-id.ts
          • deps.ts
          • health.ts
          • map-example-error.ts
          • map-profile-error.ts
          • me.ts
          • reject-invalid-request.ts
        • middlewares/ 6
          • api-errors.ts
          • extract-bearer-token.ts
          • map-auth-error.ts
          • path-without-query.ts
          • require-loopback-host.ts
          • require-user.ts
      • test/ 24
        • app/ 8
          • client-supplied-owner.test.ts
          • config.test.ts
          • cross-tenant.test.ts
          • owner-first-ports.test.ts
          • profile-is-not-admission.test.ts
          • query-guard-bypass.test.ts
          • serialize-by-user.test.ts
          • server.test.ts
        • contexts/ 7
          • auth/ 1
            • infrastructure/ 1
              • null-token-verifier.test.ts
          • example/ 2
            • application/ 1
              • add-example-note.test.ts
            • domain/ 1
              • example-item.test.ts
          • profile/ 3
            • application/ 2
              • resolve-time-zone.test.ts
              • update-profile.test.ts
            • domain/ 1
              • enum-drift.test.ts
          • shared/ 1
            • infrastructure/ 1
              • user-scoped-schema.test.ts
        • controllers/ 2
          • example-items/ 1
            • notes.test.ts
          • map-example-error.test.ts
        • middlewares/ 1
          • require-user.test.ts
        • test-support/ 6
          • fake-token-verifier.ts
          • in-memory-example.ts
          • owner-first-ports.ts
          • owner-server.ts
          • registered-routes.ts
          • source-sweep.ts
      • package.json
      • tsconfig.json
      • tsup.config.ts
      • vitest.config.ts
      • vitest.setup.ts
  • .env.example
  • .gitignore
  • .mktrue.json
  • CLAUDE.md
  • README.md
  • package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • tsconfig.base.json
  • turbo.json

Coincide con lo que escribió mktrue 0.3.1 para esta plantilla, sin node_modules ni .git.

Llévatelo

Cada forma acaba en el mismo veredicto.

Falta responder: name, purpose, owner, audience, stakes. Sin esto, new se detiene con exit 2.

el comando
npx -y [email protected] new application <name> --answers answers.json

answers.json

Guárdalo como answers.json en la carpeta donde ejecutes el comando.

{
  "name": "",
  "purpose": "",
  "owner": "",
  "audienceTest": "",
  "stakes": "",
  "dataClasses": [],
  "auth": "clerk",
  "ports": {
    "web": 4100,
    "api": 4101
  },
  "languages": [
    "en"
  ],
  "siblings": [],
  "skills": []
}

una frase para Claude Code

/mktrue …. Usa la plantilla application y llámalo …. Propón estas respuestas para que las confirme: owner — …; audience — …; stakes — …; data — ninguno; sign-in — clerk; languages — en; web port — 4100; api port — 4101.

Mantenlo true

mktrue check

Lee el repositorio e informa de cualquier desviación: límites, archivos de mktrue editados, reglas que faltan.

exit 0
mktrue checkmktrue: 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: true · exit 0

mktrue sync

Pone el método al día cuando el kit mejora. Es un simulacro salvo que añadas --write.

exit 0
mktrue syncmktrue: sync · kit 0.3.1 → 0.3.1 · dry runmktrue: 0 updates · 0 kept · 0 conflicts · 0 skipped · 0 removedmktrue: true · exit 0

mktrue audit

Mide las sesiones locales de Claude Code de este repositorio en un informe HTML. No envía nada. Sin sesiones todavía, lo dice y sale con 3.

exit 3
mktrue auditmktrue: ✗ environment · no Claude Code transcripts for this repository  why   audit reads only the project dirs Claude Code wrote for this repository  fix   run Claude Code in this repository first, or set CLAUDE_CONFIG_DIR  exit  3

mktrue doctor

Comprueba que esta máquina tiene lo que necesitan new y el skill de Claude Code. No cambia nada salvo que añadas --write, y entonces solo el enlace del skill.

Más adelante

No está en 0.3.1.

  • Enlaces cortos que guardan tus respuestas del configurador.
  • Un panel de equipo: una fila por repositorio.
  • Paquetes de plantillas.