Offline-first agent readiness for your repository — directly inside VS Code.
- Publisher:
Cynrath (Cynrath.ackit-vscode)
- Version:
0.5.4 (Marketplace stable; source checkouts build 0.5.4)
- Engine:
VS Code ^1.90.0
- Activation:
onStartupFinished (debounced, lazy refresh)
- Category:
Linters
- Offline: No network, no telemetry, no remote fonts — all analysis via shared ACKit SDK
Get findings in 30 seconds
- Open your repository folder in VS Code (
File → Open Folder…).
- Open the ACKit view (Activity Bar) — readiness scores automatically (
Overall 88/100 style with 6 categories).
- Expand Findings (grouped by severity) or run
ACKit: Show Readiness from the Command Palette.
- Click a finding to jump to the exact file/line; use
ACKit: Refresh after changes.
Prefer the terminal? npx --yes @cynrath/agent-context-kit@latest readiness scores the same repository without installing anything.
Views (Activity Bar → ACKit)
All views are backed by the shared deterministic SDK (scanRepository, scoreRepository, buildInstructionGraph, analyzeOptimize, etc.), not shell-outs. Data is cached per workspace root and refreshed debounced on file create/change/delete.
- Readiness (
ackit.readiness) — Overall 88/100 + 6 categories (Instructions, Security, Context Efficiency, Tasks, Skills, Policy) with weighted renormalization, N/A handling, and expandable deductions. Uses real scoreRepository inputs, tooltip evidence, refresh on change.
- Findings (
ackit.findings) — Grouped by severity (critical/high/medium/low), rule ID, path, message. Click to open file at exact line/column. Uses real scanRepository findings.
- Instruction Graph (
ackit.graph) — Nodes instr:codex:AGENTS.md, instr:claude:CLAUDE.md, etc., with provider, precedence, provenance, shadowing. Uses buildInstructionGraph + resolveEffectiveStack.
- Tasks (
ackit.tasks) — Canonical status snapshot via the shared SDK (buildStatusReport, same ackit.status.v1 contract as ackit status). Read-only: no write paths added. Tasks/policy/optimize summaries also available (see Diagnostics for details). If you prefer commands only, use ACKit: Diagnostics.
- Canonical Task Status — Tree header shows the active task id/title with its workflow
task/stage from the snapshot (ackit.status.v1, same contract as ackit status).
- Completion Blockers — Expandable list of verbatim completion-gate blockers (same engine, same strings, same stable codes as
ackit task complete would enforce).
- Verification Freshness — Verdict binding/freshness composed in the same snapshot; stale, unbound, missing, or non-independent verdicts surface as verbatim blockers (
VERDICT-STATE-STALE, VERDICT-BINDING-MISSING, MISSING_VERIFIER_VERDICT, …).
- Checkpoint Freshness — Checkpoint staleness composed in the same snapshot; the checkpoint's recorded next action surfaces under Derived Next Actions.
- Derived Next Actions — Suggested commands derived from blocker codes (evidence sync, fresh verification bundle, workflow advance, dependency completion), plus
complete task when all gates pass.
- Policy (
ackit.policy) — Policy chain/digest (see Diagnostics).
- Optimize (
ackit.optimize) — 8-class taxonomy, severity, token-waste estimates, evidence paths, remediation. Via analyzeOptimize (SDK), preview diff, no silent writes.
Problems Integration
Findings are mirrored to VS Code Problems (ACKITxxx) with correct severity mapping:
critical/high → Error
medium → Warning
low → Information
info → Hint
Safe path handling via vscode.Uri.joinPath + isInsideRoot check, invalid line/column clamped to 0, repository-level findings skipped gracefully, DiagnosticCollection cleared atomically on refresh.
Commands
ACKit: Refresh — Refresh all workspaces (debounced, cancellable)
ACKit: Show Readiness — QuickPick categories
ACKit: Show Graph — QuickPick nodes or open file
ACKit: Instructions for Current File — Uses active editor, workspace.getWorkspaceFolder, buildInstructionGraph + resolveEffectiveStack (provider codex), shows ordered effective stack with why + provenance, handles not-in-workspace gracefully
ACKit: Optimize — Real analyzeOptimize via SDK, QuickPick with severity/category/waste, detail view with Remediation + Preview Diff (no silent writes, respects fixable + dryRun)
ACKit: Diagnostics — Real loadAckitConfig + TaskStore + policy summary as JSON (config health, tasks, policy, no auto-upload)
All commands support multi-root: getRootForActiveEditor() → active editor's folder, else first workspace, getRoots() for all, watcher per root, refresh per root.
Watch & Activation
- Watcher:
onDidCreate + onDidChange + onDidDelete (one debounced 400ms coalesced refresh, AbortController cancels in-flight)
- Ignores:
.git, node_modules, dist, .ackit, coverage, artifacts (via walk limits)
- Activation:
onStartupFinished (non-blocking, setTimeout(refreshAll, 800)), lazy first access also works (onView/onCommand would also be valid; current keeps startup light)
Multi-Root
getRoots() → all workspaceFolders
getRootForActiveEditor() → workspace.getWorkspaceFolder(activeEditor.document.uri) else first root
service.onDidChange per root, vsce tests cover workspaceFolders?.[0] anti-pattern
Offline-First Guarantee
- No
fetch remote, no http/https client, no telemetry SDK, no remote fonts/scripts, no external upload — verified via scripts/check-offline-egress.mjs (includes extensions/vscode/src/**) and tests/contract/vscode-icon.test.ts + offline-egress contract
- VS Code host's own Microsoft networking is not ACKit code (host behavior, not product egress)
Requirements
- VS Code
^1.90.0
- Node
>=22 (extension host only, no network)
Links
Screenshots
Run ACKit: Refresh in a fixture workspace (see src/test/runTest.ts test-fixture) — Readiness shows Overall 88/100, Findings grouped, Problems populated, Graph shows AGENTS.md nodes.
Offline-first, deterministic, no telemetry.
| |