roadmap: prints "validated successfully" for IDs that violate the tool's own ID format rule
Maintainers usually reply within 1 day
A pull request for this has already been merged.
- #419 by @Kuldeep2822k — merged
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- cli
Research direction
The check that only tests for an empty id is at src/cli/roadmap.ts:422, before anything is written to the vault. The format rule lives in src/engine/topic-id.ts (lines 26-53) and is enforced later by src/validation/rules/valid-topic-id-format.ts. Run the repro YAML through roadmap --from ... --yes to confirm exit 0, then make it exit 3 with zero bytes written and name each bad ID in the error.
Written by the indexing model from the issue text.
Description
Summary
roadmap --from checks only that id is non-empty, writes whatever it accepted, and reports success. validate then rejects the same IDs. A pre-write gate that passes unparseable IDs is not a validation gate.
Repro
topics:
- {id: T-Alpha, title: Uppercase, path: a.md}
- {id: bad-noprefix, title: NoPrefix, path: b.md}
- {id: T-bad_slug, title: Underscore, path: c.md}
| command | exit | output |
|---|---|---|
roadmap --from badids.yaml --yes |
0 | Roadmap validated successfully. |
grep palee_id vault/*.md |
— | T-Alpha, bad-noprefix, T-bad_slug written to disk |
validate |
3 | ✗ Found 3 validation error(s): Invalid topic ID format … expected T- plus lowercase kebab-case slug |
Expected
Fail closed before any write, exit 3, naming each offending ID and the format rule — the same all-or-nothing behaviour roadmap already gets right for duplicate IDs, missing dependencies, cycles, invalid difficulty and vault escapes (all verified separately: exit 3, zero bytes written).
Where
src/cli/roadmap.ts:422 tests only if (!id). The format rule is src/engine/topic-id.ts:26-53, enforced after the fact by src/validation/rules/valid-topic-id-format.ts.
Impact
Bad IDs land in the vault, so edges naming them resolve inconsistently, and the learner discovers it only in a later validate run — after the write already happened.
Environment
- palee 0.6.0, local build from
mainat02dacd0(installed aspalee-test; reproduce withpalee) - Node v24.19.0, Windows 11 x64, Git Bash
- Vault: MIT-licensed Microsoft/OSSU curriculum markdown, 21-187 notes per vault
- Every command was run for real; exit codes captured by command substitution (never
$?after a pipe)
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 23h 23m
- Merged PRs (30d)
- 163
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing 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.
More from Kuldeep2822k/cli
-
core priority: medium tests
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Kuldeep2822k/cli#484 ·
Maintainers usually reply within 1 day
-
bug core priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Kuldeep2822k/cli#343 · 1 comment ·
Maintainers usually reply within 1 day
-
bug core priority: low
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Kuldeep2822k/cli#342 · 1 comment ·
Maintainers usually reply within 1 day
-
bug core tests
Difficulty 4/5 3-5 days Newbie friendliness 42/100
Kuldeep2822k/cli#514 ·
Maintainers usually reply within 1 day
-
bug tests
Difficulty 5/5 Over a week Newbie friendliness 25/100
Kuldeep2822k/cli#504 ·
Maintainers usually reply within 1 day
All issues in Kuldeep2822k/cli
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
phivk/rubiks-lab#33 ·
Maintainers usually reply within 1 day
-
BUG:Edit Album strips spaces from the password so albums with a leading/trailing space in the password can't be editedPossibly taken @ManyaJain111 claimed this today. Openbug enhancement possible-duplicate
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
AOSSIE-Org/PictoPy#1637 · 4 comments ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
chaitin/MonkeyCode#1437 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
area:cards enhancement migration ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
fil-donadoni/tolaria#6309 ·
Maintainers usually reply within 1 day