Skip to content

fix(skills): correct aiq-research SPDX header - #293

Merged
AjayThorve merged 2 commits into
developfrom
ajay/fix-aiq-research-spdx
Jun 29, 2026
Merged

AjayThorve merged 2 commits into
developfrom
ajay/fix-aiq-research-spdx

Conversation

@AjayThorve

@AjayThorve AjayThorve commented Jun 29, 2026

Copy link
Copy Markdown
Member

Overview

  • Add the required NVIDIA SPDX copyright declaration to skills/aiq-research/scripts/aiq.py.
  • Change the license identifier to CC-BY-4.0 AND Apache-2.0 for OSS license compliance.
  • Keep this replacement focused: it contains no NVSkills trigger-marker or other no-op content changes.

Why

The SPDX-header CI check and OSRB review surfaced a license-compliance gap in the aiq-research skill. 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.py
  • pre-commit run --files skills/aiq-research/scripts/aiq.py
  • git diff --check

Where should reviewers start?

skills/aiq-research/scripts/aiq.py: the two SPDX lines immediately after the shebang.

Related issues

Supersedes #279.

Summary by CodeRabbit

  • Chores
    • Updated project metadata and copyright information.
    • Adjusted whitespace validation rules to skip a specific markdown pattern, reducing unnecessary formatting check failures.

@copy-pr-bot

copy-pr-bot Bot commented Jun 29, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@AjayThorve

Copy link
Copy Markdown
Member Author

/nvskills-ci

@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds an exclude pattern for skills/[^/]+/skill-card\.md to the trailing-whitespace pre-commit hook, and updates the SPDX copyright year in skills/aiq-research/scripts/aiq.py from 2025-2026 to 2026.

Changes

Config and header metadata updates

Layer / File(s) Summary
Pre-commit exclusion and copyright year
.pre-commit-config.yaml, skills/aiq-research/scripts/aiq.py
trailing-whitespace hook gains an exclude regex for skill-card.md files; aiq.py SPDX copyright year adjusted to 2026.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Suggested labels

duplicate

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title follows Conventional Commits and accurately summarizes the SPDX header fix.
Description check ✅ Passed The description includes Overview, Validation, reviewer start, and related issues, with only the template checklist omitted.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ajay/fix-aiq-research-spdx

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot added the duplicate This issue or pull request already exists label Jun 29, 2026
@AjayThorve
AjayThorve force-pushed the ajay/fix-aiq-research-spdx branch from 644160d to b16a601 Compare June 29, 2026 20:27
@AjayThorve

Copy link
Copy Markdown
Member Author

/nvskills-ci

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between a794626 and 644160d.

📒 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.py to 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 configured AIQ_SERVER_URL
Keep citations and source URLs intact in returned reports and do not truncate them
Run health before sending research requests to verify the target backend URL is reachable
Poll asynchronous deep research jobs when AI-Q returns a job ID using research_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 in frontends/ui/, eval harnesses
    in frontends/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. Treat sources/* 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_bench
deploy/ Docker Compose and Helm/Kubernetes assets; deploy/.env for secrets
docs/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 at http://localhost:8000 by 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 Bash

AIQ 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 to aiq-deploy.

Prerequisites

Users need:

  • Python 3.11+ available as python3.
  • A reachable local or self-hosted AI-Q Blueprint backend.
  • AIQ_SERVER_URL set when the backend is not running at http://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

Comment thread skills/aiq-research/scripts/aiq.py
@AjayThorve

Copy link
Copy Markdown
Member Author

/ok to test 5842101

@AjayThorve
AjayThorve requested a review from a team June 29, 2026 20:53
@tanleach

Copy link
Copy Markdown
Collaborator

Seems straight forward. 👍🏻

@tanleach tanleach self-assigned this Jun 29, 2026
@AjayThorve
AjayThorve requested a review from tanleach June 29, 2026 20:59

Copy link
Copy Markdown
Member Author

/nvskills-ci

@AjayThorve

Copy link
Copy Markdown
Member Author

/ok to test 9c784c6

@AjayThorve
AjayThorve force-pushed the ajay/fix-aiq-research-spdx branch from 9c784c6 to 57a7d70 Compare June 29, 2026 22:21

Copy link
Copy Markdown
Member Author

/nvskills-ci

Signed-off-by: Ajay Thorve <athorve@nvidia.com>
@AjayThorve
AjayThorve force-pushed the ajay/fix-aiq-research-spdx branch from 2c7ca3f to ab7676f Compare June 29, 2026 22:41
@AjayThorve

Copy link
Copy Markdown
Member Author

/nvskills-ci

Signed-off-by: nvskills-svc-account <svc-nvskills-signing@nvidia.com>
@AjayThorve

Copy link
Copy Markdown
Member Author

/ok to test cb5c8f6

@AjayThorve

Copy link
Copy Markdown
Member Author

/merge

@AjayThorve
AjayThorve merged commit 2f2557c into develop Jun 29, 2026
10 checks passed
@AjayThorve AjayThorve added this to the v2.2 milestone Jul 7, 2026
@AjayThorve
AjayThorve deleted the ajay/fix-aiq-research-spdx branch July 9, 2026 04:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

duplicate This issue or pull request already exists

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants