taubyte-scope-routing
Scope Routing
Website when logically appropriate (default bias)
When planning a new project or greenfield work, include a website resource (explicit repo strategy per taubyte-resource-creation) if a browser UI is a natural part of the product. Examples: todo/board/chat/calendar apps, CRUD or admin dashboards, landing + authenticated app, games or interactive demos, docs or portal meant to be opened in a browser, or any brief that says “app”, “UI”, “frontend”, “SPA”, or “site” without restricting scope to the API.
Skip the website only when the project is clearly non-browser or the user opts out: headless API / microservice only, webhooks, PubSub / workers only, CLI or library deliverable, pure integration backend, or the user explicitly asks for API only, no UI, or backend only.
If both API and website apply, prefer the full-stack row in the scope matrix (often Frontend app + tau new website plus Backend app for database / libraries / functions). Log website_decision: include | skip, with a one-line reason, in taubyte-context-log.
Scope matrix
- Project / global (default for many tasks):
project,domain,website,library— and standalone function or website work when the user does not ask for multiple applications or named app boundaries. - Application-scoped (requires selected application when doing this work):
application,service,database,storage,messaging,smartops. function: treat as project-level for simple, single-function (or function-only) tasks without a named application or multi-context brief; treat as application-scoped only when the user ties work to an application, or the task is multi-app / multi-context, or the CLI clearly requires an application for the next commands.- Full-stack (website + HTTPS API + database/library): plan multiple applications (common pattern: Frontend for the site, Backend for
libraries,databases, andfunctionsthat reference the library). Website YAML lives under the Frontend app;database/ library-backedfunctionYAML under Backend. Samedomainsreference on site + functions when same-origin/api/*is desired. Seetaubyte-reference-index→ Full-stack worked example.
Rules
- If the user asked to create a new Taubyte project,
taubyte-project-and-applicationmust finish (tau new project+tau select project+tau --json currentshows the newProject) beforetaubyte-resource-creation,tau import, or anytau newresource — otherwise work attaches to the previously selected GitHub project. - If the request is global-only (website, library, domain, or simple function/site without multi-app), do not force application creation or
tau select application. - If the request includes application-scoped resources (service, database, storage, messaging, smartops, or function explicitly under an app), require application scope when those operations run — create/select an application only per
taubyte-project-and-applicationtriggers, not by default. - If the request is mixed, do global resources first (no application unless needed), then application resources with
tau select applicationonly for that phase. - If ambiguous, ask one short question (e.g. single app vs multiple apps vs project-level only).
- Write the scope decision and reason (including “no application”) to
taubyte-context-log. - Apply Website when logically appropriate: do not ship API-only for user-facing “app” briefs when a site is the natural delivery surface; skip the website only for headless / explicit API-only scope (see section above).
More from taubyte/skills
verifying-taubyte-functions
Verifies a Taubyte Go function locally via the `taubyte/go-wasi` Docker recipe (preferred over `tau build`, with tmpfs+bind-mount-ro to avoid root-owned artifacts in the source tree), and verifies a function actually serves on Dream by curling the gateway with the right `Host:` header (plus `/etc/hosts` mapping for `*.localtau`). Use when locally compiling a Go function to WASM, when smoke-testing a function before pushing, or when probing a Dream-hosted HTTP function from the laptop.
12creating-taubyte-resources
Creates Taubyte resources non-interactively via `tau new` for domain, website, library, function, application, database, storage, messaging, and service. Encodes the project-vs-application scope rule, the database `min < max` constraint, the website/library `--generate-repository` + import sequence, and the forbidden `--generated-fqdn-prefix` flag. Use when adding any resource to a Taubyte project's config repo.
12diagnosing-dream-builds
Diagnoses Dream local-cloud builds when `tau list/query builds` is empty or unreliable, by hitting the jobs HTTP endpoint directly (`GET /jobs/<project_id>`, `GET /job/<job_id>`) using the GitHub token from `~/tau.yaml`, then downloading logs with `tau query logs --jid`. Use when Dream builds appear silent, the build table is empty after `dream inject`, or you need raw job ids and logs for a failing build.
11taubyte-resource-creation
Scope-aware resource creation workflow. Uses non-interactive mode by default and references the shared flags catalog.
11taubyte-push-build-verify
Pushes config/code and verifies builds/logs. Includes website/library push handling with tau command first, git fallback.
11understanding-taubyte-architecture
Explains the Taubyte mental model — `tau` CLI vs `dream` local cloud, remote-vs-local cloud types, GitHub as the single source of truth, and the config/code/website/library repo layout that drives builds. Use when the user asks how Taubyte fits together, why pushes don't show up, what repos are needed, or whether to use Dream or a remote cloud.
11