跳到正文
cccskills
免费在 GitHub 公开

adk-verify-snippets

Extracts and verifies the runnability and code coverage of all Python code blocks inside a Markdown file. Generates a detailed compilation and execution report.

中文简介正在准备中。当前显示原文说明。

karanmrn/karanagentskills星标 3(GitHub 3 + cccskills 0)
集成工具Gemini

实测评分 未实测

查看安装方法

包含的文件(3)

  • SKILL.md5.9 KB
  • scripts/run.py13.3 KB
  • scripts/verify_md.py16.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Verify Markdown Snippets Skill

This skill extracts all ```python blocks from a Markdown file, executes each one in a process-isolated environment using the bundled run.py harness, and generates a structured report covering load status, run status, and line coverage.

[!CAUTION] STRICT READ-ONLY CONSTRAINT — READ THIS BEFORE DOING ANYTHING ELSE

This skill is read-only. The agent MUST NOT: - Modify any file in the repository (source, test, config, docs, or skill files — including this SKILL.md). - Delete any file in the repository. - Create any new file in the repository.

The only two write operations permitted are: 1. Writing temporary .py snippet files to a system temp directory outside the repository. 2. Writing the final <filename>_REPORT.md into the same directory as the source Markdown file.

If in doubt, do not write. Any other mutation is a violation of this skill's contract.


🔧 Prerequisites

  1. ADK Python environment: Run from the repository root with the uv virtual environment active.

  2. coverage package (optional): Enables per-snippet coverage reporting. Without it, coverage columns show —.

    uv pip install coverage
    
  3. Gemini API key: Required only for snippets that instantiate an Agent, App, or Workflow (which make live Gemini API calls). Set one of:

    export GEMINI_API_KEY="your-key-here"
    # or
    export GOOGLE_API_KEY="your-key-here"
    

    If both are set, GEMINI_API_KEY takes precedence.


🛠️ Usage

uv run --no-sync python .agents/skills/adk-verify-snippets/scripts/verify_md.py <path_to_markdown_file.md>

The script prints progress for each snippet, then writes a report to <filename>_REPORT.md in the same directory as the source file and prints the full path on completion.

Report contents: :- Executive Summary table — one row per snippet: preceding heading, Load phase status, Run phase status, coverage %, and error detail.

  • Detailed section — for each snippet: the extracted code block, full execution logs (stdout + stderr/traceback), and the coverage report.

📝 How Snippets Are Classified

Each ```python block falls into one of these categories:

1. Runnability Test (has a module-level ADK component)

If the snippet assigns a Workflow, Agent, or App to a module-level variable, the runner executes it against the Gemini API.

  • The variable name does not matter — the runner finds it automatically via vars(module).
  • For multi-agent snippets, the runner identifies the root agent by excluding any agent that appears in another agent's sub_agents list.
  • To use a custom test prompt instead of the default "Test input topic", define a module-level test_input string in the snippet.

If no module-level ADK component is found, the run phase is skipped and the report shows ➖ NO ADK COMPONENT.

2. Loadability-Only (no ADK component)

The runner verifies the snippet compiles and imports without error. No API call is made.

3. Skipped (annotated with ignore)

Place <!-- verify-snippets: ignore --> immediately before the opening ```python fence to exclude a block entirely. Use this for pseudo-code, illustrative examples, or snippets that require external setup.

<!-- verify-snippets: ignore -->
```python
# pseudo-code — not runnable as-is
my_agent = Agent(model="gemini-ultra-hypothetical", ...)
```

The report shows these as ⏭️ SKIPPED.


⚠️ Known Limitations

  • No shared state between snippets: Each snippet runs in a fresh subprocess with no imports or variables carried over from previous snippets. A snippet that depends on code from an earlier block will fail with NameError or ImportError. Make each snippet self-contained, or annotate it with <!-- verify-snippets: ignore -->.
  • 120-second timeout: Each snippet is killed after 120 seconds. Annotate long-running or blocking snippets with <!-- verify-snippets: ignore -->.
  • Ignore annotation placement: The <!-- verify-snippets: ignore --> annotation applies to the next ```python fence encountered. Blank lines between the annotation and the fence are tolerated, but any non-blank line (prose or a heading) cancels the annotation.
  • Bare ``` closes the block: The parser closes a Python block on the first bare ``` line (no language tag). A bare ``` appearing as content inside a snippet (e.g. to demonstrate Markdown syntax) will prematurely close the block. Annotate such snippets with <!-- verify-snippets: ignore -->.

⚠️ Behavioral Constraints (For AI Agents)

  • Read-only: See the caution block at the top. The constraint is absolute.
  • Report only, do not fix: The agent MUST NOT rewrite the source Markdown, modify code blocks, or generate patches. Present the summary table to the user and stop.
  • Present the summary table verbatim: After the script completes, read the generated _REPORT.md and copy the Executive Summary table to the user exactly as written — same six columns, same order, no renaming or dropping: Snippet | Preceding Heading | Load Phase | Run Phase | Coverage | Details

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.

中文简介正在准备中。当前显示原文说明。

karanmrn/karanagentskills32026年8月28日 更新

Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.

中文简介正在准备中。当前显示原文说明。

karanmrn/karanagentskills32026年8月28日 更新

1password

免费

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

中文简介正在准备中。当前显示原文说明。

karanmrn/karanagentskills32026年8月28日 更新

Build integrated IS/BS/CF financial workbooks in Excel.

中文简介正在准备中。当前显示原文说明。

karanmrn/karanagentskills32026年8月28日 更新

9router

免费

Entry point for 9Router — local/remote AI gateway with OpenAI-compatible REST for chat, image, TTS, embeddings, web search, web fetch. Use when the user mentions 9Router, NINEROUTER_URL, or wants AI without writing provider boilerplate. This skill covers setup + indexes capability skills; fetch the relevant capability SKILL.md from the URLs below when needed.

中文简介正在准备中。当前显示原文说明。

karanmrn/karanagentskills32026年8月28日 更新

Chat / code generation via 9Router using OpenAI /v1/chat/completions or Anthropic /v1/messages format with streaming + auto-fallback combos. Use when the user wants to ask an LLM, generate code, summarize text, or run prompts through 9Router.

中文简介正在准备中。当前显示原文说明。

karanmrn/karanagentskills32026年8月28日 更新

查看 karanmrn 的全部技能

报告此技能的问题