Skip to content

refactor(docs): replace BACKLOG.md log with GitHub Issues scheme (#37)#38

Merged
mobileskyfi merged 2 commits into
mainfrom
refactor/backlog-to-issues-37
Jul 3, 2026
Merged

refactor(docs): replace BACKLOG.md log with GitHub Issues scheme (#37)#38
mobileskyfi merged 2 commits into
mainfrom
refactor/backlog-to-issues-37

Conversation

@mobileskyfi

@mobileskyfi mobileskyfi commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

What & why

BACKLOG.md had grown to 674 lines / 72 KB and was loaded as live agent context — the context-bloat / doc-rot risk #37 flags. It also mixed four kinds of content and dual-tracked with existing issues (#23/#24/#25 lived in both places).

This moves to an issue-native scheme — one home per thing:

Content Home
Open, actionable work GitHub Issues (labels + templates, PR-wired review)
Design decisions & rationale DESIGN.md
Grounded RouterOS/QEMU facts narrowest .github/instructions/*.md, else docs/, else test/lab/<topic>/REPORT.md
Shipped, user-facing changes CHANGELOG.md
Narrative history git

Changes

  • Labels: area:* (×10), P1P4, research, needs-decision; applied to CLI: add quickchr cp for file transfer (upload/download) #23examples/rollback: investigate ARM64 snapshot restore after loadvm #31, agent setup: follow-up cleanup decisions after Codex/Copilot review #36, Consider triaging BACKLOG.md open items into GitHub issues #37.
  • Templates: .github/ISSUE_TEMPLATE/{task,research,needs-decision} — each carries a Done-when; config.yml links the scheme.
  • Policy: CONTRIBUTING.md "Tracking work" is the canonical description; AGENTS.md/CLAUDE.md/general/instruction-hygiene/DESIGN routers point to it and stop telling agents to "log work in BACKLOG".
  • Knowledge extraction (verify-before-delete): durable rationale that lived only in BACKLOG moved into DESIGN.md (CLI principles, port-allocation rationale, Out of Scope, agent-discoverability) and a clean()/efi-vars code comment. Most facts were already canonical elsewhere (bun-http/routeros-rest instructions, docs/networking.md, lab REPORT.mds).
  • BACKLOG.md: 674 → ~106 lines — scheme map + filed-issues index + a compact "not yet filed" checklist + decisions-owed + deferred.
  • Stale fixes: docs/networking.md "§ P5" (section no longer existed), the lost Windows-TCG finding (full suite passed; scp works without sshpass), and a workflow comment pointing at a non-existent CHANGELOG entry.

Scope note

Filing was reconcile-only by design (the maintainer's steer: don't triage future work now). Existing issues were re-labeled; no new issues were filed — genuinely-open items sit in the BACKLOG checklist for incremental filing.

Verification

Closes #37.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Updated project guidance to use GitHub Issues as the main place for tracking work and decisions.
    • Refreshed several docs to point readers to the right places for networking, testing, and design notes.
    • Clarified completion criteria for changes that affect RouterOS-related behavior.
  • Chores

    • Added new issue templates for tasks, research, and decision requests.
    • Improved repository maintenance notes and cross-references for contributors.

Move to issue-native work tracking so agents stop loading a 674-line log as
live context. One home per thing: open work -> GitHub Issues (labels +
templates, PR-wired review); decisions -> DESIGN.md; grounded RouterOS/QEMU
facts -> the narrowest scoped instruction/doc/REPORT; shipped -> CHANGELOG;
history -> git.

- Labels: area:* (x10), P1-P4, research, needs-decision; applied to #23-#31/#36/#37.
- New .github/ISSUE_TEMPLATE/{task,research,needs-decision} (each with Done-when).
- CONTRIBUTING.md "Tracking work" is the canonical scheme; AGENTS/CLAUDE/general/
  instruction-hygiene/DESIGN routers point to it (no more "log in BACKLOG").
- Extract durable knowledge kept only in BACKLOG into DESIGN.md (CLI principles,
  port-allocation rationale, Out of Scope, agent-discoverability) and a
  clean()/efi-vars code note; most facts were already canonical elsewhere.
- BACKLOG.md 674 -> ~106 lines: scheme map + filed-issues index + unfiled
  checklist + decisions-owed + deferred.
- Fix stale refs: docs/networking § P5, the lost Windows-TCG finding (suite
  passed; scp works without sshpass), and a CHANGELOG pointer to a missing entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 3, 2026 12:56
@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@mobileskyfi, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 33 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 9a0e995b-6a70-4b72-b151-f2f7ea14500d

📥 Commits

Reviewing files that changed from the base of the PR and between 4494539 and 2c2acfa.

📒 Files selected for processing (2)
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/instructions/routeros-rest.instructions.md
📝 Walkthrough

Walkthrough

This PR migrates the project's work-tracking scheme from a single BACKLOG.md log to GitHub Issues. It adds new issue templates (task, research, needs-decision) and config, restructures BACKLOG.md into a work map, updates CONTRIBUTING.md with a tracking policy, and revises cross-references across DESIGN.md, instructions, MANUAL.md, docs, examples, and code comments.

Changes

Work tracking migration

Layer / File(s) Summary
Tracking policy and issue templates
CONTRIBUTING.md, .github/ISSUE_TEMPLATE/config.yml, .github/ISSUE_TEMPLATE/needs-decision.md, .github/ISSUE_TEMPLATE/research.md, .github/ISSUE_TEMPLATE/task.md
New "Tracking work" section defines an issue-first, one-home-per-thing policy; new issue templates and config support filing task/research/decision issues.
BACKLOG.md restructured as work map
BACKLOG.md
Rewrites BACKLOG.md header and structure into "Where things live," "Filed as issues," "Open items not yet filed," "Decisions owed," and "Deferred" sections, replacing the prior log format.
DESIGN.md rationale and CLI principles
DESIGN.md
Updates watch-item and port-allocation wording, adds a "Command-surface principles" subsection, and rewrites document-maintenance/agent-friendliness guidance to reference GitHub Issues.
Instruction and workflow files updated
AGENTS.md, CLAUDE.md, .github/instructions/*.instructions.md, .github/workflows/verify-extended.yml, .agents/skills/quickchr-maintainer/SKILL.md
Replaces BACKLOG.md references with GitHub Issues, CONTRIBUTING.md, or CHANGELOG.md guidance across contributor and CI instruction docs.
User-facing docs, examples, and code comments
MANUAL.md, docs/networking.md, docs/qga-x86-macos-qemu10-investigation.md, examples/_template/README.md, examples/mndp/README.md, test/lab/mndp/REPORT.md, project-words.txt, src/lib/quickchr.ts
Updates cross-references and wording to point to GitHub Issues/DESIGN.md instead of BACKLOG.md, plus explanatory comments in clean() and a new dictionary word.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

  • tikoci/quickchr#22: Introduced the examples-instructions conventions around recording friction/backlog that this PR updates to reference GitHub issues instead.
  • tikoci/quickchr#35: Originally added the quickchr-maintainer SKILL.md document whose "Done Criteria" reference this PR updates.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main documentation refactor and matches the change set.
Linked Issues check ✅ Passed The PR implements the requested move from BACKLOG.md tracking to GitHub Issues, with new issue templates, routing docs, and a reduced backlog map.
Out of Scope Changes check ✅ Passed The extra edits all support the tracking-scheme migration or stale-reference cleanup, so no clear out-of-scope change stands out.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/backlog-to-issues-37

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the project’s work-tracking documentation away from a large, agent-loaded BACKLOG.md toward an issue-native scheme (Issues + labels + templates), while updating router docs/instructions to point at the new “one home per thing” policy and preserving a few durable facts in the appropriate long-lived docs.

Changes:

  • Introduces GitHub Issue templates + a canonical “Tracking work” policy in CONTRIBUTING.md.
  • Collapses BACKLOG.md into a thin map/index plus a small unfiled checklist, and updates doc/instruction pointers accordingly.
  • Extracts/preserves key durable knowledge in the right places (e.g., DESIGN.md additions; clean() EFI vars rationale comment).

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/lab/mndp/REPORT.md Replaces a BACKLOG pointer with an inline verdict and revisit criteria.
src/lib/quickchr.ts Adds an explanatory comment about why clean() must not delete efi-vars.fd on arm64.
project-words.txt Adds unfiled to the cSpell project dictionary.
MANUAL.md Updates “read next” guidance to reflect the new work-tracking scheme.
examples/mndp/README.md Updates wording around the BACKLOG pointer to match “until filed” phrasing.
examples/_template/README.md Updates the “friction found” template to link GitHub issues (not BACKLOG items).
docs/qga-x86-macos-qemu10-investigation.md Replaces BACKLOG tracking reference with GitHub Issues label guidance.
docs/networking.md Repoints design/work tracking references to DESIGN.md + area:networking Issues.
DESIGN.md Adds rationale/constraints that previously lived only in BACKLOG; updates tracking language.
CONTRIBUTING.md Adds the canonical “Tracking work” policy section and label taxonomy.
CLAUDE.md Updates the “read these first” routing and end-of-session checklist to be issue-centric.
BACKLOG.md Replaces the large backlog log with a short work-map/index and unfiled checklist.
AGENTS.md Updates agent routing to describe issue-native tracking and discourage regrowing BACKLOG.
.github/workflows/verify-extended.yml Updates comments to remove stale BACKLOG references and reflect known Windows/arm64 status.
.github/ISSUE_TEMPLATE/task.md Adds a Task template with Done-when + grounding prompts.
.github/ISSUE_TEMPLATE/research.md Adds a Research template focused on producing lab grounding (REPORT.md).
.github/ISSUE_TEMPLATE/needs-decision.md Adds a Needs-decision template for contract-affecting changes.
.github/ISSUE_TEMPLATE/config.yml Adds contact links pointing to the new scheme + design decisions.
.github/instructions/testing.instructions.md Updates “done” guidance from BACKLOG-centric to issue/CHANGELOG-centric.
.github/instructions/routeros-rest.instructions.md Updates the REST-timeout note language to fit the new tracking scheme.
.github/instructions/instruction-hygiene.instructions.md Adds a rule: work items in Issues; durable facts in scoped docs.
.github/instructions/general.instructions.md Updates end-of-session review checklist to be issue-centric.
.github/instructions/examples.instructions.md Updates “friction found” + durable-fact guidance to reference issues/scoped docs.
.github/instructions/ci.instructions.md Updates Windows integration notes based on observed results; repoints tracking.
.agents/skills/quickchr-maintainer/SKILL.md Updates the skill’s checklist to reference Issues/CHANGELOG rather than BACKLOG.

Comment on lines +81 to +84
Do not copy the blocking-endpoint timers to normal REST calls. Treat 60s as a working
assumption inherited from centrs for ordinary REST requests, but do not add a quickchr clamp
until the REST-timeout reconciliation lab in `BACKLOG.md` confirms the rule and documents
any endpoint-specific exceptions.
until the REST-timeout reconciliation task (listed in `BACKLOG.md` until filed as an issue)
confirms the rule and documents any endpoint-specific exceptions.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/ISSUE_TEMPLATE/config.yml:
- Around line 1-5: The issue is that blank issue submission is currently allowed
in the issue template config, letting users skip the
Task/Research/Needs-decision templates and their required structure. Update the
configuration in config.yml so blank issues are disabled, unless you
intentionally want ad hoc support reports—in that case, document the exception
clearly alongside the existing contact_links entry.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3b44c091-2ea3-4f86-a79a-3b779d868cb9

📥 Commits

Reviewing files that changed from the base of the PR and between 5a57e8a and 4494539.

📒 Files selected for processing (25)
  • .agents/skills/quickchr-maintainer/SKILL.md
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/ISSUE_TEMPLATE/needs-decision.md
  • .github/ISSUE_TEMPLATE/research.md
  • .github/ISSUE_TEMPLATE/task.md
  • .github/instructions/ci.instructions.md
  • .github/instructions/examples.instructions.md
  • .github/instructions/general.instructions.md
  • .github/instructions/instruction-hygiene.instructions.md
  • .github/instructions/routeros-rest.instructions.md
  • .github/instructions/testing.instructions.md
  • .github/workflows/verify-extended.yml
  • AGENTS.md
  • BACKLOG.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • DESIGN.md
  • MANUAL.md
  • docs/networking.md
  • docs/qga-x86-macos-qemu10-investigation.md
  • examples/_template/README.md
  • examples/mndp/README.md
  • project-words.txt
  • src/lib/quickchr.ts
  • test/lab/mndp/REPORT.md

Comment thread .github/ISSUE_TEMPLATE/config.yml Outdated
…n REST-timeout rule

- .github/ISSUE_TEMPLATE/config.yml: blank_issues_enabled=false so every issue
  picks a template and lands with labels + a Done-when (CodeRabbit).
- routeros-rest.instructions.md: state the "don't clamp normal REST timeouts"
  rule as a self-contained durable rule instead of pointing at an unfiled
  BACKLOG item (Copilot) — the work stays tracked in BACKLOG; the instruction
  doc now holds only the rule.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mobileskyfi

Copy link
Copy Markdown
Contributor Author

Addressed both review comments in 2c2acfa:

  • CodeRabbit (config.yml) — set blank_issues_enabled: false (with a comment explaining why) so every issue picks a Task/Research/Needs-decision template and lands with labels + a Done-when. Contact links remain for anything that doesn't fit.
  • Copilot (routeros-rest.instructions.md) — reworded the REST-timeout note so the instruction states a self-contained durable rule (reconcile against lab evidence across the listed endpoints before clamping) instead of pointing at an unfiled BACKLOG item. The work item itself stays in the BACKLOG checklist.

bun run check green.

@mobileskyfi mobileskyfi merged commit 9912b75 into main Jul 3, 2026
7 of 9 checks passed
@mobileskyfi mobileskyfi deleted the refactor/backlog-to-issues-37 branch July 3, 2026 13:26
mobileskyfi added a commit that referenced this pull request Jul 3, 2026
Second half of #37: with the Issue->PR scheme merged (#38), triage
BACKLOG.md's "not yet filed" checklist into a curated set of GitHub
Issues (the "one list" to comment on) -- grouped, not 1-to-1:

- #39 anchors an optional centrs `exec` passthrough (needs-decision) and
  folds the centrs-owned cluster (exec soft-error, protocol-adapter,
  MAC-Telnet) as checklist items there, not as separate quickchr issues --
  they're more involved than QEMU-focused quickchr and drove centrs' design.
- #40 Windows, #41 platform-gaps, #42 cross-platform, #43 REST-grounding,
  #44 CLI/UX polish, #45 QEMU watch-items are triage umbrellas (research,
  done-when = break out sub-issues then close).
- #46-#55 crisp singles; #56-#58 the port/config needs-decision calls.

BACKLOG.md is now a rot-free map: browse-by-label query links for the live
list, explicit numbers only for grounding anchors (#39/#40/#56-#58).
Repoint the centrs MAC-Telnet note (examples/mndp) and the DESIGN port
open-questions to the real issues. Left the self-contained REST-timeout
rule in routeros-rest.instructions.md as-is (rules, not work pointers).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider triaging BACKLOG.md open items into GitHub issues

2 participants