Skip to content

SKILL.md documents a payload build command that does not exist in Payload 3.x (+ 3 more, verified against 3.86.0) #7

Description

@IAmAlexander

Hello — we vendor the payload skill downstream and audited it against payload@3.86.0. Four things look wrong at main (832d5bc). Happy to open a PR for any of them if useful; filing as one issue first so you can triage.

1. payload build is not a Payload 3.x command (SKILL.md:415, 420, 443, 484)

The Build & Type Generation guidance instructs payload build. That command does not exist in 3.x. From payload@3.86.0, src/bin/index.ts:

const availableScripts = [
  'generate:db-schema',
  'generate:importmap',
  'generate:types',
  'info',
  'jobs:run',
  'jobs:handle-schedules',
  'run',
  ...migrateCommands,
] as const

There is no build. An unrecognised script falls through to console.error(\Unknown command: "${script}"`)andprocess.exit(1)`, so anyone following this gets a hard failure.

The compounding problem is line 420, which advises against next build:

generate:importmap … before a step that doesn't run payload build

next build is the command that actually works — withPayload runs import-map and type generation as part of it. So the skill currently steers users away from the working command and toward one that exits 1.

2. --no-types does not exist (SKILL.md:417)

Pass --no-types to skip type generation.

The string --no-types does not appear anywhere in payload@3.86.0's dist/. The bin parses argv with minimist, so the flag is silently ignored rather than erroring — arguably worse, since the user believes type generation was skipped.

3. Four dead relative anchors in SKILL.md

These resolve to nothing in the linked file:

Link in SKILL.md Problem
reference/HOOKS.md#context (×2) The heading is ## Hook Context, so the anchor is #hook-context
reference/FIELDS.md#validation FIELDS.md has no validation section at all
reference/QUERIES.md#field-selection QUERIES.md has no field-selection section at all

The HOOKS.md pair is a one-character fix. The other two point at content that does not exist — either the sections were planned and not written, or the links should be dropped.

4. slugField() is @experimental upstream, and the skill does not say so

SKILL.md recommends it unconditionally — "Use slugField() for all slugs instead of hand-rolling" (line 92). But payload@3.86.0 marks it experimental, in dist/fields/baseFields/slug/index.d.ts:

 * @experimental This field is experimental and may change or be removed in the future. Use at your own risk.
export declare const slugField: SlugField;

"Use for all slugs" is strong advice for an API the library says may be removed. A one-line caveat would be enough.

Also: no LICENSE file

The README declares MIT, but the repo has no LICENSE file (GitHub reports no detected licence). That makes vendoring awkward — we had to reconstruct the MIT text with a best-faith copyright line and disclose it as reconstructed. Adding the file upstream would settle it for everyone redistributing the skill.


Verification for all of the above was against payload@3.86.0 type declarations and dist/bin/index.js, and against skills/payload/** at 832d5bc. Thanks for publishing the skill — the rest of it has been genuinely useful.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions