mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-19 07:13:07 +08:00
docs: record owner-wide queue cleanup
This commit is contained in:
@@ -512,6 +512,17 @@ function buildRequirement(id, requirement, artifact, status, evidence, gap) {
|
||||
return { id, requirement, artifact, status, evidence, gap };
|
||||
}
|
||||
|
||||
function extractLabeledCount(text, label) {
|
||||
const pattern = new RegExp(`${label.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}:\\s*(\\d+)`, 'i');
|
||||
const match = text.match(pattern);
|
||||
if (!match) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const parsed = Number.parseInt(match[1], 10);
|
||||
return Number.isFinite(parsed) ? parsed : null;
|
||||
}
|
||||
|
||||
function isCurrentOrComplete(status) {
|
||||
return status === 'current' || status === 'complete';
|
||||
}
|
||||
@@ -521,6 +532,7 @@ function buildRequirements(rootDir, platformReport) {
|
||||
const publicationReadiness = readText(rootDir, 'docs/releases/2.0.0-rc.1/publication-readiness.md');
|
||||
const namingMatrix = readText(rootDir, 'docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md');
|
||||
const releaseUrlLedger = readText(rootDir, 'docs/releases/2.0.0-rc.1/release-url-ledger-2026-05-18.md');
|
||||
const ownerQueueCleanup = readText(rootDir, 'docs/releases/2.0.0-rc.1/owner-queue-cleanup-2026-05-18.md');
|
||||
const previewManifest = readText(rootDir, 'docs/releases/2.0.0-rc.1/preview-pack-manifest.md');
|
||||
const previewPackSmoke = readText(rootDir, 'scripts/preview-pack-smoke.js');
|
||||
const progressSync = readText(rootDir, 'docs/architecture/progress-sync-contract.md');
|
||||
@@ -550,9 +562,22 @@ function buildRequirements(rootDir, platformReport) {
|
||||
&& fileExists(rootDir, 'skills/hermes-imports/SKILL.md');
|
||||
|
||||
const githubLive = !platformReport.github.skipped && platformReport.github.totals.errors === 0;
|
||||
const queuesCurrent = githubLive
|
||||
&& platformReport.github.totals.openPrs <= platformReport.thresholds.maxOpenPrs
|
||||
const ownerWideOpenPrs = extractLabeledCount(ownerQueueCleanup, 'Owner-wide open PRs after cleanup');
|
||||
const ownerWideOpenIssues = extractLabeledCount(ownerQueueCleanup, 'Owner-wide open issues after cleanup');
|
||||
const trackedPrQueueCurrent = githubLive
|
||||
&& platformReport.github.totals.openPrs <= platformReport.thresholds.maxOpenPrs;
|
||||
const trackedIssueQueueCurrent = githubLive
|
||||
&& platformReport.github.totals.openIssues <= platformReport.thresholds.maxOpenIssues;
|
||||
const ownerPrQueueCurrent = ownerWideOpenPrs === null
|
||||
|| ownerWideOpenPrs <= platformReport.thresholds.maxOpenPrs;
|
||||
const ownerIssueQueueCurrent = ownerWideOpenIssues === null
|
||||
|| ownerWideOpenIssues <= platformReport.thresholds.maxOpenIssues;
|
||||
const ownerPrEvidence = ownerWideOpenPrs === null
|
||||
? ''
|
||||
: `; ${ownerWideOpenPrs} owner-wide open PRs after cleanup`;
|
||||
const ownerIssueEvidence = ownerWideOpenIssues === null
|
||||
? ''
|
||||
: `; ${ownerWideOpenIssues} owner-wide open issues after cleanup`;
|
||||
const discussionsCurrent = githubLive
|
||||
&& platformReport.github.totals.discussionsNeedingMaintainerTouch === 0
|
||||
&& platformReport.github.totals.discussionsMissingAcceptedAnswer === 0;
|
||||
@@ -561,22 +586,30 @@ function buildRequirements(rootDir, platformReport) {
|
||||
buildRequirement(
|
||||
'public-pr-budget',
|
||||
'Keep public PRs below 20',
|
||||
'scripts/platform-audit.js live GitHub sweep',
|
||||
queuesCurrent ? 'current' : 'in_progress',
|
||||
ownerWideOpenPrs === null
|
||||
? 'scripts/platform-audit.js live GitHub sweep'
|
||||
: 'scripts/platform-audit.js live GitHub sweep plus owner-wide queue cleanup ledger',
|
||||
trackedPrQueueCurrent && ownerPrQueueCurrent ? 'current' : 'in_progress',
|
||||
githubLive
|
||||
? `${platformReport.github.totals.openPrs} open PRs across ${platformReport.github.repos.length} tracked repos`
|
||||
? `${platformReport.github.totals.openPrs} open PRs across ${platformReport.github.repos.length} tracked repos${ownerPrEvidence}`
|
||||
: 'live GitHub queue readback was skipped or failed',
|
||||
queuesCurrent ? 'repeat before release' : 'run live platform:audit and drain PR queue'
|
||||
trackedPrQueueCurrent && ownerPrQueueCurrent
|
||||
? 'repeat platform:audit and owner-wide gh search before release'
|
||||
: 'run live platform:audit and owner-wide gh search, then drain PR queue'
|
||||
),
|
||||
buildRequirement(
|
||||
'public-issue-budget',
|
||||
'Keep public issues below 20',
|
||||
'scripts/platform-audit.js live GitHub sweep',
|
||||
queuesCurrent ? 'current' : 'in_progress',
|
||||
ownerWideOpenIssues === null
|
||||
? 'scripts/platform-audit.js live GitHub sweep'
|
||||
: 'scripts/platform-audit.js live GitHub sweep plus owner-wide queue cleanup ledger',
|
||||
trackedIssueQueueCurrent && ownerIssueQueueCurrent ? 'current' : 'in_progress',
|
||||
githubLive
|
||||
? `${platformReport.github.totals.openIssues} open issues across ${platformReport.github.repos.length} tracked repos`
|
||||
? `${platformReport.github.totals.openIssues} open issues across ${platformReport.github.repos.length} tracked repos${ownerIssueEvidence}`
|
||||
: 'live GitHub queue readback was skipped or failed',
|
||||
queuesCurrent ? 'repeat before release' : 'run live platform:audit and drain issue queue'
|
||||
trackedIssueQueueCurrent && ownerIssueQueueCurrent
|
||||
? 'repeat platform:audit and owner-wide gh search before release'
|
||||
: 'run live platform:audit and owner-wide gh search, then drain issue queue'
|
||||
),
|
||||
buildRequirement(
|
||||
'repository-discussions',
|
||||
|
||||
Reference in New Issue
Block a user