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
آخر نشاط في المصدر
٢٢ سبتمبر ٢٠٢٦ في ٠٢:٢٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤٢١
التفرعات
٤٩

خيارات التثبيت

يُحدَّد 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