@noodleseed/agent-kit 0.34.0 → 0.35.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.
- package/manifest.json +57 -17
- package/package.json +1 -1
- package/skills/claude-code/SKILL.md +48 -29
- package/skills/claude-code/examples/acme-bistro/README.md +1 -1
- package/skills/claude-code/references/app-directory-compliance.md +59 -0
- package/skills/claude-code/references/build-an-mcp-app.md +52 -0
- package/skills/claude-code/references/build-an-mcp-server.md +54 -0
- package/skills/claude-code/references/connect-an-api.md +60 -20
- package/skills/claude-code/references/deploy-and-ops.md +15 -79
- package/skills/claude-code/references/experience-design.md +1 -1
- package/skills/claude-code/references/inspect-hosted.md +26 -0
- package/skills/claude-code/references/publishing.md +15 -17
- package/skills/claude-code/references/verify-and-recover.md +65 -0
- package/skills/codex/SKILL.md +48 -29
- package/skills/codex/examples/acme-bistro/README.md +1 -1
- package/skills/codex/references/app-directory-compliance.md +59 -0
- package/skills/codex/references/build-an-mcp-app.md +52 -0
- package/skills/codex/references/build-an-mcp-server.md +54 -0
- package/skills/codex/references/connect-an-api.md +60 -20
- package/skills/codex/references/deploy-and-ops.md +15 -79
- package/skills/codex/references/experience-design.md +1 -1
- package/skills/codex/references/inspect-hosted.md +26 -0
- package/skills/codex/references/publishing.md +15 -17
- package/skills/codex/references/verify-and-recover.md +65 -0
- package/skills/claude-code/references/chatgpt-compliance.md +0 -63
- package/skills/codex/references/chatgpt-compliance.md +0 -63
package/manifest.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packageVersion": "0.
|
|
2
|
+
"packageVersion": "0.35.0",
|
|
3
3
|
"files": [
|
|
4
4
|
{
|
|
5
5
|
"path": "skills/codex/SKILL.md",
|
|
6
|
-
"sha256": "
|
|
6
|
+
"sha256": "bc487708c97735979ce2179f27e82988233819b2264cbe53c69320dbc2630800",
|
|
7
7
|
"agentTarget": "codex"
|
|
8
8
|
},
|
|
9
9
|
{
|
|
@@ -26,6 +26,11 @@
|
|
|
26
26
|
"sha256": "1c9c3e58f1263838484d033ef9aa4a0efd6a1696091fd5c1b41686e1b87ac41a",
|
|
27
27
|
"agentTarget": "codex"
|
|
28
28
|
},
|
|
29
|
+
{
|
|
30
|
+
"path": "skills/codex/references/build-an-mcp-server.md",
|
|
31
|
+
"sha256": "05dfa0df90e21a6a403806883e326caefb2dd5acec1c762b891b6e778327fd48",
|
|
32
|
+
"agentTarget": "codex"
|
|
33
|
+
},
|
|
29
34
|
{
|
|
30
35
|
"path": "skills/codex/references/authoring-workflow.md",
|
|
31
36
|
"sha256": "5e64b735675bacdff9e893c03c6a30751844325854540e8952a1092cf57b1b98",
|
|
@@ -38,12 +43,17 @@
|
|
|
38
43
|
},
|
|
39
44
|
{
|
|
40
45
|
"path": "skills/codex/references/connect-an-api.md",
|
|
41
|
-
"sha256": "
|
|
46
|
+
"sha256": "c267092dc35141adeeddba6e5af4ebff71df2640cbb7b4c2e3b902d2b33a03ae",
|
|
47
|
+
"agentTarget": "codex"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"path": "skills/codex/references/build-an-mcp-app.md",
|
|
51
|
+
"sha256": "71b80632a2f87b63849ff44a86ce03f883aaedf2c52441ea1030f343c160dbd3",
|
|
42
52
|
"agentTarget": "codex"
|
|
43
53
|
},
|
|
44
54
|
{
|
|
45
55
|
"path": "skills/codex/references/experience-design.md",
|
|
46
|
-
"sha256": "
|
|
56
|
+
"sha256": "dff779f01ff24984e1d24459620b2c9807bcfdb98ba8cb29f7467c7eb529ea30",
|
|
47
57
|
"agentTarget": "codex"
|
|
48
58
|
},
|
|
49
59
|
{
|
|
@@ -56,24 +66,34 @@
|
|
|
56
66
|
"sha256": "08e44784a0d838c322d443eae6b35d5c75b4252a0975db835ef504535e25584a",
|
|
57
67
|
"agentTarget": "codex"
|
|
58
68
|
},
|
|
69
|
+
{
|
|
70
|
+
"path": "skills/codex/references/verify-and-recover.md",
|
|
71
|
+
"sha256": "22b6a93faa0e20dc874ced541f2d453716892035a36e4278353c1b4150537fe3",
|
|
72
|
+
"agentTarget": "codex"
|
|
73
|
+
},
|
|
59
74
|
{
|
|
60
75
|
"path": "skills/codex/references/troubleshooting.md",
|
|
61
76
|
"sha256": "238a8d0f4ff8635ed8b0bc63db734634c44ba82e78a3851dc50c85486e1fb942",
|
|
62
77
|
"agentTarget": "codex"
|
|
63
78
|
},
|
|
79
|
+
{
|
|
80
|
+
"path": "skills/codex/references/inspect-hosted.md",
|
|
81
|
+
"sha256": "944ea95b9e9e65c7ff9027b47bbc0c21ca1a81806d4126774cf869eb4b206b93",
|
|
82
|
+
"agentTarget": "codex"
|
|
83
|
+
},
|
|
64
84
|
{
|
|
65
85
|
"path": "skills/codex/references/deploy-and-ops.md",
|
|
66
|
-
"sha256": "
|
|
86
|
+
"sha256": "1f74050942433f8f6a163243bc5a631c286c27612834739798798445e392ea92",
|
|
67
87
|
"agentTarget": "codex"
|
|
68
88
|
},
|
|
69
89
|
{
|
|
70
90
|
"path": "skills/codex/references/publishing.md",
|
|
71
|
-
"sha256": "
|
|
91
|
+
"sha256": "b8e2ef715b51f70154e1210086cccb9e7165d95cd40a374546482679f355cff8",
|
|
72
92
|
"agentTarget": "codex"
|
|
73
93
|
},
|
|
74
94
|
{
|
|
75
|
-
"path": "skills/codex/references/
|
|
76
|
-
"sha256": "
|
|
95
|
+
"path": "skills/codex/references/app-directory-compliance.md",
|
|
96
|
+
"sha256": "77a30c9af09c05502c2245795d49e3487a6b1b0c7a70e26aa0996b7d670dfce8",
|
|
77
97
|
"agentTarget": "codex"
|
|
78
98
|
},
|
|
79
99
|
{
|
|
@@ -88,7 +108,7 @@
|
|
|
88
108
|
},
|
|
89
109
|
{
|
|
90
110
|
"path": "skills/codex/examples/acme-bistro/README.md",
|
|
91
|
-
"sha256": "
|
|
111
|
+
"sha256": "b364c7db64afad1788ad321681f7e41bcc5f1c328829adeb12c78601d1522fbb",
|
|
92
112
|
"agentTarget": "codex"
|
|
93
113
|
},
|
|
94
114
|
{
|
|
@@ -383,7 +403,7 @@
|
|
|
383
403
|
},
|
|
384
404
|
{
|
|
385
405
|
"path": "skills/claude-code/SKILL.md",
|
|
386
|
-
"sha256": "
|
|
406
|
+
"sha256": "bc487708c97735979ce2179f27e82988233819b2264cbe53c69320dbc2630800",
|
|
387
407
|
"agentTarget": "claude-code"
|
|
388
408
|
},
|
|
389
409
|
{
|
|
@@ -406,6 +426,11 @@
|
|
|
406
426
|
"sha256": "1c9c3e58f1263838484d033ef9aa4a0efd6a1696091fd5c1b41686e1b87ac41a",
|
|
407
427
|
"agentTarget": "claude-code"
|
|
408
428
|
},
|
|
429
|
+
{
|
|
430
|
+
"path": "skills/claude-code/references/build-an-mcp-server.md",
|
|
431
|
+
"sha256": "05dfa0df90e21a6a403806883e326caefb2dd5acec1c762b891b6e778327fd48",
|
|
432
|
+
"agentTarget": "claude-code"
|
|
433
|
+
},
|
|
409
434
|
{
|
|
410
435
|
"path": "skills/claude-code/references/authoring-workflow.md",
|
|
411
436
|
"sha256": "5e64b735675bacdff9e893c03c6a30751844325854540e8952a1092cf57b1b98",
|
|
@@ -418,12 +443,17 @@
|
|
|
418
443
|
},
|
|
419
444
|
{
|
|
420
445
|
"path": "skills/claude-code/references/connect-an-api.md",
|
|
421
|
-
"sha256": "
|
|
446
|
+
"sha256": "c267092dc35141adeeddba6e5af4ebff71df2640cbb7b4c2e3b902d2b33a03ae",
|
|
447
|
+
"agentTarget": "claude-code"
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"path": "skills/claude-code/references/build-an-mcp-app.md",
|
|
451
|
+
"sha256": "71b80632a2f87b63849ff44a86ce03f883aaedf2c52441ea1030f343c160dbd3",
|
|
422
452
|
"agentTarget": "claude-code"
|
|
423
453
|
},
|
|
424
454
|
{
|
|
425
455
|
"path": "skills/claude-code/references/experience-design.md",
|
|
426
|
-
"sha256": "
|
|
456
|
+
"sha256": "dff779f01ff24984e1d24459620b2c9807bcfdb98ba8cb29f7467c7eb529ea30",
|
|
427
457
|
"agentTarget": "claude-code"
|
|
428
458
|
},
|
|
429
459
|
{
|
|
@@ -436,24 +466,34 @@
|
|
|
436
466
|
"sha256": "08e44784a0d838c322d443eae6b35d5c75b4252a0975db835ef504535e25584a",
|
|
437
467
|
"agentTarget": "claude-code"
|
|
438
468
|
},
|
|
469
|
+
{
|
|
470
|
+
"path": "skills/claude-code/references/verify-and-recover.md",
|
|
471
|
+
"sha256": "22b6a93faa0e20dc874ced541f2d453716892035a36e4278353c1b4150537fe3",
|
|
472
|
+
"agentTarget": "claude-code"
|
|
473
|
+
},
|
|
439
474
|
{
|
|
440
475
|
"path": "skills/claude-code/references/troubleshooting.md",
|
|
441
476
|
"sha256": "238a8d0f4ff8635ed8b0bc63db734634c44ba82e78a3851dc50c85486e1fb942",
|
|
442
477
|
"agentTarget": "claude-code"
|
|
443
478
|
},
|
|
479
|
+
{
|
|
480
|
+
"path": "skills/claude-code/references/inspect-hosted.md",
|
|
481
|
+
"sha256": "944ea95b9e9e65c7ff9027b47bbc0c21ca1a81806d4126774cf869eb4b206b93",
|
|
482
|
+
"agentTarget": "claude-code"
|
|
483
|
+
},
|
|
444
484
|
{
|
|
445
485
|
"path": "skills/claude-code/references/deploy-and-ops.md",
|
|
446
|
-
"sha256": "
|
|
486
|
+
"sha256": "1f74050942433f8f6a163243bc5a631c286c27612834739798798445e392ea92",
|
|
447
487
|
"agentTarget": "claude-code"
|
|
448
488
|
},
|
|
449
489
|
{
|
|
450
490
|
"path": "skills/claude-code/references/publishing.md",
|
|
451
|
-
"sha256": "
|
|
491
|
+
"sha256": "b8e2ef715b51f70154e1210086cccb9e7165d95cd40a374546482679f355cff8",
|
|
452
492
|
"agentTarget": "claude-code"
|
|
453
493
|
},
|
|
454
494
|
{
|
|
455
|
-
"path": "skills/claude-code/references/
|
|
456
|
-
"sha256": "
|
|
495
|
+
"path": "skills/claude-code/references/app-directory-compliance.md",
|
|
496
|
+
"sha256": "77a30c9af09c05502c2245795d49e3487a6b1b0c7a70e26aa0996b7d670dfce8",
|
|
457
497
|
"agentTarget": "claude-code"
|
|
458
498
|
},
|
|
459
499
|
{
|
|
@@ -468,7 +508,7 @@
|
|
|
468
508
|
},
|
|
469
509
|
{
|
|
470
510
|
"path": "skills/claude-code/examples/acme-bistro/README.md",
|
|
471
|
-
"sha256": "
|
|
511
|
+
"sha256": "b364c7db64afad1788ad321681f7e41bcc5f1c328829adeb12c78601d1522fbb",
|
|
472
512
|
"agentTarget": "claude-code"
|
|
473
513
|
},
|
|
474
514
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noodleseed/agent-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Self-checking, self-updating agent skills for the Noodle Seed CLI. Authored in this repo by @noodle-borg/agent-kit; this is the published, independently-versioned canonical skills artifact the CLI fetches and verifies.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -3,55 +3,73 @@ name: noodle-seed
|
|
|
3
3
|
description: Use when building, validating, testing, deploying, or operating a local or hosted Noodle Seed MCP server or app authored in TypeScript with the noodle CLI.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.35.0 hash:75dd0f6f85b04858 -->
|
|
7
7
|
|
|
8
8
|
# Noodle Seed
|
|
9
9
|
|
|
10
10
|
Build, validate, test, deploy, and operate Noodle Seed MCP servers and apps authored in TypeScript with the `noodle` CLI. Author from the configured entrypoint (usually `server.ts`); keep the authoring surface TypeScript-only.
|
|
11
11
|
|
|
12
|
-
Use this skill for project-local Noodle Seed authoring in
|
|
12
|
+
Use this skill for project-local Noodle Seed authoring in the active coding host; preserve generated and user instruction boundaries.
|
|
13
|
+
|
|
14
|
+
If the request is unrelated to the Noodle MCP surface, stop here: follow the project's normal instructions and run no Noodle lifecycle commands.
|
|
13
15
|
|
|
14
16
|
**Installed-plugin execution.** When this skill is supplied by the Noodle Developer plugin, preserve the managed invocation path established by the plugin bootstrap and invoke every `noodle` command through that host bundle's managed launcher. Do not install or update a global CLI. Noodle guides and operates the lifecycle; you write and test the application source in the user's project.
|
|
15
17
|
|
|
16
|
-
##
|
|
18
|
+
## Route the request
|
|
19
|
+
|
|
20
|
+
Choose exactly one primary route from the user outcome below. Read that primary reference in full, then begin the work. Read supporting references only when the primary workflow sends you there or the named evidence exposes that concern. Stop discovery once the route is selected.
|
|
21
|
+
|
|
22
|
+
Apply this precedence when wording overlaps: diagnosis of an existing failure takes the verification route; an MCP App/UI outcome takes the App route; external API integration from credentials, a URL, or an API specification takes precedence over generic server building; hosted inspection is the read-only route; hosted mutation requires the explicitly requested deployment route.
|
|
23
|
+
|
|
24
|
+
Negative routing examples: “Inspect hosted logs/status” → `inspect-hosted` (read-only). “Prepare for deployment” → the applicable build or verification route and stop with a handoff; preparation does not authorize `link`, hosted config, deployment, rollback, host writes, or submission. “Keep this local” → a build or verification route, never a hosted route.
|
|
17
25
|
|
|
18
|
-
|
|
26
|
+
| User outcome | Primary reference | Supporting references only when needed | Done when |
|
|
27
|
+
| :--- | :--- | :--- | :--- |
|
|
28
|
+
| Create or extend a headless MCP server whose external API contract is already modeled | `references/build-an-mcp-server.md` | `references/authoring-workflow.md`, `references/sdk-surface.md` | The requested server behavior is locally validated and tested; connector reads have real-output evidence. |
|
|
29
|
+
| Connect a real API when credentials or an API specification are available | `references/connect-an-api.md` | `references/authoring-workflow.md` | A representative live read returns populated, intentionally mapped fields without exposing credentials. |
|
|
30
|
+
| Build or change an MCP App, widget, or host-visible UI | `references/build-an-mcp-app.md` | `references/experience-design.md`, `references/widgets-and-apps.md` | The UI has a stated user benefit, passes the requested checks, and degrades to useful text. |
|
|
31
|
+
| Validate, test, diagnose, or recover a failing local or hosted project | `references/verify-and-recover.md` | `references/agent-contract.md`, `references/compile-errors.md` | The failing evidence layer is repaired and rerun, or the remaining blocker and exact next action are reported. |
|
|
32
|
+
| Inspect or diagnose hosted status, logs, metrics, events, or deployment metadata read-only | `references/inspect-hosted.md` | None | The requested hosted evidence is reported without changing target, configuration, access, or deployment state. |
|
|
33
|
+
| Deploy, configure, connect with writes, change access, or roll back a hosted MCP service when explicitly requested | `references/deploy-and-ops.md` | `references/cli-commands.md` | The requested hosted state is evidenced without claiming unperformed host or production checks. |
|
|
34
|
+
| Embed a Noodle assistant in an existing SaaS or web application | `references/embedded-assistant.md` | `references/authoring-workflow.md` | The requested embed boundary works with verified identity and credential separation at the tested level. |
|
|
35
|
+
| Prepare or submit an integration to a host directory | `references/publishing.md` | `references/app-directory-compliance.md` | The requested submission evidence is complete and any host-review uncertainty is explicit. |
|
|
36
|
+
| Report a Noodle Seed bug, documentation gap, or product improvement | `references/feedback.md` | None | A sanitized command is shown to the user and is submitted only after explicit approval. |
|
|
19
37
|
|
|
20
|
-
|
|
38
|
+
## Common machine loop
|
|
21
39
|
|
|
22
|
-
|
|
40
|
+
The cold-agent commands speak the `--json` envelope. Parse machine state instead of scraping human prose; `references/agent-contract.md` owns the envelope and exit codes.
|
|
23
41
|
|
|
24
|
-
1. **Discover** — `noodle commands --json
|
|
25
|
-
2. **Author** —
|
|
26
|
-
3. **Validate** — `noodle validate --json`;
|
|
27
|
-
4. **
|
|
28
|
-
5. **
|
|
29
|
-
6. **
|
|
30
|
-
7. **Apps/widgets/embed** — `noodle check --json` (add `--target chatgpt|claude|embedded-assistant`), then `noodle devtools`; use `references/widgets-and-apps.md` for MCP Apps and `references/embedded-assistant.md` for a SaaS embed.
|
|
31
|
-
8. **Deploy** — `noodle deploy`; auth fails clean with `error.next` = `noodle login` (see `references/deploy-and-ops.md`).
|
|
32
|
-
9. **Wire into a host** — `noodle connect <codex|claude-code|chatgpt>` (prove it in a real host per `references/test-in-hosts.md`; debug symptoms with `references/troubleshooting.md`).
|
|
33
|
-
10. **Health** — `noodle metrics --agent-output`: a health verdict plus the exact next command per attention item.
|
|
42
|
+
1. **Discover** — use `noodle commands --json` when the required command or flags are uncertain; don't read CLI source.
|
|
43
|
+
2. **Author** — for build routes, edit the configured TypeScript entrypoint, usually `src/server.ts`.
|
|
44
|
+
3. **Validate** — run `noodle validate --json`; repair each `error.errors[]` item at its `path`, then re-run `noodle validate --json`.
|
|
45
|
+
4. **Smoke** — run `noodle test --json` after validation passes.
|
|
46
|
+
5. **Prove the requested level** — connector routes require a safe live read with `noodle tools call`; App routes require `noodle check --json` and `noodle devtools`; hosted or host actions run only when the selected route and current user request authorize that exact level.
|
|
47
|
+
6. **Report evidence** — claim only the highest level actually exercised and name anything not run.
|
|
34
48
|
|
|
35
|
-
##
|
|
49
|
+
## Reference lookup catalog
|
|
36
50
|
|
|
37
|
-
|
|
51
|
+
This is a lookup catalog, not a discovery checklist. Return here only when the selected primary route names a missing technical detail:
|
|
38
52
|
|
|
39
53
|
- `references/agent-contract.md` — the `--json` envelope, exit codes, and the three output modes.
|
|
40
54
|
- `references/sdk-surface.md` — what to import from `@noodleseed/one` and which builder to use.
|
|
41
55
|
- `references/cli-commands.md` — every `noodle` command, grouped by area.
|
|
42
56
|
- `references/compile-errors.md` — fix `noodle validate` errors by code.
|
|
43
|
-
- `references/
|
|
44
|
-
- `references/
|
|
45
|
-
- `references/
|
|
46
|
-
- `references/
|
|
47
|
-
- `references/
|
|
48
|
-
- `references/
|
|
49
|
-
- `references/
|
|
50
|
-
- `references/
|
|
51
|
-
- `references/
|
|
52
|
-
- `references/
|
|
57
|
+
- `references/build-an-mcp-server.md` — outcome-first workflow for a focused, tested, model-facing MCP product.
|
|
58
|
+
- `references/authoring-workflow.md` — input paths, fit checks, connector patterns, authentication, tool design, testing, and managed config.
|
|
59
|
+
- `references/embedded-assistant.md` — HTTPS origins, managed model config, deploy sequencing, session exchange, browser mounting, and credential boundaries.
|
|
60
|
+
- `references/connect-an-api.md` — secure credentials, probe the live API, model the observed shape, and prove real output.
|
|
61
|
+
- `references/build-an-mcp-app.md` — product-fit, output-boundary, fallback, and evidence workflow for an MCP App.
|
|
62
|
+
- `references/experience-design.md` — design an app experience: funnel boundary, grounding, two users, display modes, and wireframe.
|
|
63
|
+
- `references/widgets-and-apps.md` — MCP Apps, typed views, widget hooks, output shaping, and CSP.
|
|
64
|
+
- `references/test-in-hosts.md` — connect and test in real MCP hosts and protocol inspection clients.
|
|
65
|
+
- `references/verify-and-recover.md` — ordered evidence ladder, bounded repair, and honest completion claims.
|
|
66
|
+
- `references/troubleshooting.md` — runtime symptom to cause and fix, locally and hosted.
|
|
67
|
+
- `references/inspect-hosted.md` — read-only hosted status, logs, metrics, events, and deployment diagnosis.
|
|
68
|
+
- `references/deploy-and-ops.md` — explicitly authorized hosted link, config, deploy, access, connection writes, and rollback.
|
|
69
|
+
- `references/publishing.md` — prepare and submit to app and connector directories.
|
|
70
|
+
- `references/app-directory-compliance.md` — the pre-submission experience and policy checklist.
|
|
53
71
|
- `references/examples.md` — flagship example index and a canonical `server.ts`.
|
|
54
|
-
- `references/feedback.md` — draft sanitized product feedback
|
|
72
|
+
- `references/feedback.md` — draft sanitized product feedback and submit only with user approval.
|
|
55
73
|
|
|
56
74
|
## Product feedback
|
|
57
75
|
|
|
@@ -62,6 +80,7 @@ When you discover a bug, missing capability, misleading doc, or improvement idea
|
|
|
62
80
|
- Keep secrets, bearer tokens, refresh tokens, static access keys, `.env.noodle` values, and `~/.noodle/config.json` out of prompts, logs, docs, tests, and generated files.
|
|
63
81
|
- Do not hand-author manifest JSON/YAML, runtime artifacts, connector IR, or hosted asset metadata.
|
|
64
82
|
- Do not add static data-plane credential paths; hosted access is identity-based.
|
|
83
|
+
- Hosted mutation is opt-in. Run `link`, hosted secret/variable/config/access changes, deploy, rollback, host configuration writes, or directory submission only when the current user request explicitly authorizes the exact mutation and target. An inspect, prepare, validate, test, or local-only request grants no such authority; stop and ask before crossing that boundary.
|
|
65
84
|
|
|
66
85
|
## Customization
|
|
67
86
|
|
|
@@ -9,7 +9,7 @@ the app). It pairs a view-backed `tool` menu/cart with app-only `tool` cart help
|
|
|
9
9
|
Capability slot: **end-to-end in-chat transaction + payment-only handoff**, plus a worked **design-first**
|
|
10
10
|
deliverable set (`design/` — a UX Document, a single-file HTML wireframe with an embedded OpenAI Apps SDK
|
|
11
11
|
compliance audit, and a Recommended API contract). It sets the quality bar the `noodle-seed` skill's
|
|
12
|
-
`references/experience-design.md` and `references/
|
|
12
|
+
`references/experience-design.md` and `references/app-directory-compliance.md` teach. (Distinct from
|
|
13
13
|
`food-ordering`, which is the broad widget-composition proof; this one owns the design-first end-to-end +
|
|
14
14
|
compliance exemplar.)
|
|
15
15
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# App directory compliance (pre-submission)
|
|
2
|
+
|
|
3
|
+
Use this shared checklist against the built integration before preparing a directory submission. It
|
|
4
|
+
covers evidence common to app and connector directories without assuming a particular host, review
|
|
5
|
+
portal, client framework, or vendor policy.
|
|
6
|
+
|
|
7
|
+
## Contents
|
|
8
|
+
|
|
9
|
+
- Validation evidence
|
|
10
|
+
- Capability and interaction quality
|
|
11
|
+
- Safety, privacy, and data handling
|
|
12
|
+
- Reliability and accessibility
|
|
13
|
+
- Directory-specific delta
|
|
14
|
+
|
|
15
|
+
## Validation evidence
|
|
16
|
+
|
|
17
|
+
A clean local validation result proves only the checks that actually ran. Record server validation,
|
|
18
|
+
behavior tests, protocol conformance, production reachability, and interactive rendering as separate
|
|
19
|
+
evidence levels. Never treat metadata readiness as proof of host rendering or directory acceptance.
|
|
20
|
+
|
|
21
|
+
## Capability and interaction quality
|
|
22
|
+
|
|
23
|
+
1. **User value** — each exposed capability solves a concrete user job and cites built behavior rather
|
|
24
|
+
than an aspiration.
|
|
25
|
+
2. **Grounded capability** — knowledge, actions, and presentation come from authoritative application
|
|
26
|
+
data or bounded operations instead of invented state.
|
|
27
|
+
3. **Atomic interfaces** — every action has a focused purpose, explicit input and output schemas, honest
|
|
28
|
+
effect annotations, and useful failure output.
|
|
29
|
+
4. **Helpful UI only** — every interactive surface earns its place and preserves a useful text or
|
|
30
|
+
structured fallback when rendering is unavailable.
|
|
31
|
+
5. **Meaningful completion** — the user can complete the promised task within the declared boundary,
|
|
32
|
+
with any external handoff clearly identified.
|
|
33
|
+
|
|
34
|
+
## Safety, privacy, and data handling
|
|
35
|
+
|
|
36
|
+
- Minimize model-visible and UI-visible data; remove secrets, internal identifiers, unnecessary personal
|
|
37
|
+
data, and continuation credentials from results and logs.
|
|
38
|
+
- Document authentication, authorization scopes, retention, deletion, subprocessors, and external
|
|
39
|
+
handoffs accurately in the public privacy and support material.
|
|
40
|
+
- Make mutations explicit, bounded, and confirmation-aware. Never imply that a read or preparation
|
|
41
|
+
request authorizes a write.
|
|
42
|
+
- For regulated or consequential workflows, show source provenance, uncertainty, cautions, and the
|
|
43
|
+
boundary between information and a professional decision.
|
|
44
|
+
|
|
45
|
+
## Reliability and accessibility
|
|
46
|
+
|
|
47
|
+
- Exercise representative positive, negative, empty, loading, error, and recovery cases against the
|
|
48
|
+
production-shaped endpoint.
|
|
49
|
+
- Preserve keyboard access, readable contrast, responsive layout, concise status feedback, and graceful
|
|
50
|
+
degradation when an interactive surface is unsupported.
|
|
51
|
+
- State latency, availability, rate-limit, and support expectations using observed evidence rather than
|
|
52
|
+
unverified claims.
|
|
53
|
+
|
|
54
|
+
## Directory-specific delta
|
|
55
|
+
|
|
56
|
+
After the shared checklist passes, read the selected directory’s current official documentation and add
|
|
57
|
+
only its verified requirements. Keep directory-specific metadata, screenshots, test accounts, policy
|
|
58
|
+
statements, and review procedures in that submission evidence—not in this shared skill reference. Mark
|
|
59
|
+
unknown or untested requirements explicitly, and never reuse another directory’s checklist as a proxy.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Outcome
|
|
2
|
+
|
|
3
|
+
Deliver an MCP App whose visual interaction gives the user a concrete benefit beyond a good text response, while preserving useful model-visible output when the widget is unavailable.
|
|
4
|
+
|
|
5
|
+
## Use when
|
|
6
|
+
|
|
7
|
+
- The user asks for an MCP App, widget, interactive card, visual workflow, or host-visible UI.
|
|
8
|
+
- Comparison, selection, progress, editing, confirmation, or another visual interaction materially improves the conversational job.
|
|
9
|
+
|
|
10
|
+
## Do not use when
|
|
11
|
+
|
|
12
|
+
- A concise text or structured tool result fully serves the user. UI must earn its place.
|
|
13
|
+
- The requested task is a headless server, API connector, diagnosis, deployment, or publication with no UI change; select that route.
|
|
14
|
+
- The agent lacks the product inputs needed to explain who benefits, what action the UI enables, and what happens without it.
|
|
15
|
+
|
|
16
|
+
## Required inputs
|
|
17
|
+
|
|
18
|
+
Before implementation, capture a short design spec: target user, conversational job, explicit user benefit, information hierarchy, primary interaction, states (loading/empty/error/success), model-visible result, widget-only data, and useful text fallback. Use `references/experience-design.md` for the deeper product-design questions only when needed.
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
1. **Pass the UI fit check.** State why a visual interaction is better than text for this request. If there is no defensible user benefit, keep the capability headless and stop the App route.
|
|
23
|
+
2. **Agree on the design spec.** Describe the smallest complete experience and its states before writing the component. Avoid recreating a full dashboard or website inside the conversation.
|
|
24
|
+
3. **Define the output boundary.** Keep concise facts and action results model-visible. Put presentation-heavy or interactive widget data in the widget-only channel. The model must not depend on opaque UI state to continue the conversation.
|
|
25
|
+
4. **Preserve fallback.** Every tool that launches a widget must still return useful text without the widget, so unsupported hosts and failed rendering remain usable.
|
|
26
|
+
5. **Author and wire the App contract.** Follow `references/widgets-and-apps.md` for the canonical component guidance, view registration, hooks, state, CSP, tool visibility, and output shaping. Keep tool effects and confirmation semantics correct independently of the UI.
|
|
27
|
+
6. **Validate the local artifact.** Run `noodle validate --json`, `noodle test --json`, and `noodle check --json`. Repair failures at the layer that produced them.
|
|
28
|
+
7. **Inspect the experience.** Run `noodle devtools` and verify loading, empty, error, success, responsive layout, focus/keyboard behavior, and the text fallback.
|
|
29
|
+
8. **Escalate evidence only on request.** Run a host test only when the user requested host verification. Run host-specific compliance only when preparing that host submission; select the exact host-testing or compliance entry from the router lookup catalog only after that evidence level is explicitly requested.
|
|
30
|
+
|
|
31
|
+
## Verification evidence
|
|
32
|
+
|
|
33
|
+
- **Product:** the design spec states the user benefit and the UI fit decision.
|
|
34
|
+
- **Server:** `noodle validate --json` and `noodle test --json` succeeded.
|
|
35
|
+
- **App contract:** `noodle check --json` succeeded.
|
|
36
|
+
- **Local UX:** `noodle devtools` exercised the relevant states and the useful text fallback without the widget.
|
|
37
|
+
- **Host/compliance:** report each requested host or compliance check with its evidence; report every unperformed higher level as not run.
|
|
38
|
+
|
|
39
|
+
## Recovery paths
|
|
40
|
+
|
|
41
|
+
- Weak UI fit: remove the widget and ship the stronger headless result, or narrow the visual interaction to the one decision it improves.
|
|
42
|
+
- App check failure: repair the cited view, metadata, output, CSP, or accessibility issue and rerun `noodle check --json` before reopening devtools.
|
|
43
|
+
- Blank or stale widget: verify the tool returns the intended widget data, the view is registered, and state derives from supported hooks rather than hidden global state.
|
|
44
|
+
- Model cannot continue without UI: move the essential facts into model-visible output and keep only presentation data widget-only.
|
|
45
|
+
- Host-only mismatch: record local checks as passed, isolate the host symptom, and select the host-testing lookup only for that observed host; do not rewrite a working local contract without host evidence.
|
|
46
|
+
|
|
47
|
+
## Stop conditions
|
|
48
|
+
|
|
49
|
+
- Stop complete at the locally requested boundary when product fit, server tests, App checks, devtools states, and text fallback are evidenced.
|
|
50
|
+
- Stop before host connection, deployment, or submission unless the user requested that next evidence level.
|
|
51
|
+
- Stop blocked when the required design decision, external data, credentials, or host access is unavailable; name the missing input and the exact next action.
|
|
52
|
+
- Never claim host compatibility, directory compliance, or production behavior from local devtools evidence alone.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Outcome
|
|
2
|
+
|
|
3
|
+
Deliver the smallest useful Noodle Seed MCP server that turns a real user intent into a safe, typed result. Author only the configured TypeScript entrypoint, normally `src/server.ts`; keep the public authoring surface TypeScript-only and never hand-author generated manifests or connector IR.
|
|
4
|
+
|
|
5
|
+
## Use when
|
|
6
|
+
|
|
7
|
+
- The user asks to create or extend a headless MCP server, tools, resources, prompts, or connector-backed behavior.
|
|
8
|
+
- The requested result is primarily model-facing and does not require a widget or host-visible UI.
|
|
9
|
+
|
|
10
|
+
## Do not use when
|
|
11
|
+
|
|
12
|
+
- The primary outcome is an MCP App, widget, or visual interaction; select the App route.
|
|
13
|
+
- The task is only to diagnose existing failures, deploy, publish, embed, or report feedback; select that dedicated route.
|
|
14
|
+
- The idea has no conversational fit: static content, a dashboard, deep navigation, or a full existing app port should be narrowed to the few actions that are better said than clicked.
|
|
15
|
+
|
|
16
|
+
## Required inputs
|
|
17
|
+
|
|
18
|
+
Establish only the inputs needed for the requested stopping point. Follow `references/authoring-workflow.md` for the canonical discovery paths. Do not guess or invent a private schema, endpoint, authentication model, eligibility rule, or approval flow. If a required input is unavailable, state exactly what evidence is missing and stop before fabricating behavior.
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
1. **Confirm conversational fit.** Name one to three focused jobs where saying the request is easier than navigating the underlying system, and identify the data or action the model cannot provide by itself.
|
|
23
|
+
2. **Define the product contract.** For each job, write the user phrase, the intent-shaped tool or resource, its minimal typed input, the useful output, read/write effect, and backing operation. Design for user intent, not a 1:1 API endpoint wrapper.
|
|
24
|
+
3. **Choose the smallest implementation.** Use native tools, resources, or prompts for local/static behavior; add a connector only when external data or actions are required. Keep response output small and model-readable.
|
|
25
|
+
4. **Author in TypeScript.** Follow `references/authoring-workflow.md` for connector and flow patterns and `references/sdk-surface.md` for exact builders. These are this route’s complete canonical support set; use the router lookup catalog only when observed evidence names a different concern.
|
|
26
|
+
5. **Validate and repair.** Run `noodle validate --json`. Parse `error.errors[]`, repair the cited `path`, and rerun validation. Consult the lookup catalog only for the specific reported error code; do not open another reference speculatively.
|
|
27
|
+
6. **Run the local smoke.** After validation succeeds, run `noodle test --json` and repair any failure at that evidence layer.
|
|
28
|
+
7. **Prove external behavior.** For connector-backed reads, set credentials through the effective local target and run a safe representative `noodle tools call`. Confirm populated mapped fields from real output, not merely successful registration.
|
|
29
|
+
8. **Stop at the requested boundary.** Do not add an App, host test, hosted environment, publication work, or deployment unless the user requested that outcome. Deploy only when the selected route or the user explicitly requires it.
|
|
30
|
+
|
|
31
|
+
## Verification evidence
|
|
32
|
+
|
|
33
|
+
Report evidence as a ladder and claim only levels actually exercised:
|
|
34
|
+
|
|
35
|
+
- **Authoring:** the requested TypeScript behavior exists with typed inputs and outputs.
|
|
36
|
+
- **Compilation:** `noodle validate --json` returned success.
|
|
37
|
+
- **Local smoke:** `noodle test --json` returned success.
|
|
38
|
+
- **Connector reality:** a representative safe read via `noodle tools call` returned populated mapped fields. This is required for connector-backed work.
|
|
39
|
+
- **Higher levels:** explicitly report host, deployment, and production checks as not run unless they were separately requested and evidenced.
|
|
40
|
+
|
|
41
|
+
## Recovery paths
|
|
42
|
+
|
|
43
|
+
- Validation failure: fix each structured error at its reported path, rerun validation, then resume at the next unproven layer.
|
|
44
|
+
- Tool registers but returns empty or `undefined` fields: inspect one sanitized real response, correct `${response...}` mappings, and rerun the same read.
|
|
45
|
+
- Credential unavailable: verify `secret(...)` naming and the effective local target; never inline or print the secret.
|
|
46
|
+
- Missing product input: ask for the smallest concrete example, schema, or rule that unblocks the selected job. Do not widen the build to compensate.
|
|
47
|
+
- Repeated failure at the same layer: stop after two evidence-backed repair attempts with the same failure signature and report the command, sanitized error, evidence already proven, and exact next action.
|
|
48
|
+
|
|
49
|
+
## Stop conditions
|
|
50
|
+
|
|
51
|
+
- Stop complete when the requested behavior passes validation and local smoke, and every connector-backed read has real-output evidence.
|
|
52
|
+
- Stop at the user's requested boundary; do not deploy unless the user requested deployment.
|
|
53
|
+
- Stop blocked when progress requires unavailable credentials, private schemas, external approval, or a live write the user has not approved.
|
|
54
|
+
- In the handoff, name what changed, what passed, what was not run, and any remaining risk without upgrading local evidence into a hosted or production claim.
|