Plan2meal

WarnAudited by ClawScan on May 10, 2026.

Overview

This looks like a real Plan2Meal integration, but it needs review because its OAuth session handling can fall back to a shared default session and the registry under-declares its credential needs.

Review before installing. Use a trusted or self-hosted CONVEX_URL, only opt into the shared backend knowingly, and avoid using this skill in a runtime that might omit unique session IDs. The maintainer should fix the shared default session fallback and update registry credential metadata.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A mistaken or unintended command could delete a recipe or change a grocery list.

Why it was flagged

The skill exposes commands that mutate or delete Plan2Meal data. These actions are purpose-aligned and user-invoked, but they are consequential.

Skill content
`plan2meal delete <id>` ... `plan2meal list-create <name>` ... `plan2meal list-add <listId> <recipeId>`
Recommendation

Use destructive commands only with explicit user intent, and verify IDs before deleting or modifying lists.

What this means

If the runtime omits or reuses session IDs, one user's Plan2Meal login could be reused for another request, allowing recipe or grocery-list access under the wrong account.

Why it was flagged

OAuth sessions are retained in memory and keyed by sessionId, but the code falls back to a shared 'default' key when no sessionId is provided.

Skill content
const SESSION_TTL_MS = 1000 * 60 * 60 * 24 * 7; ... const sessionStore = new Map<string, Session>(); ... const sessionId = context.sessionId || 'default';
Recommendation

Require a unique user/session identifier for every OAuth flow, remove the shared default session fallback, and bind OAuth state and tokens to that identity.

What this means

Users relying on registry metadata may not realize the skill needs OAuth and backend configuration until reading the skill file.

Why it was flagged

The registry metadata does not advertise credentials, while SKILL.md declares required backend and OAuth environment variables.

Skill content
Required env vars: none; Env var declarations: none; Primary credential: none
Recommendation

Update registry metadata to declare the required environment variables and credential expectations.

What this means

Recipe, grocery-list, and authentication-related traffic will not be local-only.

Why it was flagged

The skill sends authentication and recipe/grocery data to a backend service. This is disclosed and purpose-aligned, with shared-backend use gated by an opt-in flag.

Skill content
Auth and recipe/grocery API traffic goes to configured `CONVEX_URL`. Shared backend usage is blocked unless `ALLOW_DEFAULT_BACKEND=true`.
Recommendation

Use a self-hosted or trusted `CONVEX_URL` for private data, and only set `ALLOW_DEFAULT_BACKEND=true` if you intentionally accept the shared backend.

What this means

It is harder to verify who maintains the code or compare it against an upstream project.

Why it was flagged

The registry does not provide a source repository or homepage for provenance review. No remote install script or hidden helper is shown, so this is a provenance note rather than a standalone concern.

Skill content
Source: unknown; Homepage: none
Recommendation

Prefer packages with a public source link, changelog, and reproducible build path, especially when OAuth and backend access are involved.