Skip to content

Commit 4248ac6

Browse files
Copilotpelikhan
andauthored
Add builtin qmd documentation search tool (experimental) (#22183)
* Initial plan * Add builtin qmd documentation search tool support - Add QmdToolConfig type with docs glob patterns field - Add DefaultQmdVersion (0.0.16) and QmdArtifactName constants - Add parseQmdTool parser function - Register qmd as builtin tool in tools_parser, tools_types, mcp_config_validation - Activation job: install @tobilu/qmd, build index, upload qmd-index artifact - Agent job: download qmd-index artifact before MCP setup - MCP renderer: RenderQmdMCP for JSON/TOML (Node.js + npx serve-mcp) - MCP setup generator: qmd added to standard MCP tools list - Claude tools: qmd handled as wildcard MCP server (like serena) - Docker: add node:lts-alpine pre-pull when qmd is configured - System prompt: qmd_prompt.md injected when qmd tool is active - Dependabot: track @tobilu/qmd version in npm deps - Shell injection prevention: single-quote glob patterns in activation steps - JSON schema: add qmd tool schema definition Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e5f827de-afbd-4b2e-98e0-7a7d87ed547a * Mark qmd tool as experimental with compiler warning Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1dc55c60-1437-4497-a351-d1b7b8d88bfa * Add per-collection checkout support to qmd tool Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e9a784be-084b-40e0-9bf4-eb76dc81df6d * Add searches sub-key and rename collections to checkouts in qmd config Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e854d5ea-603f-40f9-8672-434f0246af32 * Add cache-key field to qmd config for GitHub Actions cache support Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/9b048214-2eee-4a65-b213-30364c2769b7 * Add qmd reference documentation page and tools.md entry Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/ad6ae84d-6e38-4ef1-85f1-460c1020189c * Add actions/cache for qmd models directory in activation and agent jobs Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/61e87d3a-8f40-404a-927f-49c0961aa1ef * Rename docs to paths in QmdDocCollection, add context field, generate step summary Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/3e6b6f99-104f-414e-8da7-da70bb29cabb * Remove all legacy backward-compat features from qmd (docs shorthand, collections key, docs alias) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/d0e81cd9-a648-405d-9fae-9e37430b0a78 * Use actions/cache/restore (read-only) for qmd models cache in agent job Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a1f6d09e-87c0-4b1d-8266-486db8980cac * Add named/issue-search support to QmdSearchEntry; add qmd config to smoke-codex Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1ea4ff00-5c83-46de-b990-7f65ec8fab63 * Fix @tobilu/qmd npm version: 0.0.16 → 2.0.1 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/65fa2584-3040-4635-8344-d25b3e2cffa7 * refactor: replace qmd shell steps with github-script + qmd JS SDK Instead of generating many shell run: steps for the qmd activation job, serialize the config as JSON (QMD_CONFIG_JSON env var) and execute a single actions/github-script step that calls qmd_index.cjs. The new qmd_index.cjs file uses the @tobilu/qmd JavaScript SDK to: - Register checkout-based collections via createStore({ config }) - Fetch GitHub code search / issue list results via Octokit and save as files - Call store.update() to index all files - Call store.embed() to generate vector embeddings - Write a Markdown step summary via core.summary The @tobilu/qmd SDK is installed locally via npm install --prefix into the gh-aw actions directory so qmd_index.cjs can require() it. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4131ae22-2f1c-4bc0-a7f9-7483f102cc35 * test: add qmd_index.test.cjs covering all code paths + js-qmd-index CI job Adds 20 vitest unit tests in actions/setup/js/qmd_index.test.cjs covering: - Missing QMD_CONFIG_JSON → setFailed - Missing @tobilu/qmd SDK → setFailed - Checkout collections: basic, ${ENV_VAR} path expansion, default pattern - Issues search: valid repo, explicit repo field, invalid slug, empty slug, min-count failure - Code search: file download, min-count failure, download errors (warning), malformed full_name (skip) - Combined checkouts + searches - store.close() always called in finally block - writeSummary: checkouts table, searches table, index stats, error handling When @tobilu/qmd is not installed, beforeAll creates a minimal ESM fake at node_modules/@tobilu/qmd/dist/index.js that returns globalThis.__qmdMockStore__. Each test sets this global in beforeEach. Uses createRequire() (not eval()) to allow the dynamic await import(fileUrl) in the script to work. Also adds js-qmd-index job to .github/workflows/ci.yml that runs these tests in isolation after validate-yaml. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/5c4da1f8-aba2-40dd-b076-e13d3a9f8c77 * fix: add @actions/github to qmd npm install step The qmd_index.cjs script calls getOctokit() from @actions/github when a custom tokenEnvVar is configured. This package must be installed alongside @tobilu/qmd in the runner's local prefix directory so the require() resolves at runtime. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/f757e6d9-5de3-4fab-bd7a-83fca641f0b3 * fix: use dynamic import() for @actions/github in qmd_index.cjs @actions/github is ESM-only and has no CJS exports main, so require() throws ERR_PACKAGE_PATH_NOT_EXPORTED at runtime. Switch getClient() to async and use await import("@actions/github") instead. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4fab64ab-7cc4-4b1d-a12c-e85eb679cbe1 * feat: move qmd indexing into a separate "indexing" job - Add `IndexingJobName = "indexing"` constant - New `buildQmdIndexingJob()` builds a standalone job that depends on activation and runs all qmd index-building steps - Remove qmd steps from the activation job - Agent job now depends on both activation (for its outputs) and indexing (for the qmd-index artifact) - Fix artifact prefix expression in upload step: use artifactPrefixExprForDownstreamJob (needs.activation.outputs.*) since the upload now runs in the indexing job, not the activation job Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e25e8e38-e970-4485-87da-65776dd13b0d * feat: always cache qmd index and add 60min timeout to indexing job - Add resolveQmdCacheKey() to return user cache-key or default gh-aw-qmd-${{ github.run_id }} for per-run ephemeral caching - Always emit cache restore/save steps in indexing job (previously only when cache-key was explicitly set) - Add generateQmdIndexCacheRestoreStep() for agent job restore (read-only) - Add timeout-minutes: 60 to the indexing job - Build steps are still guarded by cache-hit condition so they are skipped when a previous run already populated the cache Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4b67c8f9-0127-41de-9682-0be1a2dcb7f3 * feat: add restore-keys to qmd index cache steps for cross-run reuse Add resolveQmdRestoreKeys() that strips the trailing ${{ ... }} from the cache key to produce a prefix restore key: - "gh-aw-qmd-${{ github.run_id }}" → restore-keys: "gh-aw-qmd-" - "qmd-index-${{ hashFiles('docs/**') }}" → restore-keys: "qmd-index-" Both the indexing job (generateQmdCacheRestoreStep) and the agent job (generateQmdIndexCacheRestoreStep) now emit restore-keys so a workflow can restore the most recently cached index from a previous run even when the exact run-scoped key is not found, and update it if needed. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/ea6cdefe-d23e-44fc-aaba-668b7df94c17 * feat: add gpu and runs-on fields to QmdToolConfig - GPU defaults to false: injects NODE_LLAMA_CPP_GPU="false" into the Build qmd index step so node-llama-cpp skips GPU probing on CPU runners - Set gpu: true in workflow frontmatter to re-enable GPU auto-detection - runs-on overrides the indexing job's runner image (e.g. "ubuntu-latest-gpu" or "self-hosted") independently of the agent job runner - JSON schema updated with gpu and runs-on properties for editor completion Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/b2bc7a8c-f3fc-4aad-ab35-84de655a9519 * feat: add qmd MCP HTTP server start step with health probe in agent job Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/92e6bea6-e7ac-4e81-9dc2-4f72aaed1db5 * Remove qmd index cache restore from agent job; default indexing to ubuntu-latest Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/ece7b2a4-efef-4275-baf2-ccbee0e146ea * feat(qmd): also cache node-llama-cpp binaries in model cache steps Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/232e0cdf-c0e7-4b91-bbc1-f92b9e24fd77 * fix: remove qmd artifact, use exact cache key in agent job, fix npx syntax - Remove artifact upload from indexing job and artifact download from agent job since the qmd index is already saved to GitHub Actions cache - Agent job now restores using the precise cache key (no restore-keys fallback) so it always gets the exact index built by the current run's indexing job - Fix npx syntax: use --package=@tobilu/qmd serve-mcp instead of "@tobilu/qmd" serve-mcp (the serve-mcp binary needs to be invoked via --package flag, not as a subcommand of the qmd binary) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e6e6c751-a2eb-4af4-8b24-3fa19ec1a53b * Split qmd models and node-llama-cpp into separate caches with arch-specific key Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4525e593-734d-4ce7-9e84-093befd24192 * Fix qmd MCP server startup and add version to all cache keys - Fix start_qmd_server.sh: use `qmd mcp --http` instead of `serve-mcp --http` (serve-mcp is not a valid binary; the correct CLI subcommand is `mcp --http`) - Use INDEX_PATH env var so qmd CLI finds the restored index at /tmp/gh-aw/qmd-index/index.sqlite (overrides getDefaultDbPath()) - Pass GH_AW_QMD_VERSION to npx for version-pinned package install - Remove QMD_CACHE_DIR (not a real qmd env var, has no effect) - Include DefaultQmdVersion in all actions/cache keys: - qmd index: gh-aw-qmd-2.0.1-${{ github.run_id }} - qmd models: qmd-models-2.0.1-${{ runner.os }} - node-llama-cpp: node-llama-cpp-2.0.1-${{ runner.os }}-${{ runner.arch }}-${{ runner.imageid }} - Remove misleading QMD_CACHE_DIR assignment in qmd_index.cjs Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/3e2dfdb1-7152-4977-8ee3-b10482939bae * fix: change DefaultQmdPort from 3002 to 37842 (less popular port) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4756e0ac-9791-4bc1-9a38-d76eb7ee65e3 * feat(dev.md): add label_command dev trigger, qmd for docs+issues, and documentation analysis prompt Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/c8a1219c-5448-41e7-8d59-3f4375bc581d * Add Node.js 24 setup step before qmd MCP server start in agent job Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e5bdee6f-6ed8-4a82-b632-cd298cff9933 * fix: remove label_command from dev.md so workflow_dispatch requires no inputs Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/78734527-c2d1-4744-852b-b8d6253e938d * Add label_command back to dev.md (no workflow_dispatch inputs) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/f95c8eac-7373-4251-8158-ad5c09d95fe6 * fix: address review comments and remove mcp-scripts experimental warning Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a4d1d75b-4c53-4df8-8632-73b4fc469ab8 * initial plan Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/81594ef2-0e76-48ee-800f-2315a74b0bf1 * Remove qmd HTTP server script; configure qmd as gateway-managed container MCP server - Delete start_qmd_server.sh and remove generateQmdSetupNodeStep/generateQmdStartServerStep - Update renderQmdTOML and renderQmdMCPConfigWithOptions to use node:24 container with stdio transport - Gateway starts qmd via npx with /tmp/gh-aw and ${HOME}/.cache/qmd mounts - Replace GH_AW_QMD_PORT env var with INDEX_PATH/NODE_LLAMA_CPP_GPU in mcp_environment.go - Remove unused DefaultQmdPort constant and generateQmdNodeLlamaCppCacheRestoreStep function - Update golden test files (pre-existing mcpg version bump from main merge) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/81594ef2-0e76-48ee-800f-2315a74b0bf1 * fix: replace env_vars array with env object in qmd MCP config The gateway schema requires env as an object (key-value pairs), not env_vars as an array. This caused the validation error: additionalProperties 'env_vars' not allowed - INDEX_PATH and NODE_LLAMA_CPP_GPU use \${VAR} so heredoc does not expand them; the gateway resolves them from its own environment - HOME uses ${HOME} (no backslash) so heredoc expands to /home/runner, since HOME is not passed to the gateway container - Use sortedMapKeys for deterministic output and to keep keys/values in sync Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4091c5b1-577e-47b1-9500-d16f21a79db9 * chore: merge origin/main, rebuild, recompile, update golden files Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/51228c75-5a27-4790-8a79-2df6819091bd * fix: add NO_COLOR=1 to qmd container env and guard-policies to qmd MCP config - Add NO_COLOR=1 to qmd container environment (both TOML and JSON renderers) to prevent ANSI escape codes from corrupting the JSON-RPC stream - Add guard-policies support to qmd MCP config in both TOML and JSON formats, consistent with playwright, serena, mcp-scripts, and agentic-workflows Fixes gateway error: invalid character '\x1b' looking for beginning of value Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/b99aded2-8a95-458f-a171-afa6b8debabf * Add CI=1 to qmd container env to suppress node-llama-cpp progress output Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/de0be902-9461-4165-a6a1-33f4984e886c * fix: switch qmd MCP to HTTP transport to eliminate ANSI stdout corruption The root cause was Llama._callLogger() in node-llama-cpp v3 writing dot-progress characters directly to process.stdout (bypassing log levels and NO_COLOR=1) during model loading on first tool call. This corrupted the stdio JSON-RPC stream. Instead of CI=1 (which disabled qmd LLM operations via LlamaCpp._ciMode check), switch qmd to HTTP transport (qmd mcp --http). A new 'Start QMD MCP Server' step starts qmd in a Docker container before the gateway; the MCP protocol travels over TCP/HTTP, completely independent of qmd's stdout/stderr. - Add DefaultQmdMCPPort = 8181 constant - generateQmdStartStep(): Docker start + curl health-check (120s timeout) - mcp_setup_generator: add qmd start step before gateway - mcp_renderer_builtin: replace container/stdio config with HTTP URL - Update RenderQmd signature to pass workflowData for host resolution - Remove INDEX_PATH/NODE_LLAMA_CPP_GPU from gateway env (now in Docker step) - Recompile all 177 lock files Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1769cafa-6727-4bf8-b4ea-44a3f8eb589d * fix: run qmd MCP server natively on VM instead of in Docker container Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/0ce24d39-ceb1-447b-86ee-fa8fcce7a34b * placeholder for planning Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/78657957-9d39-4cf3-8b27-2f585b36aeb4 * feat(qmd): use aw-gpu-runner-T4 as default indexing job runner Change the default runner for the qmd indexing job from ubuntu-latest to aw-gpu-runner-T4, enabling GPU acceleration for node-llama-cpp during the embedding phase. Users can still override with runs-on:. Add DefaultQmdIndexingRunnerImage constant in pkg/constants/constants.go. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/78657957-9d39-4cf3-8b27-2f585b36aeb4 * revert default qmd runner to ubuntu-latest, set aw-gpu-runner-T4 in dev.md Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/4b64a23b-c604-4c19-b141-d8b92660beba * feat: enable GPU support for QMD in dev workflow * chore: merge main and recompile lock files Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/b8c38a29-aabd-4f05-bdf2-e26dbc1e9529 * fix: resolve TypeScript undefined errors in qmd_index.cjs Use null-coalescing/short-circuit checks for optional fields (checkouts, searches, min, max) so tsc --noEmit passes without errors. - Extract config.checkouts ?? [] and config.searches ?? [] before iterating in writeSummary - Use && guards for search.max and search.min comparisons - Use search.min ?? 0 for minCount variable All 20 qmd_index tests still pass. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/d0d5208c-2141-4f99-b526-1be3cfed1b3c * plan: fix invalid frontmatter anchor links in qmd docs Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e8e29554-d8d1-45de-9bb0-617854e9fd90 * fix: correct invalid frontmatter anchor links in qmd docs Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Agent-Logs-Url: https://github.com/github/gh-aw/sessions/e8e29554-d8d1-45de-9bb0-617854e9fd90 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> Co-authored-by: Peli de Halleux <pelikhan@users.noreply.github.com>
1 parent 7d0aa2d commit 4248ac6

34 files changed

+2731
-45
lines changed

.github/workflows/ci.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,37 @@ jobs:
871871
- name: Run tests
872872
run: cd actions/setup/js && npm test
873873

874+
js-qmd-index:
875+
runs-on: ubuntu-latest
876+
timeout-minutes: 10
877+
needs: validate-yaml
878+
permissions:
879+
contents: read
880+
concurrency:
881+
group: ci-${{ github.ref }}-js-qmd-index
882+
cancel-in-progress: true
883+
steps:
884+
- name: Checkout code
885+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
886+
- name: Set up Node.js
887+
id: setup-node
888+
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
889+
with:
890+
node-version: "24"
891+
cache: npm
892+
cache-dependency-path: actions/setup/js/package-lock.json
893+
- name: Report Node cache status
894+
run: |
895+
if [ "${{ steps.setup-node.outputs.cache-hit }}" == "true" ]; then
896+
echo "✅ Node cache hit" >> $GITHUB_STEP_SUMMARY
897+
else
898+
echo "⚠️ Node cache miss" >> $GITHUB_STEP_SUMMARY
899+
fi
900+
- name: Install npm dependencies
901+
run: cd actions/setup/js && npm ci
902+
- name: Run qmd_index.cjs tests
903+
run: cd actions/setup/js && npm test -- qmd_index.test.cjs
904+
874905
js-integration-live-api:
875906
runs-on: ubuntu-latest
876907
timeout-minutes: 10

.github/workflows/dev.lock.yml

Lines changed: 250 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/dev.md

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
on:
33
workflow_dispatch:
4+
label_command: dev
45
schedule:
56
- cron: '0 9 * * *' # Daily at 9 AM UTC
67
name: Dev
@@ -14,6 +15,22 @@ permissions:
1415
issues: read
1516
pull-requests: read
1617

18+
tools:
19+
qmd:
20+
runs-on: aw-gpu-runner-T4
21+
gpu: true
22+
checkouts:
23+
- name: docs
24+
paths:
25+
- docs/src/**/*.md
26+
- docs/src/**/*.mdx
27+
context: "gh-aw project documentation"
28+
searches:
29+
- name: issues
30+
type: issues
31+
max: 500
32+
github-token: ${{ secrets.GITHUB_TOKEN }}
33+
1734
safe-outputs:
1835
create-issue:
1936
expires: 7d
@@ -24,14 +41,21 @@ features:
2441

2542
# Daily Status Report
2643

27-
Generate a daily status report for the gh-aw project.
44+
Generate a daily status report for the gh-aw project, focusing on documentation quality.
2845

2946
**Requirements:**
30-
1. Analyze the current state of the repository
31-
2. Check for recent commits, pull requests, and issues
32-
3. Identify any potential issues or areas needing attention
33-
4. Create a comprehensive daily status report
34-
5. Post the report as an issue with the date in the title
47+
48+
1. **Find documentation problems reported in issues**: Use the `qmd` search tool to query the indexed issues collection for issues that mention documentation bugs, unclear instructions, missing documentation, or incorrect documentation. Look for patterns like "docs", "documentation", "unclear", "wrong", "missing", "broken", "outdated".
49+
50+
2. **Cross-reference with current documentation**: For each documentation problem found in issues, use the `qmd` search tool to query the indexed docs collection to find the relevant documentation section that the issue is referencing or that could answer the question raised.
51+
52+
3. **Compile a report** summarizing:
53+
- Issues that report documentation problems (with issue numbers and titles)
54+
- The corresponding documentation sections that may need updating
55+
- Any issues where the documentation actually already contains the answer (and the issue could be closed with a pointer)
56+
- Gaps where no documentation exists for a reported problem
57+
58+
4. Post the report as an issue with the date in the title.
3559

3660
Keep the report informative but concise.
3761

.github/workflows/smoke-codex.lock.yml

Lines changed: 141 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/smoke-codex.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@ tools:
3434
languages:
3535
go: {}
3636
web-fetch:
37+
qmd:
38+
checkouts:
39+
- name: docs
40+
paths:
41+
- docs/src/**/*.md
42+
- docs/src/**/*.mdx
43+
context: "gh-aw project documentation"
44+
searches:
45+
- name: issues
46+
type: issues
47+
max: 500
48+
github-token: ${{ secrets.GITHUB_TOKEN }}
3749
runtimes:
3850
go:
3951
version: "1.25"

0 commit comments

Comments
 (0)