Milestone track
Claude Code skills for running models cost-effectively: security gates (secret scanner, commit-gate), model-quality tooling (eval harness, token-squeeze, compact-io, opus-workers), review/advisory (trusted-advisor, audit, skill-vet, research-brief), and a read-only reorg-proposal advisor.
npx -y skills add Evan-Daruwalla/claude-skill-suite --skill milestone-trackAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 28 days oldThe repository was created 28 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
READ-ONLY roadmap status rollup for a PRD_ROADMAP.md-style doc. Parses markdown checkboxes ("- [ ]"/"- [x]"), table-cell glyphs (☐/☑), ~~struck~~ items (counted as dropped/folded, NEVER as open), and milestone headings ("## N.", "### M...", rows of a MILESTONES table), then rolls up per-milestone done/open/struck counts, an overall completion %, and the FIRST open item as "next:". Fork-aware: if a "## CURRENT DIRECTION" heading exists, default scope is that fork section only (--all covers the whole file), and the output says which scope it used. Use when the user says "milestone status", "roadmap rollup", "how much of the PRD is done", "what's next on the roadmap", "PRD progress", or "milestone-track". Never edits the PRD. Deterministic, zero dependencies, no model calls.
SKILL.md
4.8 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
milestone-track — roadmap status rollup
The engine is milestone-track.js (portable Node, zero deps). It reads a PRD in
this common markdown-roadmap format and reports, per milestone, how many status
items are done vs open vs struck, an overall completion percentage, and the
first open item to work next. It is a report, not a gate — it never touches
the PRD and exits 0 even when work is open. It understands two common PRD
mutation idioms: ~~struck~~ items are counted as dropped/folded (never as
open — "REMOVE by striking through in place"), and a ## CURRENT DIRECTION
heading means only the current tree is rolled up by default ("exactly one
current direction").
What it counts
- Checkboxes —
- [x]done,- [ ]open (SUCCESS CRITERIA lists). - Table glyphs —
☑done,☐open in any table cell (e.g. the F-M0 OUTPUT survivors table's "built?" column). - Struck items — anything wrapped in
~~...~~(a struck checkbox or a struck bullet) is counted as struck, separately, and excluded from the done/open percentage denominator. - Milestones — items bucket under the nearest preceding milestone marker:
a
## N./### M...heading, or a row of a MILESTONES table. A heading and a table row that share a label (e.g.### M1and| M1 | ... |) merge into one bucket. Milestones with zero status items are omitted from the report.
Commands
node milestone-track.js [--file <path>] [--all]
node milestone-track.js --canary
node milestone-track.js --help
- default reads
PRD_ROADMAP.mdin the current directory. If a## CURRENT DIRECTIONheading exists, the rollup is scoped to that fork section (heading → end of file); the output line names the scope. - --all ignores the fork and rolls up the entire file (both the superseded original tree and the current fork).
- --file
<path>points at a different roadmap. - --canary self-test (below).
Examples
- A PRD with a superseded tree and an active fork:
node milestone-track.jsrolls up just the## CURRENT DIRECTIONsection — its success criteria and milestone tables — with the first open item asnext:. - Whole-file view including the completed original tree:
node milestone-track.js --all— adds the original success-criteria bucket alongside the fork's. - A different project's PRD:
node milestone-track.js --file /path/to/PRD_ROADMAP.md.
Scope & percentage semantics
- Fork scope (default when
## CURRENT DIRECTIONis present) = from that heading to EOF — deliberately NOT "until the next##", because the fork's own F1/F2/…/F-M0 sections are all##headings that belong to it. The report always prints which scope ran, so a fork rollup is never mistaken for a whole-file one. - Overall % = done / (done + open). Struck items are excluded from the
denominator (they are neither open work nor a completed criterion). A milestone
with no done/open items shows
n/a.
Windows notes
- Pure Node stdlib; no shell quoting traps. Handles both
\nand\r\nline endings, so a CRLF-saved PRD parses identically. - Reads the file as UTF-8, so
☐/☑glyphs and em-dashes are matched correctly (no PowerShellSet-ContentANSI round-trip involved — the tool only reads).
Exit codes
0 always — it is a report, not a gate (open work does not fail it) ·
2 usage/parse error only (unknown flag, or a missing/unreadable --file).
Verification (the done-check)
node milestone-track.js --canary
Self-tests both directions on a bundled fixture (modeled on a typical PRD: a
## CURRENT DIRECTION fork, - [x]/- [ ] checkboxes, a ☑/☐ glyph table, a
MILESTONES table whose rows merge with ### M... headings by label, and one
~~struck~~ item). It asserts exact per-milestone counts, correct next-item
detection, that struck items never inflate done/open, and that default (fork)
scope genuinely differs from --all. MUST print CANARY PASS 16/16 before you
trust a rollup.
Gives 0 of the 12 instructions most roadmap strategy skills give in ~1.1k tokens
Counted across 591 of the 672 authors here whose files we hold, read 2026-08-06
- read product marketing context before asking questionsin 21 of 591, across 10 files
- base price on perceived value, not costin 15 of 591, across 4 files
- compact after finalizing a planin 14 of 591, across 9 files
- differentiate tiers using features, limits, or supportin 14 of 591, across 3 files
- use Van Westendorp to find acceptable price rangein 13 of 591, across 2 files
- use MaxDiff to identify highly valued featuresin 13 of 591, across 2 files
- map topics to buyer journey stagesin 12 of 591, across 6 files
- Extract domain capabilities and classify subdomainsin 11 of 591, across 1 file
- Define bounded contexts around consistency and ownershipin 11 of 591, across 1 file
- Establish a ubiquitous language glossary and anti-termsin 11 of 591, across 1 file
- Capture context boundaries in ADRs before implementationin 11 of 591, across 1 file
- Open the strategic design template if neededin 11 of 591, across 1 file
Said here and by no other author read
- run milestone-track.js to roll up roadmap status
- run the canary test before trusting a rollup
- scope the rollup to the current direction section by default
- use the --all flag to roll up the entire file
- use the --file flag to specify a roadmap path
- count checkboxes as done or open
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.