Skip to content

[P2] Make one convention-first onboarding path authoritative; stop leading with custom server wiring and ambiguous package/install roots #750

Description

@ScriptedAlchemy

Author-experience gap

Audited main 14c9822bc6c01d8ff2788454d0e1dc7861bc3816. The framework can now generate routes, servers, App contracts, launch records and package-bound installers, but a new author still encounters several incompatible-looking explanations of how to create the first plugin.

This is a documentation/template integration task, not a request for another API layer or another compiler.

Evidence

  • Root README Quick start immediately shows explicit skills/hooks and mcp.servers.tools.entry: './src/mcp.ts', then expands into host schemas, diagnostic codes and package internals. The convention-first src/mcp/<server>/tools/<tool>.tsx journey is not the first complete worked example.
  • Scaffolder options still describes the MCP template in factory-era terms, while the actual template is already conventional.
  • MCP starter config additionally exposes a library export and explicit script binding in the first sample. These are valid optional capabilities, not minimum setup for a generated tool.
  • Starter README teaches artifact, publishing dist, and consumer-side npx agent-bundle install together. The root README explicitly warns that the unqualified npm name belongs to an unrelated project. A downstream consumer without the locally installed compiler must not be directed to resolve that name accidentally.

Desired first journey

One current scaffold invocation → a tiny identity/targets config → one conventional tool → dev with an immediately navigable route → one normal test command → build/pack → the exact generated installation instructions. Add a CLI projection or an App only when the tutorial needs that surface. Explain shared layouts/providers/state after the first useful operation works.

Keep a separate lightweight static-skills/plain-hook path; 'Next-like' does not mean every plugin needs JSX or a running server.

Required changes

  • Align root README, scaffolder prompt descriptions, generated README and bilingual getting-started pages with the actual conventional template.
  • Move manual server factories, arbitrary bin/library exports, host overrides and bundler hooks into explicitly labelled advanced sections. Keep their supported interoperability tests.
  • Name each directory by responsibility: authored source, disposable development/type state, composite host artifact, and publishable npm root. State the one exact directory a user packs/installs for the selected delivery mode.
  • For downstream installation, use the generated native instructions or supported package-bound entry. Where the compiler itself must be installed, give its verified preview/release selector explicitly; no accidental fetch of the unrelated npm package.
  • Remove historical issue numbers, schema provenance detail and diagnostic inventories from the critical first-run path; keep those in reference pages where they belong.
  • Document real lifecycle limits such as dev-host support separately from the native target list. [P2] Make scaffolding and installation guidance consume the supported host catalog; Amp is currently rejected at project creation #745 owns the actual Amp scaffolder-list defect.

Acceptance

Run the exact documented journey in a clean temporary directory from published preview packages, not workspace aliases. Add a second tool by creating only its route file; no registry or manifest edit. Verify discovery, generated types, dev navigation, default tests and a relocated/source-free installation. Repeat the static template without a renderer/runtime dependency.

The public tutorial should not require authors to understand epochs, Flight workers, host descriptor lowering, manifest record versions or proof-level internals before calling their first tool. Those implementation concepts remain available in advanced diagnostics. Coordinate #748/#749 for type readiness and default test behavior; do not duplicate their implementations here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions