unic / unic/unic-agents-plugins
AGENTS.md contradicts itself on the Node version for the marketplace ingest workflow
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 16h 43m
- Merged PRs (30d)
- 19
Description
Problem
AGENTS.md now states two rules that contradict each other, and nothing in the file says which one wins.
The Tech stack section says:
- Runtime: Node.js ≥ 22.
.nvmrcis the source of truth for local dev (currently24.15.0) and is consumed byactions/setup-nodein CI.
The Marketplace ingest section, added in #478, says:
Both files are upstream templates, copied verbatim. Never hand-edit them and never reformat them.
One of those two files pins a Node version below the stated floor:
# .github/workflows/marketplace-ingest.yml
- uses: actions/setup-node@v4
with: { node-version: '20' }
The other two workflows read .nvmrc:
| workflow | Node version |
|---|---|
ci.yml |
node-version-file: .nvmrc |
streams-page.yml |
node-version-file: .nvmrc |
marketplace-ingest.yml |
node-version: '20' |
ci.yml also runs a node: ['22', '24'] test matrix, so 20 appears nowhere else in this repository.
No behaviour is broken today
The mapper needs node:fs, node:path, JSON, Buffer and process. Its own header declares its floor:
// 077 — repo → artefact-envelope mapper for CI pipelines. Zero dependencies (Node 18+).
So Node 20 runs it. This is a contradiction in the instructions an agent always loads, not a failing pipeline. The cost is that the next agent to read both sections has to guess, and either guess is defensible.
Two ways out
Keep the pin, name the exception. Add a sentence to the Marketplace ingest section saying the template's Node pin is below this repository's floor on purpose, because byte-identity with upstream is worth more than version consistency for a script that needs neither. Costs nothing, and the next re-copy from VP still reads as no diff.
Edit the pin, drop the verbatim claim for that file. Change the two lines to node-version-file: .nvmrc and say in the same section that this one file carries a local deviation. The workflow then follows the repo's runtime rule, and every future re-copy shows a diff a person has to re-apply by hand.
The first option is cheaper and keeps the re-copy clean. The second is more honest about which rule the repo actually enforces. Pick one and make AGENTS.md say so.
Whichever wins, a third option is worth ruling out explicitly: do not raise the pin to '24' and leave it hardcoded. That satisfies the floor, breaks byte-identity, and still ignores .nvmrc — the worst of both.
Provenance
Found by the review on #478. Scored 50 of 100 against that command's 80 threshold, so it was never posted to the PR and was deferred here by decision instead. The measurement above was taken on 2026-09-07 against commit 283a7ab.
Acceptance criteria
Not written yet — hence needs-specs. Whoever writes them should note that the evidence is a read, not a run: AGENTS.md either names the exception or the workflow reads .nvmrc, and the two sections agree either way.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the conflicting Runtime and Marketplace ingest sections in AGENTS.md, then compare them with .github/workflows/marketplace-ingest.yml, ci.yml, and streams-page.yml. Confirm the chosen policy with a maintainer, update AGENTS.md so the workflow and runtime guidance agree, and verify that the acceptance criteria are satisfied without changing workflow behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100