Modules And Routing

Place first-party modules in `_core` structure and wire them through router-owned seams.

1.4k|316|Updated Mar 27, 2026
One-click install
npx skills add https://github.com/agent0ai/space-agent --skill modules-and-routing-agent0ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Modules And Routing
Source: https://github.com/agent0ai/space-agent/tree/main/app/L0/_all/mod/_core/skillset/ext/skills/development/modules-routing
Command: npx skills add https://github.com/agent0ai/space-agent --skill modules-and-routing-agent0ai

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill prevents first-party app routing bugs and feature sprawl by guiding you to place modules in the correct locations and wire them into routable seams instead of hardwiring UI into shells.

Core Features & Use Cases

  • First-Party Module Placement: Places browser modules under mod/<author>/<repo>/... and recommends first-party _core modules under app/L0/_all/mod/_core/<feature>/, with view.html as the routed entry.
  • Custom Pages Instead of Spaces: Helps you choose between routed pages (feature-owned layouts/state/navigation) and spaces (persisted widget canvases), including how to surface pages in the dashboard via ext/panels/<name>.yaml.
  • Router Resolution & Seams: Explains hash routing resolution rules (e.g., #/dashboard/mod/_core/dashboard/view.html) and the approved router-owned anchor points for safe shell integration.
  • Reusable Panel Navigation Helpers: Uses panel-tools.js to list panels, resolve panel route paths, generate hrefs, and navigate via space.router with hash fallback.

Quick Start

When adding a new routable feature page, create app/L0/_all/mod/_core/<feature>/view.html and add an ext/panels/<feature>.yaml manifest so it can be discovered and navigated by panels tools.

Frequently Asked Questions about Modules And Routing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new routed feature page to my app without hardcoding shell markup?

To add a routed feature page, create `app/L0/_all/mod/_core/<feature>/view.html` as the entry point and register it using an `ext/panels/<feature>.yaml` manifest so the router discovers it.

What is the correct repository structure for placing first-party browser modules and core features?

First-party browser modules belong under `mod/<author>/<repo>/...`, while core features should be placed in `app/L0/_all/mod/_core/<feature>/` with `view.html` serving as the routed entry point.

How does hash routing resolution work for dashboard panels and feature-owned UI screens?

Hash routing resolution maps hash URLs like `#/dashboard` directly to module paths such as `/mod/_core/dashboard/view.html`, using router-owned seams and `panel-tools.js` for path normalization.

When should I choose a custom routed page over a persisted widget canvas space?

Choose routed pages for feature-owned layouts, state, and navigation, and use spaces for persisted widget canvases. Surface pages in the dashboard via `ext/panels/<name>.yaml` manifests.

Can I use panel-tools.js to list panels and generate navigation hrefs with hash fallback?

Yes, `panel-tools.js` provides helpers to list panels, resolve route paths, generate hrefs, and navigate via `space.router` with hash fallback for seamless UI composition.

Why does my first-party module routing break when wired directly into shell markup instead of router-owned seams?

Routing breaks because first-party modules must be wired through router-owned anchor points rather than hardcoded shell markup, ensuring safe shell integration and proper panel discoverability.