Creazione di app, per gli agenti
Come un agente crea un'app Laze che le persone vogliono usare: regole di design, kit, elementi fissati e condivisione, push su trunk e verifica del proprio lavoro.
Questa pagina è scritta per un agente AI a cui viene chiesto di creare o modificare un'app Laze. Leggila prima del tuo primo laze app create. Le persone giudicano un'app nei primi cinque secondi: falla sembrare completa, mettila dove è stata richiesta e controllala tu prima di dire che è pronta.
Il flusso di lavoro
-
Creala nella conversazione che l'ha richiesta:
laze app create "Insights" --channel <channel>L'app parte vuota, con una cartella tutta tua: creala da zero, iniziando da
index.html, poilaze app push.--channelfissa l'app come scheda di quella conversazione. Tutte le persone presenti, e i loro agenti, possono aprirla e continuare a svilupparla (Editor). Dai all'app un nome fatto di parole che le persone leggono, non uno slug.Collega il kit della piattaforma e il client dalla tua pagina:
<link rel="stylesheet" href="/_laze/theme.css" /> <link rel="stylesheet" href="/_laze/kit.css" /> <script src="/_laze/laze.js"></script>Le slide, una presentazione o un talk sono l'unica eccezione: partono da
--template slides, l'unico modello. I suoi file sono la prima versione live dell'app, da modificare come vuoi. Ogni slide è un file inslides/, elencato in ordine inslides/deck.json; ilREADME.mddel modello spiega come aggiungere, riordinare e stilizzare le slide. La presentazione ha una barra delle slide, navigazione da tastiera, Present a schermo intero e pulsanti Export PDF ed Export HTML, quindi non crearli di nuovo. Su MCP,create_appcontemplate: "slides"fa la stessa cosa, ewrite_app_filesmodifica una slide alla volta.Il modello per slide serve solo per una nuova presentazione. Quando una persona invia file che sono già una pagina o una presentazione (un export HTML, uno zip con
index.html, un sito statico), pubblicali così come sono: crea l'app senza--template, estrai i file nella sua cartella conindex.htmlin alto, copia dentro ogni script che carica da una CDN e fai il push. «Spostali qui» o «metti questo qui» con un allegato significa esattamente quello: fallo, non chiedere cosa significa. -
Un'app già esistente va in una conversazione con una scheda fissata, non in un messaggio con un link:
laze app pin <app> --channel <channel>--role editorpermette ai membri di modificare i dati ma non il codice,--view-onlypermette solo di guardare.laze app pins <channel>elenca le schede. Non fissare mai di nuovo un'app che una persona ha rimosso. -
Dai forma ai dati in
laze.app.json: una raccolta per ogni tipo di cosa, con campi tipizzati e alcuni record iniziali. I dati stanno nei record, mai nel codice della pagina. Una pagina che contiene numeri, righe o testo fissi nel codice è sbagliata: quando i dati cambiano, l'app deve cambiare senza un push. -
Modifica la pagina, poi guardala in locale prima che vada live (vedi Controlla il tuo lavoro).
-
Fai il push:
laze app push -m "Added the pipeline board" --seedOgni push diventa subito l'app live. Non ci sono bozze, branch o pull request: le app sono basate su trunk. Scrivi il messaggio come una frase semplice su cosa è cambiato per le persone.
--seedriempie solo le raccolte che non hanno ancora record. -
Torna indietro quando un push era sbagliato:
laze app versions, poilaze app revert <version> -m "<why>". Questa è una nuova versione live; nessun record viene perso. La cronologia git dentro un'app serve solo a questo.
Chi può aprirla
| Visibilità | Chi la apre |
|---|---|
| Riservata | Persone, agenti e conversazioni con cui è condivisa o in cui è fissata, più Proprietari e Admin dell'area di lavoro |
| Canale | Membri del canale dell'app |
| Interna | Tutti nell'area di lavoro |
| Pubblica | Chiunque abbia l'indirizzo |
Una nuova app è Riservata. Un'app fissata in una conversazione si apre per tutti lì, quindi di solito una scheda fissata è tutta la condivisione che serve a un'app del team. Non condividere un'app solo con la persona che l'ha richiesta quando l'ha chiesta in un canale: fissala lì. Allarga l'accesso con laze app access visibility internal|public solo quando viene richiesto; il comando dice quando un admin deve approvare. laze app members mostra chi può aprirla ora. Controllalo prima di dire alle persone che l'app è pronta.
Regole di design
Parti da ciò di cui parla l'app, non da un layout. Chiediti come una persona interessata all'argomento lo disegnerebbe su una lavagna, e crea quello: un modello di minaccia è una mappa di attacco, una roadmap è una timeline, un budget è un flusso di denaro, un processo è un diagramma. Una pagina di riquadri statistici e liste puntate sembra un report, ed è l'app da evitare.
Sii molto visivo: usa motion graphics e flussi dove puoi, e guida le persone un passo alla volta finché non hanno capito tutto. Non scrivere mai muri di testo: dove servono parole, usa frasi semplici e brevi. Un'app serve a far capire alle persone, non a riversare tutto quello che hai in testa.
Il kit Laze arriva dalla piattaforma (/_laze/theme.css, /_laze/kit.css, /_laze/laze.js). È una cassetta degli attrezzi, non un layout da riempire: prendi i suoi token e i controlli che ti servono, e metti sopra il tuo CSS nel tuo file. Non copiare mai il kit nell'app.
- Prima la parte visiva. Fai dell'immagine del soggetto l'app stessa: SVG inline, canvas, una mappa, una timeline, un diagramma, qualcosa su cui le persone possono fare clic ed esplorare. Dalle un aspetto suo, con il tuo layout e il tuo movimento sui token del kit.
- Un compito per schermata. La prima schermata risponde alla domanda per cui l'app esiste. Metti un secondo compito in una scheda (
lz-tabs), non sotto il primo. - La forma giusta. Usa una tabella (
lz-table) o una bacheca (lz-board) quando le persone scorrono o spostano righe, un riquadro statistico (lz-stats,lz-stat-value) quando il punto è un solo numero, un grafico (lz-chart) per numeri nel tempo e passaggi numerati (lz-steps) per una breve sequenza. Il testo più lungo di tre righe appartiene a un documento, non a un'app. - Dati reali. Mostra i record che contano per le persone, con i loro nomi e date reali. Niente «Lorem», «Item 1» o grafici segnaposto. Ogni affermazione nella pagina viene da un record o da un link.
- Scala tipografica. Un titolo di pagina (
lz-title), una riga sotto (lz-lede), titoli di sezione (lz-h2olz-card-title), testo del corpo. Non aggiungere altre dimensioni. - Spaziatura. Usa le classi di pagina (
lz-page), scheda (lz-card lz-card-body) e griglia (lz-grid,lz-row); mantengono il ritmo da 12 a 20 px. Non impilare schede dentro altre schede. - Entrambi i temi. I colori vengono solo dai token (
var(--color-fg),var(--color-bg-surface),var(--color-primary),var(--color-border)e i tonilz-badge-*). Un colore esadecimale rompe la modalità scura. - Larghezza ridotta. Le app si aprono in un pannello laterale largo circa 380 px. Dai alle celle delle tabelle
data-labelcosì le righe si impilano, e tieni le intestazioni su una sola riga. - Stati vuoti e di errore. Una lista vuota dice cosa apparirà e come aggiungere il primo elemento. Una chiamata non riuscita mostra
Laze.fail(error), mai una pagina vuota. - Stati come badge. Mostra gli stati con
lz-badgee un tono (-success,-warning,-danger,-info,-primary), non con testo colorato. - I moduli non devono intralciare. Metti «Nuovo elemento» dietro un pulsante; la lista è il contenuto principale.
Riferimento del kit
| Necessità | Classi |
|---|---|
| Pagina e intestazione | lz-page, lz-header, lz-title, lz-lede |
| Layout | lz-row, lz-grow, lz-grid, lz-stats |
| Schede | lz-card, lz-card-body, lz-card-title, lz-h2 |
| Tabelle | lz-table-wrap, lz-table, lz-num (numeri allineati a destra) |
| Bacheche | lz-board, lz-column, lz-column-head, lz-tile |
| Numeri | lz-stat-value, lz-chart, lz-chart-col, lz-chart-track, lz-chart-bar, lz-chart-value, lz-chart-label |
| Passaggi | ol.lz-steps con un li per passaggio |
| Controlli | lz-btn, lz-btn-primary, lz-btn-ghost, lz-input, lz-select, lz-textarea, lz-field, lz-form, lz-tabs, lz-tab |
| Stati | lz-badge (+ tono), lz-callout, lz-empty, lz-muted |
Gli script si caricano solo dall'origine dell'app: una CDN <script> viene rifiutata, quindi copia nella cartella dell'app una libreria che ti serve. Quando porti un artefatto claude.ai o un'altra pagina React, compila il suo JSX prima del push (per esempio npx esbuild app.jsx --bundle --minify --outfile=app.js) e collega il file compilato. Anche Babel nel browser funziona, ma carica megabyte a ogni apertura.
Nello script della pagina, Laze.records("<collection>") elenca, crea, aggiorna e rimuove record, Laze.subscribe ricarica quando ci sono cambiamenti, Laze.h crea elementi e Laze.mount li disegna.
Scorciatoie da tastiera
Laze passa le proprie scorciatoie dalla tua app a Laze, a meno che la tua app non le gestisca, così le persone possono premere Cmd+K (Ctrl+K su Windows e Linux) per uscire da un'app senza dover prima fare clic fuori. Le scorciatoie inoltrate sono Cmd+K, Cmd+[ e Cmd+], da Cmd+1 a Cmd+9, Cmd+Shift+A, Cmd+Shift+T, Cmd+Shift+M, Cmd+Shift+D, Cmd+. e Cmd+/, più Alt+Up e Alt+Down fuori dai campi di testo. Ogni altro tasto resta nella tua app.
Per tenere una di queste scorciatoie per la tua app, gestisci il tasto e chiama event.preventDefault(); Laze poi la lascia stare:
document.addEventListener("keydown", (event) => {
if ((event.metaKey || event.ctrlKey) && event.key === "k") {
event.preventDefault();
openSearch();
}
});Controlla il tuo lavoro
Guarda ogni modifica prima di fare il push:
laze app serve --port 4173Serve la tua cartella su http://127.0.0.1:4173/ con il kit della piattaforma e i record dell'app live, in sola lettura. Ha bisogno di una versione live, quindi esegui prima laze app push una volta. Aprila con il tuo strumento browser e fai screenshot in entrambi i temi e alla larghezza del pannello, per esempio:
npx -y playwright install chromium # once
npx -y playwright screenshot --viewport-size=1100,800 http://127.0.0.1:4173/ light.png
npx -y playwright screenshot --viewport-size=1100,800 "http://127.0.0.1:4173/?theme=dark" dark.png
npx -y playwright screenshot --viewport-size=390,800 http://127.0.0.1:4173/ narrow.pngGuarda ogni immagine. Correggi il testo che sborda, le colonne che non entrano, i colori che spariscono in modalità scura e qualsiasi cosa dica ancora «demo».
Prima di presentare l'app:
- È fissata dove è stata richiesta, e
laze app memberselenca le persone che devono poterla aprire. - La prima schermata risponde alla richiesta senza scorrere.
- Gli screenshot chiaro, scuro e a 390 px sembrano completi.
- Il tuo messaggio dà il nome dell'app e una riga su cosa fa. La scheda nella conversazione è il link.
Chiedi quando non sei sicuro
Fai alla persona una sola domanda breve invece di creare la cosa sbagliata. Non aspettare un «via» sui passaggi che ha già richiesto: se ha chiesto un'app in questo canale, creala lì, fissala e diglielo.