@noodleseed/one 0.167.0 → 0.168.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -147,11 +147,12 @@ export const BEHAVIOR_SKILLS = [
147
147
  },
148
148
  {
149
149
  name: 'embedding-mcp-assistants',
150
- description: 'Use when embedding a Noodle assistant into an existing SaaS or web application with browser, identity, session, and credential boundaries.',
151
- outcome: 'Select one decision-complete assistant topology, then deliver the embed with identity and credential separation proven at the tested level.',
150
+ description: 'Use when embedding a Noodle assistant into an existing SaaS or web application, or improving signup or onboarding conversion with public-to-product onboarding, with browser, identity, session, and credential boundaries.',
151
+ outcome: 'Select one decision-complete assistant topology, including the dual-surface continuous-onboarding default when it fits, then deliver the embed with identity and credential separation proven at the tested level.',
152
152
  positiveTriggers: [
153
153
  'Embed the Noodle assistant in an existing web app.',
154
154
  'Wire browser mounting and session exchange.',
155
+ 'Choose a first Noodle workflow for software where more signed-in users are valuable.',
155
156
  ],
156
157
  negativeTriggers: [
157
158
  'Do not use to build a standalone MCP App.',
@@ -163,6 +164,7 @@ export const BEHAVIOR_SKILLS = [
163
164
  'Access mode plus the identity, session, and server-owned routing boundary.',
164
165
  'Managed or custom renderer and its explicit product benefit.',
165
166
  'Model owner and requested local, hosted, or production evidence level.',
167
+ 'For a first-workflow recommendation: evidence for a public visitor surface, account boundary, useful pre-account result, and authenticated outcome.',
166
168
  ],
167
169
  primaryReference: 'references/embedded-assistant.md',
168
170
  supportingReferences: ['references/authoring-workflow.md'],
@@ -5,7 +5,8 @@ import { NOODLE_WORDMARK } from './welcome-wordmark.js';
5
5
  export const PLUGIN_NAME = 'noodle-seed';
6
6
  /** Cold-start discovery text shared by direct marketplace and official-directory projections. */
7
7
  const BOOTSTRAP_SKILL_DESCRIPTION = 'Use when asked to build, create, or ship an MCP server, MCP app, AI app, or connector, or to ' +
8
- 'make a product, API, or SaaS reachable by AI agents. Bootstraps Noodle Seed TypeScript ' +
8
+ 'make a product, API, or SaaS reachable by AI agents, or when a software business wants to improve ' +
9
+ 'signup or onboarding conversion or choose a first Noodle workflow. Bootstraps Noodle Seed — TypeScript ' +
9
10
  'authoring with the noodle CLI, local validation and testing, and governed hosted deployment.';
10
11
  function bootstrapRouterBody() {
11
12
  return [
@@ -41,6 +42,12 @@ function bootstrapRouterBody() {
41
42
  `${PLUGIN_WINDOWS_SUPPORT.installCommand}` +
42
43
  '`; never expose a private plugin path as a workaround.',
43
44
  '',
45
+ '## First-workflow default',
46
+ '',
47
+ 'When the user wants to get started but has not chosen a workflow, inspect the available product and repository context. If more signed-up or signed-in users are valuable and the product has a public visitor entry point, an existing account boundary, a genuine useful result that can be delivered before signup, and a meaningful next action inside the authenticated product, recommend public-to-product continuous onboarding as the first workflow.',
48
+ '',
49
+ 'This default is not limited to B2B SaaS. Do not infer fit from the industry label alone, and do not manufacture pre-signup value or pressure. If the evidence is incomplete, ask only for the smallest missing fit fact. After project setup, route the accepted recommendation to `embedding-mcp-assistants`; the project-local playbook owns the two-surface design and exact implementation.',
50
+ '',
44
51
  '## Cold start (no project yet)',
45
52
  '',
46
53
  '1. New or empty directory: use `noodle-readiness.setup_project` with `mode: "initialize"`, or inline-execute the public fallback `noodle init --json`. This prepares the SaaS profile, installs pinned project-local tooling, and runs local checks. Preserve the existing package manager; use `install: false` / `--no-install` only for explicitly files-only work.',
@@ -9,6 +9,7 @@ export function renderEmbeddedAssistantReference() {
9
9
  '',
10
10
  '- Architecture',
11
11
  '- Select the architecture before code',
12
+ '- First-workflow default: continuous onboarding',
12
13
  '- Install into the existing application',
13
14
  '- Author and validate',
14
15
  '- Product workflow guidance',
@@ -69,6 +70,25 @@ export function renderEmbeddedAssistantReference() {
69
70
  '',
70
71
  'The architecture brief must state the selected topology, why it fits the named user and job, the two code owners and two local processes, credential and identity flow, routing authority, model owner, files expected to change, and the first requested evidence boundary. If identity/session ownership, exact origin, tenant-routing authority, model ownership, or evidence target is unavailable, return a blocked architecture brief naming the missing owner or decision and do not edit either codebase.',
71
72
  '',
73
+ '### First-workflow default: continuous onboarding',
74
+ '',
75
+ 'When a customer asks what to build first, inspect the available product and repository evidence before asking them to choose from a menu. This default is not limited to B2B SaaS: it applies to any software or digital service where converting an anonymous visitor into a legitimately useful authenticated relationship is valuable.',
76
+ '',
77
+ 'Recommend continuous onboarding by default when all four fit signals are present:',
78
+ '',
79
+ '1. A public visitor surface exists where the assistant can begin without identity.',
80
+ '2. The product already has signup or sign-in that the customer application owns.',
81
+ '3. The assistant can deliver a genuine useful result before account creation, using only information the visitor chooses to provide.',
82
+ '4. A meaningful authenticated product outcome can continue from that work and finish through the customer’s authorized API.',
83
+ '',
84
+ 'When the evidence is clear, recommend one assistant on two customer-owned surfaces rather than presenting an unranked workflow menu: a mixed public surface using `publicWebsite({ signIn: true })` and an in-product `authenticatedWebsite(...)` surface. The public experience produces and, when needed, temporarily saves the useful reviewed draft; identity is requested only when it unlocks the next step; the authenticated experience adopts that state, resumes the interrupted request, and separately confirms the final business action. This gives the customer one concrete first workflow while establishing both its public-site and in-product integration boundaries.',
85
+ '',
86
+ 'Treat both mounts as one first-workflow delivery scope. Do not call it complete when only the public or only the authenticated surface works; report that evidence as partial and name the missing mount. The two surfaces may live in separate customer repositories and release independently, so “one scope” is not a claim of atomic deployment.',
87
+ '',
88
+ 'Do not recommend this default when there is no genuine pre-account value, no customer-owned account boundary, no meaningful authenticated continuation, or no feasible public and product mount. Ask only for the smallest missing fit fact instead of making the user classify the company. Keep signup optional until identity is truly required, never imply that prior effort obligates registration, and treat improved conversion as a hypothesis to measure—not a guarantee. This design does not guarantee a conversion lift.',
89
+ '',
90
+ 'Once selected, begin with the bundled [stateful-draft example](../examples/stateful-draft/README.md) and the public [signup-continuity guide](https://docs.noodleseed.dev/docs/guides/signup-continuity). Adapt the draft to the smallest useful customer-specific result; do not invent a universal SaaS schema or replace the customer’s identity provider and product API.',
91
+ '',
72
92
  '## Install into the existing application',
73
93
  '',
74
94
  'Configure or reuse an existing capability before generating files. Public embedding uses the existing script or embed ID and needs no customer backend session/config route. Reuse application APIs and business functions; generate a thin handler only where the approved architecture identifies a missing stable boundary.',
@@ -3,7 +3,8 @@
3
3
  // one-level reference tree rendered by skill-content.ts.
4
4
  import { BEHAVIOR_SKILLS } from './behavior-skills.js';
5
5
  export const SKILL_DESCRIPTION = 'Use when building, validating, testing, deploying, or operating a local or hosted Noodle Seed ' +
6
- 'MCP server or app authored in TypeScript with the noodle CLI.';
6
+ 'MCP server or app authored in TypeScript with the noodle CLI, or improving signup or onboarding ' +
7
+ 'conversion or selecting a first Noodle workflow for an account-growth product.';
7
8
  export const APP_DIRECTORY_COMPLIANCE_REFERENCE = 'references/app-directory-compliance.md';
8
9
  export const SKILL_ROUTES = [
9
10
  {
@@ -68,7 +69,7 @@ export const SKILL_ROUTES = [
68
69
  },
69
70
  {
70
71
  id: 'embed-assistant',
71
- intent: 'Embed a Noodle assistant in an existing SaaS or web application',
72
+ intent: 'Embed a Noodle assistant in an existing SaaS or web application, including public-to-product continuous onboarding',
72
73
  skill: 'embedding-mcp-assistants',
73
74
  exitCondition: 'The requested embed boundary works with verified identity and credential separation at the tested level.',
74
75
  },
@@ -147,6 +148,12 @@ export function skillRouterBody(_target) {
147
148
  '',
148
149
  'Negative routing examples: “Inspect hosted logs/status” → `inspect-hosted` (read-only). “Prepare for deployment” → the applicable build or verification route; with existing access it may inspect `deploy preflight`, then stop with a handoff. Preparation does not authorize `link`, hosted config, publication, rollback, host writes, or submission. “Keep this local” → a build or verification route, never a hosted route.',
149
150
  '',
151
+ '## First-workflow heuristic',
152
+ '',
153
+ 'When the user asks what to build first or gives only a broad growth goal, inspect the repository and product context before asking them to invent a workflow. Do not classify the business or choose a design from an industry label alone.',
154
+ '',
155
+ 'If the evidence shows a public visitor surface, an existing signup or sign-in boundary, a useful pre-account result the assistant can genuinely produce, and a meaningful authenticated outcome inside the product—and more authenticated users are valuable—recommend public-to-product continuous onboarding and route to `embedding-mcp-assistants`. This recommendation is not limited to B2B SaaS. If one of those facts is unclear, ask only for the smallest missing fit fact; if the pattern does not fit, route by the user’s actual outcome instead.',
156
+ '',
150
157
  ...routeTableLines(),
151
158
  '',
152
159
  '## Common machine loop',
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodle-borg/agent-kit",
3
- "version": "0.102.0",
3
+ "version": "0.104.0",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "engines": {
@@ -39,7 +39,7 @@
39
39
  "dependencies": {
40
40
  "@modelcontextprotocol/sdk": "^1.29.0",
41
41
  "@noodle-borg/admission-limits": "0.0.0",
42
- "@noodle-borg/agent-kit": "0.102.0",
42
+ "@noodle-borg/agent-kit": "0.104.0",
43
43
  "@noodle-borg/app-package": "0.0.0",
44
44
  "@noodle-borg/assistant-gateway": "0.0.0",
45
45
  "@noodle-borg/auth": "0.0.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodleseed/one",
3
- "version": "0.167.0",
3
+ "version": "0.168.0",
4
4
  "private": false,
5
5
  "description": "Noodle CLI by Noodle Seed — author, run, and deploy declarative MCP servers. Embedding the assistant in your own web app is @noodleseed/assistant.",
6
6
  "license": "Apache-2.0",
@@ -235,7 +235,7 @@
235
235
  "@modelcontextprotocol/client": "2.0.0",
236
236
  "@modelcontextprotocol/server": "2.0.0",
237
237
  "@noodle-borg/admission-limits": "0.0.0",
238
- "@noodle-borg/agent-kit": "0.102.0",
238
+ "@noodle-borg/agent-kit": "0.104.0",
239
239
  "@noodle-borg/app-audit": "0.0.0",
240
240
  "@noodle-borg/app-package": "0.0.0",
241
241
  "@noodle-borg/assistant-gateway": "0.0.0",