mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-18 23:03:06 +08:00
Track legacy localization tail in readiness dashboard
This commit is contained in:
@@ -324,8 +324,8 @@ As of 2026-05-17:
|
|||||||
and classifies `legacy-command-shims/` as an opt-in archive/no-action
|
and classifies `legacy-command-shims/` as an opt-in archive/no-action
|
||||||
surface.
|
surface.
|
||||||
- `docs/stale-pr-salvage-ledger.md` records stale PR salvage outcomes,
|
- `docs/stale-pr-salvage-ledger.md` records stale PR salvage outcomes,
|
||||||
skipped PRs, superseded work, and the remaining #1687 translator/manual
|
skipped PRs, superseded work, and the remaining #1687, #1609, #1563, #1564,
|
||||||
review tail.
|
and #1565 translator/manual review tail now attached to Linear ITO-55.
|
||||||
- AgentShield PR #53 reduced two context-rule false positives and closed the
|
- AgentShield PR #53 reduced two context-rule false positives and closed the
|
||||||
remaining AgentShield issues.
|
remaining AgentShield issues.
|
||||||
- AgentShield PR #55 added GitHub Action organization-policy enforcement with
|
- AgentShield PR #55 added GitHub Action organization-policy enforcement with
|
||||||
@@ -625,7 +625,7 @@ is not complete unless the evidence column exists and has been freshly verified.
|
|||||||
| Keep public issues below 20 | Repo-family issue recheck | 0 open issues across `everything-claude-code`, AgentShield, JARVIS, `ECC-Tools/ECC-Tools`, and `ECC-Tools/ECC-website` on 2026-05-17; #1951 closed with #1953 | Complete |
|
| Keep public issues below 20 | Repo-family issue recheck | 0 open issues across `everything-claude-code`, AgentShield, JARVIS, `ECC-Tools/ECC-Tools`, and `ECC-Tools/ECC-website` on 2026-05-17; #1951 closed with #1953 | Complete |
|
||||||
| Manage repository discussions | Repo-family discussion recheck | Platform audit reports 0 discussion maintainer-touch gaps and 0 answerable Q&A missing accepted answers; trunk still has 58 total discussions | Complete |
|
| Manage repository discussions | Repo-family discussion recheck | Platform audit reports 0 discussion maintainer-touch gaps and 0 answerable Q&A missing accepted answers; trunk still has 58 total discussions | Complete |
|
||||||
| Manage PR discussions | PR review/comment closure plus merge/close state | ECC #1961, #1963, and #1953 merged after maintainer validation; no open tracked PRs remain | Complete |
|
| Manage PR discussions | PR review/comment closure plus merge/close state | ECC #1961, #1963, and #1953 merged after maintainer validation; no open tracked PRs remain | Complete |
|
||||||
| Salvage useful stale work | `docs/stale-pr-salvage-ledger.md` | Ledger records salvaged, superseded, skipped, and manual-review tails; #1815-#1818 added cost tracking, skill scout, frontend design guidance, code-reviewer false-positive guardrails, and the May 12 gap pass | Complete except translation/manual review tail |
|
| Salvage useful stale work | `docs/stale-pr-salvage-ledger.md` plus `docs/legacy-artifact-inventory.md` | Ledger records salvaged, superseded, skipped, and manual-review tails; #1815-#1818 added cost tracking, skill scout, frontend design guidance, code-reviewer false-positive guardrails, and the May 12 gap pass; #1687, #1609, #1563, #1564, and #1565 localization tails are attached to Linear ITO-55 for language-owner review and no automatic import remains release-blocking | Complete; repeat legacy scan before release |
|
||||||
| ECC 2.0 preview pack ready | Release docs, quickstart, publication readiness, release notes | `docs/releases/2.0.0-rc.1/` and readiness docs are in-tree; May 17 evidence records queue-zero state, localized docs merge, supply-chain recheck, lint/test/security gates, operator dashboard, and successful GitHub CI on `99dd6ac0` | Needs final clean-checkout release approval |
|
| ECC 2.0 preview pack ready | Release docs, quickstart, publication readiness, release notes | `docs/releases/2.0.0-rc.1/` and readiness docs are in-tree; May 17 evidence records queue-zero state, localized docs merge, supply-chain recheck, lint/test/security gates, operator dashboard, and successful GitHub CI on `99dd6ac0` | Needs final clean-checkout release approval |
|
||||||
| Hermes specialized skills included safely | Hermes setup/import docs and sanitized skill surface | Hermes setup and import playbook are public; secrets stay local | Needs final release review |
|
| Hermes specialized skills included safely | Hermes setup/import docs and sanitized skill surface | Hermes setup and import playbook are public; secrets stay local | Needs final release review |
|
||||||
| Naming and rename readiness | Naming matrix across package/plugin/docs/social surfaces | `docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md` records current package, repo, Claude plugin, Codex plugin, OpenCode, and npm availability evidence | Complete for rc.1; post-rc rename remains future work |
|
| Naming and rename readiness | Naming matrix across package/plugin/docs/social surfaces | `docs/releases/2.0.0-rc.1/naming-and-publication-matrix.md` records current package, repo, Claude plugin, Codex plugin, OpenCode, and npm availability evidence | Complete for rc.1; post-rc rename remains future work |
|
||||||
|
|||||||
@@ -54,7 +54,11 @@ Expected result:
|
|||||||
| `_legacy-documents-*` directories | Archive/no-action | No matching directories exist in the tracked checkout as of 2026-05-12. | Re-run the scan before release. If any appear, add each directory to this table before publishing. |
|
| `_legacy-documents-*` directories | Archive/no-action | No matching directories exist in the tracked checkout as of 2026-05-12. | Re-run the scan before release. If any appear, add each directory to this table before publishing. |
|
||||||
| `legacy-command-shims/` | Archive/no-action | `legacy-command-shims/README.md` states these retired short-name shims are opt-in and no longer loaded by the default plugin command surface. | Keep as an explicit compatibility archive. Do not move these back into the default plugin surface without a migration decision. |
|
| `legacy-command-shims/` | Archive/no-action | `legacy-command-shims/README.md` states these retired short-name shims are opt-in and no longer loaded by the default plugin command surface. | Keep as an explicit compatibility archive. Do not move these back into the default plugin surface without a migration decision. |
|
||||||
| Closed-stale PR salvage ledger | Landed | `docs/stale-pr-salvage-ledger.md` records useful stale work recovered through maintainer PRs. | Continue using the ledger pattern for future stale closures. |
|
| Closed-stale PR salvage ledger | Landed | `docs/stale-pr-salvage-ledger.md` records useful stale work recovered through maintainer PRs. | Continue using the ledger pattern for future stale closures. |
|
||||||
| #1687 zh-CN localization tail | Translator/manual review | Large safe subsets landed in #1746-#1752; remaining pieces require translator/manual review per salvage ledger. | Do not blindly cherry-pick. Split by docs, commands, agents, and skills if a translator review lane opens. |
|
| #1687 zh-CN localization tail | Translator/manual review | Large safe subsets landed in #1746-#1752; remaining pieces are attached to Linear ITO-55 for language-owner review. | Do not blindly cherry-pick. Split by docs, commands, agents, and skills if a translator review lane opens; no automatic import remains release-blocking. |
|
||||||
|
| #1609 Persian README translation | Translator/manual review | Recorded in the stale salvage ledger and attached to Linear ITO-55 for language-owner review. | Do not import stale README/version/count text without a Persian reviewer and a current catalog refresh. |
|
||||||
|
| #1563 zh-TW README sync | Translator/manual review | Recorded in the stale salvage ledger and attached to Linear ITO-55 for language-owner review. | Do not import stale README/version/count text without a zh-TW reviewer and a current catalog refresh. |
|
||||||
|
| #1564 Turkish README sync | Translator/manual review | Recorded in the stale salvage ledger and attached to Linear ITO-55 for language-owner review. | Do not import stale README/version/count text without a Turkish reviewer and a current catalog refresh. |
|
||||||
|
| #1565 pt-BR README sync | Translator/manual review | Recorded in the stale salvage ledger and attached to Linear ITO-55 for language-owner review. | Do not import stale README/version/count text without a pt-BR reviewer and a current catalog refresh. |
|
||||||
|
|
||||||
## Workspace-Level Legacy Repos
|
## Workspace-Level Legacy Repos
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,9 @@ porting.
|
|||||||
## Remaining Manual-Review Backlog
|
## Remaining Manual-Review Backlog
|
||||||
|
|
||||||
The remaining plausibly useful backlog is translation/localization work that is
|
The remaining plausibly useful backlog is translation/localization work that is
|
||||||
unsafe to auto-port without language-owner review:
|
unsafe to auto-port without language-owner review. This tail is attached to
|
||||||
|
Linear ITO-55 and is not a release-blocking salvage task; release work should
|
||||||
|
only verify that the backlog remains recorded and excluded from blind imports:
|
||||||
|
|
||||||
- #1687 zh-CN localization tail
|
- #1687 zh-CN localization tail
|
||||||
- #1609 Persian README translation
|
- #1609 Persian README translation
|
||||||
|
|||||||
@@ -243,6 +243,14 @@ function includesAll(text, needles) {
|
|||||||
return needles.every(needle => text.includes(needle));
|
return needles.every(needle => text.includes(needle));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const LOCALIZATION_MANUAL_REVIEW_TAIL = [
|
||||||
|
'#1687 zh-CN localization tail',
|
||||||
|
'#1609 Persian README translation',
|
||||||
|
'#1563 zh-TW README sync',
|
||||||
|
'#1564 Turkish README sync',
|
||||||
|
'#1565 pt-BR README sync',
|
||||||
|
];
|
||||||
|
|
||||||
function hasLegacySalvageTracking({ stalePrSalvage, legacyInventory, roadmap }) {
|
function hasLegacySalvageTracking({ stalePrSalvage, legacyInventory, roadmap }) {
|
||||||
return stalePrSalvage.includes('Manual review tail')
|
return stalePrSalvage.includes('Manual review tail')
|
||||||
|| stalePrSalvage.includes('Remaining Manual-Review Backlog')
|
|| stalePrSalvage.includes('Remaining Manual-Review Backlog')
|
||||||
@@ -251,6 +259,39 @@ function hasLegacySalvageTracking({ stalePrSalvage, legacyInventory, roadmap })
|
|||||||
|| roadmap.includes('ITO-55');
|
|| roadmap.includes('ITO-55');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hasAttachedLegacyManualReviewTail({ stalePrSalvage, legacyInventory, roadmap }) {
|
||||||
|
return stalePrSalvage.includes('Linear ITO-55')
|
||||||
|
&& legacyInventory.includes('ITO-55')
|
||||||
|
&& roadmap.includes('ITO-55')
|
||||||
|
&& LOCALIZATION_MANUAL_REVIEW_TAIL.every(item => (
|
||||||
|
stalePrSalvage.includes(item) && legacyInventory.includes(item)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
function legacySalvageStatus(context) {
|
||||||
|
if (hasAttachedLegacyManualReviewTail(context)) {
|
||||||
|
return 'current';
|
||||||
|
}
|
||||||
|
|
||||||
|
return hasLegacySalvageTracking(context) ? 'in_progress' : 'not_complete';
|
||||||
|
}
|
||||||
|
|
||||||
|
function legacySalvageEvidence(context) {
|
||||||
|
if (hasAttachedLegacyManualReviewTail(context)) {
|
||||||
|
return 'legacy salvage ledger and inventory are current; all localization tails are attached to Linear ITO-55 for manual language-owner review';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'legacy salvage ledger and ITO-55 tracking are present';
|
||||||
|
}
|
||||||
|
|
||||||
|
function legacySalvageGap(context) {
|
||||||
|
if (hasAttachedLegacyManualReviewTail(context)) {
|
||||||
|
return 'repeat legacy scan before release';
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'final translation/manual-review tail remains';
|
||||||
|
}
|
||||||
|
|
||||||
function hasAgentShieldEnterpriseTracking(roadmap) {
|
function hasAgentShieldEnterpriseTracking(roadmap) {
|
||||||
return roadmap.includes('AgentShield Enterprise Iteration')
|
return roadmap.includes('AgentShield Enterprise Iteration')
|
||||||
&& (
|
&& (
|
||||||
@@ -396,6 +437,7 @@ function buildRequirements(rootDir, platformReport) {
|
|||||||
const supplyChainWorkflow = readText(rootDir, '.github/workflows/supply-chain-watch.yml');
|
const supplyChainWorkflow = readText(rootDir, '.github/workflows/supply-chain-watch.yml');
|
||||||
const packageJson = readPackage(rootDir);
|
const packageJson = readPackage(rootDir);
|
||||||
const scripts = packageJson.scripts || {};
|
const scripts = packageJson.scripts || {};
|
||||||
|
const legacyContext = { stalePrSalvage, legacyInventory, roadmap };
|
||||||
|
|
||||||
const githubLive = !platformReport.github.skipped && platformReport.github.totals.errors === 0;
|
const githubLive = !platformReport.github.skipped && platformReport.github.totals.errors === 0;
|
||||||
const queuesCurrent = githubLive
|
const queuesCurrent = githubLive
|
||||||
@@ -518,11 +560,9 @@ function buildRequirements(rootDir, platformReport) {
|
|||||||
'legacy-salvage',
|
'legacy-salvage',
|
||||||
'Audit, prune, or attach legacy work',
|
'Audit, prune, or attach legacy work',
|
||||||
'docs/stale-pr-salvage-ledger.md and legacy inventory',
|
'docs/stale-pr-salvage-ledger.md and legacy inventory',
|
||||||
hasLegacySalvageTracking({ stalePrSalvage, legacyInventory, roadmap })
|
legacySalvageStatus(legacyContext),
|
||||||
? 'in_progress'
|
legacySalvageEvidence(legacyContext),
|
||||||
: 'not_complete',
|
legacySalvageGap(legacyContext)
|
||||||
'legacy salvage ledger and ITO-55 tracking are present',
|
|
||||||
'final translation/manual-review tail remains'
|
|
||||||
),
|
),
|
||||||
buildRequirement(
|
buildRequirement(
|
||||||
'linear-roadmap-and-progress',
|
'linear-roadmap-and-progress',
|
||||||
|
|||||||
@@ -131,9 +131,20 @@ test('legacy command shim table tracks the current archive contents', () => {
|
|||||||
test('stale salvage backlog records the remaining manual-review tail', () => {
|
test('stale salvage backlog records the remaining manual-review tail', () => {
|
||||||
const source = read('docs/legacy-artifact-inventory.md');
|
const source = read('docs/legacy-artifact-inventory.md');
|
||||||
|
|
||||||
assert.ok(source.includes('#1687 zh-CN localization tail'));
|
for (const pr of [
|
||||||
|
'#1687 zh-CN localization tail',
|
||||||
|
'#1609 Persian README translation',
|
||||||
|
'#1563 zh-TW README sync',
|
||||||
|
'#1564 Turkish README sync',
|
||||||
|
'#1565 pt-BR README sync',
|
||||||
|
]) {
|
||||||
|
assert.ok(source.includes(pr), `Missing manual-review inventory row for ${pr}`);
|
||||||
|
}
|
||||||
|
|
||||||
assert.ok(source.includes('Translator/manual review'));
|
assert.ok(source.includes('Translator/manual review'));
|
||||||
assert.ok(source.includes('#1746-#1752'));
|
assert.ok(source.includes('#1746-#1752'));
|
||||||
|
assert.ok(source.includes('ITO-55'));
|
||||||
|
assert.ok(source.includes('no automatic import remains release-blocking'));
|
||||||
});
|
});
|
||||||
|
|
||||||
if (failed > 0) {
|
if (failed > 0) {
|
||||||
|
|||||||
@@ -88,7 +88,9 @@ test('stale PR salvage ledger keeps localization tails manual-review only', () =
|
|||||||
assert.ok(source.includes('#1609 Persian README translation'));
|
assert.ok(source.includes('#1609 Persian README translation'));
|
||||||
assert.ok(source.includes('#1563 zh-TW README sync'));
|
assert.ok(source.includes('#1563 zh-TW README sync'));
|
||||||
assert.ok(source.includes('translator/manual review'));
|
assert.ok(source.includes('translator/manual review'));
|
||||||
|
assert.ok(source.includes('Linear ITO-55'));
|
||||||
assert.ok(source.includes('Do not import stale top-level docs'));
|
assert.ok(source.includes('Do not import stale top-level docs'));
|
||||||
|
assert.ok(source.includes('not a release-blocking salvage task'));
|
||||||
});
|
});
|
||||||
|
|
||||||
test('legacy inventory and roadmap link to the durable salvage ledger', () => {
|
test('legacy inventory and roadmap link to the durable salvage ledger', () => {
|
||||||
@@ -97,7 +99,10 @@ test('legacy inventory and roadmap link to the durable salvage ledger', () => {
|
|||||||
|
|
||||||
assert.ok(inventory.includes('docs/stale-pr-salvage-ledger.md'));
|
assert.ok(inventory.includes('docs/stale-pr-salvage-ledger.md'));
|
||||||
assert.ok(roadmap.includes('docs/stale-pr-salvage-ledger.md'));
|
assert.ok(roadmap.includes('docs/stale-pr-salvage-ledger.md'));
|
||||||
assert.ok(roadmap.includes('#1687 translator/manual'));
|
assert.ok(roadmap.includes('#1687, #1609, #1563, #1564'));
|
||||||
|
assert.ok(roadmap.includes('Linear ITO-55'));
|
||||||
|
assert.ok(roadmap.includes('#1609'));
|
||||||
|
assert.ok(roadmap.includes('no automatic import remains release-blocking'));
|
||||||
});
|
});
|
||||||
|
|
||||||
test('stale PR salvage ledger records the May 12 gap pass', () => {
|
test('stale PR salvage ledger records the May 12 gap pass', () => {
|
||||||
|
|||||||
@@ -77,7 +77,26 @@ function seedRepo(rootDir, overrides = {}) {
|
|||||||
].join('\n'),
|
].join('\n'),
|
||||||
'docs/HERMES-SETUP.md': 'Hermes setup',
|
'docs/HERMES-SETUP.md': 'Hermes setup',
|
||||||
'skills/hermes-imports/SKILL.md': 'Hermes imports',
|
'skills/hermes-imports/SKILL.md': 'Hermes imports',
|
||||||
'docs/stale-pr-salvage-ledger.md': 'Manual review tail',
|
'docs/stale-pr-salvage-ledger.md': [
|
||||||
|
'Remaining Manual-Review Backlog',
|
||||||
|
'Linear ITO-55',
|
||||||
|
'#1687 zh-CN localization tail',
|
||||||
|
'#1609 Persian README translation',
|
||||||
|
'#1563 zh-TW README sync',
|
||||||
|
'#1564 Turkish README sync',
|
||||||
|
'#1565 pt-BR README sync',
|
||||||
|
'not a release-blocking salvage task'
|
||||||
|
].join('\n'),
|
||||||
|
'docs/legacy-artifact-inventory.md': [
|
||||||
|
'Translator/manual review',
|
||||||
|
'ITO-55',
|
||||||
|
'#1687 zh-CN localization tail',
|
||||||
|
'#1609 Persian README translation',
|
||||||
|
'#1563 zh-TW README sync',
|
||||||
|
'#1564 Turkish README sync',
|
||||||
|
'#1565 pt-BR README sync',
|
||||||
|
'no automatic import remains release-blocking'
|
||||||
|
].join('\n'),
|
||||||
'docs/architecture/progress-sync-contract.md': 'GitHub PRs/issues/discussions Linear project local handoff repo roadmap scripts/work-items.js',
|
'docs/architecture/progress-sync-contract.md': 'GitHub PRs/issues/discussions Linear project local handoff repo roadmap scripts/work-items.js',
|
||||||
'docs/architecture/observability-readiness.md': 'observability-readiness.js',
|
'docs/architecture/observability-readiness.md': 'observability-readiness.js',
|
||||||
'docs/security/supply-chain-incident-response.md': 'TanStack Mini Shai-Hulud node-ipc scan-supply-chain-iocs.js supply-chain-advisory-sources.js',
|
'docs/security/supply-chain-incident-response.md': 'TanStack Mini Shai-Hulud node-ipc scan-supply-chain-iocs.js supply-chain-advisory-sources.js',
|
||||||
@@ -214,7 +233,14 @@ function runTests() {
|
|||||||
&& item.evidence.includes('unsupported npm age-key drift')
|
&& item.evidence.includes('unsupported npm age-key drift')
|
||||||
&& item.gap === 'repeat advisory/source refresh and Linear sync after each significant supply-chain batch'
|
&& item.gap === 'repeat advisory/source refresh and Linear sync after each significant supply-chain batch'
|
||||||
)));
|
)));
|
||||||
|
assert.ok(report.requirements.some(item => (
|
||||||
|
item.id === 'legacy-salvage'
|
||||||
|
&& item.status === 'current'
|
||||||
|
&& item.evidence.includes('all localization tails are attached to Linear ITO-55')
|
||||||
|
&& item.gap === 'repeat legacy scan before release'
|
||||||
|
)));
|
||||||
assert.ok(report.top_actions.some(item => item.id === 'naming-and-plugin-publication'));
|
assert.ok(report.top_actions.some(item => item.id === 'naming-and-plugin-publication'));
|
||||||
|
assert.ok(!report.top_actions.some(item => item.id === 'legacy-salvage'));
|
||||||
} finally {
|
} finally {
|
||||||
cleanup(rootDir);
|
cleanup(rootDir);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user