Fix backlog helper argument parsing and duplicate mirror diagnostics #182
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#182
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Backlog helper commands have three workflow bugs that made the Full Registry V1
backlog setup harder than it should have been:
pnpm backlog:new -- "Title"is documented, but the CLI parser treats bare--as an option name and loses the title.backlog:doctorcan exit with status1while printing all OK checks whenthe local mirror has the same issue number in both
.issues/open/and.issues/closed/.backlog:synccan leave stale same-number files in the opposite statedirectory, so local mirror state can disagree with Forgejo.
Goal
Make the documented backlog commands reliable, make doctor output match its exit
status, and make pull/sync clean stale local issue files for the same Forgejo
issue number.
Scope
--delimiter in backlog CLI argument parsingso subsequent script options still parse normally.
stale mirror cleanup selection.
Non-goals
owned by the sync tool.
Acceptance Criteria
pnpm backlog:new -- "Parser smoke issue" --subsystem backlog --dry-runkeepsParser smoke issueas the title.close -- 173 --summary "..."andreopen -- 173 --reason "..."parse theissue number as positional input.
doctor.
0when it prints no failures.directory or stale slug path.
Implementation Notes
syncanddoctoragree.#160open/closed duplicate is the regression shape thiswork must handle.
Suggested Files or Specs To Inspect
scripts/issue-sync.mjsscripts/issue-sync-lib.mjsscripts/issue-sync-lib.test.mjsspec/src/80-maintenance/issues-backlog.md.agents/skills/issue-backlog/SKILL.mdValidation Commands
node --test scripts/issue-sync-lib.test.mjs scripts/issue-sync-progress.test.mjspnpm test:scriptsmake spec-lintpnpm backlog:new -- "Parser smoke issue" --subsystem backlog --dry-runpnpm backlog:doctor --quietpnpm backlog:doctor --strict --quietpnpm backlog:sync --dry-run --quietRelated Issues
Follow-up Tasks
Implementation Summary
Fixed backlog helper argument parsing for pnpm-style bare -- commands, added same-number mirror conflict diagnostics, cleaned stale opposite-state mirrors during sync/pull writes, aligned duplicate summaries, and documented the behavior.