一键导入
modules-and-routing
Place first-party modules correctly, make them routable, and use router seams instead of hardwiring features into shells.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Place first-party modules correctly, make them routable, and use router seams instead of hardwiring features into shells.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Read the supplemental project documentation module
Frontend development router. Load deeper skills before editing
Use the frontend API surface correctly for app files, discovery, identity, and permission-aware browser data access.
Inspect, navigate, and interact with open browser surfaces through space.browser
Open or close stand-alone browser windows
Editable frontend runtime rules for framework pages, stores, shared runtime namespaces, and reusable visual patterns.
| name | Modules And Routing |
| description | Place first-party modules correctly, make them routable, and use router seams instead of hardwiring features into shells. |
Use this skill when creating or updating routed modules, deciding where files belong, or wiring a feature into the authenticated app shell.
If the user wants a reusable app surface, tool UI, settings panel, or workflow screen, prefer a custom routed page module over a space. Spaces are for persisted user-authored widget canvases; custom pages are for feature-owned interfaces.
mod/<author>/<repo>/....app/L0/_all/mod/_core/<feature>/.view.html under that module root.ext/html/... files only as thin adapters into existing seams.~/spaces/....Panels section, add ext/panels/<name>.yaml in the owning module.name, path, optional description, optional icon, and optional color._core routes, the manifest path may use shorthand such as user instead of a full /mod/... path.path values may use shorthand route paths such as user, prefixed hash paths such as #/user, or direct /mod/... HTML paths such as /mod/_core/user/view.html.#/dashboard resolves to /mod/_core/dashboard/view.html.#/time_travel resolves to /mod/_core/time_travel/view.html.#/author/repo/path resolves to /mod/author/repo/path/view.html..html, the router resolves directly to that file under /mod/....Current routed shell anchors are:
_core/router/shell_start_core/router/shell_endpage/router/route/startpage/router/route/endpage/router/overlay/startpage/router/overlay/endUse those anchors before editing router shell markup directly. Floating UI such as the onscreen agent belongs in the routed overlay anchors.
For a new first-party routed feature, the normal home is:
app/L0/_all/mod/_core/<feature>/
view.html
<feature>.css
store.js
panel.html or supporting components
ext/panels/<feature>.yaml when the page should be discoverable from the dashboard
ext/html/... only when the feature mounts into an existing seam
Minimal first-party custom page example:
app/L0/_all/mod/_core/my_tool/
view.html
my-tool.css
store.js
ext/panels/my-tool.yaml
Example panel manifest:
name: My Tool
path: my_tool
description: A custom routed tool page.
icon: build
color: "#94bcff"
Reusable helper script:
const panelTools = await import("/mod/_core/skillset/ext/skills/development/modules-routing/panel-tools.js");
Available helpers:
await panelTools.listPanels() returns the normalized dashboard panel entries discovered from ext/panels/*.yaml, each with routePath and ready-to-use hrefawait panelTools.findPanel("user") resolves a panel by visible name, route path, hash route, direct /mod/... HTML path, or a panel object returned by listPanels()await panelTools.resolvePanelRoutePath("/mod/_core/user/view.html") normalizes a panel target into its router route pathawait panelTools.createPanelHref("#/user") returns the routed hrefawait panelTools.goToPanel("User") navigates through space.router with a hash fallbackawait panelTools.openPanel(panelEntry) is an alias for goToPanel(...)Use those helpers when you need to inspect the registered panels before wiring new links or when the user asks to navigate to one of them.
Example:
const panelTools = await import("/mod/_core/skillset/ext/skills/development/modules-routing/panel-tools.js");
const panels = await panelTools.listPanels();
const userPanel = await panelTools.findPanel("/mod/_core/user/view.html");
await panelTools.goToPanel(userPanel ?? "user");
/ is the authenticated app shell and mounts _core/router./admin is separate and firmware-clamped to L0; do not treat it as the default home for user-facing routed features.development skill subtree in the same session.