@noodleseed/agent-kit 0.43.0 → 0.44.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 +253 -237
- package/package.json +1 -1
- package/skills/claude-code/SKILL.md +1 -1
- package/skills/claude-code/authoring-mcp-servers/SKILL.md +1 -1
- package/skills/claude-code/building-mcp-apps/SKILL.md +1 -1
- package/skills/claude-code/connecting-apis-to-mcp/SKILL.md +1 -1
- package/skills/claude-code/debugging-mcp-delivery/SKILL.md +1 -1
- package/skills/claude-code/deploying-mcp-services/SKILL.md +1 -1
- package/skills/claude-code/designing-mcp-products/SKILL.md +1 -1
- package/skills/claude-code/embedding-mcp-assistants/SKILL.md +1 -1
- package/skills/claude-code/examples/customer-auth/README.md +13 -0
- package/skills/claude-code/examples/hello/README.md +2 -0
- package/skills/claude-code/executing-noodle-plans/SKILL.md +51 -0
- package/skills/claude-code/publishing-mcp-integrations/SKILL.md +1 -1
- package/skills/claude-code/references/authoring-workflow.md +7 -0
- package/skills/claude-code/references/sdk-surface.md +1 -1
- package/skills/claude-code/reporting-noodle-feedback/SKILL.md +1 -1
- package/skills/claude-code/verifying-mcp-delivery/SKILL.md +1 -1
- package/skills/codex/SKILL.md +1 -1
- package/skills/codex/authoring-mcp-servers/SKILL.md +1 -1
- package/skills/codex/building-mcp-apps/SKILL.md +1 -1
- package/skills/codex/connecting-apis-to-mcp/SKILL.md +1 -1
- package/skills/codex/debugging-mcp-delivery/SKILL.md +1 -1
- package/skills/codex/deploying-mcp-services/SKILL.md +1 -1
- package/skills/codex/designing-mcp-products/SKILL.md +1 -1
- package/skills/codex/embedding-mcp-assistants/SKILL.md +1 -1
- package/skills/codex/examples/customer-auth/README.md +13 -0
- package/skills/codex/examples/hello/README.md +2 -0
- package/skills/codex/executing-noodle-plans/SKILL.md +51 -0
- package/skills/codex/publishing-mcp-integrations/SKILL.md +1 -1
- package/skills/codex/references/authoring-workflow.md +7 -0
- package/skills/codex/references/sdk-surface.md +1 -1
- package/skills/codex/reporting-noodle-feedback/SKILL.md +1 -1
- package/skills/codex/verifying-mcp-delivery/SKILL.md +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noodleseed/agent-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.44.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,7 +3,7 @@ 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.44.0 hash:cd6ca0d915e6acb9 -->
|
|
7
7
|
|
|
8
8
|
# Noodle Seed
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: authoring-mcp-servers
|
|
|
3
3
|
description: "Use when creating or extending a headless Noodle Seed MCP server, tool, resource, prompt, or typed model-facing capability."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:0b2fd8c7e43fc69f -->
|
|
7
7
|
|
|
8
8
|
# authoring-mcp-servers
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: building-mcp-apps
|
|
|
3
3
|
description: "Use when a Noodle Seed MCP App, widget, interactive card, visual interaction, or host-visible UI is the primary requested outcome."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:f7fa54992c8d7692 -->
|
|
7
7
|
|
|
8
8
|
# building-mcp-apps
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: connecting-apis-to-mcp
|
|
|
3
3
|
description: "Use when credentials, an API URL, an OpenAPI document, or an observed response must become real Noodle Seed MCP behavior."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:1e86b8704f407bd3 -->
|
|
7
7
|
|
|
8
8
|
# connecting-apis-to-mcp
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: debugging-mcp-delivery
|
|
|
3
3
|
description: "Use when an existing Noodle Seed MCP project has a concrete validation, runtime, connector, App, host, deployment, or production failure."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:aa715bae12041d7c -->
|
|
7
7
|
|
|
8
8
|
# debugging-mcp-delivery
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: deploying-mcp-services
|
|
|
3
3
|
description: "Use when the user explicitly requests a Noodle Seed hosted link, configuration write, deployment, access change, rollback, or connection write."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:93e735b7ffb45df1 -->
|
|
7
7
|
|
|
8
8
|
# deploying-mcp-services
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: designing-mcp-products
|
|
|
3
3
|
description: "Use when a Noodle Seed MCP product idea needs conversational fit, user benefit, scope, interaction, or evidence design before implementation."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:76cce86729cffbee -->
|
|
7
7
|
|
|
8
8
|
# designing-mcp-products
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: embedding-mcp-assistants
|
|
|
3
3
|
description: "Use when embedding a Noodle assistant into an existing SaaS or web application with browser, identity, session, and credential boundaries."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:5d8f40f904d6ab4b -->
|
|
7
7
|
|
|
8
8
|
# embedding-mcp-assistants
|
|
9
9
|
|
|
@@ -21,6 +21,19 @@ The two tools chain: `list_my_organizations` surfaces the `org_id`s the customer
|
|
|
21
21
|
`list_org_apps` takes one of those `org_id`s. There is no NoodleSeed-specific SDK helper. The downstream API
|
|
22
22
|
is an ordinary authored HTTP connector.
|
|
23
23
|
|
|
24
|
+
## Direct or federated OIDC instead of the built-in adapter
|
|
25
|
+
|
|
26
|
+
This flagship uses the managed Firebase adapter. If an app replaces it with `customerAuth.oidc(...)` or
|
|
27
|
+
`customerAuth.federatedOidc(...)`, the app developer owns the authorization server. It must publish the
|
|
28
|
+
primary path-inserted RFC 8414 URL as direct HTTP 200 JSON with the exact issuer, HTTPS authorization/token/
|
|
29
|
+
registration/JWKS endpoints, authorization-code and refresh grants, PKCE S256, public-client auth method
|
|
30
|
+
`none`, RFC 8707 resource handling, an access-token `aud` equal to the exact MCP URL, and public signing keys.
|
|
31
|
+
|
|
32
|
+
Run `noodle auth doctor src/server.ts` before sharing the endpoint. Its issuer-readiness probes perform
|
|
33
|
+
bounded read-only GET checks and never register a client. A successful
|
|
34
|
+
`noodle deploy --access customers` reports the same findings as nonblocking warnings; the application team
|
|
35
|
+
repairs the issuer rather than adding a Noodle OAuth proxy.
|
|
36
|
+
|
|
24
37
|
During MCP OAuth login, Noodle Cloud hosts the Firebase bridge page at
|
|
25
38
|
`https://cloud.noodleseed.dev/oauth/customer/firebase/authorize`. The customer app does not add an
|
|
26
39
|
authorization route. The SaaS operator only configures Firebase Auth to allow the Noodle Cloud origin, and
|
|
@@ -9,6 +9,8 @@ When an installed Noodle Developer plugin drives this example, its skill runs th
|
|
|
9
9
|
`noodle` commands through the plugin-managed, version-pinned launcher and isolated host profile.
|
|
10
10
|
Do not install or update a global CLI: the coding agent writes and tests this source while Noodle
|
|
11
11
|
guides and operates the validate, preview, deploy, inspect, and debug workflow.
|
|
12
|
+
For an approved implementation plan, the installed `executing-noodle-plans` skill owns the
|
|
13
|
+
test-first task, review, recovery, and final-verification loop.
|
|
12
14
|
If that agent discovers a Noodle Seed product gap while working, the installed skill prepares a
|
|
13
15
|
sanitized `noodle feedback` proposal, discovers current fields from `noodle commands --json`, runs
|
|
14
16
|
`--dry-run --json` to inspect the exact normalized submission, diagnostics, and private destination,
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: executing-noodle-plans
|
|
3
|
+
description: "Use when the user asks to execute an approved, decision-complete implementation plan for a Noodle Seed project task by task with test-first changes, review, recovery, and final verification."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:6a9f132ddb79352e -->
|
|
7
|
+
|
|
8
|
+
# Execute a Noodle Seed implementation plan
|
|
9
|
+
|
|
10
|
+
Execute an approved plan without reopening settled design decisions. Keep implementation, review, and evidence scoped to the current repository and the authority the user granted.
|
|
11
|
+
|
|
12
|
+
## Preconditions
|
|
13
|
+
|
|
14
|
+
- Read the plan, repository instructions, current branch status, and the files named by the first incomplete task.
|
|
15
|
+
- Confirm the plan is decision-complete, test-first, compatible with the current code, and explicit about public contracts and required verification.
|
|
16
|
+
- Work in the repository-required isolated branch or worktree and preserve unrelated changes.
|
|
17
|
+
- If current code invalidates the plan or two requirements conflict, stop before editing and ask which requirement governs.
|
|
18
|
+
|
|
19
|
+
## Task loop
|
|
20
|
+
|
|
21
|
+
Execute one task at a time in plan order:
|
|
22
|
+
|
|
23
|
+
1. Restate the task boundary, expected behavior, focused failing test, and files in scope.
|
|
24
|
+
2. Add or update the focused test first and run it to confirm the expected failure when practical.
|
|
25
|
+
3. Implement only the behavior required to make that test pass. Do not add compatibility paths, abstractions, or adjacent cleanup the plan did not require.
|
|
26
|
+
4. Run the focused test, then the package-level checks named by the plan.
|
|
27
|
+
5. Review the task diff for plan compliance, correctness, security, type safety, and unnecessary surface area.
|
|
28
|
+
6. Record completion in the plan checkbox when it is writable and in a focused conventional commit.
|
|
29
|
+
|
|
30
|
+
When the active host provides isolated task workers and user authorization permits delegation, use a fresh implementer for an independent task and a separate reviewer after it. Give each worker only the task requirements, binding global constraints, file paths, and required evidence. Never run workers in parallel when their files or contracts overlap. Execute inline when workers are unavailable, tasks are tightly coupled, or delegation is not authorized.
|
|
31
|
+
|
|
32
|
+
## Review and recovery
|
|
33
|
+
|
|
34
|
+
- Independent review must compare the task requirements with the exact task diff and test evidence; implementer self-review does not replace it when a reviewer is available.
|
|
35
|
+
- Return concrete findings to the implementer, rerun the tests that cover each correction, and review the correction diff again.
|
|
36
|
+
- Allow at most three correction rounds for the same finding. Then stop with the unresolved requirement, attempted fixes, and current evidence instead of silently accepting drift.
|
|
37
|
+
- On context loss or interruption, resume from the plan checkboxes, git status, and git log; verify the last completed task before starting the first incomplete one.
|
|
38
|
+
|
|
39
|
+
## Completion
|
|
40
|
+
|
|
41
|
+
- Review the complete branch diff against the plan and all accepted design constraints.
|
|
42
|
+
- Run the focused tests, affected package checks, generated-surface checks, and the repository readiness gate.
|
|
43
|
+
- For Noodle application behavior, also run the validation, test, check, preview, or hosted evidence level selected by the owning Noodle Seed build or verification skill.
|
|
44
|
+
- Report commits, evidence, residual risk, and the first unproven layer. Do not claim deployment, publication, merge, or production behavior that was not performed.
|
|
45
|
+
- Hand delivery to the repository workflow; executing a plan does not itself authorize merge, deploy, publication, or other external mutation.
|
|
46
|
+
|
|
47
|
+
## Stop conditions
|
|
48
|
+
|
|
49
|
+
- Stop before implementation when the plan is incomplete or stale in a way that changes behavior, architecture, security, or public contracts.
|
|
50
|
+
- Stop after three unsuccessful correction rounds on the same load-bearing finding.
|
|
51
|
+
- Stop before any external mutation or destructive action outside the user-authorized task boundary.
|
|
@@ -3,7 +3,7 @@ name: publishing-mcp-integrations
|
|
|
3
3
|
description: "Use when preparing, reviewing, or submitting a Noodle Seed MCP integration to a host or app directory."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:efffbf82007f935d -->
|
|
7
7
|
|
|
8
8
|
# publishing-mcp-integrations
|
|
9
9
|
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- Repair loop
|
|
8
8
|
- Connectors
|
|
9
9
|
- HTTP connector example (full server)
|
|
10
|
+
- Customer OAuth for remote MCP clients
|
|
10
11
|
- Delegated downstream auth (call your API as the signed-in user)
|
|
11
12
|
- Invocation context
|
|
12
13
|
- Compute connector example
|
|
@@ -101,6 +102,12 @@ Naming: connector operation names and tool names are lowercase-with-underscores.
|
|
|
101
102
|
|
|
102
103
|
More: `auth.kind` is `bearer` | `apiKey` (needs `header`) | `clientCredentials` | `delegatedOAuth` | `delegatedSessionCookie` | `delegatedTokenExchange`. For client credentials use `{ kind: "clientCredentials", tokenUrl, clientId, clientSecret, scopes? }` (RFC-6749 grant); for a non-standard partner token endpoint add `profile: "custom"` with a `custom: { requestFormat, clientIdField, clientSecretField, tokenResponsePath, expirySource }` descriptor. Do not put credential headers in operation `headers`; use connector `auth`. Use `.compute(name, { input, output, run })` for a sandboxed transform; `provides:` (instead of `use:`) exposes a connector only to compute `callOperation`; and `noodle import openapi <file>` generates a connector from an OpenAPI spec.
|
|
103
104
|
|
|
105
|
+
## Customer OAuth for remote MCP clients
|
|
106
|
+
|
|
107
|
+
For `customerAuth.oidc(...)` and `.federatedOidc(...)`, the application developer owns the standards-compliant authorization server. Noodle verifies its access tokens; it does not proxy discovery, create OAuth clients, or repair the upstream server. For issuer `https://id.example.com/oauth`, publish the path-inserted RFC 8414 document at `https://id.example.com/.well-known/oauth-authorization-server/oauth` as direct unauthenticated HTTP 200 JSON — never a login redirect.
|
|
108
|
+
|
|
109
|
+
That metadata must expose HTTPS `authorization_endpoint`, `token_endpoint`, `jwks_uri`, and RFC 7591 `registration_endpoint`; advertise authorization-code and refresh-token grants, Dynamic Client Registration, PKCE with `code_challenge_methods_supported: ["S256"]`, and public clients with `token_endpoint_auth_methods_supported: ["none"]`. Implement RFC 8707 `resource`, mint access-token `aud` for the exact MCP resource URL, and publish only public signing keys in JWKS. Run `noodle auth doctor src/server.ts`; its issuer-readiness probes perform bounded read-only GET checks and never register a client. A successful `noodle deploy --access customers` reports the same readiness without turning a diagnostic failure into a failed deployment.
|
|
110
|
+
|
|
104
111
|
## Delegated downstream auth (call your API as the signed-in user)
|
|
105
112
|
|
|
106
113
|
Use delegated connector auth when the downstream API must enforce its own per-user authorization — a shared service credential plus a forwarded user id would bypass it. Three shapes exist; pick by who owns the downstream:
|
|
@@ -41,7 +41,7 @@ Platform helper connectors are explicit subpath imports from `@noodleseed/one/pl
|
|
|
41
41
|
|
|
42
42
|
### Customer auth
|
|
43
43
|
|
|
44
|
-
- `customerAuth.oidc(...)`, `.
|
|
44
|
+
- `customerAuth.oidc(...)`, `.federatedOidc(...)`, `.firebase(...)`, or `.microsoft(...)` — end-user/customer identity for `--access customers` deployments. A direct/federated issuer must publish direct RFC 8414 discovery, Dynamic Client Registration, authorization-code + refresh grants, PKCE `code_challenge_methods_supported: ["S256"]`, public-client `token_endpoint_auth_methods_supported: ["none"]`, and a public JWKS; verify it with `noodle auth doctor src/server.ts`. Firebase Web App fields are browser-visible configuration: use `variable(...)`, not `secret(...)`, and restrict the key in Firebase.
|
|
45
45
|
|
|
46
46
|
### Sessions
|
|
47
47
|
|
|
@@ -3,7 +3,7 @@ name: reporting-noodle-feedback
|
|
|
3
3
|
description: "Use when a Noodle Seed bug, misleading instruction, missing capability, or concrete product improvement should be proposed to the user."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:0f404109f4845683 -->
|
|
7
7
|
|
|
8
8
|
# reporting-noodle-feedback
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: verifying-mcp-delivery
|
|
|
3
3
|
description: "Use when proving a Noodle Seed MCP project works at a named compile, local, connector, App, host, deployment, or production evidence level."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:6ef6ef551e26b78e -->
|
|
7
7
|
|
|
8
8
|
# verifying-mcp-delivery
|
|
9
9
|
|
package/skills/codex/SKILL.md
CHANGED
|
@@ -3,7 +3,7 @@ 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.44.0 hash:cd6ca0d915e6acb9 -->
|
|
7
7
|
|
|
8
8
|
# Noodle Seed
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: authoring-mcp-servers
|
|
|
3
3
|
description: "Use when creating or extending a headless Noodle Seed MCP server, tool, resource, prompt, or typed model-facing capability."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:0b2fd8c7e43fc69f -->
|
|
7
7
|
|
|
8
8
|
# authoring-mcp-servers
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: building-mcp-apps
|
|
|
3
3
|
description: "Use when a Noodle Seed MCP App, widget, interactive card, visual interaction, or host-visible UI is the primary requested outcome."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:f7fa54992c8d7692 -->
|
|
7
7
|
|
|
8
8
|
# building-mcp-apps
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: connecting-apis-to-mcp
|
|
|
3
3
|
description: "Use when credentials, an API URL, an OpenAPI document, or an observed response must become real Noodle Seed MCP behavior."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:1e86b8704f407bd3 -->
|
|
7
7
|
|
|
8
8
|
# connecting-apis-to-mcp
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: debugging-mcp-delivery
|
|
|
3
3
|
description: "Use when an existing Noodle Seed MCP project has a concrete validation, runtime, connector, App, host, deployment, or production failure."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:aa715bae12041d7c -->
|
|
7
7
|
|
|
8
8
|
# debugging-mcp-delivery
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: deploying-mcp-services
|
|
|
3
3
|
description: "Use when the user explicitly requests a Noodle Seed hosted link, configuration write, deployment, access change, rollback, or connection write."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:93e735b7ffb45df1 -->
|
|
7
7
|
|
|
8
8
|
# deploying-mcp-services
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: designing-mcp-products
|
|
|
3
3
|
description: "Use when a Noodle Seed MCP product idea needs conversational fit, user benefit, scope, interaction, or evidence design before implementation."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:76cce86729cffbee -->
|
|
7
7
|
|
|
8
8
|
# designing-mcp-products
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: embedding-mcp-assistants
|
|
|
3
3
|
description: "Use when embedding a Noodle assistant into an existing SaaS or web application with browser, identity, session, and credential boundaries."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:5d8f40f904d6ab4b -->
|
|
7
7
|
|
|
8
8
|
# embedding-mcp-assistants
|
|
9
9
|
|
|
@@ -21,6 +21,19 @@ The two tools chain: `list_my_organizations` surfaces the `org_id`s the customer
|
|
|
21
21
|
`list_org_apps` takes one of those `org_id`s. There is no NoodleSeed-specific SDK helper. The downstream API
|
|
22
22
|
is an ordinary authored HTTP connector.
|
|
23
23
|
|
|
24
|
+
## Direct or federated OIDC instead of the built-in adapter
|
|
25
|
+
|
|
26
|
+
This flagship uses the managed Firebase adapter. If an app replaces it with `customerAuth.oidc(...)` or
|
|
27
|
+
`customerAuth.federatedOidc(...)`, the app developer owns the authorization server. It must publish the
|
|
28
|
+
primary path-inserted RFC 8414 URL as direct HTTP 200 JSON with the exact issuer, HTTPS authorization/token/
|
|
29
|
+
registration/JWKS endpoints, authorization-code and refresh grants, PKCE S256, public-client auth method
|
|
30
|
+
`none`, RFC 8707 resource handling, an access-token `aud` equal to the exact MCP URL, and public signing keys.
|
|
31
|
+
|
|
32
|
+
Run `noodle auth doctor src/server.ts` before sharing the endpoint. Its issuer-readiness probes perform
|
|
33
|
+
bounded read-only GET checks and never register a client. A successful
|
|
34
|
+
`noodle deploy --access customers` reports the same findings as nonblocking warnings; the application team
|
|
35
|
+
repairs the issuer rather than adding a Noodle OAuth proxy.
|
|
36
|
+
|
|
24
37
|
During MCP OAuth login, Noodle Cloud hosts the Firebase bridge page at
|
|
25
38
|
`https://cloud.noodleseed.dev/oauth/customer/firebase/authorize`. The customer app does not add an
|
|
26
39
|
authorization route. The SaaS operator only configures Firebase Auth to allow the Noodle Cloud origin, and
|
|
@@ -9,6 +9,8 @@ When an installed Noodle Developer plugin drives this example, its skill runs th
|
|
|
9
9
|
`noodle` commands through the plugin-managed, version-pinned launcher and isolated host profile.
|
|
10
10
|
Do not install or update a global CLI: the coding agent writes and tests this source while Noodle
|
|
11
11
|
guides and operates the validate, preview, deploy, inspect, and debug workflow.
|
|
12
|
+
For an approved implementation plan, the installed `executing-noodle-plans` skill owns the
|
|
13
|
+
test-first task, review, recovery, and final-verification loop.
|
|
12
14
|
If that agent discovers a Noodle Seed product gap while working, the installed skill prepares a
|
|
13
15
|
sanitized `noodle feedback` proposal, discovers current fields from `noodle commands --json`, runs
|
|
14
16
|
`--dry-run --json` to inspect the exact normalized submission, diagnostics, and private destination,
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: executing-noodle-plans
|
|
3
|
+
description: "Use when the user asks to execute an approved, decision-complete implementation plan for a Noodle Seed project task by task with test-first changes, review, recovery, and final verification."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:6a9f132ddb79352e -->
|
|
7
|
+
|
|
8
|
+
# Execute a Noodle Seed implementation plan
|
|
9
|
+
|
|
10
|
+
Execute an approved plan without reopening settled design decisions. Keep implementation, review, and evidence scoped to the current repository and the authority the user granted.
|
|
11
|
+
|
|
12
|
+
## Preconditions
|
|
13
|
+
|
|
14
|
+
- Read the plan, repository instructions, current branch status, and the files named by the first incomplete task.
|
|
15
|
+
- Confirm the plan is decision-complete, test-first, compatible with the current code, and explicit about public contracts and required verification.
|
|
16
|
+
- Work in the repository-required isolated branch or worktree and preserve unrelated changes.
|
|
17
|
+
- If current code invalidates the plan or two requirements conflict, stop before editing and ask which requirement governs.
|
|
18
|
+
|
|
19
|
+
## Task loop
|
|
20
|
+
|
|
21
|
+
Execute one task at a time in plan order:
|
|
22
|
+
|
|
23
|
+
1. Restate the task boundary, expected behavior, focused failing test, and files in scope.
|
|
24
|
+
2. Add or update the focused test first and run it to confirm the expected failure when practical.
|
|
25
|
+
3. Implement only the behavior required to make that test pass. Do not add compatibility paths, abstractions, or adjacent cleanup the plan did not require.
|
|
26
|
+
4. Run the focused test, then the package-level checks named by the plan.
|
|
27
|
+
5. Review the task diff for plan compliance, correctness, security, type safety, and unnecessary surface area.
|
|
28
|
+
6. Record completion in the plan checkbox when it is writable and in a focused conventional commit.
|
|
29
|
+
|
|
30
|
+
When the active host provides isolated task workers and user authorization permits delegation, use a fresh implementer for an independent task and a separate reviewer after it. Give each worker only the task requirements, binding global constraints, file paths, and required evidence. Never run workers in parallel when their files or contracts overlap. Execute inline when workers are unavailable, tasks are tightly coupled, or delegation is not authorized.
|
|
31
|
+
|
|
32
|
+
## Review and recovery
|
|
33
|
+
|
|
34
|
+
- Independent review must compare the task requirements with the exact task diff and test evidence; implementer self-review does not replace it when a reviewer is available.
|
|
35
|
+
- Return concrete findings to the implementer, rerun the tests that cover each correction, and review the correction diff again.
|
|
36
|
+
- Allow at most three correction rounds for the same finding. Then stop with the unresolved requirement, attempted fixes, and current evidence instead of silently accepting drift.
|
|
37
|
+
- On context loss or interruption, resume from the plan checkboxes, git status, and git log; verify the last completed task before starting the first incomplete one.
|
|
38
|
+
|
|
39
|
+
## Completion
|
|
40
|
+
|
|
41
|
+
- Review the complete branch diff against the plan and all accepted design constraints.
|
|
42
|
+
- Run the focused tests, affected package checks, generated-surface checks, and the repository readiness gate.
|
|
43
|
+
- For Noodle application behavior, also run the validation, test, check, preview, or hosted evidence level selected by the owning Noodle Seed build or verification skill.
|
|
44
|
+
- Report commits, evidence, residual risk, and the first unproven layer. Do not claim deployment, publication, merge, or production behavior that was not performed.
|
|
45
|
+
- Hand delivery to the repository workflow; executing a plan does not itself authorize merge, deploy, publication, or other external mutation.
|
|
46
|
+
|
|
47
|
+
## Stop conditions
|
|
48
|
+
|
|
49
|
+
- Stop before implementation when the plan is incomplete or stale in a way that changes behavior, architecture, security, or public contracts.
|
|
50
|
+
- Stop after three unsuccessful correction rounds on the same load-bearing finding.
|
|
51
|
+
- Stop before any external mutation or destructive action outside the user-authorized task boundary.
|
|
@@ -3,7 +3,7 @@ name: publishing-mcp-integrations
|
|
|
3
3
|
description: "Use when preparing, reviewing, or submitting a Noodle Seed MCP integration to a host or app directory."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:efffbf82007f935d -->
|
|
7
7
|
|
|
8
8
|
# publishing-mcp-integrations
|
|
9
9
|
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- Repair loop
|
|
8
8
|
- Connectors
|
|
9
9
|
- HTTP connector example (full server)
|
|
10
|
+
- Customer OAuth for remote MCP clients
|
|
10
11
|
- Delegated downstream auth (call your API as the signed-in user)
|
|
11
12
|
- Invocation context
|
|
12
13
|
- Compute connector example
|
|
@@ -101,6 +102,12 @@ Naming: connector operation names and tool names are lowercase-with-underscores.
|
|
|
101
102
|
|
|
102
103
|
More: `auth.kind` is `bearer` | `apiKey` (needs `header`) | `clientCredentials` | `delegatedOAuth` | `delegatedSessionCookie` | `delegatedTokenExchange`. For client credentials use `{ kind: "clientCredentials", tokenUrl, clientId, clientSecret, scopes? }` (RFC-6749 grant); for a non-standard partner token endpoint add `profile: "custom"` with a `custom: { requestFormat, clientIdField, clientSecretField, tokenResponsePath, expirySource }` descriptor. Do not put credential headers in operation `headers`; use connector `auth`. Use `.compute(name, { input, output, run })` for a sandboxed transform; `provides:` (instead of `use:`) exposes a connector only to compute `callOperation`; and `noodle import openapi <file>` generates a connector from an OpenAPI spec.
|
|
103
104
|
|
|
105
|
+
## Customer OAuth for remote MCP clients
|
|
106
|
+
|
|
107
|
+
For `customerAuth.oidc(...)` and `.federatedOidc(...)`, the application developer owns the standards-compliant authorization server. Noodle verifies its access tokens; it does not proxy discovery, create OAuth clients, or repair the upstream server. For issuer `https://id.example.com/oauth`, publish the path-inserted RFC 8414 document at `https://id.example.com/.well-known/oauth-authorization-server/oauth` as direct unauthenticated HTTP 200 JSON — never a login redirect.
|
|
108
|
+
|
|
109
|
+
That metadata must expose HTTPS `authorization_endpoint`, `token_endpoint`, `jwks_uri`, and RFC 7591 `registration_endpoint`; advertise authorization-code and refresh-token grants, Dynamic Client Registration, PKCE with `code_challenge_methods_supported: ["S256"]`, and public clients with `token_endpoint_auth_methods_supported: ["none"]`. Implement RFC 8707 `resource`, mint access-token `aud` for the exact MCP resource URL, and publish only public signing keys in JWKS. Run `noodle auth doctor src/server.ts`; its issuer-readiness probes perform bounded read-only GET checks and never register a client. A successful `noodle deploy --access customers` reports the same readiness without turning a diagnostic failure into a failed deployment.
|
|
110
|
+
|
|
104
111
|
## Delegated downstream auth (call your API as the signed-in user)
|
|
105
112
|
|
|
106
113
|
Use delegated connector auth when the downstream API must enforce its own per-user authorization — a shared service credential plus a forwarded user id would bypass it. Three shapes exist; pick by who owns the downstream:
|
|
@@ -41,7 +41,7 @@ Platform helper connectors are explicit subpath imports from `@noodleseed/one/pl
|
|
|
41
41
|
|
|
42
42
|
### Customer auth
|
|
43
43
|
|
|
44
|
-
- `customerAuth.oidc(...)`, `.
|
|
44
|
+
- `customerAuth.oidc(...)`, `.federatedOidc(...)`, `.firebase(...)`, or `.microsoft(...)` — end-user/customer identity for `--access customers` deployments. A direct/federated issuer must publish direct RFC 8414 discovery, Dynamic Client Registration, authorization-code + refresh grants, PKCE `code_challenge_methods_supported: ["S256"]`, public-client `token_endpoint_auth_methods_supported: ["none"]`, and a public JWKS; verify it with `noodle auth doctor src/server.ts`. Firebase Web App fields are browser-visible configuration: use `variable(...)`, not `secret(...)`, and restrict the key in Firebase.
|
|
45
45
|
|
|
46
46
|
### Sessions
|
|
47
47
|
|
|
@@ -3,7 +3,7 @@ name: reporting-noodle-feedback
|
|
|
3
3
|
description: "Use when a Noodle Seed bug, misleading instruction, missing capability, or concrete product improvement should be proposed to the user."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:0f404109f4845683 -->
|
|
7
7
|
|
|
8
8
|
# reporting-noodle-feedback
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ name: verifying-mcp-delivery
|
|
|
3
3
|
description: "Use when proving a Noodle Seed MCP project works at a named compile, local, connector, App, host, deployment, or production evidence level."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- noodle-skill version:0.
|
|
6
|
+
<!-- noodle-skill version:0.44.0 hash:6ef6ef551e26b78e -->
|
|
7
7
|
|
|
8
8
|
# verifying-mcp-delivery
|
|
9
9
|
|