Statistical Analysis
spacering-net/codeg
Guided statistical analysis for research data - test selection, assumption checking, effect sizes, power analysis, Bayesian alternatives, and APA-formatted reporting.
Load and display the last 10 cache entries as raw JSON output.
$ npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rajbos/ai-engineering-fluency load-cache-data --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rajbos/ai-engineering-fluency.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/load-cache-data .claude/skills/load-cache-data && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "load-cache-data" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/load-cache-data into .claude/skills/load-cache-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "load-cache-data", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/load-cache-dataType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rajbos/ai-engineering-fluency load-cache-data --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rajbos/ai-engineering-fluency.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/load-cache-data .agents/skills/load-cache-data && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "load-cache-data" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/load-cache-data into .agents/skills/load-cache-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "load-cache-data", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rajbos/ai-engineering-fluency load-cache-data --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rajbos/ai-engineering-fluency.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/load-cache-data .cursor/skills/load-cache-data && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "load-cache-data" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/load-cache-data into .cursor/skills/load-cache-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "load-cache-data", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rajbos/ai-engineering-fluency.git --path .claude/skills/load-cache-data--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rajbos/ai-engineering-fluency load-cache-data --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rajbos/ai-engineering-fluency.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/load-cache-data .gemini/skills/load-cache-data && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "load-cache-data" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/load-cache-data into .gemini/skills/load-cache-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "load-cache-data", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rajbos/ai-engineering-fluency load-cache-dataInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rajbos/ai-engineering-fluency.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/load-cache-data .github/skills/load-cache-data && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "load-cache-data" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/load-cache-data into .github/skills/load-cache-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "load-cache-data", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rajbos/ai-engineering-fluency load-cache-data --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rajbos/ai-engineering-fluency.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/load-cache-data .opencode/skills/load-cache-data && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "load-cache-data" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/load-cache-data into .opencode/skills/load-cache-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "load-cache-data", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
load-cache-dataLoad and display the last 10 cache entries as raw JSON output.
Load Cache Data is an agent skill from rajbos/ai-engineering-fluency. Load and display the last 10 cache entries as raw JSON output. DO NOT create extra files or pretty-print the data - output raw JSON only. Use when you need to understand cached session statistics, debug cache behavior, or work with actual cached data.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Statistics. It works with Visual Studio Code. The repository describes itself as: Extension that shows information about the estimated token usage and more of AI in editors/CLI's. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6933e2a. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Load Cache Data loads about 3.2k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 987 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from rajbos/ai-engineering-fluency at commit 6933e2a, republished under its MIT licence (© rajbos). 987 words, ~3,229 tokens.
.claude/skills/load-cache-data/SKILL.md (or your agent's skills folder).Use --json for output; don't pretty-print or write extra files — this data feeds analysis, not display.
This skill helps you access and inspect the AI Engineering Fluency's local session file cache. The cache stores pre-computed statistics for session files to avoid re-processing unchanged files.
The extension maintains a local cache of session file statistics in VS Code's globalState. This cache contains:
Use this skill when you need to:
The cache is stored in VS Code's global state under the key 'sessionFileCache'. Each cache entry is keyed by the absolute file path and contains:
interface SessionFileCache {
tokens: number; // Total token count
interactions: number; // Number of interactions
modelUsage: ModelUsage; // Per-model token breakdown
mtime: number; // File modification timestamp
usageAnalysis?: SessionUsageAnalysis; // Detailed usage statistics
subAgentCalls?: number; // Sub-agent/delegation tool calls (absent when 0)
}
interface ModelUsage {
[model: string]: {
inputTokens: number;
outputTokens: number;
};
}
interface SessionUsageAnalysis {
toolCalls: ToolCallUsage; // Tool usage statistics
modeUsage: ModeUsage; // Mode distribution
contextReferences: ContextReferenceUsage; // Context reference counts
mcpTools: McpToolUsage; // MCP tool usage
}Cache Storage: VS Code globalState → 'sessionFileCache'
context.globalState.get<Record<string, SessionFileCache>>('sessionFileCache')state.vscdb)Implementation: src/extension.ts (see CacheManager in src/cacheManager.ts below for the actual persistence logic)
The cache can be accessed through the extension's context at runtime:
// Load cache from global state
const cacheData = context.globalState.get<Record<string, SessionFileCache>>('sessionFileCache');
const cacheEntries = Object.entries(cacheData || {});
// Get last 10 entries (sorted by modification time)
const last10 = cacheEntries
.sort((a, b) => (b[1].mtime || 0) - (a[1].mtime || 0))
.slice(0, 10);
// Display cache entries
for (const [filePath, cacheEntry] of last10) {
console.log({
file: filePath,
tokens: cacheEntry.tokens,
interactions: cacheEntry.interactions,
modelUsage: cacheEntry.modelUsage,
lastModified: new Date(cacheEntry.mtime).toISOString()
});
}This skill includes an executable script that loads and displays actual cache data from disk:
Location: .github/skills/load-cache-data/load-cache-data.js
Usage:
# RECOMMENDED: Always use --json for raw JSON output
node .github/skills/load-cache-data/load-cache-data.js --json
# Show last N entries as JSON (default is 10)
node .github/skills/load-cache-data/load-cache-data.js --last 5 --json
# Show help
node .github/skills/load-cache-data/load-cache-data.js --helpNote: The script supports human-readable output without --json, but for LLM skills, always use --json to get structured data.
What it does:
Cache File Locations:
The script searches for cache export files in these locations:
%APPDATA%\Code\User\globalStorage\rajbos.copilot-token-tracker\cache.json (Windows)%TEMP%\copilot-token-tracker-cache.json./cache-export.jsonCreating Cache Export Files:
Since the extension stores cache in VS Code's globalState (internal SQLite database), the cache data must be explicitly exported to one of the above locations for this script to access it. This can be done:
Exit Codes:
0: Cache file found and displayed successfully1: No cache file foundNote: If no cache file is found, the script will display the searched locations and instructions for exporting cache data.
All cache persistence and validation logic lives in CacheManager
(src/cacheManager.ts), not extension.ts — extension.ts only holds a thin
private trySaveCacheToStorage() wrapper that delegates to it.
Method: CacheManager.loadCacheFromStorage()
Location: src/cacheManager.ts
Loads the cache from the shared on-disk snapshot file (not VS Code's global
state — the cache moved off globalState to avoid its ~2-3 MB size warning):
const snapshotPath = this.getSharedSnapshotPath(); // globalStorageUri/cache_<id>.snapshot.json
const content = await fs.promises.readFile(snapshotPath, 'utf-8');
const envelope = JSON.parse(content);
// ...validates schema/cache version, then populates this.sessionFileCacheMethod: CacheManager.trySaveCacheToStorage()
Location: src/cacheManager.ts
Writes the shared on-disk snapshot, guarded by a cross-window file lock so
concurrent VS Code windows never corrupt each other's write. Returns false
(never throws) when the lock is held by another window or the write fails,
so callers can tell "skipped/failed" from "persisted":
async trySaveCacheToStorage(): Promise<boolean> {
const acquired = await this.acquireCacheLock();
if (!acquired) { return false; } // another window holds the lock
try { return await this.writeSharedSnapshot(); }
finally { await this.releaseCacheLock(); }
}Method: CacheManager.isCacheValid()
Location: src/cacheManager.ts
Validates cache entries by comparing both modification time and file size:
isCacheValid(filePath: string, currentMtime: number, currentSize: number): boolean {
const cached = this.sessionFileCache.get(filePath);
if (!cached) { return false; }
return this.policy.isValid(cached, currentMtime, currentSize);
}Method: CacheManager.clearExpiredCache()
Location: src/cacheManager.ts
Removes cache entries for files that no longer exist on disk (batched,
async, and skips virtual session paths like <db-file>#<session-id> that
fs.access() can't validate):
const filesToCheck = Array.from(this.sessionFileCache.keys());
for (const filePath of filesToCheck) {
if (CacheManager.isVirtualSessionPath(filePath)) { continue; }
try { await fs.promises.access(filePath); }
catch { /* only ENOENT/ENOTDIR tombstone the entry — see the method's own doc comment */ }
}getCopilotSessionFiles()CacheManager.isCacheValid()CacheManager.setCachedSessionData()CacheManager.trySaveCacheToStorage() (periodically, and unconditionally at the end of a leader refresh)CacheManager.clearExpiredCache()// Get cache data
const cache = context.globalState.get('sessionFileCache');
const entries = Object.entries(cache || {});
// Sort by most recent
entries.sort((a, b) => (b[1].mtime || 0) - (a[1].mtime || 0));
// Show top 10
console.log('Most recent sessions:');
entries.slice(0, 10).forEach(([path, data], i) => {
console.log(`${i + 1}. ${path.split('/').pop()}`);
console.log(` Tokens: ${data.tokens}, Interactions: ${data.interactions}`);
console.log(` Modified: ${new Date(data.mtime).toLocaleString()}`);
});const cache = context.globalState.get('sessionFileCache');
const modelTotals = {};
for (const [path, data] of Object.entries(cache || {})) {
for (const [model, usage] of Object.entries(data.modelUsage)) {
if (!modelTotals[model]) {
modelTotals[model] = { input: 0, output: 0 };
}
modelTotals[model].input += usage.inputTokens;
modelTotals[model].output += usage.outputTokens;
}
}
console.log('Cached model usage:');
for (const [model, totals] of Object.entries(modelTotals)) {
console.log(` ${model}: ${totals.input + totals.output} tokens`);
}const cache = context.globalState.get('sessionFileCache');
const entries = Object.entries(cache || {});
const stats = {
totalEntries: entries.length,
totalTokens: 0,
totalInteractions: 0,
oldestEntry: null,
newestEntry: null
};
entries.forEach(([path, data]) => {
stats.totalTokens += data.tokens;
stats.totalInteractions += data.interactions;
if (!stats.oldestEntry || data.mtime < stats.oldestEntry.mtime) {
stats.oldestEntry = { path, mtime: data.mtime };
}
if (!stats.newestEntry || data.mtime > stats.newestEntry.mtime) {
stats.newestEntry = { path, mtime: data.mtime };
}
});
console.log('Cache Statistics:', stats);The cache is tightly integrated with the extension's token tracking:
Session File Processing: getSessionFileDataCached()
Statistics Calculation: calculateDetailedStats()
Performance Optimization:
Symptoms: Extension shows no cached data or logs "No cached session files found" Solutions:
getCopilotSessionFiles()Symptoms: Token counts don't match session file contents Solutions:
Symptoms: Extension slow to start or save Solutions:
clearExpiredCache()Cache implementation: src/cacheManager.ts (CacheManager)
Session file discovery: src/extension.ts (via SessionDiscovery)
Session parsing: src/sessionParser.ts
Skill script: .github/skills/load-cache-data/load-cache-data.js
state.vscdb)© rajbos, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/load-cache-data of rajbos/ai-engineering-fluency.
Open the folder on GitHubat commit 6933e2a
Load Cache Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Load Cache Data this skillrajbos/ai-engineering-fluency | 115 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Statistical Analysisspacering-net/codeg | 3.8k | 3 repos | ~5k | Automated safety check: Pass | MIT | |
| StatsmodelszLanqing/codex-claude-academic-skills | 4.6k | 16 repos | ~4.9k | Automated safety check: Pass | BSD-3-Clause | |
| Ketch1broseidon/ketch | 696 | 1 repos | ~3.9k | Automated safety check: Pass | MIT | |
| AI Daily DigestvigorX777/ai-daily-digest | 1.6k | — | ~1.3k | Automated safety check: Pass | None | |
| Statistical Powerspacering-net/codeg | 3.8k | 1 repos | ~3.6k | Automated safety check: Notes | MIT |
spacering-net/codeg
Guided statistical analysis for research data - test selection, assumption checking, effect sizes, power analysis, Bayesian alternatives, and APA-formatted reporting.
zLanqing/codex-claude-academic-skills
Statistical models library for Python. An agent skill from zLanqing/codex-claude-academic-skills.
1broseidon/ketch
Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…
vigorX777/ai-daily-digest
Fetches RSS feeds from 90 top Hacker News blogs (curated by Karpathy), uses AI to score and filter articles, and generates a daily digest in Markdown with Chinese-translated titles, category…
spacering-net/codeg
Sample-size and statistical power calculations for planning studies.
higress-group/higress
Real-time agent conversation monitoring - monitors Higress access logs, aggregates conversations by session, tracks token usage.
rajbos/ai-engineering-fluency
Find all hardcoded URLs in TypeScript source files and verify they resolve (return HTTP 2xx/3xx).
rajbos/ai-engineering-fluency
Create a well-scoped GitHub issue in this repo. An agent skill from rajbos/ai-engineering-fluency.
rajbos/ai-engineering-fluency
Detect copy-pasted code blocks across the shared source (vscode-extension/src, the repo-root src/, cli/src) with the dependency-free check-code-duplication.js detector, then pick one duplicate group…
rajbos/ai-engineering-fluency
Analyze coverage of the vscode-extension's tool-family definitions (DEFAULTTOOLFAMILIES in vscode-extension/src/toolFamilies.ts) against the canonical tool-name list in src/toolNames.json and/or a…
rajbos/ai-engineering-fluency
Assess the risk of a changeset (a PR, a branch, or the working tree) and classify it as low, medium, or high with a written rationale.
rajbos/ai-engineering-fluency
Describes the data files available in the coding agent environment after copilot-setup-steps runs.
Works with
Categories
Load and display the last 10 cache entries as raw JSON output. Load Cache Data is an agent skill from rajbos/ai-engineering-fluency. Load and display the last 10 cache entries as raw JSON output.
Load Cache Data fits situations like: you need to understand cached session statistics; debug cache behavior; work with actual cached data.
Run `npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a claude-code`. Or copy the skill folder (.claude/skills/load-cache-data in rajbos/ai-engineering-fluency) into .claude/skills/load-cache-data in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a codex`. Or copy the skill folder (.claude/skills/load-cache-data in rajbos/ai-engineering-fluency) into .agents/skills/load-cache-data in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/load-cache-data, .gemini/skills/load-cache-data, .github/skills/load-cache-data and .opencode/skills/load-cache-data in your project.
Going by SKILL.md and its folder, Load Cache Data needs the command-line tools its instructions call (node).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Load Cache Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Load Cache Data: Statistical Analysis (spacering-net/codeg, 3.8k stars), Statsmodels (zLanqing/codex-claude-academic-skills, 4.6k stars), Ketch (1broseidon/ketch, 696 stars) and AI Daily Digest (vigorX777/ai-daily-digest, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rajbos (a GitHub user) maintains it in rajbos/ai-engineering-fluency, which has 115 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 6, 2026.
Source: rajbos/ai-engineering-fluency on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.