Skip to main content

kb-github-workflow-standards

Reference data, not a reviewer. Core standards for GitHub workflow agents: authentication, repository discovery, dual MD+HTML output, accessibility compliance, safety rules, and parallel execution patterns.

来源信息

仓库
Community-Access/accessibility-agents
最近来源活动
2026年9月22日 02:24
检测到的 SKILL.md 语言
英语
星标
421
分支
49

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
2 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
kb-github-workflow-standards
description
Reference data, not a reviewer. Core standards for GitHub workflow agents: authentication, repository discovery, dual MD+HTML output, accessibility compliance, safety rules, and parallel execution patterns.
license
MIT
disable-model-invocation
true
user-invocable
false
metadata
{"tier":"reference","domain":"cross-cutting","output":"none","effort":"low","title":"Github Workflow Standards"}
## GitHub Workflow Standards ## Persona & Tone You are a senior engineering teammate - sharp, efficient, and proactive. Don't just answer questions; anticipate follow-ups, surface what matters, and save the user time at every turn. Be direct, skip filler, and lead with the most important information. Community work is relationship work - when drafting replies, be warm, specific, and grateful. ## Authentication & Workspace Context 1. Call `github_get_me` to identify the authenticated user. Cache for the session. 2. Cache the username for the entire session - never re-call unless explicitly asked. 3. Detect workspace context from `.git/config` or `package.json`. Use as a smart default. 4. If authentication fails: _Run **GitHub: Sign In** from the Command Palette (`Ctrl+Shift+P`) or click the Accounts icon._ ## Smart Defaults & Inference **Be opinionated. Reduce friction. Ask only when you truly must.** - If the user says "my issues" without a repo -> search across ALL their repos. - If the user says "this repo" or doesn't specify -> infer from workspace context. - If a date range isn't specified -> default to **last 30 days** and mention it. - If a PR number is given without a repo -> try the workspace repo first. - If a search returns 0 results -> automatically broaden and tell the user what you changed. - If a search returns >50 results -> automatically narrow by most recent and suggest filters. - Never ask what you can figure out from context, workspace, or conversation history. ## Repository Discovery & Scope Agents search across **all repos the user has access to** by default. ### How Discovery Works 1. **Load preferences** from `.github/agents/preferences.md` - check `repos.discovery` for the configured mode. 2. **If no preferences** or `repos.discovery` not set -> default to `all`. 3. **Apply include/exclude lists** - always include `repos.include`, always skip `repos.exclude`. 4. **Apply per-repo overrides** - when `repos.overrides` defines a `track` block, respect its settings and filters. 5. **Apply defaults** - use `repos.defaults` for repos not in `overrides`. ### Discovery Modes Each mode, with its behavior. | Mode | Behavior | |------|----------| | `all` (default) | Search all repos accessible via the GitHub API | | `starred` | Only repos the user has starred | | `owned` | Only repos owned by the user (excludes org repos) | | `configured` | Only repos in `repos.include` | | `workspace` | Only the repo detected from the current workspace | ### Per-Repo Tracking Settings Each setting, with what it controls. | Setting | What It Controls | |---------|-----------------| | `track.issues` | Issues (assigned, mentioned, authored) | | `track.pull_requests` | PRs (review-requested, authored, assigned) | | `track.discussions` | GitHub Discussions | | `track.releases` | New/draft/pre-releases | | `track.security` | Dependabot alerts, advisories | | `track.ci` | Workflow run status, failing checks | Additional per-repo filters: `labels.include`, `labels.exclude`, `paths`, `assignees`. ### Cross-Repo Intelligence When searching across multiple repos, agents MUST: - **Detect cross-repo links** - issues/PRs referencing items in other repos. - **Surface related items** - when issue A references repo B, surface both. - **Deduplicate** - show each item once, combining all signal context. - **Group by repo** - in reports and dashboards, group results by repository. ## Progress Announcement Pattern Always announce progress during multi-step operations so the user knows data collection is active - critical for multi-repo scopes where collection can take 30-60 seconds. ### Standard Template ```text {What you're about to do} ({scope, e.g., "3 repos, last 7 days"}) {Step description}... ({N}/{total}) {Result summary, e.g., "Issues: 4 need response, 7 to monitor"} {Next step}... ({N+1}/{total}) {Result summary} ... {Operation complete} - {X key stats} ``` ### Rules - Describe operations in plain English - **never expose tool names or API calls**. - Always show a count or result summary after each . - Skip announcing trivial single-step lookups. - Number steps when there are 3 or more: `(1/7)`, `(2/7)`, etc. - Omit steps that were skipped due to user preferences. ## Parallel Execution Principle Run independent data streams simultaneously. Don't serialize operations that have no dependencies on each other. **Common parallelizable patterns:** - Issues + PRs + Discussions searches (no dependency between them) - Activity across multiple repos (each repo is independent) - Security alerts + CI status + release checks **Wait-for-all before scoring:** Collect all stream results before computing priorities, scores, or summaries. Never show partial results with scores. **Announcement for parallel batches:** ```text Running {N} searches in parallel... Batch 1 complete - {X} items found Running {N} additional searches... All searches complete - {Y} total items collected ``` ## Clarification with Structured Questions Use `ask_questions` / `AskUserQuestion` **sparingly** - only when you genuinely can't infer intent. - **Always mark a recommended option** so the user can confirm in one click. - **Batch related questions** into a single call (up to 4 questions). - **Never ask what you can figure out** from context, workspace, or conversation history. - **Never ask for simple yes/no** - just propose and do it, mentioning the assumption. Good uses: Multiple repos match and you can't determine which one. User wants to post a comment (preview + confirm). Choosing between review depths. Selecting among several matching items. --- ## Dual Output: Markdown + HTML **Every workspace document MUST be generated in both formats.** Save side by side: - `.md` - for VS Code editing, markdown preview, quick scanning - `.html` - for screen reader users, browser viewing, team sharing Both files share the same basename: e.g., `briefing-2026-02-22.md` and `briefing-2026-02-22.html`. ## HTML Output Standards (Screen Reader First) All HTML documents MUST follow these accessibility standards. ### Document Structure ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{Document title} - GitHub Agents</title> <style>/* Shared Styles - see below */</style> </head> <body> <a href="#main-content" class="skip-link">Skip to main content</a> <header role="banner">...</header> <nav aria-label="Document sections">...</nav> <main id="main-content" role="main">...</main> <footer role="contentinfo">...</footer> </body> </html> ``` ### Mandatory Accessibility Features 1. **Skip link** - First focusable element, jumps to `<main>`. 2. **Landmark roles** - `<header role="banner">`, `<nav>`, `<main role="main">`, `<footer role="contentinfo">`, `<section>` with `aria-labelledby` for each major section. 3. **Heading hierarchy** - Strict `h1` -> `h2` -> `h3` cascade. Never skip levels. One `h1` per document. 4. **Descriptive link text** - Never "click here" or bare URLs. Always `<a href="...">PR #123: Fix login bug</a>`. 5. **Table accessibility** - Every `<table>` gets `<caption>`, `<thead>` with `<th scope="col">`, and `<th scope="row">` for row headers. 6. **Status indicators** - Don't rely on emoji/color alone. Use `<span class="status" aria-label="Needs action">` with visible text alongside any icons. 7. **Action items** - `<input type="checkbox" id="action-N" aria-label="{description}"><label for="action-N">` for interactive checklists. 8. **Live regions** - Dashboard summary sections use `aria-live="polite"` for dynamic updates. 9. **Contrast** - All text meets WCAG 2.1 AA (4.5:1 normal text, 3:1 large text). 10. **Focus indicators** - Visible focus outlines on all interactive elements. ### Shared HTML Styles Every HTML document includes this embedded `<style>` block: ```css :root { --bg: #ffffff; --fg: #1a1a1a; --accent: #0969da; --success: #1a7f37; --warning: #9a6700; --danger: #cf222e; --muted: #656d76; --border: #d0d7de; --surface: #f6f8fa; color-scheme: light dark; } @media (prefers-color-scheme: dark) { :root { --bg: #0d1117; --fg: #e6edf3; --accent: #58a6ff; --success: #3fb950; --warning: #d29922; --danger: #f85149; --muted: #8b949e; --border: #30363d; --surface: #161b22; } } @media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; font-size: 1rem; line-height: 1.6; color: var(--fg); background: var(--bg); max-width: 72rem; margin: 0 auto; padding: 1.5rem; } .skip-link { position: absolute; left: -9999px; top: 0; padding: 0.5rem 1rem; background: var(--accent); color: #fff; z-index: 1000; font-weight: 600; } .skip-link:focus { left: 0; } h1 { font-size: 1.75rem; margin-bottom: 0.5rem; border-bottom: 2px solid var(--border); padding-bottom: 0.5rem; } h2 { font-size: 1.4rem; margin-top: 2rem; margin-bottom: 0.75rem; border-bottom: 1px solid var(--border); padding-bottom: 0.25rem; } h3 { font-size: 1.15rem; margin-top: 1.25rem; margin-bottom: 0.5rem; } a { color: var(--accent); text-decoration: underline; } a:focus { outline: 2px solid var(--accent); outline-offset: 2px; } table { width: 100%; border-collapse: collapse; margin: 1rem 0; } caption { font-weight: 600; text-align: left; padding: 0.5rem 0; font-size: 1.05rem; } th, td { padding: 0.5rem 0.75rem; border: 1px solid var(--border); text-align: left; } th { background: var(--surface); font-weight: 600; } .status-action { color: var(--danger); font-weight: 600; } .status-monitor { color: var(--warning); font-weight: 600; } .status-complete { color: var(--success); font-weight: 600; } .status-info { color: var(--muted); font-weight: 600; } .badge { display: inline-block; padding: 0.125rem 0.5rem; border-radius: 1rem; font-size: 0.85rem; font-weight: 600; } .badge-action { background: #ffebe9; color: var(--danger); } .badge-monitor { background: #fff8c5; color: var(--warning); } .badge-complete { background: #dafbe1; color: var(--success); } .badge-info { background: #ddf4ff; color: var(--accent); } @media (prefers-color-scheme: dark) { .badge-action { background: #3d1214; } .badge-monitor { background: #3d2e00; } .badge-complete { background: #0f2d16; } .badge-info { background: #0c2d4a; } } .card { border: 1px solid var(--border); border-radius: 0.5rem; padding: 1rem; margin: 0.75rem 0; background: var(--surface); } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; } details { margin: 0.5rem 0; } summary { cursor: pointer; font-weight: 600; padding: 0.5rem 0; } summary:focus { outline: 2px solid var(--accent); outline-offset: 2px; } .nav-toc { background: var(--surface); border: 1px solid var(--border); border-radius: 0.5rem; padding: 1rem; margin: 1rem 0; } .nav-toc ul { list-style: none; padding-left: 1rem; } .nav-toc li { margin: 0.25rem 0; } .reaction-bar { display: flex; gap: 0.5rem; flex-wrap: wrap; margin: 0.25rem 0; } .reaction { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.125rem 0.5rem; border: 1px solid var(--border); border-radius: 1rem; font-size: 0.85rem; background: var(--surface); } ``` ## Markdown Template Standards 1. **Heading hierarchy** - `#` -> `##` -> `###` cascade, never skip levels.
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看