Job issue-backlog-sweep-duplicates-stale-and-missing-info · revised 12 October 2026
Sort your issue backlog once, without closing anything you want to keep
Every issue in scope ends in one recorded state: keep, possible duplicate, needs information or proposed stale. Nothing is closed without your sign-off, and you get a reopen list.
You might be seeing
- Nobody knows how many open issues are real, repeated or missing the details to act on
- A time-based closing rule would close issues because nobody commented, not because they are done
No passwords, keys, card details or admin invites needed to start.
What usually happened
A large backlog hides duplicates, issues that cannot be acted on and issues that are quietly important. Closing by age alone discards useful context, and reading every issue by hand takes weeks no one has.
Who it’s for: An engineering or product lead who inherited a long backlog, or outgrew one, and needs it sorted before planning, a hire or a handover.
Usually starts when: The backlog has hundreds of issues nobody has read in a year, and a stale bot would close things you want.
The result: Every issue in scope ends in one recorded state: keep (with labels), possible duplicate (two links and the matching text), needs information (with the question to ask) or proposed stale (with the last-activity evidence). You receive a sheet and a closure batch to approve, with a reopen list. We close nothing.
Check whether this job fits
Answer these without sending code, tickets or logins. Nothing is submitted unless you choose to contact us.
What you get
- The sheet with one row per issue
- The duplicates view
- The closure batch and the reopen list
- A summary by state
Included
- One tracker and up to 500 issues from a read-only CSV or JSON export (up to 1,500 by quote)
- One state per issue, with the evidence for it
- A duplicates view showing both links and the matching text
- A closure batch for you to approve, a reopen list and a summary by state
- Label suggestions in the sheet only; nothing is written to your tracker
Not included
- Closing, editing, labelling or commenting on any issue in your tracker
- Issues that hold customer personal data we are not contracted for
- Judging whether an old issue is still a good idea
- Fixing any issue
- Re-running the sweep on new issues; that is the monthly service
How we know it’s done
Agreed with you before work starts. Each check produces evidence you keep.
Every in-scope issue has exactly one state and an evidence field, checked by script, and no row is missing.
Evidence: The script output counting issues in the export against rows in the sheet.
Every possible-duplicate row shows both issue links and the matching text, and every proposed-stale row shows a last-activity date older than your stale rule.
Evidence: The script check of both columns.
Your named person reviews 40 rows chosen by script with a fixed seed after delivery, 10 from each state where the sheet has that many, and agrees on at least 36 of the 40 rows (the true rate is then at least 78% with 95% confidence, for rows like these). None of these may appear, and either fails the whole test: a proposed-stale row for an issue with activity inside your stale window, or a duplicate row whose two issues are about different problems.
Evidence: The 40 rows, the seed and the person's verdicts.
Nothing was closed, edited or commented on in your tracker by us.
Evidence: Your tracker's own activity log for the period.
Sign-off. Your named person reviews the sample, approves or edits the closure batch and signs off in writing. Payment follows sign-off.
If it fails. If the agreed checks do not pass, you do not pay for this fixed scope. We hand over what we found and agree whether to stop or re-quote; no surprise work.
When it fits, and when we stop
It fits when
- One issue tracker that can export issues with titles, bodies, labels, dates and comment dates
- No customer personal data in the export, or a written agreement we can contract for
- A named person on your side who reviews 40 sampled rows
- Your rule for what counts as stale, in days
We stop and tell you if
- Issues hold customer personal data that cannot be removed and no processing agreement is possible
- The export lacks dates or comment history, so staleness cannot be shown
- Your tracker has automations that react to labels and you want us to write labels directly
What could go wrong
The job reads an export and writes a sheet; nothing changes in your tracker. Closures you make from the batch can be reopened from the reopen list.
Scroll the table sideways to read it all.
| Risk | How we handle it |
|---|---|
| Time-based closing discards useful context. | A stale row is only a proposal with evidence, never a closure, and the reopen list makes undoing cheap. |
| A false duplicate link hides a real issue. | Duplicates are possible matches with both texts shown, and a person decides. |
| Instructions hidden in issue text steer the model. | Ticket and issue text is analysed offline: the model gets the text and returns rows a script validates, with no tools, no network and no secrets, so a hidden instruction cannot run a command or send data. It could still skew a row, so a script validates every row and your reviewer re-checks a sample. |
A separate automated reviewer checks the work before hand-over. A named person on your side reviews 40 sampled rows and decides every closure. No human supervisor is included unless your agreement names one, and at launch the work is largely automated.
How we deliver
We arrange the work and independent review, then show you the result against the agreed checks. You keep authority over your systems.
- Agree the export, the stale rule, the states and who reviews the sample
- Receive the read-only export with personal data removed
- Assign one state per issue with its evidence; script validates every row
- Link duplicate candidates with both texts; draft one question per needs-info issue
- Separate automated reviewer checks the sheet; your person reviews 40 rows
- Hand over the sheet, closure batch and reopen list
This is a one-off job, not emergency cover or a subscription. We confirm eligibility, price, start window and delivery date before you accept, and work starts only after agreed inputs, secure access and permissions are in place. Model usage up to a cap we state in writing is in the price, and an enquiry creates no charge or booking.
Need to keep it working?
To keep the backlog from rotting again, a monthly grooming service is offered separately.
Ongoing work is separately scoped and quoted: no monitoring, response-time guarantee or automatic subscription is included in this job.
Explore an ongoing managed lane, or mention the responsibility you need in your enquiry.
What you can check
This is a new service. We have not delivered this job for a client yet.
Other ways to get this done
- Use a stale bot with a long window and exemption labels, and review its first batch by hand. github.com
- Spend two afternoons sorting the oldest 100 issues by hand to see how many are real before buying anything.
Questions
Will you close the stale ones?
No. You approve a closure batch and close it yourselves. We provide a reopen list too.
What if the model gets a duplicate wrong?
Duplicates are possible matches with the text shown. A person decides, and your sample review measures how often we are right.
Do you need access to our tracker?
No. A read-only export is enough, and we never receive write access.
Send an enquiry
Send us
- The tracker and roughly how many open issues you have
- What counts as stale for you, in days
- No issue text, customer data or logins in the first enquiry
Later, once you agree
- A read-only export of the agreed issues, with personal data removed
- Your stale rule and your label list
- The name of the person who reviews the sample
You keep the tracker and decide every closure; we never get write access and work from a read-only export. Our automated agents read the files you send in a sandbox; we make no "no training" or "no storage" promise here, and the agreement names the model provider, country, retention and training status before anything is shared. The model gets the issue text and returns rows with no tools, no network and no secrets, so a hidden instruction cannot run a command or send data; it could still skew a row, so a script validates every row and your reviewer re-checks a sample.
Email fallback: open your mail app
If website submission is unavailable, review and send the fallback email yourself. An email fallback is not a website receipt. Or write to hello@syntheticindustry.ai with “issue-backlog-sweep-duplicates-stale-and-missing-info” as the subject.