Layers & model boundaries (v0.4.6): asset layers, Atlas layer columns, move_asset - #52
Merged
Merged
Conversation
…, move_asset Implements docs/specs/layers-and-boundaries-spec.md — the product-vs- asset boundary rule made operational: - assets.layer (migration 0016, both dialects): free text with a conventional taxonomy (edge/frontend/backend/domain/data/infra/ shared). Unset layers display a default derived from asset type (app→frontend, service→backend, datastore→data, platform→infra, library→shared) — computed at display time, never written, so existing instances get a layered map with zero migration - Atlas: 'Columns: Product | Layer' toggle; auto-defaults to Layer columns when a single product is in scope (the product axis degenerates to one column — the MindStaq case); layer columns order by the taxonomy so edges mostly flow one direction; node sublabels show the product in layer mode with multi-product scope. Grid gains a layer chip; Table a sortable Layer column - moveAsset(assetId, targetProductId): blocked while draft/active plans target the asset (returns blockingPlans for retargeting); work items follow the asset; history — release stamps, completed- plan links, capabilities, design log — is preserved untouched; no-op when already home - MCP: layer on create_asset/update_asset, new move_asset tool (42 total), get_modeling_guide gains the boundaries section (rule, worked examples, refining recipe) and layer taxonomy; boundary heuristics added to create_product/create_asset descriptions - UI: layer input (with taxonomy datalist) in the asset edit panel, layer chip on the asset detail header - Demo seed assigns 4 explicit layers (API Gateway/Mobile BFF→edge, Plan Engine→domain, UI Component Library→frontend); the rest demo type defaults - 5 new tests (206 total); docs synced (app-spec, ai-agents guide, atlas guide, mcp spec, site); spec marked shipped; version 0.4.6 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y7FhGxYjnJHJ7m9MpH2dgJ
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.
Implements
docs/specs/layers-and-boundaries-spec.md(#51) — the products ship, assets change rule made operational.assets.layer(migration 0016, both dialects)Free text with a conventional taxonomy (
edge · frontend · backend · domain · data · infra · shared). Unset layers get a display-time default from asset type (app→frontend, service→backend, datastore→data, platform→infra, library→shared) — computed on read, never written to rows, so existing instances get a sensible layered map with zero migration. Surfaced in the asset edit panel (taxonomy datalist), as a chip on the asset detail header, on Grid cards, and as a sortable Table column.Atlas layer columns
A "Columns: Product | Layer" toggle joins the map toolbar, and the map auto-defaults to Layer columns when a single product is in scope — the exact case (e.g. a production single-SaaS instance with ~40 assets) where the product axis degenerates to one column. Layer columns order by the taxonomy so dependency edges mostly flow one direction; in layer mode with multi-product scope, node sublabels show the product. Lenses, hover blast-radius, and filters unchanged. Verified in the browser against the demo dataset.
move_asset— model refactoring with semanticsblockingPlansso an agent can retarget or complete them and retry.MCP (41 → 42 tools)
layerparam oncreate_asset/update_asset; newmove_assettool.get_modeling_guidegains a boundaries section (the rule, worked examples, a refining recipe) and the layers taxonomy with defaults.create_product/create_assetdescriptions — for agent-driven modeling, the tool description is the UX.Seed, tests, docs
package.json→ 0.4.6.🤖 Generated with Claude Code
https://claude.ai/code/session_01Y7FhGxYjnJHJ7m9MpH2dgJ
Generated by Claude Code