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.
Hello — we vendor the
payloadskill downstream and audited it againstpayload@3.86.0. Four things look wrong atmain(832d5bc). Happy to open a PR for any of them if useful; filing as one issue first so you can triage.1.
payload buildis 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. Frompayload@3.86.0,src/bin/index.ts:There is no
build. An unrecognised script falls through toconsole.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:next buildis the command that actually works —withPayloadruns 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-typesdoes not exist (SKILL.md:417)The string
--no-typesdoes not appear anywhere inpayload@3.86.0'sdist/. The bin parses argv withminimist, 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:
reference/HOOKS.md#context(×2)## Hook Context, so the anchor is#hook-contextreference/FIELDS.md#validationFIELDS.mdhas no validation section at allreference/QUERIES.md#field-selectionQUERIES.mdhas no field-selection section at allThe
HOOKS.mdpair 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@experimentalupstream, and the skill does not say soSKILL.md recommends it unconditionally — "Use
slugField()for all slugs instead of hand-rolling" (line 92). Butpayload@3.86.0marks it experimental, indist/fields/baseFields/slug/index.d.ts:"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
LICENSEfile (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.0type declarations anddist/bin/index.js, and againstskills/payload/**at832d5bc. Thanks for publishing the skill — the rest of it has been genuinely useful.