Workflows

End-to-end guides for building webapps with AI, provisioning demo environments, and automating SystemLink operations.

Install AI Skills

Two bundled skills give your AI assistant deep knowledge of SystemLink — one for CLI operations, one for building web applications.

SkillWhat it teaches
slcliHow to query and manage every SystemLink resource type using CLI commands
systemlink-webappHow to build Nimble Angular webapps with @ni/nimble-angular, @ni/systemlink-clients-ts, hash routing, CSP compliance, theme sync, and deployment via slcli webapp publish
1

Install the skills

One command installs both skills for all supported AI clients.

# Install for all clients (Copilot, Claude, Codex)
slcli skill install --client all --scope personal
2

Ask your assistant about SystemLink

The skills are loaded automatically. Try natural language queries:

"Show me all failed test results from this week"
"Which assets need calibration?"
"Build me a fleet health dashboard for SystemLink"
"Install the demo-complete-workflow example in the Training workspace"
3

Project-scoped skills (optional)

Install per-repo for team consistency — the skill files are committed alongside your code.

# Install into the current repo
slcli skill install --client copilot --scope project

Tip: The skills follow the Agent Skills open standard. They work with any AI client that supports skill discovery.

Build a Nimble Angular WebApp with AI

The systemlink-webapp skill teaches your AI assistant the complete NI design system — @ni/nimble-angular components, @ni/systemlink-clients-ts SDK, hash routing, CSP compliance, theme synchronization, and deployment. One command sets up everything your assistant needs.

1

Scaffold the project

webapp init creates the Angular starter, adds the AI skills, and writes the starter files your assistant uses to bootstrap Angular in place.

slcli webapp init ./fleet-dashboard
cd fleet-dashboard

The scaffolded directory includes:

  • PROMPTS.md — ready-made prompts for building dashboards, test results pages, and more
  • START_HERE.md — bootstrap and deployment guidance for the Angular workflow
  • .agents/skills/ — AI skills pre-installed so your AI assistant can discover them immediately
2

Describe your webapp to AI

Open the project in your editor and describe what you need. Your AI assistant knows the full Nimble component library, SystemLink APIs, and deployment requirements — just describe your goals.

"I need a web dashboard for monitoring our production test
 systems. It should show which systems are online, recent test
 results, and any assets due for calibration."

"Create a page where I can browse recent test results,
 filter by status and program name, and see a summary of
 failure rates."

"Build a dashboard with key metrics: first-pass yield,
 test throughput per hour, and a trend chart of failures
 over the last 30 days."
3

Build and publish

# Create Plugin Manager packaging config
slcli webapp manifest init . \
  --description "A dashboard for monitoring fleet health and calibration status." \
  --section Dashboard \
  --maintainer "Your Name <you@example.com>" \
              --license MIT \
              --icon-file ./icon.svg

ng build --configuration production

# Pack the app and generate manifest.json with the artifact SHA-256
slcli webapp pack --config nipkg.config.json
slcli webapp publish dist/<app-name>/browser/ \
  --name "Fleet Dashboard" \
  --workspace Production
4

Open and iterate

# Open the deployed webapp
slcli webapp open --id <webapp-id>

# Re-publish after changes (same --name updates in place)
ng build --configuration production
slcli webapp publish dist/<app-name>/browser/ \
  --name "Fleet Dashboard" --workspace Production

Key patterns the skill teaches: nimble-theme-provider with automatic theme detection, APP_BASE_HREF via DI (no <base> tag), useHash: true routing, inlineCritical: false for CSP, same-origin cookie authentication, and the full Nimble component library (tables, tabs, buttons, drawers, dialogs, spinners, banners).

Provision Demo Environments

Instantly provision complete SystemLink environments with realistic data for demonstrations, training classes, and evaluation.

Available Examples

ExampleContentsTime
demo-complete-workflow Systems, assets, DUTs, templates, products, results ~5 min
demo-test-plans Locations, products, systems, assets, DUTs, test template ~5 min
spec-compliance-notebooks 3 Jupyter notebooks for spec compliance analysis ~3 min
exercise-5-1-parametric-insights 18 test results with parametric measurements, deliberate anomalies ~5 min
exercise-7-1-test-plans Test plan creation and scheduling exercises ~5 min

Install an Example

# Browse available examples
slcli example list

# Inspect what will be created
slcli example info demo-complete-workflow

# Dry-run (validate without creating)
slcli example install demo-complete-workflow --workspace Training --dry-run

# Install with audit log
slcli example install demo-complete-workflow \
  --workspace Training \
  --audit-log install-log.json

Clean Up

# Remove all resources from a previous install
slcli example delete demo-complete-workflow \
  --workspace Training \
  --audit-log delete-log.json

Training Exercises

The example datasets are designed for hands-on SystemLink training courses. Each exercise includes structured data with intentional patterns for students to discover.

Exercise 5-1: Parametric Insights

Students query and visualize 18 thermal cycle test results across three test stands to discover:

  • TC-03 runs ~3–4 °C warmer than TC-01/TC-02 (calibration offset)
  • TC-01 Cycle 5: internal resistance spike → FAIL
  • TC-03 Cycle 4: cell temperature spike → FAIL
# Install the exercise data
slcli example install exercise-5-1-parametric-insights \
  --workspace "Training Lab"

# Query the data with the AI skill
"Show me test results grouped by system for the Training Lab workspace.
 Which test stand has consistently higher temperature readings?"

Exercise 7-1: Test Plans

Students learn to create and schedule test plans using templates and workflows.

slcli example install exercise-7-1-test-plans --workspace "Training Lab"

Multi-Environment Operations

Manage multiple SystemLink environments from a single terminal session using named profiles.

# Set up profiles for each environment
slcli login --profile dev --url "https://dev.example.com"
slcli login --profile staging --url "https://staging.example.com"
slcli login --profile prod --url "https://prod.example.com"

# Compare test results across environments
slcli -p dev testmonitor result list --summary --format json > dev-results.json
slcli -p prod testmonitor result list --summary --format json > prod-results.json

# Export templates from dev, import to staging
slcli -p dev template export --name "Battery Test" --output battery-test.json
slcli -p staging template import --file battery-test.json

# Migrate workflows between environments
slcli -p dev workitem workflow export --name "Production Flow" --output workflow.json
slcli -p staging workitem workflow import --file workflow.json

Readonly Mode for AI Agents

Create a readonly profile to let AI assistants query SystemLink safely without any risk of modifying data.

# Create a readonly profile for AI agents
slcli login --profile aiagent \
  --url "https://prod.example.com" \
  --api-key "your-api-key" \
  --readonly

# AI can query freely
slcli -p aiagent testmonitor result list --summary
slcli -p aiagent system list --state CONNECTED
slcli -p aiagent asset list --calibratable --summary

# But mutations are blocked
slcli -p aiagent asset delete <id>
# ✗ Cannot delete: profile is in readonly mode

Best practice: Use readonly profiles with AI assistants so they can explore data without accidentally modifying production resources.

Automated File Uploads

Monitor a directory and automatically upload new files to SystemLink as they appear.

# Watch for new CSV files and upload them
slcli file watch /data/results --pattern "*.csv" --recursive

# Upload to a specific workspace
slcli file watch /data/results \
  --workspace "Production" \
  --pattern "*.csv" \
  --recursive

# Move files after upload (prevents re-upload)
slcli file watch /data/inbox \
  --move-to /data/uploaded \
  --pattern "*.tdms"

# Delete files after successful upload
slcli file watch /data/inbox --delete-after-upload

Ready to get started?

Install the CLI and explore these workflows in your own SystemLink environment.