Skip to content

Add local resource staleness review canvas - #5251

Open
aaronpowell wants to merge 2 commits into
mainfrom
aaronpowell-staleness-review-canvas
Open

aaronpowell wants to merge 2 commits into
mainfrom
aaronpowell-staleness-review-canvas

Conversation

@aaronpowell

Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, workflow, or canvas extension file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, workflow, or canvas extension with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the main branch for this pull request.

Description

Bring the resource-staleness workflow into a local maintainer canvas so resources can be inspected and acted on individually without publishing a report or changing GitHub state.

The board scans local meaningful Git history, groups skill and hook assets, and supports filtering and read-only working-tree file previews. Reviews propose concrete improvements; removal recommendations must explain which current native capability supersedes the resource rather than treating age as proof of obsolescence.

Item work is routed to isolated project child sessions, retaining and reusing each resource's child context. Reviews and preparation stay local. Publishing requires separate confirmation tied to the prepared staged-diff hash. Persistent local state and content fingerprints reject stale or cancelled results.


Type of Contribution

  • New instruction file.
  • New prompt file.
  • New agent file.
  • New plugin.
  • New skill file.
  • New agentic workflow.
  • New canvas extension.
  • Update to existing instruction, prompt, agent, plugin, skill, workflow, or canvas extension.
  • Other (please specify):

Additional Notes

This is a project-scoped maintainer customization under .github/extensions, not a marketplace plugin. It reuses the Open PR Board's token-protected loopback server. The scheduled staleness workflow is unchanged.

Validation:

  • node --experimental-vm-modules --test eng\resource-staleness-board.test.mjs: passed, 17 tests.
  • npm start: passed after npm ci --no-audit --no-fund restored missing dependencies; generated README and marketplace outputs remain unchanged. Existing external-plugin metadata warnings remain.
  • bash eng/fix-line-endings.sh: passed.
  • node --check .github\extensions\resource-staleness-board\extension.mjs: passed.
  • node --check .github\extensions\resource-staleness-board\public\app.js: passed.
  • git diff --cached --check: passed before committing.

The user has opened the board locally. Full child-session review/publication and extension-reload behavior have not been verified end to end. The existing open provider returned a missing POST /api/read_file route after the preview was added, consistent with an older provider process serving updated static assets; an extension reload is required to load the new server route.

Paid-service guidance is not applicable to this local maintainer customization.


By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

Add meaningful-history inventory, resource contents previews, and reusable child-session reviews with explicitly confirmed publication.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@aaronpowell
aaronpowell requested a review from a team as a code owner October 22, 2026 00:14
Copilot AI max review requested due to automatic review settings October 22, 2026 00:14
@github-actions github-actions Bot added merge-risk:high requires-submitter-fixes Submission has quality-gate findings that submitter must fix before maintainer review labels Oct 22, 2026
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

🚦 Submission status: 👀 Ready for review

Risk tier: merge-risk:high — Privileged execution, automation, or review-policy change
Required to merge: passing submission-gate checks plus 1 approval from reviewers with write access, including a maintainer with admin or maintain permission.

Why this tier
  • .github/extensions/resource-staleness-board/README.md is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • .github/extensions/resource-staleness-board/extension.mjs is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • .github/extensions/resource-staleness-board/lib/inventory.mjs is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • .github/extensions/resource-staleness-board/lib/preview.mjs is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • .github/extensions/resource-staleness-board/lib/state.mjs is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • .github/extensions/resource-staleness-board/lib/work.mjs is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • .github/extensions/resource-staleness-board/public/app.js is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • .github/extensions/resource-staleness-board/public/index.html is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • .github/extensions/resource-staleness-board/public/styles.css is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • eng/resource-staleness-board.test.mjs is a high-risk path (automation, scripts, MCP config, hooks, or review policy)
  • eng/resource-staleness-preview.test.mjs is a high-risk path (automation, scripts, MCP config, hooks, or review policy)

Automated checks

Check Status Details
Line endings ✅ Passed Passed · logs
Spelling ✅ Passed Passed · logs
Contributor reputation ✅ Passed Passed · logs
Duplicate resource scan ✅ Passed Passed · logs
PR quality signal ✅ Passed Passed · logs

Review

  • Approvals: 0/1
  • Assigned reviewer: not assigned yet — comment /request-review to ask for one
  • Review target date: not set
  • Still needed: 1 more approval(s); an approval from a maintainer with admin or maintain permission
  • The core-maintainers pool is not staffed yet; an approver with admin or maintain permission is required instead.

Commands

Command Who What it does
/rerun-checks PR author, maintainers Re-runs failed or incomplete checks and re-evaluates this gate
/request-review PR author, maintainers Asks the review rotation to assign a reviewer (adds needs-reviewer)

Updated for 5c34e84 · gate run · This comment is maintained automatically — see submission gate docs.

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

🟡 Contributor Reputation Check: MEDIUM risk

Check Risk
Profile MEDIUM
Credential audit NONE

Maintainers: please review this contributor before merging.
See the workflow run for full details.
Automated check powered by AGT.

@github-actions github-actions Bot added the needs-review:MEDIUM Contributor reputation check flagged MEDIUM risk label Oct 22, 2026

Copilot AI 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.

🟡 Changes recommended

Unresolved safety and content-integrity issues affect the review-to-publication flow.

7 open issues
What changed in this PR

Adds a project-scoped maintainer canvas for reviewing resource staleness locally, using reusable child sessions to prepare changes before separately confirmed publication. The scheduled staleness workflow remains unchanged.

Changes:

  • Inventories resources using meaningful Git history, grouped assets, and content fingerprints.
  • Adds filtering, read-only previews, persistent review state, and child-session work routing.
  • Documents operating boundaries and adds focused regression coverage.
File Description
eng/​resource-staleness-board.test.mjs Covers inventory, persistence, work routing, HTTP endpoints, and previews.
.github/​extensions/​resource-staleness-board/​README.md Documents usage, history rules, child sessions, and publication boundaries.
.github/​extensions/​resource-staleness-board/​public/​styles.css Styles the responsive board, previews, and confirmation dialog.
.github/​extensions/​resource-staleness-board/​public/​index.html Defines filters, resource details, and publication confirmation.
.github/​extensions/​resource-staleness-board/​public/​app.js Handles filtering, previews, live updates, and work requests.
.github/​extensions/​resource-staleness-board/​lib/​work.mjs Builds child-session assignments and publication instructions.
.github/​extensions/​resource-staleness-board/​lib/​state.mjs Persists reviews, work tokens, and prepared changes under a file lock.
.github/​extensions/​resource-staleness-board/​lib/​preview.mjs Provides size-limited working-tree previews and binary detection.
.github/​extensions/​resource-staleness-board/​lib/​inventory.mjs Groups resources, analyzes Git history, and fingerprints content.
.github/​extensions/​resource-staleness-board/​extension.mjs Registers canvas actions and connects scanning, persistence, and HTTP serving.

Review effort: Max

Comment thread .github/extensions/resource-staleness-board/extension.mjs Outdated
Comment thread .github/extensions/resource-staleness-board/lib/preview.mjs Outdated
Comment thread .github/extensions/resource-staleness-board/extension.mjs Outdated
Comment thread .github/extensions/resource-staleness-board/extension.mjs
Comment thread .github/extensions/resource-staleness-board/lib/state.mjs Outdated
Comment thread .github/extensions/resource-staleness-board/lib/work.mjs Outdated
Comment thread .github/extensions/resource-staleness-board/lib/work.mjs Outdated
@github-actions github-actions Bot added awaiting-automation requires-submitter-fixes Submission has quality-gate findings that submitter must fix before maintainer review and removed requires-submitter-fixes Submission has quality-gate findings that submitter must fix before maintainer review awaiting-automation labels Oct 22, 2026
Support selected and oldest-resource background reviews. Address PR feedback on publication authorization, locked revision checks, compact action results, prepared work, and preview containment.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI max review requested due to automatic review settings October 23, 2026 04:37
@github-actions github-actions Bot added awaiting-automation and removed requires-submitter-fixes Submission has quality-gate findings that submitter must fix before maintainer review labels Oct 23, 2026
@aaronpowell

Copy link
Copy Markdown
Contributor Author

Regarding submission status comment #5251 (comment): Partially accepted. Fixed the codespell failure without weakening validation, and local spelling, build, line-ending normalization, and all 30 regression tests pass; the new push will rerun CI, while the required maintainer approval remains outstanding.

@aaronpowell

Copy link
Copy Markdown
Contributor Author

Regarding contributor reputation comment #5251 (comment): Acknowledged as an informational maintainer-review requirement; no code change is appropriate. The contributor workflow passed with Profile MEDIUM and Credential audit NONE, and the human review remains outstanding.

@github-actions github-actions Bot added ready-for-review Submission passed intake validation and is ready for maintainer review and removed awaiting-automation labels Oct 23, 2026

Copilot AI 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.

Comment on lines +49 to +50
Require HEAD to equal prepared.baseSha and the SHA-256 of the raw stdout bytes of
git diff --cached --binary to equal prepared.diffHash. Reject any additional unstaged/untracked changes affecting this work.
Comment on lines +49 to +51
return await store.sync(await scanInventory(root, {
progress: (value) => { store.progress = value; store.emit(); },
}));
Comment on lines +92 to +95
if (!Array.isArray(input.ids) || !input.ids.length || input.ids.some((id) => typeof id !== "string" || !id.trim()) ||
new Set(input.ids).size !== input.ids.length) {
throw new Error("Choose one or more unique resource IDs for batch review.");
}
export function body(text, file) {
const normalized = text.replace(/\r\n/g, "\n");
const content = file.endsWith(".md") ? normalized.replace(/^---\n[\s\S]*?\n---(?:\n|$)/, "") : normalized;
return content.replace(/\s/g, "");
Comment on lines +45 to +47
subscribe(listener) {
this.listeners.add(listener);
return () => this.listeners.delete(listener);
!/^\/github\/awesome-copilot\/pull\/[1-9]\d*$/.test(url.pathname) || url.search || url.hash) {
throw new Error("Expected a canonical HTTPS GitHub pull request URL for github/awesome-copilot.");
}
item.publication = { url: url.href, at: new Date().toISOString() };
Comment on lines +178 to +182
const focusKey = document.activeElement?.getAttribute?.("data-focus-key");
renderDetailContent(detail);
const restored = scroll && [...detail.querySelectorAll("[data-scroll-key]")].find((node) => node.getAttribute("data-scroll-key") === scroll.key);
if (restored) restored.scrollTop = scroll.top;
if (focusKey && !detail.contains(document.activeElement)) detail.querySelector(`[data-focus-key="${focusKey}"]`)?.focus();

This branch was successfully deployed

1 active deployment
github-pages — 5c34e843 Deployed Oct 23, 2026 by aaronpowell via deploy #1066
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk:high needs-review:MEDIUM Contributor reputation check flagged MEDIUM risk ready-for-review Submission passed intake validation and is ready for maintainer review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants