You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit fe93553
Browse filesBrowse the repository at this point in the historyBrowse files
docs(getting-started): match the 1.0.9 walkthrough
Install @metaobjectsdev/metadata and qs (plus @types/qs) instead of runtime-ts, start from
npm init -y, and describe the ejected routes' owned HTTP adapter. The output is verified
against @metaobjectsdev/cli@1.0.9.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M1mRRB1K2WdYy82kntMQdx
Copy file name to clipboardExpand all lines: www/getting-started.html
+44-25Lines changed: 44 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -51,16 +51,17 @@ <h1>One typed model → idiomatic code, in your language.</h1>
51
51
for tasks,"</em><em>"add a priority field and update everything."</em> Because <code>meta init</code> installs
52
52
the MetaObjects skills, it knows the model is the source of truth: it edits the model, picks the generators the
53
53
job needs, and <strong>generates the code</strong> — it never hand-writes the boilerplate. Every command and
54
-
output below is real <spanclass="real">verified</span>, run against <code>@metaobjectsdev/cli@1.0.7</code>.</p>
54
+
output below is real <spanclass="real">verified</span>, run against <code>@metaobjectsdev/cli@1.0.9</code>.</p>
55
55
</section>
56
56
57
57
<section>
58
58
<h2class="section-label">0 · Already have an app? Assess it first — nothing to install</h2>
59
59
<pclass="gs-note">Adopting into an existing codebase? Before you install anything, have your agent run the
60
-
<strong>fit & migration assessment</strong> against your repo. It's read-only and propose-only — it reads
61
-
your code, migrations, and git history, and writes a decision-grade report: per-pillar fit verdicts (including
62
-
<em>NOT A FIT</em>), a drift ledger of the shapes you already declare twice — with the past commits where a fix
63
-
patched one copy and missed the other — and, if the verdict is yes, a first-week wedge plan.</p>
60
+
<strong>fit & migration assessment</strong> against your repo. It's read-only and propose-only. A quick pass (5–30 minutes of agent time) reads your
61
+
code, migrations and git history and answers in the conversation: how much of MetaObjects this project should
62
+
adopt — <em>not worth it</em>, a contract spine between your apps, one subsystem, or all of it — and the seams
63
+
where it would pay off. Ask for the full assessment and it also writes an evidence-cited report, outside your
64
+
repo, with a drift ledger of the shapes you already declare twice and a first-week plan.</p>
64
65
<pclass="gs-say">Fetch https://metaobjects.dev/assess.md and run the MetaObjects Fit & Migration Assessment against this repository.</p>
65
66
<pclass="gs-note">Any agent that can fetch a URL works (Claude Code, Cursor, Windsurf, Copilot's
66
67
<code>#fetch</code>, Gemini CLI). Locked-down agent? Save <ahref="/assess.md">the prompt file</a> into your
@@ -75,7 +76,8 @@ <h2 class="section-label">1 · Install & scaffold</h2>
75
76
<divclass="gs-step">
76
77
<h3>Set up the project and the agent context</h3>
77
78
<p>Add the TypeScript CLI and scaffold the workspace. <code>meta init</code> also teaches your coding agent how to use MetaObjects:</p>
78
-
<preclass="gs-code">npm i <spanclass="s">@metaobjectsdev/cli</span>
79
+
<preclass="gs-code">npm init -y
80
+
npm i <spanclass="s">@metaobjectsdev/cli</span>
79
81
npx meta init</pre>
80
82
<p>That writes a small, legible tree — <strong>your models go in <code>metaobjects/</code></strong>,
81
83
and <code>codegen/generators/</code> is waiting for the generators you choose:</p>
@@ -112,7 +114,7 @@ <h2 class="section-label">2 · Then just tell it what you want</h2>
112
114
<divclass="gs-steps">
113
115
<divclass="gs-step">
114
116
<h3>Author the model</h3>
115
-
<pclass="gs-say">Model a Task — a title (required, max 120), a status of open / active / done, and when it was created.</p>
117
+
<pclass="gs-say">Model a Task — a title (required, max 120), a status of open / active / done, and a created-at time the server sets itself.</p>
116
118
<p>→ Claude writes <code>metaobjects/meta.tasks.yaml</code> using the <code>metaobjects-authoring</code> skill. You review a few readable lines.</p>
117
119
</div>
118
120
<divclass="gs-step">
@@ -170,8 +172,11 @@ <h2 class="section-label">4 · Author a model</h2>
<spanclass="c"># … client, docs and capability generators, then the ai and iam libraries</span></pre>
205
+
<pclass="gs-note">That is the layout you see in a terminal. When stdout is not a terminal (piped, or run by an
206
+
agent), <code>meta gen --list</code> prints a structured format instead; pass <code>--format text</code> to get
207
+
the layout above, or <code>--format json</code> for JSON. <code>meta eject</code> behaves the same way.</p>
200
208
<pclass="gs-note">Take the ones you want. <code>meta eject</code> copies each into
201
209
<code>codegen/generators/</code> and tells you exactly how to wire it:</p>
202
210
<preclass="gs-code">$ npx meta eject entity queries routes names barrel
203
211
Ejected "entity" -> codegen/generators/entity.ts. You own it now (ADR-0034 scaffold-and-own).
204
212
In metaobjects.config.ts, "entityFile" must resolve to this file:
205
213
import { entityFile } from "./codegen/generators/entity.js";
206
-
<spanclass="c"># … the same for queries, routes, names and barrel</span>
214
+
<spanclass="c"># … the same for queries, routes, names and barrel; for routes also:</span>
215
+
The code this generator emits imports its HTTP adapter from codegen/runtime/, not from @metaobjectsdev/runtime-ts: the adapter, filter parser, error envelopes and pagination are yours too.
207
216
208
217
Install what the ejected generators and their output need:
0 commit comments