feat(ai): blueprint app-building — draft the navigation app, not just the data model#1542
Merged
Merged
Conversation
… the data model
The plan-first blueprint now also designs the `app` (navigation shell), so
"build me a project-management application" yields an openable app.
- SolutionBlueprintSchema gains optional `app: { name, label?, icon?, nav? }`;
nav entries target a created object/dashboard. Omit `nav` to auto-surface
every object then dashboard.
- apply_blueprint expands it into an AppSchema body (single-level navigation)
and drafts it last via the same stageDraft path; never sets isDefault.
- propose_blueprint asks the agent to include the app; reports counts.app.
Still draft-gated — nothing live until the human publishes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Extends the plan-first blueprint (ADR-0033 §4, #1537) so it also designs the app — the navigation shell end users open in the App Launcher. Until now "build me a project-management application" drafted the objects, views, and dashboards, but the user had to hand-assemble an app to surface them. Now a single confirmation produces an openable app (still draft-gated — nothing live until Publish).
What changed
SolutionBlueprintSchema(@objectstack/spec/ai) gains an optionalapp: { name, label?, icon?, nav? }. Eachnaventry ({ type: 'object'|'dashboard', target, label?, icon? }) targets a created object or dashboard;navmay be omitted to auto-surface every object (then dashboard).apply_blueprintexpands the app into anAppSchemabody — a single-levelnavigationof object/dashboard nav items ({ id:'nav_<target>', type, label, objectName|dashboardName, order }) — and drafts it last (it references the rest), through the same draft-gated, per-type-validated, partial-tolerantstageDraftpath. It never setsisDefault(won't hijack the default app).propose_blueprintinstructs the agent to include the app and reportscounts.app.solution_designskill copy updated.Verification
solution-blueprintcases (app with explicit nav, omitted nav, optional, bad nav type / non-snake name rejected) — spec ai 134 green.apply_blueprintcases (drafts anappviamode:'draft'with nav referencing the objects; auto-build path derives one nav item per object then dashboard;isDefaultnever set;registernever called) — full suite 460 green.Scope
Basic app-building: one app, flat nav of object + dashboard items. Areas / groups / mobile-nav / branding stay author-it-later via
update_metadata.appis already a runtime-creatable metadata type, so it drafts/publishes like any other.🤖 Generated with Claude Code