Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/hygiene-history/ticks/2026/05/16/0644Z.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
| 2026-05-16T06:44Z | claude-opus-4-7 | bd1c7739 | brief-ack; extreme cost-aware tier (468/5000 GraphQL) | n/a | brief-ack-with-named-bounded-dependency |

# Tick 2026-05-16T06:44Z — Otto-CLI

Twenty-first tick of the resume-session series. Rate limit at
Expand Down
25 changes: 23 additions & 2 deletions tools/hygiene/audit-backlog-status-drift.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,10 +187,31 @@ export function enumerateOpenRows(backlogDir: string = "docs/backlog"): BacklogR
for (const priority of ["P0", "P1", "P2", "P3", "P4"]) {
const dir = join(backlogDir, priority);
if (!existsSync(dir)) continue;
for (const file of readdirSync(dir)) {
let files: string[];
try {
files = readdirSync(dir);
} catch (err) {
// Per B-0557 slice 2 (Copilot P1 on PR #3758): don't let one
// unreadable directory abort the whole audit. Warn and continue.
process.stderr.write(
`audit-backlog-status-drift: unable to read directory ${dir}: ${(err instanceof Error ? err.message : String(err))}\n`,
);
Comment thread
AceHack marked this conversation as resolved.
continue;
}
for (const file of files) {
if (!file.startsWith("B-") || !file.endsWith(".md")) continue;
const path = join(dir, file);
const body = readFileSync(path, "utf-8");
let body: string;
try {
body = readFileSync(path, "utf-8");
} catch (err) {
// Per B-0557 slice 2: don't let one unreadable row file abort
// the whole audit. Warn and skip the row.
process.stderr.write(
`audit-backlog-status-drift: unable to read ${path}: ${(err instanceof Error ? err.message : String(err))}\n`,
);
continue;
}
const fm = parseFrontmatter(body);
if (fm.status !== "open") continue;
const id = fm.id || file.replace(/^(B-\d+(?:\.\d+)?).*/, "$1");
Expand Down
Loading