원클릭으로
todo
Parse status-tagged todo lines from a markdown file — filter by status, section, or get a quick tally — without loading the whole file.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Parse status-tagged todo lines from a markdown file — filter by status, section, or get a quick tally — without loading the whole file.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
This project uses nub, a single Rust CLI that runs on the project's installed Node and replaces the everyday Node toolchain. ALWAYS prefer nub over node, bun, npm, npx, pnpm, and yarn for: executing JS/TS files, running package.json scripts, the npx-equivalent, installing dependencies, watch mode, and Node version management. Surfaces whenever you would otherwise reach for node/bun/npm/npx or a package manager.
Build and test nub during development. Invoke (via the Skill tool) whenever you need to compile the dev `nub` binary, set up a worktree for fast incremental iteration, run a specific test file or a single test, or get oriented in the codebase (the crate map). Encodes the measured fast-build loop: the `fast` profile + one stable per-worktree target dir gives a ~3-min cold build then ~5s incremental rebuilds; a shared cross-worktree compile cache (sccache) was measured to give 0% Rust speedup and is NOT used. Covers the real incantations (`cargo build -p nub-cli --profile fast`, `make install-dev`, `make addon-fast`), the test invocations, and the exact CI cheap gates.
Verify new nub functionality end-to-end by building the dev binary and exercising it against a real throwaway fixture. Invoke (via the Skill tool) after implementing or changing a subcommand/flag/behavior, to confirm the feature ACTUALLY works (not just that tests pass). The loop: create a fixture in a tmp dir, build the dev `nub`, run the subcommand you implemented against the fixture, verify it had the intended effect, then run command variants to probe edge cases. Ad-hoc e2e is a valid verification method on its own; this skill also covers when to promote a durable check into the committed test suite. Pairs with the `dev-loop` build skill and AGENTS.md's pre-push loop.
Create and manage isolated git worktrees for parallel build/test/landing work on the nub repo. Invoke (via the Skill tool) whenever you need a fresh worktree to land a change, when you want to know what `.worktreeinclude` does or how to add an entry, or when cleaning up after a merge. Encodes the one-command setup (`nub scripts/new-worktree.ts <slug>` or `node …`) that bakes in the proven recipe — worktree off origin/main (vendor/aube is plain in-tree files now, no submodule init), the stable per-worktree CARGO_TARGET_DIR fast loop, and applying `.worktreeinclude` — plus the eagerly-pull-the-shared-tree discipline and the safe cleanup path. Pairs with the `dev-loop` build skill.
Fast recipes for answering when/what/why a feature, flag, API, file, or string was added, removed, unflagged, or renamed in git history.
End-to-end playbook for working a GitHub issue (or bug-fix PR) on nubjs/nub: triage → acknowledge an external report with an "Investigating" comment → reproduce and fix (via the fray methodology + the pre-push local-verification loop) → open a PR that references the issue with `Closes #N` → on merge, comment the resolution → on release, comment the version + release link. Invoke (via the Skill tool) whenever you pick up an issue to work, or are asked to fix a reported bug. Encodes the maintainer-hygiene conventions in AGENTS.md so the reporter is acknowledged, the issue is auto-closed by the merge, and the loop is closed when the fix ships.
| name | todo |
| description | Parse status-tagged todo lines from a markdown file — filter by status, section, or get a quick tally — without loading the whole file. |
| version | 1.1.0 |
| metadata | {"internal":true} |
When a todo file is long, run the parser to extract just the items you care about instead of loading the whole file.
Every todo line carries a status box, optionally after a list marker and indent. Six markers:
- [ ] todo / not started
- [/] in progress
- [x] done (case-insensitive)
- [-] cancelled / dropped
- [>] deferred / forwarded
- [?] question / blocked-on-answer
Lines inside fenced code blocks are excluded. Each item is tagged with the nearest enclosing ##/### heading as its section context.
node scripts/todo/index.mjs <file.md> [flags]
# or equivalently:
nub scripts/todo/index.mjs <file.md> [flags]
--pending, --todo show [ ] items only
--in-progress, --wip show [/] items only
--done show [x] items only
--cancelled, --dropped show [-] items only
--deferred show [>] items only
--question, --blocked show [?] items only
--not-done live actionable set: [ ] + [/] + [?]
(excludes done, cancelled, and deferred)
--section <substring> limit to todos under headings matching substring
--counts print tally (all six categories) and exit
--json machine-readable JSON array
--help, -h usage
Flags are combinable. If no status filter is given, all statuses are shown.
L 7 [ ] Write contributing guide [Setup]
L11 [ ] Implement parser [Features]
L12 [/] Write lexer [Features]
L20 [x] Handle fenced code blocks [Edge cases]
L<n> is the 1-based line number — use it with Read(file, offset=n, limit=1) to jump straight to a line.
--counts output:
pending: 5
in-progress: 2
question: 1
deferred: 1
done: 4
cancelled: 1
--not-done is the fastest way to reconstruct "what's left to act on" after a context reset — [?] (questions) count as actionable (answer them); [>] deferred and [-] cancelled do not.
# Quick status check on a long epic
node scripts/todo/index.mjs epics/v0.1/todo.md --counts
# Everything not yet done in a specific section
node scripts/todo/index.mjs epics/final-polish/todo.md --not-done --section "Work units"
# All in-progress items as JSON (for a sub-agent prompt)
node scripts/todo/index.mjs epics/v0.1/todo.md --wip --json
--counts to see the shape, then --not-done to get only the open work.--pending --section <heading> gives the exact slice without embedding the whole file.md-toc when you also need to navigate prose sections of the same file.