jac-debugging

Diagnose Jac build failures, stale caches, and cross-boundary contract drift using jac check diagnostics.

Updated Jul 26, 2026
One-click install
npx skills add https://github.com/nihalnihalani/jachacks-sf-2026 --skill jac-debugging-nihalnihalani
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: jac-debugging
Source: https://github.com/nihalnihalani/jachacks-sf-2026/tree/main/plugins/jac-codex/skills/jac-debugging
Command: npx skills add https://github.com/nihalnihalani/jachacks-sf-2026 --skill jac-debugging-nihalnihalani

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Jac builds fail or behave inexplicably for reasons that are hard to trace: cryptic E/W diagnostics, stale compiled bytecode or persisted graph data, and client code that silently drifts after a server contract changes. This Skill provides a systematic fix loop for reading jac check output, triaging staleness, and locating the real source of an error. ## Core Features & Use Cases - Diagnostic decoding: Explains the anatomy of jac check errors and warnings (severity letters, category digits, jac guide pointers) and how to suppress codes with # jac:ignore[CODE] or CLI flags. - Stale-cache triage: Maps symptoms like NodeAnchor is not a valid reference to the right cleanup command (jac clean --all --force, jac purge, or removing .jac/data). - Contract drift detection: Interprets W1101/W1051 warnings in client files as pointers to stale callers after a server endpoint rename or retype. - Graph inspection: Uses jac dot to visualize the actual graph when walker logic misbehaves, plus jac browse for end-to-end checks of served apps. - Use Case: After renaming a def:pub endpoint, run jac check project-wide and use this Skill to read the resulting client-file warnings as a list of every stale call site to update. ## Quick Start Ask the assistant to diagnose why your Jac build is failing by pasting the jac check output and having it walk the fix loop.

Frequently Asked Questions about jac-debugging

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I read and fix jac check error codes?▼

Each jac check diagnostic has a severity letter (E for error, W for warning) and a category digit: 0 syntax, 1 type, 2 semantic, 3 lint, 4 import, 5 codegen. When the output includes a 'run jac guide <name>' pointer, run it to get the exact reference for that error class.

Why does Jac throw 'NodeAnchor is not a valid reference' errors?▼

This error means the persisted graph data is stale relative to recompiled node types. Fix it with jac clean --all --force, which clears data, cache, venv, and client artifacts, then re-run your program.

What is the difference between jac clean and jac purge?▼

jac clean clears project-level artifacts: .jac/data by default, bytecode with --cache, or everything with --all. jac purge clears the global per-user cache and survives even a corrupted cache, making it the right choice after upgrading Jaseci packages.

How do I suppress a specific Jac warning or error code?▼

Add a same-line comment like # jac:ignore[E1030,W2003] with comma-separated codes. You can also pass -d/--disable-error-code to jac check for a single run, or configure select/ignore rules under [check.lint] in jac.toml.

Why do client files show W1101 warnings after changing a server endpoint?▼

W1101 at a client's sv import means the imported endpoint or type no longer exists on the server after a rename or removal. Run jac check project-wide and treat these client-file warnings as pointers to every stale caller that needs updating.

When should I use jac fmt versus jac check --lint --fix?▼

jac fmt handles whitespace and layout only, while jac check --lint reports rule violations and --fix applies auto-fixable ones. Use jac fmt -l to format and lint-fix in a single pass.