fix(skills): correct aiq-research SPDX header - #293
Conversation
|
/nvskills-ci |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdds an ChangesConfig and header metadata updates
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
644160d to
b16a601
Compare
|
/nvskills-ci |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/aiq-research/scripts/aiq.py`:
- Around line 2-3: Restore the SPDX copyright header punctuation in aiq.py by
keeping the repo’s expected comma after the year, matching the existing
copyright format used for Agent Skill files. Update the header text near the
SPDX-FileCopyrightText line so it follows the standard convention with the year
and organization separated by a comma, while preserving the license identifiers
exactly as-is.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 34b43a98-fce6-4e30-a9d9-6c74f3580a77
📒 Files selected for processing (1)
skills/aiq-research/scripts/aiq.py
📜 Review details
🧰 Additional context used
📓 Path-based instructions (7)
**/*.py
📄 CodeRabbit inference engine (CONTRIBUTING.md)
Run ruff check and ruff format validation for Python code changes
**/*.py: Python code must be linted and formatted with Ruff using line length 120, target Python 3.11, rule sets E,F,W,I,PL,UP, and isort force-single-line configuration
Never commit secrets, tokens, or environment-specific hostnames; use environment variables and SecretStr instead, resolving API keys at runtime
Never print or log secret values, including in tool output or error messages
Missing-secret paths must degrade gracefully (stub/skip), not crash or leak
Do not hand-reformat unrelated code when making changes; match the existing import and formatting style
Files:
skills/aiq-research/scripts/aiq.py
skills/aiq-research/**/*.py
📄 CodeRabbit inference engine (skills/aiq-research/SKILL.md)
Use Python 3.11+ with the helper script at
scripts/aiq.pyto call a locally running NVIDIA AI-Q Blueprint server
Files:
skills/aiq-research/scripts/aiq.py
skills/aiq-research/scripts/aiq.py
📄 CodeRabbit inference engine (skills/aiq-research/SKILL.md)
skills/aiq-research/scripts/aiq.py: Before sending any user query, state the exact AI-Q backend URL that will receive it; for non-local URLs, continue only if the user has explicitly confirmed that URL is trusted in the current conversation
Do not send credentials, cookies, bearer tokens, or secret values through query text; user query text is transmitted to the configuredAIQ_SERVER_URL
Keep citations and source URLs intact in returned reports and do not truncate them
Runhealthbefore sending research requests to verify the target backend URL is reachable
Poll asynchronous deep research jobs when AI-Q returns a job ID usingresearch_poll <JOB_ID>and do not retry automatically on failed jobs; show the returned error instead
Do not fabricate a research answer if the backend returns HTTP 500, lacks async agents, or experiences other failures; report the failure instead
For follow-up questions answerable from a report already in hand, answer directly from its content and citations without calling the backend again
For follow-up questions needing new investigation, send a fresh request carrying needed context from the prior question and report into the new query text
Use Python standard-library HTTP modules only; the helper script has no third-party Python package dependencies
Files:
skills/aiq-research/scripts/aiq.py
skills/aiq-research/**/{SKILL.md,*.py,setup.py,requirements.txt,Dockerfile}
📄 CodeRabbit inference engine (skills/aiq-research/SKILL.md)
Ensure skill version compatibility with Blueprint or endpoint version: major versions MUST match, minor version of Blueprint must be equal or greater, patch version can be anything
Files:
skills/aiq-research/scripts/aiq.py
**
⚙️ CodeRabbit configuration file
**:AI-Q Agent Guidance
Repository-global instructions for coding agents and for humans reviewing
agent-authored changes. These rules apply to every task in this repository.
Task-specific runbooks live in.agents/skills/— load the
relevant skill before starting a workflow it covers.Project overview
AI-Q is an NVIDIA AI Blueprint: an enterprise research agent built on the
NeMo Agent Toolkit (NAT). The deployed product is a research blueprint, not
a general skill runtime. New retrieval sources and tools are NAT functions;
agent behavior is driven by workflow YAML, Jinja2 prompts, and a data-source
registry — not by hard-coded logic.Primary boundaries:
- Backend Python package:
src/aiq_agent/.- Data-source and tool packages:
sources/(each is its own package).- Frontends and tooling:
frontends/(web UI infrontends/ui/, eval harnesses
infrontends/benchmarks/).- Configs, deployment, docs:
configs/,deploy/,docs/.Stay inside this repository. If your workspace also contains adjacent repos
(for example a sibling NeMo-Relay checkout), do not edit them as part of an AI-Q
change. Treatsources/*as independent packages: prefer the smallest change
scoped to the package you are touching.Repository structure
Path Purpose src/aiq_agent/Backend agent, FastAPI extensions, auth, observability, knowledge sources/Data-source / tool packages (e.g. tavily_web_search,google_scholar_paper_search)configs/Workflow YAML configs (e.g. config_cli_default.yml)frontends/ui/Next.js / React / TypeScript / Tailwind / KUI web UI frontends/benchmarks/Eval harnesses: freshqa,deepsearch_qa,deepresearch_benchdeploy/Docker Compose and Helm/Kubernetes assets; deploy/.envfor secretsdocs/source/...
Files:
skills/aiq-research/scripts/aiq.py
skills/aiq-research/**
⚙️ CodeRabbit configuration file
skills/aiq-research/**: ---
name: aiq-research
description: |
Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.
license: Apache-2.0
permissions:
env:
- AIQ_SERVER_URL
network:
- http://localhost:8000
compatibility: |
Designed for Claude Code, OpenCode, Codex, and Agent Skills-compatible tools. Requires Python 3.11+ and network
access to a running local AI-Q Blueprint server athttp://localhost:8000by default. Non-local backends must be
explicitly trusted by the user and granted by the host tool outside this public skill.
metadata:
version: "2.1.0"
author: "NVIDIA AI-Q Blueprint Team aiq-blueprint@nvidia.com"
github-url: "https://github.com/NVIDIA-AI-Blueprints/aiq"
tags:
- nvidia
- aiq
- blueprint
- deep-research
- research-agents
- agent-skills
languages:
- python
- bash
domain: "research-agents"
allowed-tools: Read BashAIQ Research Skill
Purpose
Use this skill to call a locally running NVIDIA AI-Q Blueprint server through the helper script at
scripts/aiq.py.Use this skill for research-shaped requests, including:
- "deep research on ..."
- "AIQ research ..."
- "research ..."
- "use AI-Q to answer ..."
- "ask AI-Q about ..."
Do not use this skill for install, deploy, start, stop, UI, CLI, Docker, Helm, or troubleshooting requests. Those
belong toaiq-deploy.Prerequisites
Users need:
- Python 3.11+ available as
python3.- A reachable local or self-hosted AI-Q Blueprint backend.
AIQ_SERVER_URLset when the backend is not running athttp://localhost:8000; non-local values must be trusted by
the user before any query is sent.- A backend configured with authentication disabled for this public helper, or a separate authenticated AI-Q skill for
authenticated environments.- Network access from the local machine to the AI-Q backend URL.
- Credentials configured in the backend environment, not in this skill. Thi...
Files:
skills/aiq-research/scripts/aiq.py
{skills/**,.agents/skills/**,.claude/skills/**,.github/skill-eval/**}
⚙️ CodeRabbit configuration file
{skills/**,.agents/skills/**,.claude/skills/**,.github/skill-eval/**}: Review Agent Skill and skill-eval changes for valid skill metadata, deterministic eval specs, safe handling of
credentials, and clear generated-output boundaries. Do not flag SKILL.md files for missing SPDX headers when the
entrypoint intentionally starts with YAML frontmatter.
Files:
skills/aiq-research/scripts/aiq.py
|
/ok to test 5842101 |
|
Seems straight forward. 👍🏻 |
|
/nvskills-ci |
|
/ok to test 9c784c6 |
9c784c6 to
57a7d70
Compare
|
/nvskills-ci |
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
2c7ca3f to
ab7676f
Compare
|
/nvskills-ci |
Signed-off-by: nvskills-svc-account <svc-nvskills-signing@nvidia.com>
|
/ok to test cb5c8f6 |
|
/merge |
Overview
skills/aiq-research/scripts/aiq.py.CC-BY-4.0 AND Apache-2.0for OSS license compliance.Why
The SPDX-header CI check and OSRB review surfaced a license-compliance gap in the
aiq-researchskill. The skill also requires a fresh NVSkills signature after its content changed, so this fix is bundled with the re-sign request.Validation
ruff check skills/aiq-research/scripts/aiq.pypre-commit run --files skills/aiq-research/scripts/aiq.pygit diff --checkWhere should reviewers start?
skills/aiq-research/scripts/aiq.py: the two SPDX lines immediately after the shebang.Related issues
Supersedes #279.
Summary by CodeRabbit